Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linuxÄÚºËÖÐKconfigÎĵµµÄ×÷ÓÃÒÔ¼°KconfigµÄÓï·¨

linuxÄÚºËÖÐKconfigÎĵµµÄ×÷ÓÃÒÔ¼°KconfigµÄÓï·¨
2.6Äں˵ÄÔ´ÂëÊ÷Ŀ¼ÏÂÒ»°ã¶¼»áÓÐÁ½¸öÎÄÎÄ£ºKconfigºÍMakefile¡£·Ö²¼ÔÚ¸÷Ŀ¼ÏµÄKconfig¹¹³ÉÁËÒ»¸ö·Ö²¼Ê½µÄÄÚºËÅäÖÃÊý¾Ý¿â£¬Ã¿¸öKconfig·Ö±ðÃèÊöÁËËùÊôĿ¼ԴÎļþÏà¹ØµÄÄÚºËÅäÖò˵¥¡£ÔÚÄÚºËÅäÖÃmake menuconfig(»òxconfigµÈ)ʱ£¬´ÓKconfigÖжÁ³öÅäÖò˵¥£¬Óû§ÅäÖÃÍêºó±£´æµ½.config(ÔÚ¶¥²ãĿ¼ÏÂÉú³É)ÖС£ÔÚÄں˱àÒëʱ£¬Ö÷Makefileµ÷ÓÃÕâ¸ö.config£¬¾ÍÖªµÀÁËÓû§¶ÔÄں˵ÄÅäÖÃÇé¿ö¡£
ÉÏÃæµÄÄÚÈÝ˵Ã÷£ºKconfig¾ÍÊǶÔÓ¦×ÅÄں˵ÄÅäÖò˵¥¡£¼ÙÈçÒªÏëÌí¼ÓеÄÇý¶¯µ½Äں˵ÄÔ´ÂëÖУ¬¿ÉÒÔͨ¹ýÐÞ¸ÄKconfigÀ´Ôö¼Ó¶ÔÎÒÃÇÇý¶¯µÄÅäÖò˵¥£¬ÕâÑù¾ÍÓÐ;¾¶Ñ¡ÔñÎÒÃǵÄÇý¶¯£¬¼ÙÈçÏëʹÕâ¸öÇý¶¯±»±àÒ룬»¹ÒªÐ޸ĸÃÇý¶¯ËùÔÚĿ¼ÏµÄMakefile¡£
Òò´Ë£¬Ò»°ãÌí¼ÓеÄÇý¶¯Ê±ÐèÒªÐ޸ĵÄÎļþÓÐÁ½ÖÖ£¨×¢Òâ²»Ö»ÊÇÁ½¸ö£©
*Kconfig
*Makefile
ÒªÏëÖªµÀÔõôÐÞ¸ÄÕâÁ½ÖÖÎļþ£¬¾ÍÒªÖªµÀÁ½ÖÖÎĵµµÄÓï·¨½á¹¹¡£
First:   Kconfig
ÿ¸ö²Ëµ¥Ïî¶¼ÓÐÒ»¸ö¹Ø¼ü×Ö±êʶ£¬×î³£¼ûµÄ¾ÍÊÇconfig¡£
Óï·¨£º
config symbol
options
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
symbol¾ÍÊÇеIJ˵¥ÏoptionsÊÇÔÚÕâ¸öеIJ˵¥ÏîϵÄÊôÐÔºÍÑ¡Ïî
ÆäÖÐoptions²¿·ÖÓУº
1¡¢ÀàÐͶ¨Ò壺
ÿ¸öconfig²Ëµ¥Ïî¶¼ÒªÓÐÀàÐͶ¨Ò壬bool£º²¼¶ûÀàÐÍ£¬ tristateÈý̬£ºÄÚ½¨¡¢Ä£¿é¡¢ÒƳý£¬ string£º×Ö·û´®£¬ hex£ºÊ®Áù½øÖÆ£¬ integer£ºÕûÐÍ
ÀýÈçconfig HELLO_MODULE
bool "hello test module"
boolÀàÐ͵ÄÖ»ÄÜÑ¡Öлò²»Ñ¡ÖУ¬tristateÀàÐ͵IJ˵¥Ïî¶àÁ˱àÒë³ÉÄÚºËÄ£¿éµÄÑ¡Ï¼ÙÈçÑ¡Ôñ±àÒë³ÉÄÚºËÄ£¿é£¬Ôò»áÔÚ.configÖÐÉú³ÉÒ»¸ö CONFIG_HELLO_MODULE=mµÄÅäÖ㬼ÙÈçÑ¡ÔñÄÚ½¨£¬¾ÍÊÇÖ±½Ó±àÒë³ÉÄÚºËÓ°Ï죬¾Í»áÔÚ.configÖÐÉú³ÉÒ»¸ö CONFIG_HELLO_MODULE=yµÄÅäÖÃ.
2¡¢ÒÀÀµÐͶ¨Òådepends on»òrequires
Ö¸´Ë²Ëµ¥µÄ³öÏÖÊÇ·ñÒÀÀµÓÚÁíÒ»¸ö¶¨Òå
config HELLO_MODULE
bool "hello test module"
depends on ARCH_PXA
    Õâ¸öÀý×Ó±íÃ÷HELLO_MODULEÕâ¸ö²Ëµ¥ÏîÖ»¶ÔXScale´¦ÀíÆ÷ÓÐЧ£¬¼´Ö»ÓÐÔÚÑ¡ÔñÁËARCH_PXA£¬¸Ã²Ëµ¥²Å¿É¼û(¿ÉÅäÖÃ)¡£
3¡¢°ïÖúÐÔ¶¨Òå
Ö»ÊÇÔö¼Ó°ïÖúÓùؼü×Öhelp»ò---help---
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
¸ü¶àÏêϸµÄKconfigconfigÓï·¨¿É²Î¿¼£º
Second:  Äں˵ÄMakefile
Äں˵ÄMakefile·ÖΪ5¸ö×é³É²¿·Ö£º
Makefile     ×î¶¥²ãµÄMakefi


Ïà¹ØÎĵµ£º

linuxÄÚºËÖеÄHlistÓëList_head½á¹¹

List_Head
²Ù×÷ϵͳÄں˾­³£ÐèҪά»¤Êý¾Ý½á¹¹¡£ÄÚºËÓбê×¼µÄÑ­»·Á´±í¡¢Ë«Ïò
Á´±íµÄʵÏÖ¡£ÔÚ
<Linux/list.h>
ÎļþÖж¨ÒåÁËÒ»¸ö
list_head
ÀàÐͼòµ¥½á¹¹£º
struct
list_head {
  

struct list_head *next, *prev;
};
 
ͨÓÃÁ´±íµÄ³£ÓÃÓÃ;Êǽ«Ä³Ò»¸öÊý¾Ý½á¹¹±¾Éí´®³ÉÁ´±í£¬»ò½«Ä³Ð©Á ......

²é¿´linux·¢ÐаæºÍÄÚºËÐÅÏ¢

uname -a
cat /proc/version
cat /etc/issue
lsb_release -a (ÊÊÓÃÓÚËùÓеÄlinux£¬°üÀ¨Redhat¡¢SuSE¡¢DebianµÈ·¢Ðа棬µ«ÊÇÔÚdebianÏÂÒª°²×°lsb£¬²»°²×°¼ÓÉÏ£­a²ÎÊý²é¿´²¿·Ö)
È磺
·¢Ðа棺
# cat /etc/issue
Äںˣº
# uname -r
......

Éî¶È½éÉÜLinuxÄÚºËÊÇÈçºÎ¹¤×÷µÄ

Å£½ò×ÖµäÖжÔ"kernel"Ò»´ÊµÄ¶¨ÒåÊÇ£º"½ÏÈíµÄ¡¢Í¨³£ÊÇÒ»¸ö¼á¹û¿ÉʳÓõIJ¿·Ö¡£"µ±È»»¹ÓеڶþÖÖ¶¨Ò壺"ij¸ö¶«Î÷ºËÐÄ»òÕß×îÖØÒªµÄ²¿·Ö¡£"¶ÔLinuxÀ´Ëµ£¬ËüµÄKernelÎÞÒÉÊôÓÚµÚ¶þÖÖ½âÊÍ¡£ÈÃÎÒÃÇÀ´¿´¿´Õâ¸öÖØÒªµÄ¶«Î÷ÊÇÈçºÎ¹¤×÷µÄ£¬ÏÈ´ÓÒ»µãÀíÂÛ˵Æð¡£
    ¹ãÒ嵨À´Ëµkernel¾ÍÊÇÒ»¸öÈí¼þ£¬ËüÔÚÓ²¼þºÍÔËÐÐÔÚ¼ÆËã»úÉÏ ......

linuxÏÂÊä³ö±ê×¼´íÎóµÄ·½·¨


GNU glibcÌṩһ¸ö¶ÔprintfµÄÀ©Õ¹£¬Ö±½Óprintf("%m"),¿ÉÒÔÊä³ö±ê×¼µÄ´íÎóÐÅÏ¢£¬ÀýÈçÏÂÃæ£º
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
int main()
{
         ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ