linuxÄÚºËÒÆÖ²s3c2410£¬×¼±¸¹¤×÷
1.Ê×ÏÈÊÇ»ñµÃlinuxÄÚºËÔ´Â룬ºÃÏñÊÇ·Ï»°£¬ÏÂÔØµØÖ·ÈçÏ£ºftp://ftp.kernel.org/pub/linux/kernel/v2.6/ÏÂÔØ£º
linux-2.6.16.22.tar.bz2 patch-2.6.22.6.bz2
ÉÏÃæÒ»²½ÐèҪ˵Ã÷µÄÊÇÒ»°ã¶øÑÔ£¬linuxÄں˵ĸ÷¸ö²¹¶¡ÎļþÊǸù¾Ýij¸ölinuxÄں˵İ汾ºÅÀ´×÷µÄpatch¡£
½«ÉÏÃæµÄÁ½¸öѹËõÎļþ½âѹ:
tar jxvf linux-2.6.22.tar.bz2
tar jxvf patch-2.6.22.6.bz2
cd linux-2.6.22
patch -p1 < ../patch-2.6.22.6
2.linuxÄÚºËÔ´Âë½á¹¹ºÍMakefile·ÖÎö
linuxÄÚºËÔ´ÂëµÄ½á¹¹±È½ÏÇåÎú£¬ÎҾͲ»ÂÞàÂÁË£¬Èç¹û¶ÔÓÚlinuxÔ´ÂëµÄ½á¹¹²»ÊǺÜÁ˽âµÄ»°£¬¿ÉÒԲο¼ÏÂÃæµÄÎÄÕÂ
http://www.kerneltravel.net/kernel-book/%E7%AC%AC%E4%B8%80%E7%AB%A0%E8%B5%B0%E8%BF%9Blinux/1.6.2.htm
¶ÔÓÚÒÆÖ²linuxµ½s3c2410¶øÑÔ£¬Ö÷ÒªµÄ¹¤×÷Ŀ¼ÊÇ/arch/arm/Ï¡£
ÔÚwindowsÖдó¶àÊÇIDEÀ´¸ºÔðÏîÄ¿µÄ¹ÜÀí£¬µ«ÊÇÔÚlinuxÖÐÖ÷ÒªÊÇͨ¹ýMakefileÀ´ÊµÏÖÏàÓ¦µÄ¹¦ÄÜ¡£MakefiieÖ÷ÒªÓÐÏÂÃæµÄ
Èý¸ö×÷Óãº
1.Ê×ÏȾö¶¨±àÒëÄÇЩÎļþ
2.ÔõÑù±àÒëÕâЩÎļþ
3.ÈçºÎÁ´½ÓÕâЩ±àÒëÍêµÄÎļþ£¬ËûÃǵÄ˳ÐòÓÐÊÇʲô¡£
###################
1.Ê×ÏȾö¶¨±àÒëÄÇЩÎļþ
##################
linuxÖÐMakefieÌåϵ£º
ÔÚlinuxÄÚºËÎļþ¼ÐÖеÄDocumentation/kbuild/makefiles.txtÖжÔÄÚºËÖеÄMakefileÖÐÌṩÁËÏêϸµÄÐÅÏ¢£º
The Makefiles have five parts:
Makefile the top Makefile. ¶¥²ãµÄMakefile
.config the kernel configuration file.ÅäÖÃÎļþ£¬ÔÚ¶¥²ãµÄMakefileÖÐʹÓÃ.configÀ´¾ö¶¨Ê¹ÓÃÄÇЩÎļþ
arch/$(ARCH)/Makefile the arch Makefile.ºÍÌåϵƽ̨Ïà¹ØµÄMakefile
scripts/Makefile.* common rules etc. for all kbuild Makefiles.Makefile¹«ÓõÄͨÓùæÔò£¬½Å±¾µÈ¡£
kbuild Makefiles there are about 500 of these.¸÷¸ö×ÓĿ¼ÏµÄMakefile£¬±»¸ÃÉϲãµÄMakefileµ÷ÓÃ
The top Makefile reads the .config file, which comes from the kernel
configuration process.
¶¥²ãµÄMakefile¶ÁÈ¡.configÖеÄÐÅÏ¢£¬ÕâЩ.configÐÅÏ¢À´×ÔÓÚmake menuconfigÖÐ
The top Makefile is responsible for building two major products: vmlinux
(t
Ïà¹ØÎĵµ£º
±¾²»ÏëдÕâÐ©ÍæÒâ¶ù£¬ÆäʵÎÒ²¢²»Ï²»¶ËüÃÇ£¬Ö»²»¹ýû°ì·¨£¬Ë½ÐÎÒÊÇ¿¿ÕâЩ¼Ò»ïºý¿ÚµÄÄØ£¡
Èô¸ÉÄêǰ£¬ÎÒ×ÔÈÏΪºÜϲ»¶Linux£»Èô¸ÉÄêºó£¬ÎÒ·¢ÏÖÎÒµ±³õÊǺεȵÄÌìÕæ¡£
¶÷£¬Ò»·ÖÇ®£¬Ò»·Ö»õ£¡ÎÒ¼áÐÅÕâÒ»µã£¡ËùÒÔÎÒÏÖÔÚ¼á³ÖÓÃMSµÄVista£¬Õý°æµÄŶ£¡
ÑÔ¹éÕý´«£¬Ç°¶Îʱ¼äÒòΪ¹¤×÷£¬ÐèÒªÔÚLinuxϲÙ×÷Êó±ê£¬µ±È»À²£¬¿Ï¶¨²»»áÊÇÔÚX-w ......
GCC Ö§³ÖÁËÐí¶à²»Í¬µÄÓïÑÔ£¬°üÀ¨ C¡¢C++¡¢Ada¡¢Fortran¡¢Objective C,Perl¡¢Python ºÍ Ruby£¬ÉõÖÁ»¹ÓÐJava¡£
¡¡¡¡Linux Äں˺ÍÐí¶àÆäËû×ÔÓÉÈí¼þÒÔ¼°¿ª·ÅÔ´ÂëÓ¦ÓóÌÐò¶¼ÊÇÓà C ÓïÑÔ±àд²¢Ê¹Óà GCC ±àÒëµÄ¡£
¡¡¡¡±àÒëC++³ÌÐò£º
¡¡¡¡-c Ö»±àÒë²»Á¬½Ó
¡¡¡¡g++ file1 -c -o file1.o
¡¡¡¡g++ file2 -c -o file2.o
¡¡¡¡g++ f ......
Á´½Óָʾ·ûextern C
Èç¹û³ÌÐòԱϣÍûµ÷ÓÃÆäËû³ÌÐòÉè¼ÆÓïÑÔÓÈÆäÊÇC дµÄº¯ÊýÄÇôµ÷Óú¯Êýʱ±ØÐë
¸æËß±àÒëÆ÷ʹÓò»Í¬µÄÒªÇóÀýÈçµ±ÕâÑùµÄº¯Êý±»µ÷ÓÃʱº¯ÊýÃû»ò²ÎÊýÅÅÁеÄ˳Ðò¿ÉÄÜ
²»Í¬ÎÞÂÛÊÇC++º¯Êýµ÷ÓÃËü»¹ÊÇÓÃÆäËûÓïÑÔдµÄº¯Êýµ÷ÓÃËü
³ÌÐòÔ±ÓÃÁ´½Óָʾ·ûlinkage directive ¸æËß±àÒëÆ÷¸Ãº¯ÊýÊÇÓÃÆäËûµÄ³ÌÐòÉè¼ÆÓïÑÔ
±àдµ ......
Ðí¶à¸Õ¸Õ½Ó´¥LinuxµÄÈËÍùÍù¾À½áÓÚLinuxµÄÖÚ¶à¸ñʽ½âѹÎÊÌ⣬½ñÌì ´ø¸ø´ó¼Ò³£ÓõÄLinuxµÄ½âѹÃüÁ²»Í×Ö®´¦£¬»¶ÓÖ¸Õý£¡
µÚÒ»£ºÒÔ.tar.gz½áβµÄÎļþ
tar xvzf file.tar.gz »òÕß gzip -dc file.tar.gz | tar xvf -(ÕâÀïÓõ½Á˹ܵÀ)
µÚ¶þ£ºÒÔ.zip½áβµÄÎļþ
unzip file.zip
µÚÈý£ºÒÔ.tar.bz2½áβµÄÎļþ
tar ......