±àÒëLinuxÄÚºËÒ»¶¨ÒªÖªµÀµÄ¼¸¸öСTips
Tip1£º½»Ö¯±àÒëÑ¡Ïî
±àÒëLinux£¬Í¨³£Ö»ÐèÒªÔËÐÐmake menuconfigÉèÖÃÒª±àÒëµÄÄ£¿é£¬È»ºóÔËÐÐmake¡£LinuxĬÈÏÊÇ×öÍâµØ±àÒ룬Ҳ¾ÍÊDZàÒëλ±¾»úʹÓõÄÄںˡ£
ÔÚǶÈëʽ¿ª·¢ÖУ¬¾³£ÐèÒª½»Ö¯±àÒ룬Ҫ×ö½»Ö¯±àÒëµÄ»°£¬ÐèÒªÔÚmakeÏÂÁîºó¼ÓÉϺê½ç˵£¬Èç½»Ö¯±àÒëΪarmÄ¿µÄ£º
make ARCH=arm CROSS_COMPILE=arm-linux-
µÇ¼ºó¸´ÖÆ
ARCH=arm£ºÌåÏÖÄ¿µÄCPUΪARM¼Ü¹¹
CROSS_COMPILE=arm-linux-£º
ÌåÏÖ±àÒëÀú³ÌʹÓõĽ»Ö¯±àÒëÁ´Îªarm-linux
ËäȻҲ¿ÉÒÔÖ±½ÓÐÞ¸ÄMakefileÖеÄARCHºÍCROSS_COMPILEºê½ç˵£¬ÒÔ´ËʵÏÖͬÑùµÄЧ¹û¡£¿ÉÊDz»½¨ÒéÖ±½ÓÐÞ¸ÄMakefile¡£
Tip2£ºÔ´ÂëÓëÄ¿µÄÎļþÊèÉ¢
LinuxÄں˱àÒëÀú³Ì»á±¬·¢Ðí¶àµÄÎļþ£¬°üÀ¨Ä¿µÄÎļþ¡¢ÔÝʱÎļþµÈµÈ£¬Ä¬ÈÏÇéÐÎÏ£¬±àÒëÌìÉúµÄÎļþ»á´æ·ÅÔÚÄÚºËÔ´ÂëĿ¼¡£
µ±ÄãʹÓÃgit statusÏÔʾ×Ô¼º¶ÔÄں˴úÂëµÄÐÞ¸ÄʱҲ»á°ÑÕâЩÔÝʱÎļþÏÔʾ³öÀ´£¬²¢ÇÒÌá½»»¹±ØÐèÒ»¸öÎļþÒ»¸öÎļþµØÖ¸¶¨£¬Ï൱ƶÀ§¡£
Òò´ËÎÒÃÇ¿ÉÒÔÔÚ¸¸Ä¿Â¼½¨ÉèÒ»¸ö´æ·Å±àÒëÎļþµÄĿ¼£¬Èçbuild-kernel£¬È»ºóÔÙmake ÏÂÁîºóÃæ¼ÓÉϺê½ç˵£º
make O=../build-kernel
µÇ¼ºó¸´ÖÆ
ÕâÑùÔÚ±àÒëLinuxÄÚºËʱ£¬ËùÓбàÒ뱬·¢µÄÎļþ£¬¶¼»á·ÅÔÚbuild-kernelĿ¼£¬ÈôÊÇbuild-kernelĿ¼²»±£´æ£¬Ò²»á×Ô¶¯½¨Éè¡£ÕâÑù¿ÉÒÔʵÏÖLinuxÄÚºËÔ´ÂëÓë±àÒ뱬·¢µÄÎļþÊèÉ¢¡£
Tip3£º»ñµÃ±àÒëÏÂÁî¼°Ñ¡Ïî
±àÒëlinuxʱ£¬Ä¬Èϲ»»áÏÔʾ±àÒëµÄÏÂÁÈôÊÇÄãÒª»ñµÃ±àÒëÏÂÁî¼°ÆäÑ¡Ï¿ÉÒÔÔÚmakeÏÂÁîºóÃæ¼ÓÉϺê½ç˵£º
make V=1
µÇ¼ºó¸´ÖÆ
ÈôÊÇÏ£Íû±àÒëϵͳ¸æËßÄãΪºÎij¸öÄ¿µÄÎļþÐèÒªÖØбàÒ룬Ôò£º
make V=2
µÇ¼ºó¸´ÖÆ
Äں˱àÒë¾ç±¾
×îºó·ÖÏíÎÒ³£ÓõÄÄں˱àÒë¾ç±¾mk.sh£¬¸ø¸÷È˲ο¼£º
#!/bin/sh export ARCH=arm export PATH=~/toolchain/arm_glibc/host/bin:$PATH export CROSS_COMPILE=arm-linux-gnu- #make O=../bd defconfig make O=../bd menuconfig -j32 make O=../bd dtbs #·´»ã±à $(CROSS_COMPILE)objdump -d ../bd/vmlinux > ../image/vmlinux_dump.txt #ÌìÉúuImage ../ubd/tools/mkimage -A arm -T kernel -C none -O linux -a 0x80200000 -e 0x80200000 -n "debug kernel" -d ../bd/Image ../image/uImage
µÇ¼ºó¸´ÖÆ
ÆäÖУ¬make O=../bd defconfigÖ»ÓÐÔÚµÚÒ»´Î±àÒëÄں˵IJÅʹÓ㬵ÚÒ»´Î±àÒëʺ󣬽«Õâ¾ä×¢ÊÍ£¬ºóÃ涼ͨ¹ýmake menuconfigÐÞ¸ÄÄÚºËÉèÖá£
objdump·´»ã±à¶Ô´ó´ó¶¼ÈËÀ´Ëµ¿ÉÄÜÓò»ÉÏ£¬Ò»Ñùƽ³£ÔÚÄÚºËÒÆÖ²¡¢Æô¶¯ÆÊÎöʱ½ÏÁ¿ÓÐÓ㬵«ÓÉÓÚÊÂÇéÐèÒª£¬ÎÒͨ³£¶¼»á°Ñ·´»ã±à¼ÓÉÏ¡£
ÒÔÉϾÍÊDZàÒëLinuxÄÚºËÒ»¶¨ÒªÖªµÀµÄ¼¸¸öСTipsµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡