微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM Linux根文件系统Root Filesystem的制作

ARM Linux根文件系统Root Filesystem的制作

时间:11-09 来源:互联网 点击:

klogd等命令。

# Startup the system
null::sysinit:/bin/mount -o remount,rw /
null::sysinit:/bin/mount -t proc proc /proc
null::sysinit:/bin/mount -a
null::sysinit:/bin/hostname -F /etc/hostname

# Now run any rc scripts
::sysinit:/etc/init.d/rcS

# Now invoke shell
::askfirst:/bin/ash

# Logging junk
null::sysinit:/bin/touch /var/log/messages
null::respawn:/sbin/syslogd -n -m 0
null::respawn:/sbin/klogd -n

# Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot

# Stuff to do before rebooting
null::shutdown:/usr/bin/killall klogd
null::shutdown:/usr/bin/killall syslogd
null::shutdown:/bin/umount -a -r
null::shutdown:/sbin/swapoff -a

好,把上面这些储存为inittab,启动系统。应该出现两个提示,没有/etc/fstab和/etc/init.d/rcS。目前我的理解/etc/fstab是用来执行mount -a命令的,里面是文件系统的挂载表。还是用我的fstab来说明。

#
/dev/root / ext2 rw,noauto 0 1
proc /proc proc defaults 0 0
devpts /dev/pts devpts defaults,gid=5,mode=620 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0

还有/etc/init.d/rcS,这在PC上是用来执行/etc/init.d下所有初始化脚本的一个脚本,,请原谅我不懂得怎么写这种脚本,对于嵌入式系统,根本不需要这么复杂,直接写在/etc/init.d/rcS里面了。还是用我的/etc/init.d/rcS来说明,其中启动udev的那些指令对于使用静态设备节点和devfs的系统不适用。

# Start udev
/bin/mount -t tmpfs tmpfs /dev
/sbin/udevd --daemon
/sbin/udevstart

# Configure net interface
/sbin/ifconfig lo 127.0.0.1 up
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
/sbin/ifconfig eth0 192.168.2.25 netmask 255.255.255.0
/sbin/route add default gw 192.168.2.1

如果用的是udev,还必须有udev的配置脚本。这个写起来有些麻烦,我们可以直接用udev自己带的那些脚本,位置在udev目录下的etc/udev/udev.conf和etc/udev/rules.d里面的文件。把这些放到根文件系统中去,etc/udev/udev.conf变为根文件系统的/etc/udev/udev.conf,etc/udev/rules.d里面的文件变为/etc/udev/rules.d里面的文件。

至此,一个可用的最简单文件系统就完成了。之后,可以使用mkcramfs、mkyaffs之类的工具制作文件映像,这我就不多说了。需要注意的是,cramfs文件系统是只读的,就算用的是initrd加载的cramfs也一样是只读的,这对根文件系统的/var目录有一定的影响。除了本文中说的办法,还可以用buildroot这个工具来建,但是现在我还在尝试中,以后再说。如果你嫌上面的这一切都很麻烦,可以从本站资料站下载我给Linux 2.6.19内核做的最简文件系统(1.5M),地址是http://cosine.oicp.net/project/at91rm9200/root.img,cramfs格式映像。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top