一文了解如何制作rootfs?
8、 創建其他需要的目錄$ mkdir dev etc mnt proc var tmp sys root
9、 添加庫
我們安裝的交叉工具鏈中有我們所需要的可以在開發板上使用的庫, 將其拷貝到_install目錄下即可:
$ cp /home/linux/toolchain/gcc-4.6.4/arm-arm1176jzfssf-linux-gnueabi/lib/ . -a
修改文件權限并刪除靜態庫和共享庫文件中的符號表
$chmod +w lib
$chmod +w lib
$ rm lib.a
$ arm-none-linux-gnueabi-strip lib
刪除不需要的庫,確保所有庫大小不超過8M
$ du -mh lib/
10、 添加系統啟動文件
在etc下添加文件inittab,文件內容如下:
#this is run first except when booting in single-user mode.
::sysinit:/etc/init.d/rcS
# /bin/sh invocations on selected ttys
# start an "askfirst" shell on the console (whatever that may be)
::askfirst:-/bin/sh
# stuff to do when restarting the init process
::restart:/sbin/init
# stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
在etc下添加文件fstab,文件內容如下:
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
【注意】這里我們掛載的文件系統有三個proc、sysfs和tmpfs。在內核中proc和sysfs默認都支持,而tmpfs是沒有支持的,我們需要確保內核有tmpfs的支持。
修改內核配置:
$ make menuconfig
File systems --->
Pseudo filesystems --->
[*] Virtual memory file system support (former shm fs)
[*] Tmpfs POSIX Access Control Lists
重新編譯內核
在etc下創建init.d目錄,并在init.d下創建rcS文件,rcS文件內容為:
#!/bin/sh
# This is the first script called by init process
/bin/mount -a 掛載fstab制定的所有文件系統
echo /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -s
為rcS添加可執行權限:
$ chmod +x init.d/rcS
在etc下添加profile文件,文件內容為:
#!/bin/sh
export HOSTNAME=farsight
export USER=root
export HOME=root
export PS1="[$USER@$HOSTNAME W]# "
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
mknod dev/console c 5 1 該文件節點是必須的
重要:新制作的文件系統尺寸若超出8M,刪除不需要的庫文件,比如c++庫等。
11. 測試
制作完畢的根文件系統可以讓開發板啟動后通過nfs掛載到ubuntu中,
刪除原先的/source/rootfs$ sudo rm -rf /source/rootfs
將我們新建的根文件系統拷貝到/source/rootfs目錄下$sudo mkdir /source/rootfs
$ sudo cp _install /source/rootfs –a
設置uboot環境變量# setenv serverip 192.168.9.120
# setenv ipaddr 192.168.9.233
# setenv bootcmd tftp 41000000 uImage;tftp 42000000 exynos4412-fs4412.dtb;bootm 41000000 – 42000000
#setenv bootargs root=/dev/nfs nfsroot=192.168.9.120:/source/rootfs rw console=ttySAC2,115200 init=/linuxrc ip=192.168.9.233
# saveenv
重新啟動開發板,查看是否能夠正常掛載,功能是否正常

請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
- 1 AI狂歡遇上油價破百,全球股市還能漲多久? | 產聯看全球
- 2 OpenAI深夜王炸!ChatGPT Images 2.0實測:中文穩、細節炸,設計師慌了
- 3 6000億美元估值錨定:字節跳動的“去單一化”突圍與估值重構
- 4 Tesla AI5芯片最新進展總結
- 5 連夜測了一波DeepSeek-V4,我發現它可能只剩“審美”這個短板了
- 6 熱點丨AI“瑜亮之爭”:既生OpenClaw,何生Hermes?
- 7 AI界的殺豬盤:9秒刪庫跑路,全員被封號,還繼續扣錢!
- 8 2026,人形機器人只贏了面子
- 9 DeepSeek降價90%:價格屠夫不是身份,是戰略
- 10 AI Infra產業鏈卡在哪里了?


分享













