1幎åã圌ã¯ãšã¬ã¯ãããã¯ã¹äŒæ¥åãã®çµã¿èŸŒã¿ã³ã³ãã¥ãŒã¿ãŒãéçºãããšããéåžžã«èå³æ·±ãä»äºãããŸããã ãã®ã³ã³ãã¥ãŒã¿ãŒã¯ãåºæ¬çã«èå³æ·±ããã®ã§ã¯ãããŸããã§ããããµãGHzåšæ³¢æ°ã§åäœããCortex A-8ããã»ããµãŒã512Mb DDR3ã1Gb NANDã軜éLinuxã¢ã»ã³ããªãŒã§ãã ããããã³ã³ãã¥ãŒã¿ãŒãçµã¿èŸŒãŸããããã€ã¹ããããã£ãŠèªåèªèº«ã¯ãããªãå³ããæ¡ä»¶ã§åäœããå¿
èŠããããŸããã åºã枩床ç¯å²ïŒ-40ãã+85âïŒãè湿æ§ãé»ç£æŸå°ç·ãžã®èæ§ãé»åçšãããã«ããã«ã¹ã4 kVã®éé»æ°ã«å¯Ÿããä¿è·ãããã³ç¹æ®ãªæ©åšã®ããŸããŸãªç¶æ
æšæºä»æ§ã§è©³ãã説æãããŠããå€ãã®èå³æ·±ããã®-ããããã¹ãŠã§ã圌ã 顧客ã®äž»ãªèŠä»¶ã®1ã€ã¯ãå°ãªããšã10幎éã®é害ã«å¯Ÿããéçºæéã§ãã åæã«ãã¡ãŒã«ãŒã¯è£œåã®ä¿èšŒä¿®çã5幎éæäŸããŠããããã質åã¯ä¿®èŸçã§ã¯ãªããééçã§æ·±å»ã§ãã 察å¿ããå
çŽ ããŒã¹ã補åã«é
眮ãããŸããã ããã€ã¹ã¯åèªããã£ãŠãã¹ãã«åæ Œããå¿
èŠãªèšŒææžãåãåããŸããããäŒè©±ã¯ããã«ã€ããŠã§ã¯ãããŸããã åé¡ã¯ã€ã³ã¹ããŒã«ããããäœæããããšãã«å§ãŸããããã€ã¹ã¯éšéã«åæ£ããã¢ããªã±ãŒã·ã§ã³ãœãããŠã§ã¢ãäœæããããã«å±ãèšèšããŸããã è¿åã¯ãäœããããŒããããŠããŸããããšããæèšã§è¡ãããŸããã
倱æã§ãã
æ€æ»äžã«ã100ïŒ
ã®é害ãçºçããå Žåããã¡ã€ã«ã·ã¹ãã ïŒrootfsïŒãå«ãNANDããŒãã£ã·ã§ã³ãç Žæããä»ã®ãã¹ãŠã®ããŒãã£ã·ã§ã³ã¯ç¡å·ã§ãããŠã³ããããæ£åžžã«èªã¿åãããããšãå€æããŸããã ç®æè
ã®èª¿æ»ã§ã¯ãããŒãç·æ¥é»æºãªãåŸã«ããã€ã¹ãèµ·åãæåŠããããšã瀺ãããŸããã ç 究ã®æ¹åæ§ã¯æ確ã§ãã ãã¡ã€ã«ã·ã¹ãã ã®é害ã¯ãã¡ãã£ã¢ãžã®èšé²äžã«é»æºãåããšçºçããå¯èœæ§ããããŸãã ãã¹ããã³ããæ§ç¯ããŠããŸãããã®ã¿ã¹ã¯ã¯ãããã€ã¹ã«é»æºãäŸçµŠããLinuxãèµ·åããŠãã¹ãã¹ã¯ãªãããå®è¡ãïŒãã¡ã€ã«ãçæããFlashã«æžã蟌ãïŒãé»æºãåãããšã§ãã ãããŠåã§ã åèšã§ããµã€ã¯ã«ã¯1å匷ç¶ããŸããã ããã€ãã®ããã€ã¹ããã¹ãããŸããã å¹³åããŠã2000åã®å埩ã®åŸãåããã€ã¹ã¯èµ·åãæåŠããrootfsããŒãã£ã·ã§ã³ãã¯ã©ãã·ã¥ããŸããïŒ èŠã€ãã£ãããã§ãã
èä¹
æ§ãšä¿¡é Œæ§ã®çç±ãããåœç€Ÿã®ããã€ã¹ã¯ROMãšããŠSLC NANDã䜿çšããŠããŸãã eMMCïŒåã蟌ã¿ãã«ãã¡ãã£ã¢ã¡ã¢ãªã«ãŒãïŒã®ãªãã·ã§ã³ã¯ãæžãæããµã€ã¯ã«ãå°ãªããããããã«æåŠãããŸããã ä»æ¥ãeMMCã¯ç£æ¥çšã¢ããªã±ãŒã·ã§ã³ã®æšæºã§ã¯ãããŸããããããããã®çç±ããã-40°Cã®åäœæž©åºŠç¯å²ã®äžéãæã€ãã®ãããªè¶
å°ååè·¯ã®æäŸã¯ã»ãšãã©ãããŸããã ç£æ¥çšã·ã¹ãã ã§ã®äœ¿çšã«é¢ããäž»ãªå¶éã¯ãããŒã¿ã¹ãã¬ãŒãžã®çãä¿èšŒæéã§ãã SLC NANDã®å Žåãããã¯çŽ10幎ã§ãããeMMCã®å Žåã¯çŽ1幎ã§ãã
ç©çã¡ãã£ã¢ïŒFTL-Flash Translation LayerïŒãšã®ãœãããŠã§ã¢ã¬ãã«ã®çžäºäœçšãã¡ã¢ãªã«çµ±åãããã³ã³ãããŒã©ãŒã«ãã£ãŠå®è£
ãããeMMCïŒãŸãã¯éåžžã®SDãSecure Digitalãã«ãŒãïŒã«åºã¥ããœãªã¥ãŒã·ã§ã³ãšã¯å¯Ÿç
§çã«ãFTLã¯äžå€®ããã»ããµã䜿çšããŠå®è£
ããå¿
èŠããããŸãã å®è£
ã®è€éããå¢ããŠããã«ãããããããããã¯æçµã·ã¹ãã ã®æ§æã®æè»æ§ã«æ確ãªå©ç¹ããããããŸãããŸããç©çã¡ã¢ãªã»ã«ã®æ¶èãå¹³æºåããç¹å¥ãªã¢ã«ãŽãªãºã ã䜿çšã§ãããããã¡ãã£ã¢ã®èä¹
æ§ãåäžããŸãã ïŒå®éããŠã§ã¢ã¬ããªã³ã°ã¢ã«ãŽãªãºã ã¯eMMCã«çµã¿èŸŒãŸããFTLã¬ãã«ã«ãå®è£
ãããŠããŸãããããã¯ããã©ãã¯ããã¯ã¹ãã§ãïŒã
Linuxãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãå€ãã®ãã¡ã€ã«ã·ã¹ãã ã䜿çšããŠç©çNANDã¡ãã£ã¢ãæäœããŸã
ãJFFS2ãšãã®é²åçéçº
-UBI / UBIFS ïŒããã¯Nokiaã«æè¬ããŸãïŒãããã³ç«¶åä»ç€Ÿ
-LogFSã§ãã ãã©ã¡ãŒã¿ãŒã®ã»ããã«ããã°ãUBI / UBIFSãã³ãã«ãåªå
ãããŸããã UBI / UBIFSã¯2ã€ã®ãœãããŠã§ã¢ã¬ã€ã€ãŒã§ããUBIïŒUnsorted Block ImagesïŒ-ç©çã¡ãã£ã¢ã§çŽæ¥äœæ¥ãæäŸããUBIFSïŒUBI File SystemïŒ-å®éã«ã¯ãã¡ã€ã«ã·ã¹ãã ãã®ãã®ã§ãã
UBIã®äž»ãªæ©èœïŒ
- ããŒãã£ã·ã§ã³ãæäœããããŒãã£ã·ã§ã³ãäœæãåé€ããŸãã¯ãµã€ãºå€æŽã§ããŸãã
- åªäœã®ããªã¥ãŒã å
šäœã§èšé²ã®ã¢ã©ã€ã¡ã³ããæäŸããŸãã
äžè¯ãããã¯ã§åäœããŸãã - ç·æ¥åé»ããã®ä»ã®é害ãçºçããå Žåã®ããŒã¿æ倱ã®å¯èœæ§ãæå°éã«æããŸãã
UBIFSã¯ããšããããžã£ãŒããªã³ã°ã«åãçµãã§ããŸãã
äžè¬ã«ãUBIããã³UBIFSã¯ãç¹å®ã®æ¡ä»¶äžã§ã®ããã€ã¹ã®åäœäžã«ãç·æ¥ã·ã£ããããŠã³ïŒèšãæãããšãé»æºãªãïŒåŸã®ç·Žç¿ã§ç€ºãããŠããããã«ãåé»ã«å¯Ÿããèæ§ã®èŠä»¶ãèæ
®ããŠéçºããããšããäºå®ã«ãããããããã»ã¯ã·ã§ã³ãç ŽæããŠããŸãã ãããrootfsãæã€ããŒãã£ã·ã§ã³ã®å Žåãããã€ã¹ã¯äžè¬ã«æ©èœã倱ããŸãã ãã®ã€ãã³ãã®å¯èœæ§ã¯ããã»ã©é«ããããŸãããããã€ã¹ã¯æ°ãæéãŸãã¯æ°å¹Žã«ããã£ãŠå®å®ããŠåäœããåäžã®é»æºé害ãããŸãä¹ãåãããšãã§ããŸãã ãã ããããã€ã¹ãã¢ã¯ã»ã¹ã§ããªãå Žæã§åäœããããã«èšèšãããŠããå Žåããã®èŠå ãç¡èŠããããšã¯ã§ããŸãããã¢ã¯ã»ã¹ãå¶éãããŠããå ŽåããŸãã¯ãã®é害ãèŽåœçãªçµæãæãå¯èœæ§ããããŸãã
倱æã®çç±ã¯ãNANDã®ç©çæ§é ã§ãã ããŒã¿ã®èšé²ã¯ããŒãžããšã«è¡ãããŸããæåã«ãããŒãžãæ¶å»ããå¿
èŠããããŸãããã¹ãŠã®ãŠãããããšãªã¢ã«æžã蟌ãŸããŸãã æ¶å»ã¯ãããã¯åäœã§è¡ããããã®ãããªãããã¯ã¯PEBïŒç©çæ¶å»ãããã¯ïŒãšåŒã°ããŸãã ããŒãžãæ¶å»ããã«ã¯ããããã¯å
šäœãæ¶å»ããå¿
èŠããããŸãã 1ã€ã®ãããã¯ã«ã¯ã4KBããŒãžã256Kãããã¯ãªã©ãå€ãã®ããŒãžãå«ããããšãã§ããŸãã UBI / UBIFSã®éçºè
ã¯ãã®åé¡ãèªèããŠããããããããã®ã®ãããããäžå®å®ãããããéé£ããŠããŸãã ãããã¯ãã¡ãã£ã¢ããã®ããŒã¿ã倱ãããå¯èœæ§ããã4ã€ã®äž»ãªã€ãã³ãã瀺ããŸãã
NANDã®ã¯ã©ãã·ã¥ãšæ
å ±ã®æ倱ã®åå - ã¡ã¢ãªããŒãžã§ã®äœæ¥ãå®äºããåã«ãé»æºããªãã«ãªããŸããã ãªããŒãåŸãããŒãžã¯æ£ããèªã¿åãããå ŽåããããŸãããå床èªã¿åããšãECCãšã©ãŒã衚瀺ãããå ŽåããããŸãã ããã¯ãæ£ããèªã¿åãããæ£ããèªã¿åããªãäžå®å®ãªããããå€æ°ããããã§ãã
- NANDããŒãžã§ã®äœæ¥ãéå§ãããšãé»æºãåããŸãã ãªããŒãåŸãããŒãžãæ£ããèªã¿åãããšãã§ããŸãããã¹ãŠã®ãŠããããã«ãŠã³ããããŸãïŒ0xFFïŒãããªããŒãåŸããã®é åãããŒãã®ã¿ãã«ãŠã³ããããå ŽåããããŸãã ãŸããåŸã§ãã®ããŒãžãæžãæãããšãECCãšã©ãŒãçºçããå ŽåããããŸãã çç±ã¯ãã¯ãäžå®å®ãªãããã§ãã
- ãŠãããã®æ¶å»äžã«é»æºããªãã«ããŸãã åèµ·ååŸãåã³ãäžå®å®ãªãããã衚瀺ããããããã¯å
ã®ããŒã¿ãç Žæããå¯èœæ§ããããŸãã
- ãããã¯ã¯ãªãŒãã³ã°æäœãéå§ããããšãé»æºããªãã«ãªããŸãã ãŸããåèµ·ååŸããããã¯ã«ã¯äžå®å®ãªããããå«ãŸããŠããŸããèªã¿åãæã«ãŒããè¿ãããããã«æ
å ±ãæžã蟌ãããšãããšããŒã¿ãç ŽæããŸãã
ãã¹ãŠã®å Žåã«ãããŠãç·æ¥é»æºãªãåŸãã¡ã¢ãªé åã¯æ£ããèªã¿åããããããã®ã³ã°ã·ã¹ãã ã¯ãã£ãããèªèããŸããã ãã ãããã®é åãžã®ãã®åŸã®ã¢ã¯ã»ã¹ã«ãããããŒã¿ãç Žæããå¯èœæ§ããããŸãã ãã®ãããªãäžå®å®ãªããããã®æ°ã¯ãECCã¢ã«ãŽãªãºã ã調æŽã§ããæ°ãããå€ãå ŽåããããŸãã ãããã£ãŠã以åã«èªã¿åã£ãããŒãžãèªã¿åããªããªãããŸãã¯ãã®éã®å Žåã以åã«èªã¿åããªãã£ãããŒãžãçªç¶èªã¿åãå¯èœã«ãªããŸãã çµ±èšçã«ã¯ããã®NANDãšãªã¢ã¯ã»ãšãã©ã®å Žåå€æŽãããããããã¡ã€ã«ã·ã¹ãã ãã°ã«äžå®å®ãªããããçºçããå¯èœæ§ããããšããäºå®ã«ãã£ãŠãåé¡ã¯ããã«æªåããŸãã
ã·ã¹ãã ãä¿åãã
ãã¡ã€ã«ã·ã¹ãã ã®åç¶å¯èœæ§ãé«ããããã«ãã«ãŒããã¡ã€ã«ã·ã¹ãã ïŒCFSïŒã®ã¢ãŒããã¯ãã£ã«åé·æ§ãå°å
¥ããããšã«ããŸããã ããã¯ãã¡ãã£ã¢äžã®2ã€ã®ç©çããŒãã£ã·ã§ã³ãããä»®æ³ãããŒãã£ã·ã§ã³ãäœæãããšããèãæ¹ã§ãã 1ã€ã®ã»ã¯ã·ã§ã³ã«ã¯èªã¿åãå°çšã®rootfsã€ã¡ãŒãžãå«ãŸããŠããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®å®è¡äžããã¹ãŠã®å€æŽã¯2çªç®ã®ã»ã¯ã·ã§ã³ã«èšé²ãããèªã¿åããšæžã蟌ã¿ãè¡ãããŸãã é²é³ã¯2çªç®ã®ã»ã¯ã·ã§ã³ã§ã®ã¿è¡ããããããéåžžæã®é»æºãªãæã«ã¯æå·ããå¯èœæ§ããããŸãã 2çªç®ã®ã»ã¯ã·ã§ã³ã¯å
ã®ãŸãŸã§ãã ãã®æè¡ã¯ãã«ã¹ã±ãŒãçµ±åããŠã³ããšããŠç¥ãããŠããŸãã
ããã«ãã·ã¹ãã ãœãããŠã§ã¢ïŒrootfsãæå³ããã«ãŒãã«ã¯ããšããšå¥ã®èªã¿åãå°çšããŒãã£ã·ã§ã³ã«ãããŸããïŒãšã¢ããªã±ãŒã·ã§ã³ãœãããŠã§ã¢ãç°ãªãç©çããŒãã£ã·ã§ã³ã«é
åžããããšã«ããŸããã ããã€ã¹ã®ä»æ§ã«ããïŒå€§èŠæš¡ãªããŒã¿ããŒã¹ã§åäœããŸãïŒãããã¯ã¢ããçšã®ã»ã¯ã·ã§ã³ãå²ãåœãŠãããŠããŸãã ãã®å Žæã§ãããã€ã¹ã«ååãªã¡ã¢ãªã確ä¿ãããããšãå¬ããæããŸãïŒ1 GiBïŒã
aufsè£å©ãã¡ã€ã«ã·ã¹ãã ã¯ãã«ã¹ã±ãŒãçµ±åããŒãã£ã·ã§ã³ã®ããŠã³ãã«äœ¿çšãããŸãã äžèšã®ããã«ã2ã€ã®ç©çã»ã¯ã·ã§ã³ã®çµåããããŸãã äœæ¥äžã®CFSã®ã€ã¡ãŒãžãæåã«æžã蟌ãŸããæåã®ã»ã¯ã·ã§ã³ã¯èªã¿åãå°çšïŒRO-èªã¿åãå°çšïŒãæåã¯ç©ºã®2çªç®ã®ã»ã¯ã·ã§ã³ã¯ããããå€æŽãä¿åãã圹å²ãæãããèªã¿åããšæžã蟌ã¿ã®äž¡æ¹ã§äœ¿çšã§ããŸãïŒRW-èªã¿åãæžã蟌ã¿ïŒ aufã«é¢ããŠã¯ãæåãš2çªç®ã®ã»ã¯ã·ã§ã³ã¯ãã©ã³ããšåŒã°ããŸãã ãã©ã³ãã®ããŒãžã¯ãããŠã³ãããã»ã¹äžã«çºçããŸãã ãã®çµæããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãããŠã³ããããé åå
šäœãèªèããŸãã ããŒã¿ã¢ã¯ã»ã¹ã¯ãã«ãŒãã«ãã©ã€ããŒã«ãã£ãŠæäŸãããŸãã ãã©ã€ããŒã¯ãŸãããã¡ã€ã«ãèªã¿åãèŠæ±ãRWãã©ã³ãã«éä¿¡ããŸãã ããŒã¿ãããå Žåã¯çºè¡ãããããŒã¿ããªãå Žåã¯ãã¡ã€ã«ãROãã©ã³ãããèªã¿åãããŸãã æžã蟌ã¿æã«ãããŒã¿ã¯RWãã©ã³ãã«åé¡ãããŸãã ãã¡ã€ã«ãåé€ããããšããã®ãã¡ã€ã«ãåé€ããããšããã©ãã«ãRWãã©ã³ãã«è¿œå ãããŸãïŒååã«ç¹å®ã®ãã¬ãã£ãã¯ã¹ãæã€å¯Ÿå¿ãã空ã®é ããã¡ã€ã«ãäœæãããŸãïŒã ç©ççã«ããã¡ã€ã«ã¯æŽæ°ãšããŠROãã©ã³ãã«æ®ããŸãã ãã®ã¢ãããŒãã«ãããéèŠãªæ
å ±ã»ã¯ã·ã§ã³ã§ã®æžã蟌ã¿æäœãåé¿ãããŸãã ããã«ãROãã©ã³ãã¯èªã¿åãå°çšã§ãããããååãšããŠè¿œå ã®ããŒã¿æŽåæ§å¶åŸ¡ãè¿œå ã§ããŸãã UBIFSã䜿çšããŠãããå®è£
ããäœæãããããŒãã£ã·ã§ã³ãéçã«ããããšãã§ããŸãã éçã»ã¯ã·ã§ã³ã¯èªã¿åãå°çšã§ãããã«ããããŒã¿ã¯ãã§ãã¯ãµã ïŒCRC-32ïŒã§ä¿è·ãããŠããŸãã
å
šäœãšããŠãCFSã®ãã®ãããªã¢ãŒããã¯ãã£ãååŸããããšèããŠããŸãã
ãrootfs_ãã»ã¯ã·ã§ã³ã«ã¯ãLinuxãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æäœæ§ãä¿èšŒããCFSã®ã·ã¹ãã éšåãå«ãŸããŸãããdata_ãã»ã¯ã·ã§ã³ã¯ãã¢ããªã±ãŒã·ã§ã³ãœãããŠã§ã¢ãèšå®ãã¡ã€ã«ãããã³ããŒã¿ããŒã¹ãä¿åããããã®ãã®ã§ãã ãããã¯ã¢ãããã»ã¯ã·ã§ã³ã¯ãçŸåšã®ã·ã¹ãã èšå®ãšããŒã¿ããŒã¹ãå®æçã«ããã¯ã¢ããããããšãç®çãšããŠããŸãã åé·æ§ã¯ã¢ããªã±ãŒã·ã§ã³ãœãããŠã§ã¢ã«ãã£ãŠæäŸãããŸãã
ãã€ã¯
çŸæç¹ã§ã¯ãaufsã¯Linuxã«ãŒãã«ã®ã¡ã€ã³ãã©ã³ãã«å«ãŸããŠããªãããããã¯ãããžã䜿çšããããã®ãŠãŒãã£ãªãã£ã«å ããŠãã«ãŒãã«ãœãŒã¹ã«åå¥ã«ããããé©çšããå¿
èŠããããŸãã Linuxã¿ãŒã²ãããã©ãããã©ãŒã ã«aufsãã¯ãããžãŒãå±éããã«ã¯ã次ã®ãã®ãå¿
èŠã§ãã
- ã«ãŒãã«ã«ããããé©çšããŸãã ãã¹ãŠã®ããããšããŠããŒã¯ããããžã§ã¯ãã®Webãµã€ãã§èŠã€ããããšãã§ããŸãã
- ã³ã¢ã§ãaufsãæå¹ã«ããŸãã
- ã³ã¢ãçµã¿ç«ãŠãŸãã
- aufsãæäœããããã®ãã«ããŠãŒãã£ãªãã£ã
- ã«ãŒãã«ãšãŠãŒãã£ãªãã£ãã¿ãŒã²ããã«è»¢éããŸãã
以äžãå®è¡ããããšã«ãããã¿ãŒã²ããã§ãã¯ãããžãŒããã¹ãã§ããŸãã
mount -t aufs -o br=/tmp/rw=rw:${HOME}=ro none /tmp/aufs
ã³ãã³ã圢åŒããŠã³ã[-fnrsvw] [-t FS_type] [-oãªãã·ã§ã³]ããã€ã¹ãã£ã¬ã¯ããª
moun -t aufs -o br = / tmp / rwïŒ$ {HOME}ãªã/ tmp / aufs
ãã®çµæãããŒã ãã£ã¬ã¯ããªã®å
容ã¯/ tmp / aufsã«ãããããã«æžã蟌ãã§ãã¡ã€ã«ãåé€ã§ããŸãã$ {HOME}ã®å
容ã¯å€æŽãããŸããã
ãããïŒ aufsãæ¥ç¶ãããŸãããçŸåšæãèå³æ·±ãã®ã¯ãã·ã¹ãã ãããããèµ·åããæ¹æ³ã§ããïŒ ããã©ã«ãã§ã¯ãããŒãæã«ãcmdlineãä»ããŠrootfsããaufsãžã®ããŒãã£ã·ã§ã³ãæå®ã§ããŸããã ã«ãŒãã«ã®éå§æç¹ã§ã¯ããã®ãããªã»ã¯ã·ã§ã³ã¯ãŸã ååšããããŸã äœæãããŠããŸããã ããã¯ãã·ã¹ãã ã®èµ·åæã«ãåæåããã»ã¹ïŒPID = 0ã®ããã»ã¹ãç§ã®å Žåã¯systemdïŒãéå§ããåã«ãè£å©ã»ã¯ã·ã§ã³aufsãããŠã³ãããchrootããŠããã®run / sbin / initã®åŸã«ã®ã¿å®è¡ããå¿
èŠãããããšãæå³ããŸãã ãã®ãããªã¿ã¹ã¯ã«ã¯ãäºåçãªåæåã¡ã«ããºã ããããŸãã
cmdline㧠ãã¹ã¯ãªãããžã®ãã¹
ãæå®ããŸããããã¯ãåæåããŒã¢ã³ã®éå§åã«è§£æ±ºããå¿
èŠããããŸãã ã³ãã³ãã©ã€ã³ã§ãã©ã¡ãŒã¿ãŒãè¿œå ããŸãã
init=/sbin/preinit
ã¹ã¯ãªããã¯
ã·ã§ã«ã«æžã蟌ãŸãããããå®è¡æã«ã¯ãã·ã¹ãã ã«å¿
èŠãªãã¹ãŠã®ãŠãŒãã£ãªãã£ããã§ã«åãã£ãŠããã¯ãã§ãã ã€ãŸããå®éã«ã¯ãã¹ã¯ãªãããå®è¡ããã«ã¯ãrootfsããŒãã£ã·ã§ã³ãæ¢ã«ããŠã³ããããŠããå¿
èŠããããŸãïŒ ãããã®ç®çã®ããã«ãRAMãã£ã¹ã¯ã§rootfsã䜿çšããããrootfsã䜿çšããŠããã«ããŒãã£ã·ã§ã³ããæåã«èµ·åã§ããŸãããèªã¿åãå°çšã¢ãŒãã§ã¯ãããéžæã§ãã cmdlineãé©å®ç·šéãããã©ã¡ãŒã¿ãŒãè¿œå ããŸãïŒ9ã¯mtdã®ã»ã¯ã·ã§ã³çªå·ã§ãrootfs_roããããŸãïŒïŒ
root=ubi0:rootfs_ro ro ubi.mtd=9
Preinitã¹ã¯ãªãã
ã·ã¹ãã ããŒãã£ã·ã§ã³ãããŠã³ãããŸãïŒã·ã§ã«ãæ©èœããããã«å¿
èŠïŒïŒ
mount -t proc none /proc mount -t tmpfs tmpfs /tmp mount -t sysfs sys /sys
ãã§ã«rootfs_roã»ã¯ã·ã§ã³ãããŠã³ãããããããããŒãããrootfs_rwãäžæãã©ã«ããŒã«ããŠã³ãããŸãã
ubiattach -m 10 -d 1 > /dev/null mount -t ubifs ubi1:$rootfs_rw /tmp/aufs/rootfs_rw
ããŠã³ãããã»ã¹äžã«äœãåé¡ãçºçããå Žåã¯ãrootfs_rwã倧èã«ãã©ãŒãããããããã§ãåäœããªãå Žåã¯ãããŒãã£ã·ã§ã³ãåé€ããŠå床äœæããŸãã å床ããŠã³ããè©Šã¿ãŸãã ã³ãŒãã¯æäŸããŸããããNANDã¢ãŒããã¯ãã£ã§å®çŸ©ãããŠãããããžãã¯ãã³ããŒããå€ãããŸãã UBIãŠãŒãã£ãªãã£ã®ã»ãããå¿
èŠã ãšããèšããŸããã
çŸåšã®rootfsã®ããŠã³ããã€ã³ããäžæãã£ã¬ã¯ããªã«ã³ããŒããŸãã
mkdir -p /tmp/aufs/rootfs_ro mount --bind / /tmp/aufs/rootfs_ro
ããã±ãŒããæ¥çãã-aufsã»ã¯ã·ã§ã³ãããŠã³ãããŸãã
mount -t aufs -o br:/tmp/aufs/rootfs_rw :/tmp/aufs/rootfs_ro=ro none /aufs
ãã®åŸãrootfsãæã€æ°ããããŒãã£ã·ã§ã³ã/ aufsã§å©çšå¯èœã«ãªããŸãã
è³ãåŸããïŒrootfs_roãšrootfs_rwã®ããŠã³ããã€ã³ããæ°ããããŒãã£ã·ã§ã³ã«ç§»åããŸãã
mount --move /tmp/aufs/ rootfs_ro /aufs/aufs/ rootfs_ro mount --move /tmp/aufs/ rootfs_rw /aufs/aufs/ rootfs_rw
ãããŠåæã«/ devã転éããŸãïŒ
mount --move /dev /aufs/dev
ããŠã³ããã€ã³ãã転éããããã£ã¬ã¯ããªã¯ãäºåã«äœæããå¿
èŠãããããšã¯æããã§ãã
ã·ã¹ãã ããŒãã£ã·ã§ã³ããªãã«ããŸãã
umount -l /proc umount -l /tmp umount -l /sys
CFSãå€æŽããåæåãéå§ããŸãã
exec /usr/sbin/chroot /aufs /sbin/init
ããã«ã¹ã¯ãªããã§ã¯ãåãåçã«ããã/ applããã³ããŠã³ã/ããã¯ã¢ããã®ããã€ããåéããŸãã 次ã®å³ã¯ãæçµçãªCFSã®çµæã®ã¢ãŒããã¯ãã£ã瀺ããŠããŸãã
ä¿¡é Œæ§ãé«ããããã«ã/ backupã»ã¯ã·ã§ã³ã«ã¯ãããã¯ã¢ãããšãªã«ããªãæ
åœãã1ã€ã®ãŠãŒãã£ãªãã£ã®ã¿ã«æä»çã«ã¢ã¯ã»ã¹ã§ããŸãã ãŠãŒãã£ãªãã£èªäœã¯ãdata_roãã»ã¯ã·ã§ã³ã«ãããŸãã
ãããã«
ãã®çµæãç·æ¥åé»æã®ã·ã¹ãã å
šäœã®çåçãæ¥æ¿ã«å¢å ããŸããã ã«ã¹ã±ãŒãCFSããŠã³ããã¯ãããžãŒã®ã¢ããªã±ãŒã·ã§ã³ã¯NANDã®äŸã§ç€ºãããŠããŸããããã®åçã¯ããŒã¿ãã£ãªã¢ã®ç©çã¿ã€ãã«éå®ããããeMMCãSDãªã©ã«ç°¡åã«ç§»è¡ã§ããŸãã åäœäžã«ã·ã¹ãã ãããŒã¿ãèç©ãããç¹å®ã®ã¢ã«ãŽãªãºã ïŒéåžžã®ã«ãŒã¿ãŒãªã©ïŒã®ã¿ã䜿çšããå ŽåãaufsããŒãã£ã·ã§ã³ãããŠã³ããããšãã«RWãã©ã³ããšããŠRAMãã£ã¹ã¯ã䜿çšããããšããå§ãããŸãã
ãããŠãPSã®ä»£ããã«ã誰ããŸã ããã¯ã¢ããé»æºããã£ã³ã»ã«ããŠããŸããã