Linux MTD¼¼Êõ¼ò½é
MTD(memory technology deviceÄÚ´æ¼¼ÊõÉ豸)ÊÇÓÃÓÚ·ÃÎÊmemoryÉ豸£¨ROM¡¢flash£©µÄLinuxµÄ×Óϵͳ¡£MTDµÄÖ÷ҪĿµÄÊÇΪÁËʹеÄmemoryÉ豸µÄÇý¶¯¸ü¼Ó¼òµ¥£¬Îª´ËËüÔÚÓ²¼þºÍÉϲãÖ®¼äÌṩÁËÒ»¸ö³éÏóµÄ½Ó¿Ú¡£MTDµÄËùÓÐÔ´´úÂëÔÚ/drivers/mtd×ÓĿ¼Ï¡£ÎÒ½«CFI½Ó¿ÚµÄMTDÉ豸·ÖΪËIJ㣨´ÓÉ豸½ÚµãÖ±µ½µ×²ãÓ²¼þÇý¶¯£©£¬ÕâËIJã´ÓÉϵ½ÏÂÒÀ´ÎÊÇ£ºÉ豸½Úµã¡¢MTDÉ豸²ã¡¢MTDÔʼÉ豸²ãºÍÓ²¼þÇý¶¯²ã¡£
MTD×Ö·ûÇý¶¯³ÌÐòÔÊÐíÖ±½Ó·ÃÎÊflashÆ÷¼þ£¬Í¨³£ÓÃÀ´ÔÚflashÆÚ¼äÉÏ´´½¨Îļþϵͳ£¬Ò²¿ÉÒÔÓÃÀ´Ö±½Ó·ÃÎʲ»Æµ·±Ð޸ĵÄÊý¾Ý¡£
MTD¿éÉ豸Çý¶¯³ÌÐò¿ÉÒÔÈÃflashÆ÷¼þαװ³É¿éÉ豸£¬Êµ¼ÊÉÏËüͨ¹ý°ÑÕû¿éµÄerase block·Åµ½ramÀïÃæ½øÐзÃÎÊ£¬È»ºóÔÙ¸üе½flash£¬Óû§¿ÉÒÔÔÚÕâ¸ö¿éÉ豸ÉÏ´´½¨Í¨³£µÄÎļþϵͳ¡£
Ò»¡¢FlashÓ²¼þÇý¶¯²ã
Ó²¼þÇý¶¯²ã¸ºÔðÔÚinitʱÇý¶¯FlashÓ²¼þ£¬Linux MTDÉ豸µÄNOR¡¡FlashоƬÇý¶¯×ñÑCFI½Ó¿Ú±ê×¼£¬ÆäÇý¶¯³ÌÐòλÓÚdrivers/mtd/chips×ÓĿ¼Ï¡£NANDÐÍFlashµÄÇý¶¯³ÌÐòÔòλÓÚ/drivers/mtd/nand×ÓĿ¼ÏÂ
¶þ¡¢MTDÔʼÉ豸
ÔʼÉ豸²ãÓÐÁ½²¿·Ö×é³É£¬Ò»²¿·ÖÊÇMTDÔʼÉ豸µÄͨÓôúÂ룬ÁíÒ»²¿·ÖÊǸ÷¸öÌض¨µÄFlashµÄÊý¾Ý£¬ÀýÈç·ÖÇø¡£
ÓÃÓÚÃèÊöMTDÔʼÉ豸µÄÊý¾Ý½á¹¹ÊÇmtd_info£¬ÕâÆäÖж¨ÒåÁË´óÁ¿¹ØÓÚMTDµÄÊý¾ÝºÍ²Ù×÷º¯Êý
struct mtd_info
{
u_char type; //ÄÚ´æ¼¼ÊõµÄÀàÐÍ
u_int32_t flags; //±ê־λ
u_int32_t size; //mtdÉ豸µÄ´óС
u_int32_t erasesize; //Ö÷ÒªµÄ²Á³ý¿é´óС£¨Í¬Ò»¸ö//mtdÉ豸¿ÉÄÜÓÐÊýÖÖ²»Í¬µÄerasesize£©
u_int32_t oobblock; // oob¿é´óС
u_int32_t oobsize; // oobÊý¾Ý´óС
u_int32_t ecctype; //eccÀàÐÍ
u_int32_t eccsize; //ecc¹¤×÷µÄ·¶Î§
…
}
ÓÃÓÚÃèÊöMTDÔʼÉ豸µÄÊý¾Ý½á¹¹ÊÇmtd_info£¬ÕâÆäÖж¨ÒåÁË´óÁ¿µÄ¹ØÓÚMTDµÄÊý¾ÝºÍ²Ù×÷º¯Êý¡£mtd_table£¨mtdcore.c£©ÔòÊÇËùÓÐMTDÔʼÉ豸µÄÁÐ±í£¬mtd_part£¨mtd_part.c£©ÊÇÓÃÓÚ±íʾMTDÔʼÉ豸·ÖÇøµÄ½á¹¹£¬ÆäÖаüº¬ÁËmtd_info£¬ÒòΪÿһ¸ö·ÖÇø¶¼ÊDZ»¿´³ÉÒ»¸öMTDÔʼÉ豸¼ÓÔÚmtd_tableÖеģ¬mtd_part.mtd_infoÖеĴ󲿷ÖÊý¾Ý¶¼´Ó¸Ã·ÖÇøµÄÖ÷·ÖÇømtd_part->masterÖлñµÃ¡£
ÔÚdrivers/mtd/maps/×ÓĿ¼Ï´æ·ÅµÄÊÇÌض¨µÄflashµÄÊý¾Ý£¬Ã¿Ò»¸öÎļþ¶¼ÃèÊöÁËÒ»¿é°å×ÓÉϵÄflash¡£ÆäÖе÷ÓÃadd_mtd_device()¡¢del_mtd_device()½¨Á¢/ɾ³ýmtd_info½á¹¹²¢½«Æä¼ÓÈë/ɾ³ýmtd_table£¨»òÕßµ÷ÓÃadd_mtd_partition()¡¢del_mtd_partition()£¨mtdpart.c£©½¨Á¢/ɾ³ýmtd_part½á¹¹²¢½«mtd_part.mt
Ïà¹ØÎĵµ£º
Ò»¡¢Óû§¹ÜÀí»ù´¡
ÔÚLinux»·¾³Ï¶ÔÓû§µÄ¹ÜÀíÓжàÖÖ·½Ê½£¬°üÀ¨Óñ༹¤¾ßVi¡¢emacsµÈ¶Ô/etc/passwd½øÐвÙ×÷»òÖ±½ÓʹÓÃ
addusr¡¢deleusrµÈÓû§¹ÜÀíÃüÁîÒÔ¼°Ê¹ÓÃpwconvÃüÁîʹ/etc/passwdÓëshadowÎļþ±£³ÖÒ»Ö¡£ÎÒÃÇÏÈÀ´¿´¿´LinuxÏÂÓÃ
»§¹ÜÀíµÄ³£ÓòÙ×÷¶¼×öÁËЩʲô°É¡£
1¡¢Ôö¼ÓÓû§
Ôö¼ÓÓû§ÓÐÈý¸ö¹ý³Ì:
(1) ÔÚ/etc ......
1.ÅäÍøÂç
<1># vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO×Ô¶¯Îªdhcp¾²Ì¬¸ÄΪstatic
¼´£ºBOOTPROTO=static
IPADDR=?
NETMASK=?
GATEWAY=?
ÎÒµÄÅäÖÃÈçÏ£º
DEVICE=eth0
BOOTPROTO=static
IPADDR=10.10.19.234s
NETMASK=255.255.254.0
GETEWAY=10.10.18.254
ONBOOT=yes
TYPE=Ethernet
×¢£ ......
¹¤×÷ÖÐÓõ½gdbÀ´·ÖÎö³ÌÐò±ÀÀ£Éú²úµÄcoreÎļþÎÊÌ⣺
ÕâÀï´ÓÍøÉϲéÀ´µÄÒ»¸öÃüÁîÓ÷¨£º
1,˵Ã÷:
ulimitÓÃÓÚshellÆô¶¯½ø³ÌËùÕ¼ÓõÄ×ÊÔ´.
2,Àà±ð:
shellÄÚ½¨ÃüÁî
3,Óï·¨¸ñʽ:
  ......
http://www.mcublog.com/more.asp?name=sharkdn&id=8810
=======================================
ºÃЩʱºò£¬ÎÒÃÇÐèÒªÒ»¸öÖ»ÒªÒ»ÕÅÈíÅ̾ÍÄÜÆô¶¯Linux µÄϵͳ£¬±ÈÈç˵×ö·ÓÉÆ÷¡£µ«ÊÇÎÒÃǸÃÔõÑù×öÄØ£¿ Ò²¾ÍÊÇ˵ÎÒÃÇÒª°ÑKernelºÍFileSystem¶¼×öÔÚÒ»ÕÅ3.5'µÄÅÌÉÏ¡£ÎÒÃÇÏÈ°ÑFileSystem ·Ö½â³ÉÈçϼ¸¸ö²¿·Ö°É¡£
¡¡¡¡1. /b ......