根文件系统中的几个瑕疵的完善

上次文章中记录了一个简单的根文件系统的制作,不过最后留了一些瑕疵在里面,为了具有像乔布斯那样追求完美的精神,这次就来完善一下,现在主要存在的问题就是下图所示:


根文件系统中的几个瑕疵的完善_第1张图片


这里提示到的问题主要有三个:

1ifconfig问题

(ps:我们还没有对当前开发板修改并移植网卡驱动DM9000,所以这个是难免的。)

2tmpfs问题

(ps:应该可以一眼看出来吧,我在初始化脚本里边,把defaults拼成了devaults,很混蛋的做法,纯粹的手误,这是不影响启动的情况下,它报错出来了,这要是影响启动还不报错,那估计我得好一阵子找的。从而有引发了下边无法mount的问题,这个好办。)

3pts的创建问题,因为我们用的mdev自动动态生成的设备文件,这里pts创建报错的是因为已经存在了


这些文件都是我们前边自己制作的root文件系统时,手工建立的。


这里把/etc/init.d/rcS的内容摘出来:

#!/bin/sh

ifconfig eth0192.168.1.111

mount -a

mkdir /dev/pts

mount -t devpts devpts/dev/pts

echo /sbin/mdev >/proc/sys/kernel/hotplug

mdev -s


由此脚本可以分析出它的过程,就是在此脚本执行过程中,又调用了/etc/fstab (其实这里就是通过mount -a去挂在fstab里边的所有文件系统的)

proc /proc proc defaults 0 0

tmpfs /tmp tmpfs defaults 0 0

sysfs /sys sysfs defaults 0 0

tmpfs /dev tmpfs devaults 0 0          #就是这里,我拼写错了!

#更悲剧的是前边文章中的记录也是错的,也没人提出来,一个报错过程不但反映出了linux内核初始化执行的流程,也反映出了之前的文章就没有读者去认真的读,这对写者来说是很沉重的打击啊!

所以还是那句话,出错并不可怕,排错的过程才是成长的过程!

有些问题是连锁反应产生的,所以这里我们先对fstab进行更改。把那个可恶的v改成f以后,重新把文件系统目录制成root文件系统镜像:(额,我的环境变了很多,重新配置的原生态linux,安全环保,没有用虚拟机,所以可能跟前边的目录名字有些不一致,不过知道my_fs就是制作的root文件系统的那个目录就可以了,话说变则通么,呵呵)

$ mkyaffs2image my_fs/ my_fs.bin               #当前所在目录在my_fs的上层目录


下载到板子测试一下先。

根文件系统中的几个瑕疵的完善_第2张图片


OK,看来后两个问题是连带关系,现在只剩下移植DM9000的驱动,然后ifconfig问题应该就可以迎刃而解了。


DM9000的驱动移植就不谢了吧,可以参照不同开发板的手册。这跟平台比较相关,且不同平台移植不同,我也没到达对该驱动完全了解的地步,其实是很不怎么了解,从原理讲的话,也没那个能力,就此别过了吧,哈哈。

你可能感兴趣的:(虚拟机,linux,image,脚本,平台,linux内核)