Enable/Disable Linux mousekeys
gcc mousekey.c -lX11 -IX11
´ò¿ªmousekeysÔËÐÐ./a.out
¹Ø±ÕmousekeysÔËÐÐ./a.out 1,ÕâÀïÔÚa.outºóÃæËæ±ã¼ÓÒ»¸ö²ÎÊý¾Í¿ÉÒÔÁË£¬ÒòΪÅжÏÌõ¼þΪ if(argc < 2)
/*********source code***************/
#include <stdio.h>
#include <string.h>
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
int main(int argc, char *argv[])
{
Display *display;
unsigned long which;
XkbDescPtr xkb;
unsigned int status_mask = 0;
unsigned short mk_delay = 160;
unsigned short mk_interval = 50;
unsigned short mk_time_to_max = 30;
unsigned short mk_max_speed = 50;
short mk_curve = 0;
Status S;
status_mask = XkbMouseKeysMask;
display = XOpenDisplay(NULL);
xkb = XkbGetMap(display, 0, XkbUseCoreKbd);
if((int)xkb == BadAlloc || xkb == NULL)
{
printf("ERROR: unable to allocate storege.\n");
return 1;
}
if((S = XkbGetControls(display, XkbAllControlsMask, xkb)) != Success)
{
if(S == BadAlloc)
printf("ERROR: Unable to allocate storage.\n");
else if(S == BadMatch)
printf("ERROR: Unable to query state of keyboard.\n");
else printf("ERROR: Unable to get state of keyboard controls. \n");
return 2;
}
unsigned int changeEnabled = 0;
unsigned int enabled = 0;
changeEnabled |=status_mask;
if(argc < 2)
enabled |= status_mask;
if(xkb->ctrls)
{
xkb->ctrls->enabled_ctrls &=~changeEnabled;
xkb->ctrls->enabled_ctrls |=(changeEnabled & enabled);
xkb->ctrls->mk_delay = mk_delay;
xkb->ctrls->mk_interval = mk_interval;
xkb->ctrls->mk_time_to_max = mk_time_to_max;
xkb->ctrls->mk_max_speed = mk_max_speed;
&nb
Ïà¹ØÎĵµ£º
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
½«php·þÎñÆ÷¼Üµ½linuxÏÂʱûÓÐ×¢Òâ¸ÃÎÊÌ⣬
ǰ¼¸Ììµ¹ÊÇÅöµ½ÁËÔÚlinuxÏÂÑéÖ¤ÂëµÄͼƬÎÞ·¨ÏÔʾµÄÇé¿ö£¬·¢ÏÖlinuxÏÂÒ²ÒªÓÐgd¿âµÄÖ§³Ö£¬ÓÚÊǰ²×°ÁËphp5-gd£¨±¾ÈËʹÓõÄÊÇphp5£©
£¬Õâ¸öÎÊÌâ½â¾öÁË
½ñÌìͻȻ·¢ÏÖimgͼƬÎÞ·¨ÏÔʾ£¬ÉÏÍøËÑÁËÒ»°Ñ£¬ÓÖ¾¹ý²âÊԵóöÈçϽáÂÛ
<img src="pc.jpg"......>
Ëû»áÒÔµ±Ç°Â·¾¶ ......
Linux Ê×ÏÈ´´½¨ramfsÎļþϵͳ(/)
È»ºó°Ñinitrd.imgÎļþ¼ÓÔØµ½ / Ŀ¼Ï¡£
ÆäËüÎļþϵͳÊÇ×öΪramfsµÄÒ»¸öĿ¼½áµã¹ÒÔØÉÏÈ¥µÄ¡£
initrd.imgÊÇÒ»¸öÓÃzipѹËõµÄcpio¸ñʽµÄѹËõÎļþ¡£°´ÏÂÃæ²½ÖèʵÏÖ½âѹ
µÚÒ»²½£º½«initrd.img¸ÄÃûΪinitrd.img.gz
mv initrd.img initrd.img.gz
µÚ¶þ²½£ºÓÃgunzip½âѹÉú³Éinitrd.img
gunzi ......
֮ǰÔÚVMWareÏÂ×°µÄlinuxϵͳµÄ¿ÉÓÃÓ²Å̿ռäÔ½À´Ô½ÉÙ£¬ÒѾÑÏÖØÓ°ÏìÕý³£µÄʹÓÃÁË£¬ÓÚÊǾ͸øËüÔÚVMWareϼÓÁË¿éÓ²ÅÌ£¬²½ÖèÈçÏ£º 1¡¢Í¨¹ýVMWare¸ølinuxϵͳÌí¼ÓÒ»¸öÐÂÓ²ÅÌ 2¡¢ÖØÆôlinuxϵͳ£¬¼üÈë fdisk –l ÃüÁî²é¿´ÐÂÔöÓ²Å̵ÄÅÌ·û£¨Í¨³£»áÓÐ ¡°doesn't contain a valid partion table¡±µÄÌáʾÐÅÏ¢£©£¬¼ÙÉèΪ /dev/s ......
×÷Õߣºbioforge alkerr@yifan.net
ÔÃû£º <<Hacking the Linux Kernel Network Stack>>
·Ò룬Ð޸ģº duanjigang <duanjigang1983@126.com>
·Òë²Î¿¼£ºraodan (raod_at_30san.com) 2003-08-22
µÚÒ»Õ ¼ò½é
±¾ÎĽ«ÃèÊöÈçºÎÀûÓÃLinuxÍøÂç¶ÑÕ»µÄÇÏÃÅ£¨²»Ò»¶¨¶¼ÊÇ©¶´£©À´´ïµ½Ò»Ð©Ä¿µÄ£¬»ò ......