¶øARM¼Ü¹¹£¬Æ¾½èÆä¹ã·ºµÄ¼æÈÝÐÔ¡¢¸ßЧµÄÄܺıÈÒÔ¼°Ç¿´óµÄÉú̬ϵͳ£¬³ÉΪÁËǶÈëʽLinuxϵͳµÄÊ×ѡƽ̨
È»¶ø£¬ÒªÈÃÕâЩ»ùÓÚARM¼Ü¹¹µÄÉ豸·¢»Ó³ö×î´óЧÄÜ£¬ÍùÍùÐèÒªÕë¶ÔÌØ¶¨Ó²¼þ¿ª·¢²¢±àÒëÏàÓ¦µÄÇý¶¯³ÌÐò
±¾ÎĽ«ÉîÈë̽ÌÖÈçºÎÔÚARM Linux»·¾³Ï±àÒëÇý¶¯³ÌÐò£¬½âËøÇ¶ÈëʽϵͳµÄÎÞÏÞDZÄÜ
Ò»¡¢ÒýÑÔ£ºÎªºÎ±àÒëARM LinuxÇý¶¯ÖÁ¹ØÖØÒª ǶÈëʽϵͳµÄºËÐÄÔÚÓÚÆäÄܹ»¸ù¾ÝÌØ¶¨ÐèÇó½øÐи߶ȶ¨ÖÆ»¯£¬ÕâÆäÖаüÀ¨Ó²¼þÅäÖᢲÙ×÷ϵͳÒÔ¼°Ó¦ÓÃÈí¼þ
Çý¶¯³ÌÐò×÷ΪӲ¼þÓë²Ù×÷ϵͳ֮¼äµÄÇÅÁº£¬ÆäÖØÒªÐÔ²»ÑÔ¶øÓ÷
Ò»¸ö¸ßЧ¡¢Îȶ¨µÄÇý¶¯³ÌÐòÄܹ»È·±£Ó²¼þ×ÊÔ´µÄ³ä·ÖÀûÓã¬ÌáÉýϵͳÕûÌåÐÔÄÜ£¬Í¬Ê±±£ÕÏϵͳµÄÎȶ¨ÐԺͰ²È«ÐÔ
¶ÔÓÚARM Linuxϵͳ¶øÑÔ£¬Çý¶¯³ÌÐòµÄ¿ª·¢ºÍ±àÒë¸üÊÇÖÁ¹ØÖØÒª
²»Í¬ÓÚͨÓüÆËã»ú£¬Ç¶ÈëʽÉ豸ÍùÍùÓµÓжÀÌØµÄÓ²¼þÅäÖã¬ÈçÌØ¶¨µÄ´«¸ÐÆ÷¡¢Í¨ÐÅÄ£¿é¡¢ÏÔʾ½Ó¿ÚµÈ£¬ÕâЩ¶¼ÐèҪרÃŵÄÇý¶¯³ÌÐòÀ´Ö§³Ö
Òò´Ë£¬ÕÆÎÕÈçºÎÔÚARM Linux»·¾³Ï±àÒëÇý¶¯³ÌÐò£¬ÊÇÿһλǶÈëʽ¿ª·¢Õß±ØÐëÕÆÎյļ¼ÄÜ
¶þ¡¢×¼±¸¹¤×÷£º´î½¨±àÒë»·¾³ ÔÚÕýʽ¿ªÊ¼±àÒëARM LinuxÇý¶¯Ö®Ç°£¬È·±£ÄãÒѾ׼±¸ºÃÁËÒ»¸öºÏÊʵıàÒë»·¾³
Õâͨ³£°üÀ¨ÒÔϼ¸¸ö²½Ö裺 1.Ñ¡Ôñ²¢°²×°½»²æ±àÒ빤¾ßÁ´£º½»²æ±àÒëÊÇÖ¸ÔÚÒ»ÖÖÆ½Ì¨ÉϱàÒëÉú³ÉÄÜÔÚÁíÒ»ÖÖÆ½Ì¨ÉÏÔËÐеĴúÂë
¶ÔÓÚARM Linuxϵͳ£¬ÎÒÃÇÐèҪʹÓý»²æ±àÒ빤¾ßÁ´£¨Èçarm-linux-gcc£©À´Éú³ÉÊÊÓÃÓÚARM¼Ü¹¹µÄ¿ÉÖ´ÐÐÎļþºÍ¿âÎļþ
¸ù¾ÝÄãµÄÄ¿±êÉ豸ºÍ²Ù×÷ϵͳ°æ±¾£¬Ñ¡ÔñºÏÊʵĽ»²æ±àÒ빤¾ßÁ´²¢°²×°µ½ÄãµÄ¿ª·¢Ö÷»úÉÏ
2.»ñÈ¡ÄÚºËÔ´ÂëºÍÇý¶¯Ô´Â룺Çý¶¯³ÌÐòµÄ±àÒëͨ³£ÒÀÀµÓÚÄÚºËÔ´Âë
ÄãÐèÒª´ÓLinuxÄں˹ٷ½ÍøÕ¾»òÉè±¸ÖÆÔìÉÌ´¦»ñÈ¡ÓëÄãµÄÄ¿±êÉ豸ÏàÆ¥ÅäµÄÄÚºËÔ´Âë°ü
ͬʱ£¬È·±£ÄãÓµÓÐÐèÒª±àÒëµÄÇý¶¯Ô´Â룬Õâ¿ÉÄÜÀ´×ÔÉè±¸ÖÆÔìÉÌ¡¢¿ªÔ´ÉçÇø»ò¸öÈË¿ª·¢µÄÏîÄ¿
3.ÅäÖÃÄں˱àÒëÑ¡ÏÔÚ±àÒëÇý¶¯³ÌÐò֮ǰ£¬Í¨³£ÐèÒªÏÈÅäÖÃÄںˣ¬È·±£ÄÚºËÖ§³ÖÄãµÄÓ²¼þºÍËùÐèµÄÇý¶¯Ä£¿é
ʹÓÃ`make menuconfig`»ò`make xconfig`µÈÃüÁî½øÈëÄÚºËÅäÖýçÃæ£¬¸ù¾ÝÐèÒª½øÐÐÅäÖÃ
Èý¡¢±àÒëARM LinuxÇý¶¯£º²½ÖèÏê½â Ò»µ©×¼±¸¹¤×÷¾ÍÐ÷£¬½ÓÏÂÀ´¾Í¿ÉÒÔ¿ªÊ¼±àÒëARM LinuxÇý¶¯ÁË
ÒÔÏÂÊÇÏêϸµÄ²½Ö裺 1.ÉèÖñàÒë»·¾³±äÁ¿£ºÎªÁËÈ·±£½»²æ±àÒ빤¾ßÁ´±»ÕýÈ·µ÷Óã¬ÄãÐèÒªÉèÖÃһЩ»·¾³±äÁ¿£¬Èç`PATH`¡¢`ARCH`ºÍ`CROSS_COMPILE`
ÀýÈ磬Äã¿ÉÒÔÔÚÄãµÄshellÅäÖÃÎļþÖÐÌí¼ÓÈçÏÂÐУº bash export PATH=$PATH:/path/to/cross-compiler/bin export ARCH=arm exportCROSS_COMPILE=arm-linux- 2.½øÈëÄÚºËÔ´ÂëĿ¼£ºÇл»µ½ÄÚºËÔ´ÂëµÄ¸ùĿ¼£¬ÕâÊDZàÒë¹ý³ÌµÄÆðµã
3.¸´ÖÆ»òÁ´½ÓÇý¶¯Ô´Â룺Èç¹ûÄãµÄÇý¶¯Ô´Âë²»ÔÚÄÚºËÔ´ÂëÊ÷ÖУ¬ÄãÐèÒª½«Æä¸´ÖƵ½Êʵ±µÄÄÚºËÄ£¿éĿ¼ÖУ¬»òÕßͨ¹ý·ûºÅÁ´½ÓµÄ·½Ê½½«Æä¹ØÁªµ½ÄÚºËÔ´ÂëÊ÷ÖÐ
ͨ³££¬Çý¶¯Ô´Âë»á·ÅÔÚ`drivers/`Ŀ¼ÏµÄij¸ö×ÓĿ¼ÖÐ
4.ÅäÖÃÄÚºËÒÔ°üº¬ÐÂÇý¶¯£ºÔÙ´ÎÔËÐÐÄÚºËÅäÖù¤¾ß£¬È·±£ÄãµÄÐÂÇý¶¯±»Ñ¡ÖÐÒÔ°üº¬ÔÚÄں˹¹½¨ÖУ¬»òÕß×÷Ϊ¿É¼ÓÔØÄ£¿é½øÐбàÒë
5.±àÒëÄں˻òÄ£¿é£º¸ù¾ÝÄãµÄÐèÇó£¬Äã¿ÉÒÔÑ¡Ôñ±àÒëÕû¸öÄں˻òÕß½ö±àÒëËùÐèµÄÇý¶¯Ä£¿é
Èç¹ûÊǺóÕߣ¬¿ÉÒÔʹÓÃÈçÏÂÃüÁ bash make M=/path/to/driver/source modules ÕâÀ`M`²ÎÊýÖ¸¶¨ÁËÇý¶¯Ô´ÂëµÄ·¾¶
±àÒëÍê³Éºó£¬Äã»áÔÚÖ¸¶¨µÄÇý¶¯Ô´ÂëĿ¼ÏÂÕÒµ½Éú³ÉµÄ`.ko`Îļþ£¬ÕâÊÇLinuxÄÚºËÄ£¿éµÄ¶þ½øÖÆÎļþ
6.²¿ÊðºÍ¼ÓÔØÄ£¿é£º½«±àÒëºÃµÄÇý¶¯Ä£¿éÎļþ´«Êäµ½ÄãµÄARM LinuxÉ豸ÉÏ£¬Í¨³£¿ÉÒÔͨ¹ýSCP¡¢SFTPµÈÎļþ´«Ê乤¾ßʵÏÖ
ÔÚÄ¿±êÉ豸ÉÏ£¬Ê¹ÓÃ`insmod`ÃüÁî¼ÓÔØÇý¶¯Ä£¿é£º bash insmod /path/to/your_driver.ko Äã¿ÉÒÔʹÓÃ`lsmod`ÃüÁî²é¿´µ±Ç°¼ÓÔØµÄÄÚºËÄ£¿éÁÐ±í£¬ÒÔ¼°`dmesg`ÃüÁî²é¿´ÏµÍ³ÈÕÖ¾£¬È·ÈÏÇý¶¯ÊÇ·ñÕýÈ·¼ÓÔØ²¢³õʼ»¯
ËÄ¡¢µ÷ÊÔÓëÓÅ»¯£ºÈ·±£Çý¶¯Îȶ¨ÔËÐÐ Çý¶¯³ÌÐòµÄ±àÒëÖ»ÊǵÚÒ»²½£¬È·±£ÆäÔÚʵ¼ÊÔËÐÐÖÐÎȶ¨¸ßЧ²ÅÊǹؼü
ÒÔÏÂÊÇһЩµ÷ÊÔºÍÓÅ»¯µÄ½¨Ò飺 - ÈÕÖ¾¼Ç¼£º³ä·ÖÀûÓÃÄÚºËÈÕÖ¾¹¦ÄÜ£¬Í¨¹ý`printk`º¯ÊýÔÚÇý¶¯´úÂëÖÐÌí¼Óµ÷ÊÔÐÅÏ¢£¬°ïÖú¶¨Î»ÎÊÌâ
- ÐÔÄÜ¼à¿Ø£ºÊ¹Óù¤¾ßÈçtop¡¢vmstat¡¢`iostat`µÈ¼à¿ØÏµÍ³ÐÔÄÜ£¬·ÖÎöÇý¶¯¶Ôϵͳ×ÊÔ´µÄÓ°Ïì
- ´úÂëÉó²é£º¶¨ÆÚ½øÐдúÂëÉó²é£¬È·±£´úÂëÖÊÁ¿£¬¼õÉÙDZÔڵĴíÎóºÍ©¶´
- ÓÅ»¯Ëã·¨£ºÕë¶ÔÌØ¶¨Ó¦Óó¡¾°£¬ÓÅ»¯Çý¶¯ÖеÄËã·¨ºÍÊý¾Ý½á¹¹£¬Ìá¸ßЧÂʺÍÏìÓ¦ËÙ¶È
Îå¡¢½áÂÛ£º³ÖÐøÑ§Ï°Óë̽Ë÷ Ëæ×ż¼ÊõµÄ²»¶Ï½ø²½£¬ARM Linuxϵͳ¼°ÆäÇý¶¯³ÌÐòµÄ¿ª·¢Ò²ÔÚ²»¶ÏÑݽø
×÷ΪǶÈëʽ¿ª·¢Õߣ¬±£³Ö¶Ôм¼Êõ¡¢Ð¹¤¾ßµÄ¹Ø×¢ºÍѧϰÖÁ¹ØÖØÒª
ÎÞÂÛÊÇÕÆÎÕ×îеĽ»²æ±àÒë¼¼Êõ£¬»¹ÊÇÉîÈëÀí½âÓ²¼þÌØÐÔÓëLinuxÄں˻úÖÆ£¬¶¼½«ÓÐÖúÓÚÄã¸üºÃµØÓ¦¶ÔδÀ´µÄÌôÕ½£¬¿ª·¢³ö¸ü¼Ó¸ßЧ¡¢Îȶ¨¡¢°²È«µÄǶÈëʽϵͳ
±àÒëARM LinuxÇý¶¯ÊÇÒ»Ïî¼È³äÂúÌôÕ½ÓÖ¼«¾ß³É¾Í¸ÐµÄ¹¤×÷
ËüÒªÇ󿪷¢Õ߾߱¸ÔúʵµÄ±à³Ì»ù´¡¡¢ÉîÈëµÄÓ²¼þ֪ʶÒÔ¼°¶ÔLinuxÄں˵ÄÉî¿ÌÀí½â
µ«ÕýÊÇÕâЩҪÇó£¬Ê¹µÃÿһλ³É¹¦Íê³ÉÕâÒ»ÈÎÎñµÄ¿ª·¢Õß¶¼ÄܳÉΪǶÈëʽÁìÓòµÄٮٮÕß
Ï£Íû±¾ÎÄÄÜΪÄãÔÚÕâÌõ̽Ë÷֮·ÉÏÌṩһЩÓÐÓõÄÖ¸µ¼£¬ÖúÄãÔÚǶÈëʽ¿ª·¢µÄ¹ãÀ«ÌìµØÖÐÕ¹³á¸ß·É