·¢²¼µÄ 2.6.23 ÄÚºËÖаüº¬ÁËÒ»¸öÖØÒªµÄ±ä»¯£¬ÓÃCFSÌæ´úÁËÒÔǰµÄµ÷¶ÈÆ÷¡£CFS ±»ºÏ²¢µ½ mainline ֮ǰ£¬¹ØÓÚÄں˵÷¶ÈÆ÷»¹ÓÐÒ»¸öÖØÒªµÄ patch£ºRSDL¡£×îÖÕ 2.6.23 ¾ö¶¨½« CFS ºÏ²¢µ½ mainline ¶ø·ÅÆúÁË RSDL¡£ÎªÊ²Ã´ÒªÒýÈëеĵ÷¶ÈÆ÷£¬CFS ºÍ RSDL ÓÐʲôÁªÏµºÍÇø±ð£¿±¾ÎÄÊÔͼ¶ÔÄں˵÷¶ÈËã·¨µÄ·¢Õ¹ÀúÊ·×öÒ»¸ö¼òÒª½éÉÜ£¬Ï£ÍûÄܶÔÉÏÊöÎÊÌâµÄÀí½âÓÐËù°ïÖú¡£
ÒýÑÔ
½ø³Ìµ÷¶ÈÊDzÙ×÷ϵͳµÄºËÐŦÄÜ¡£µ÷¶ÈÆ÷Ö»ÊÇÊǵ÷¶È¹ý³ÌÖеÄÒ»²¿·Ö£¬½ø³Ìµ÷¶ÈÊǷdz£¸´ÔӵĹý³Ì£¬ÐèÒª¶à¸öϵͳÐͬ¹¤×÷Íê³É¡£±¾ÎÄËù¹Ø×¢µÄ½öΪµ÷¶ÈÆ÷£¬ËüµÄÖ÷Òª¹¤×÷ÊÇÔÚËùÓÐ RUNNING ½ø³ÌÖÐÑ¡Ôñ×îºÏÊʵÄÒ»¸ö¡£×÷Ϊһ¸öͨÓòÙ×÷ϵͳ£¬Linux µ÷¶ÈÆ÷½«½ø³Ì·ÖΪÈýÀࣺ
½»»¥Ê½½ø³Ì
´ËÀà½ø³ÌÓдóÁ¿µÄÈË»ú½»»¥£¬Òò´Ë½ø³Ì²»¶ÏµØ´¦ÓÚ˯Ãß״̬£¬µÈ´ýÓû§ÊäÈë¡£µäÐ͵ÄÓ¦ÓñÈÈç±à¼Æ÷ vi¡£´ËÀà½ø³Ì¶ÔϵͳÏìӦʱ¼äÒªÇó±È½Ï¸ß£¬·ñÔòÓû§»á¸Ð¾õϵͳ·´Ó¦³Ù»º¡£
Åú´¦Àí½ø³Ì
´ËÀà½ø³Ì²»ÐèÒªÈË»ú½»»¥£¬ÔÚºǫ́ÔËÐУ¬ÐèÒªÕ¼ÓôóÁ¿µÄϵͳ×ÊÔ´¡£µ«ÊÇÄܹ»ÈÌÊÜÏìÓ¦ÑÓ³Ù¡£±ÈÈç±àÒëÆ÷¡£
ʵʱ½ø³Ì
ʵʱ¶Ôµ÷¶ÈÑÓ³ÙµÄÒªÇó×î¸ß£¬ÕâЩ½ø³ÌÍùÍùÖ´Ðзdz£ÖØÒªµÄ²Ù×÷£¬ÒªÇóÁ¢¼´ÏìÓ¦²¢Ö´ÐС£±ÈÈçÊÓÆµ²¥·ÅÈí¼þ»ò·É»ú·ÉÐпØÖÆÏµÍ³£¬ºÜÃ÷ÏÔÕâÀà³ÌÐò²»Ä ......
×¼±¸¹¤×÷
qt-everywhere-opensource-src-4.6.2.tar
½âѹ tar xvzf qt-everywhere-opensource-src-4.6.2.tar
ÅäÖÃ:
./configure -prefix /home/hyk/Qt_self_compiled/Qt_4_6_2
£¨Ö»ÊǸıäÁ˰²×°Ä¿Â¼£©
gmake
(ÖØÅäÖÃ gmake confclean , configure)
ÖÐÎç12µã2·Ö¿ªÊ¼±àÒ룬ȥ³Ô·¹£¬µÈ´ý±àÒëÍê³É
1µã52 »ØÀ´¿´ £¬±àÒëÒѾÍê³É
gmake install
Íê³É°²×° ......
linuxÉ豸Çý¶¯¿ª·¢Ïê½â——globalmem
ÊÕ²Ø
³£¼ûµÄÁ½ÖÖ´íÎó£º
1.ÔÚ²åÈëÄ£¿éµÄʱºò³öÏÖÈçÏÂÎÊÌ⣺
# insmod globalmem.ko insmod: error inserting 'globalmem.ko': -1
Device or resource busy
ANSWER:Ö÷É豸ºÅ±»Õ¼ÓÃÁË£¬»»ÁíÒ»¸ö¡£ Äã°Ñglobalmem.cÎļþÀïÃæµÄºê¶¨ÒåÄÇÀï¸ÄΪ226»òÆäËû£¬È»ºóÔÙ±àÒë¾Í¿ÉÒÔ²åÈëÁË£¡
ÌØ±ð×¢Ò⣺ Èç¹û»»ÁËÖ÷É豸ºÅÒÔºó£¬ÏÂÃæ½Ó×Å´´½¨½ÚµãµÄʱºòÒ²Òª¸Ã£¬·ñÔò³öÏÖÏÂÃæ´íÎó£º
# mknod /dev/globalmem c 254 0 /*ÕâÀïµÄ254¸úÒÑÐ޸ĵÄÖ÷É豸ºÅ228²»Ò»ÖÂ*/
# echo
'hello world' > /dev/globalmem
/bin/sh: can't create
/dev/globalmem: No such device or address
½â¾ö°ì·¨£º
# rm /dev/globalmem
# mknod /dev/globalmem c 226 0
# echo
'hello world' > /dev/globalmem
written 12 bytes(s) from 0
2.¼ÓÔØºÍ´´½¨É豸½Úµã¶¼Êdzɹ¦µÄ£®µ«¾ÍÊÇÓÃcatÃüÁî²é¿´Ê±£¬ËäÈ»¶Á³öÁËÕýÈ·µÄ×Ö·û£¬È´×ÜÊÇÔÚ×îºó»¹Òª¼ÓÉÏÒ»¾äÌáʾ£¢ÕÒ²»µ½É豸»òµØ ......
cat ÃüÁî
ʹÓ÷½Ê½£ºcat [-AbeEnstTuv] [--help] [--version] fileName
˵Ã÷£º°Ñµµ°¸´®Á¬
½Óºó´«µ½»ù±¾Êä³ö£¨Ó©Ä»»ò¼Ó > fileName µ½ÁíÒ»¸öµµ°¸£©
²ÎÊý£º
-n »ò --number ÓÉ 1
¿ªÊ¼¶ÔËùÓÐÊä³öµÄÐÐÊý±àºÅ
-b »ò --number-nonblank ºÍ -n ÏàËÆ£¬Ö»²»¹ý¶ÔÓÚ¿Õ°×Ðв»±àºÅ
-s »ò
--squeeze-blank µ±Óöµ½ÓÐÁ¬ÐøÁ½ÐÐÒÔÉϵĿհ×ÐУ¬¾Í´ú»»ÎªÒ»ÐеĿհ×ÐÐ
-v »ò --show-nonprinting
·¶
Àý£º
cat -n textfile1 > textfile2 °Ñ textfile1 µÄµµ°¸ÄÚÈݼÓÉÏÐкźóÊäÈë
textfile2 Õâ¸öµµ°¸Àï
cat -b textfile1 textfile2 >> textfile3 °Ñ
textfile1 ºÍ textfile2 µÄµµ°¸ÄÚÈݼÓÉÏÐкţ¨¿Õ°×Ðв»¼Ó£©Ö®ºó½«ÄÚÈݸ½¼Óµ½ textfile3 Àï¡£
echo
ÃüÁî
echo
ÃüÁîµÄ¹¦ÄÜÊÇÔÚÏÔʾÆ÷ÉÏÏÔʾһ¶ÎÎÄ×Ö£¬Ò»°ãÆðµ½Ò»¸öÌáʾµÄ×÷Óá£
¸ÃÃüÁîµÄÒ»°ã¸ñʽΪ£º
echo [ -n ]
×Ö·û´®
ÆäÖÐÑ¡Ïî
n
±íʾÊä³öÎÄ×Öºó²»»»ÐУ»×Ö·û´®¿ÉÒÔ¼ÓÒýºÅ£¬
Ò²¿ÉÒÔ²»¼ÓÒýºÅ¡£ÓÃ
echo
ÃüÁîÊä³ö¼ÓÒýºÅµÄ×Ö·û´®Ê±£¬½«×Ö·û´®ÔÑùÊä³ö£»ÓÃ
echo
ÃüÁîÊä³ö²»¼ÓÒýºÅµÄ×Ö·û´®Ê±£¬½«×Ö·û´®Öеĸ÷¸öµ¥´Ê×÷Ϊ×Ö·û´®Êä³ö£¬¸÷×Ö·û´®Ö®¼äÓÃÒ»¸ö¿Õ¸ñ·Ö¸î¡£
cal
ÃüÁî
cal ......
1. I/O Port
¡¡¡¡ºÍÓ²¼þ
´ò½»µÀÀë²»¿ªI/O Port
£¬ÀϵÄ
ISA
É豸¾³£ÊÇÕ¼ÓÃʵ¼ÊµÄ
I/O
¶Ë¿Ú£¬ÔÚ
linux
Ï£¬²Ù×÷
ϵͳûÓжÔ
I/O
¿ÚÆÁ±Î£¬Ò²¾ÍÊÇ˵£¬ÈκÎÇý¶¯³ÌÐò¶¼¿É¶ÔÈÎÒâµÄ
I/O
¿Ú²Ù×÷£¬ÕâÑù
¾ÍºÜÈÝÒ×ÒýÆð»ìÂÒ¡£Ã¿¸öÇý¶¯³ÌÐòÓ¦¸Ã×Ô¼º±ÜÃâÎóÓö˿ڡ£
¡¡¡¡ÓÐÁ½¸ö
ÖØÒªµÄkernel
º¯Êý¿ÉÒÔ±£Ö¤Çý¶¯³ÌÐò×öµ½ÕâÒ»µã¡£
¡¡¡¡1
£©
check_region(int io_port
£¬
int off_set)
¡¡¡¡Õâ¸öº¯
Êý²ì¿´ÏµÍ³µÄI/O
±í£¬¿´ÊÇ·ñÓбðµÄÇý¶¯³ÌÐòÕ¼ÓÃijһ¶Î
I/O
¿Ú¡£
¡¡¡¡²ÎÊý1
£º
I/O
¶Ë¿ÚµÄ»ùµØ
Ö·£¬
¡¡¡¡²ÎÊý2
£º
I/O
¶Ë¿ÚÕ¼ÓõÄ
·¶Î§¡£
¡¡¡¡·µ»Ø
Öµ£º0
û
ÓÐÕ¼Ó㬠·Ç
0
£¬ÒѾ±»Õ¼Óá£
¡¡¡¡2
£©
request_region(int io_port
£¬
int off_set
£¬
char *devname)
¡¡¡¡Èç¹ûÕâ
¶ÎI/O
¶Ë
¿ÚûÓб»Õ¼Óã¬ÔÚÎÒÃǵÄÇý¶¯³ÌÐòÖоͿÉÒÔʹÓÃËü¡£ÔÚʹÓÃ֮ǰ£¬±ØÐëÏòϵͳµÇ¼Ç£¬ÒÔ·ÀÖ¹±»ÆäËû³ÌÐòÕ¼ÓᣵǼǺó£¬ÔÚ
/proc/ioports
ÎļþÖпÉÒÔ¿´µ½ÄãµÇ¼ÇµÄ
I/O
¿Ú¡£
¡¡¡¡²ÎÊý1
£º
io
¶Ë¿ÚµÄ»ùµØ
Ö·¡£
¡¡¡¡²ÎÊý2
£ ......
Öжϴ¦Àí
ÔÚ 2.4 ÄÚºËºÍ 2.6ÄÚºËÖж¼Ê¹Óà request_irq()
º¯ÊýÀ´×¢²áÖжϷþÎñº¯Êý¡£ÔÚ 2.4
ÄÚºËÖУ¬ÐèÒª°üº¬µÄÍ·ÎļþÊÇ #include <linux/sched.h> £¬2.6 ÄÚºËÖÐÐèÒª°üº¬µÄÍ·ÎļþÔòÊÇ #include
<linux/interrupt.h> ¡£º¯ÊýÔÐÍÈçÏ£º
2.4 ÄÚºË
int
request_irq
(unsigned
int
irq
,
void
(*
handler
)(int
,
void
*
,
struct
pt_regs
*
),
unsigned
long
frags
,
const
char
*
device
,
void
*
dev_id
);
2.6 ÄÚºË
request_irq
(unsigned
int
irq
,
irq_handler_t
handler
,
unsigned
long
flags
,
const
char
*
name
,
void
*
dev
);
ÔÚ·¢Éú¶ÔÓ¦
ÓÚµÚ 1¸ö²ÎÊý irq
µÄÖжÏʱ£¬Ôòµ÷ÓÃµÚ 2 ¸ö²ÎÊý handler
Ö¸¶¨µÄÖжϷþÎñº¯Êý(Ò²¾ÍÊÇ°Ñ handler() ÖжϷþÎñº¯Êý×¢²áµ½ÄÚºËÖÐ )¡£
µÚ 3 ¸ö²ÎÊý flags
Ö¸¶¨ÁË¿ìËÙÖжϻòÖжϹ²ÏíµÈÖжϴ¦ÀíÊôÐÔ¡£ÔÚ 2.6 ½ÌеÄÄÚºËÀï(ÎÒµÄÊÇ 2.6.27 ~ 2.6.31 )£¬ÔÚ
linux/interrupt.h Öж¨Òå²Ù×÷Õâ¸ö²ÎÊýµÄºêÈçÏ£º
/*
* These flags used only by the kernel as
part of the
*
irq handling routines.
* ......