linuxÆô¶¯Ê±¹ÒÔØrootfsµÄ¼¸ÖÖ·½Ê½
[ת]linuxÆô¶¯Ê±¹ÒÔØrootfsµÄ¼¸ÖÖ·½Ê½
Ò»Ö±¶ÔlinuxÆô¶¯Ê±¹ÒÔØ¸ùÎļþϵͳµÄ¹ý³Ì´æÔÚןܶàÒÉÎÊ£¬½ñÌìÔÚˮľ¾«»ªÇøÕÒµ½ÁËÓÐÓõÄ×ÊÁÏ£¬ÕªÂ¼ÈçÏ£º
1¡£linuxÆô¶¯Ê±£¬¾¹ýһϵÁгõʼ»¯Ö®ºó£¬ÐèÒªmount ¸ùÎļþϵͳ£¬Îª×îºóÔËÐÐinit½ø³ÌµÈ×ö×¼±¸£¬mount
¸ùÎļþϵͳÓÐÕâô¼¸ÖÖ·½Ê½£º
1£©ÎļþϵͳÒѾ´æÔÚÓÚÓ²ÅÌ£¨»òÕßÀàËÆµÄÉ豸£©µÄij¸ö·ÖÇøÉÏÁË£¬kernel¸ù¾ÝÆô¶¯µÄÃüÁîÐвÎÊý£¨root£½/dev/xxx),Ö±½Ó½øÐÐmount¡£
ÕâÀïÓÐÒ»¸öÎÊÌ⣬ÔÚrootÎļþϵͳ±¾Éí»¹²»´æÔÚµÄÇé¿öÏ£¬kernelÈç
ºÎ¸ù¾Ý/dev/xxxÀ´ÕÒµ½¶ÔÓ¦µÄÉè±¸ÄØ£¿×¢Ò⣺¸ùÎļþϵͳºÍÆäËûÎļþϵͳµÄmount·½Ê½ÊDz»Ò»ÑùµÄ£¬kernelͨ¹ýÖ±½Ó½âÎöÉ豸µÄÃû³ÆÀ´»ñµÃÉ豸
µÄÖ÷¡¢´ÓÉ豸ºÅ£¬È»ºó¾Í¿ÉÒÔ·ÃÎʶÔÓ¦µÄÉ豸Çý¶¯
ÁË¡£ËùÒÔÔÚinit/main.cÖÐÓкܳ¤Ò»´®µÄroot_dev_names£¨Èç
hda,hdab,sda,sdb,nfs,ram,mtdblock……£©£¬Í¨¹ýÕâ¸ö±í¾Í¿ÉÒÔ¸ù¾ÝÉ豸Ãû³ÆµÃµ½É豸ºÅ¡£×¢Ò⣬bootloader»òÄÚ
ºËÖÐÉ趨µÄÆô¶¯²ÎÊý£¨root£½/dev/xxx)Ö»ÊÇÒ»¸ö´úºÅ£¬Êµ¼ÊµÄ¸ùÎļþϵͳÖв»Ò»¶¨´æÔÚÕâ¸öÉ豸Îļþ£¡
2£©´ÓÈíÇýµÈ±È½ÏÂýµÄÉ豸ÉÏ×°ÔØ¸ùÎļþϵͳ£¬Èç¹ûkernelÖ§³Öramdisk£¬ÔÚ×°ÔØrootÎļþϵͳʱ£¬ÄÚºËÅжϵ½ÐèÒª´ÓÈíÅÌ
£¨fdx£©mount(root=/dev/fd0)£¬¾Í»á×Ô¶¯°ÑÎļþϵͳӳÏó¸´ÖƵ½ramdisk£¬Ò»°ã¶ÔÓ¦É豸ram0£¬È»ºóÔÚram0ÉÏmount
¸ùÎļþϵͳ¡£ ´ÓÔ´Âë¿´£¬Èç¹ûkernel±àÒëʱûÓÐÖ§³Öramdisk£¬¶øÆô¶¯²ÎÊýÓÖÊÇroot=/dev/fd0,
ϵͳ½«Ö±½ÓÔÚÈíÅÌÉÏmount£¬³ýÁËËٶȱȽÏÂý£¬ÀíÂÛÉÏÊÇ¿ÉÐеģ¨Ã»ÊÔ¹ý£¬²»ÖªµÀÊDz»ÊÇÕâÑù£¿£©
3£©Æô¶¯Ê±Óõ½initrdÀ´mount¸ùÎļþϵͳ¡£×¢ÒâÀí½âramdiskºÍinitrdÕâÁ½¸ö¸ÅÄÆäʵramdiskÖ»ÊÇÔÚramÉÏʵÏֵĿéÉ豸£¬
ÀàËÆÓëÓ²Å̲Ù×÷£¬µ«Óиü¿ìµÄ¶ÁдËÙ¶È£¬Ëü¿ÉÒÔÔÚϵͳÔËÐеÄÈκÎʱºòʹÓ㬶ø²»½ö½öÊÇÓÃÓÚÆô¶¯£»initrd£¨boot
loader initialized RAM
disk£©¿ÉÒÔ˵ÊÇÆô¶¯¹ý³ÌÖÐÓõ½µÄÒ»ÖÖ»úÖÆ£¬¾ßÌåµÄʵÏÖ¹ý³ÌҲʹÓÃramdisk¼¼Êõ¡£¾ÍÊÇÔÚ×°ÔØlinux֮ǰ£¬bootloader¿ÉÒÔ°ÑÒ»¸ö±È½Ï
СµÄ¸ùÎļþϵͳµÄÓ³Ïó×°ÔØÔÚÄÚ´æµÄij¸öÖ¸¶¨Î»Ö㬹ÃÇÒ°ÑÕâ¶ÎÄÚ´æ³ÆÎªinitrd£¨ÕâÀïÊÇinitrdËùÕ¼µÄÄڴ棬²»ÊÇramdisk£¬×¢ÒâÇø±ð£©£¬È»ºó
bootloaderͨ¹ý´«µÝ²ÎÊýµÄ·½Ê½¸æËßÄÚºËinitrdµÄÆðʼµØÖ·ºÍ´óС£¨Ò²¿ÉÒÔ°ÑÕâЩ²ÎÊý±àÒëÔÚÄÚºËÖУ©£¬ÔÚÆô¶¯½×¶Î¾Í¿ÉÒÔÔÝʱµÄÓÃinitrd
À´mount¸ùÎļþϵͳ¡£initrdµÄ×î³õµÄÄ¿µÄÊÇΪÁ˰ÑkernelµÄÆô¶¯·Ö³ÉÁ½¸ö½×¶Î£ºÔÚkernelÖб£Áô×îÉÙ×î»ù±¾µÄÆô¶¯´úÂ룬Ȼºó°Ñ¶Ô¸÷ÖÖ¸÷
ÑùÓ²¼þÉè
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
ÔÚlinuxÖÐÓû§·ÖΪÁ½Àࣺ1¡¢root³¬¼¶Óû§ 2¡¢ÆÕͨÓû§
/bin
¡¡¡¡Òýµ¼Æô¶¯ËùÐèµÄÃüÁî»òÆÕͨÓû§¿ÉÄÜÓõÄÃüÁî(¿ÉÄÜÔÚÒýµ¼Æô¶¯ºó)¡£
¡¡¡¡/sbin
¡¡¡¡ÀàËÆ/bin £¬µ«²»¸øÆÕͨÓû§Ê¹Óã¬ËäÈ»Èç¹û±ØÒªÇÒÔÊÐíʱ¿ÉÒÔʹÓá£
¡¡¡¡/etc
¡¡¡¡Ìض¨µÄÅ ......
±¾³ÌÐò¿ÉÒÔ¶ÁÈ¡.wavÎļþ£¬È»ºó½øÐв¥·Å¡£
È·ÈÏ·½·¨£ºcat /etc/sndstat£¬Èç¹ûÏÔʾÎÞ´ËÉ豸£¬ÔòûÓа²×°Çý¶¯¡£
#include <unistd.h>#include <fcntl.h>#include <sys/types.h>#include <sys/ioctl.h>#include <stdlib.h>#include <stdio.h>#include&nbs ......
arch\arm\kernel\head.S
¸ÃÎļþĩβ°üº¬ÁËÓï¾ä£º#include "head-common.S"£¬__lookup_processor_typeº¯ÊýÔÚarch\arm\kernel\head-common.SÖж¨Òå¡£
¹Ø¼üÊý¾Ý½á¹¹£ºstruct proc_info_list£¬ÔÚarch\arm\include\asm\procinfo.hÎļþÖж¨Ò壬Cortex¶Ô´ËÊý¾Ý½á¹¹µÄÌî³äÔÚarch\arm\mm\proc-v7.sÎļþÖж¨Òå¡£
head.sÖУ¬kernelµ ......