jffs2根文件系統製作(三)

在此列出在製作根文件系統時遇到的問題和解決方法,還有一些來自網上的問題和相應的解決方法

1、

Warning: unable to open an initial console. 到這裏停止,不能進控制檯,修改如下:

[root@qljt1 jffs2]# cd /jffs2/rootfs/dev/

[root@qljt1 dev]# mknod -m 660 console c 5 1

[root@qljt1 dev]# mknod -m 660 null c 3 0

[root@qljt1 dev]# cd /jffs2

重新生成 rootfs.jffs2 下載運行。

2、

啓動後,總是出現如下提示
can't open /dev/tty2: No such file or directory
can't open /dev/tty3: No such file or directory
can't open /dev/tty4: No such file or directory
在源碼路徑下 grep "can't open" * -r
最後發現在init/init.c文件中有問題

經過分析,原因在於如下3句,
694        new_init_action(ASKFIRST,bb_default_login_shell,VC_2);
695        new_init_action(ASKFIRST,bb_default_login_shell,VC_3);
696        new_init_action(ASKFIRST,bb_default_login_shell,VC_4);
這三句會啓動三個虛擬終端,可是在我的板上沒這個必要,所以註釋掉,重新編譯,製作文件系統
這樣問題就解決了

3、

在編譯busybox時報錯

修改networking/interface.c 818行改爲 .type = -1
這樣編譯就能通過

4、

mkfs.jffs2 -n -s 2048 -e 128KiB --pad=0x800000 -d root_fs -o kevin.jffs2

參數註釋:

 -s 頁大小,試驗可以不特別要求,512亦可

 -e 擦除塊大小,需和手冊相匹配,此處爲128(由手冊可知),1 Block = (2K + 64)B + 64 Pages

  = (128K + 4K)bytes

 此處如果設置過大(如 256),將出現jffs2_scan_eraseblock():Magic bitmask......問題

 如果設置過小(如 64),將出現Empth flash at .......問題

 --pad 設置生成文件大小,其實此處也不算是設置,因爲此選項是填充的意思,當生成文件比參數規定大小大時,

 此選項不起作用只有當生成文件小於規定大小纔會進行填充,如果生成的文件大小不規範,很可能將內存

 髒數據填充到文件系統剩餘頁部分,如果將髒數據寫入,將會產生上述標題上兩種問題........


5、

運行文件系統後一直出現can't open /dev/tty2: No such file or directory
將etc下的inittab文件中tty2::askfirst:-bin/sh這行刪去,因爲我的dev目錄下沒有tty2這個設備文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章