参考: http://www.cublog.cn/u3/104447/showart_2218502.html 以及友善mini2440手册.
照做基本没问题, 这里只写需要注意的地方.
(一)创建根目录
mkdir root dev etc boot tmp var sys proc lib mnt home不必解释,
mknod -m 600 dev/console c 5 1
mknod -m 600 dev/null c 1 3
解释如下:
mknod 用指定名称产生一个FIFO(命名管道),字符专用或块专用文件。
-m 600 :为新建立的文件设定模式,就象应用命令chmod一样
p :FIFO型
b :块文件
c :字符文件
(二)建立动态运行库
# cp -rfd /usr/local/arm/4.0.3/arm-linux/lib/* rootfs/lib/
拷贝经过交叉编译的库文件,参数-d,保持库文件的链接关系,这里使用友善提供的库文件。
(三)init.d/rcS 文件
其中的mount -a 是将读取etc/fstab文件,
还有要在rcS中加上配置IP的相关shell命令:
/sbin/ifconfig lo 127.0.0.1
ifconfig eth0 down
ifconfig eth0 hw ether $MAC
ifconfig eth0 $IP netmask $Mask up
route add default gw $Gateway
其他的就没什么了, 制作出映像可以直接烧写到flash里, 不过, 虽然能正常的ping, 但在/dev下找不到eth0设备?
re: 网络设备在/dev下没有节点文件。因为对网络接口的常用文件操作(read,write)是没有意义,因此在它们身上无法体现Linux的“一切都是文件”的思想。
linux设备常识:网络设备,并不通过fopen() libc库或者open() linux API访问,而是通过socket()来访问,
运行以下命令,可以看到所有的网络设备:
#ls -al /sys/class/net