實際項目中可以使用Buildroot製作根文件系統
一、製作文件系統
1、下載busybox源碼 https://busybox.net/downloads/
2、解壓tar -xjf util-linux-2.23.1.tar.bz2
3、配置
export ARCH=arm
export CROSS_COMPILE=arm-none-eabi-
//export CROSS_COMPILE=arm-linux-gnueabihf-
make menuconfig
Busybox Settings--->
Build Options--->
[*]Build BusyBox as a static binary(no shared libs)
Busybox Library Tuning--->
[*]vi-style line editing commands
[*]Fancy shell prompts
Linux Module Utilities--->
[ ]Simplified modutils
[*]insmod
[*]rmmod
[*]lsmod
[*]modprobe
[*]depmod
Linux System Utilities--->[*]mdev
[*]Support /etc/mdev.conf
[*]Support subdirs/symlinks
[*]Support regular expressions substitutions when renaming dev
[*]Support command execution at device addition/removal
[*]Support loading of firmwares
4、編譯與安裝
make CROSS_COMPILE=arm-linux-gnueabi-
//make CROSS_COMPILE=arm-linux-gnueabihf-
make CROSS_COMPILE=arm-linux-gnueabi- install
//make CROSS_COMPILE=arm-linux-gnueabihf- install
mv _install nfs_root 通過網絡文件系統掛載到nfs_root
5.添加etc/inittab,內容如下:
# /etc/inittab
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::restart:/sbin/init
6.添加etc/init.d/rcS, 內容如下:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
mount -a
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/bin/hostname -F /etc/sysconfig/HOSTNAME
ifconfig eth0 192.168.1.106
7.創建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
var /dev tmpfs defaults 0 0
ramfs /dev ramfs defaults 0 0
8.創建/etc/sysconfig/HOSTNAME文件,裏面填爲Lonnox
9.創建/etc/profile
# Ash profile
# vim: syntax=sh
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]\# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH
10.在根目錄中創建proc sys var dev lib tmp文件夾
11.拷貝動態庫:cp -a /usr/arm-linux-gnueabi/lib/*.so* ~/work/imx6/nfs_root/lib
附件3:製作ext2格式的鏡像並燒錄啓動
(1)執行下述命令
dd if=/dev/zero of=rootfs.ext2 bs=1024 count=10240
losetup /dev/loop1 rootfs.ext2
mke2fs -m 0 /dev/loop1 10240
mount -t ext2 /dev/loop1 ./ext2_rootfs/
(2)向./rootfs中複製內容,用cp ../rootfs/* ./ -rf
(3)umount /dev/loop1
losetup -d /dev/loop1
(4)完成後得到的rootfs.ext2就是我們做好的rootfs鏡像。拿去燒錄即可。