mini2440 使用mdev创建设备节点问题

近日看韦东山老师视频制作根文件系统,有一讲是使用mdev创建设备节点。主要方法参照busybox源码中docs/mdev.txt这篇文档。

下面是这篇文档部分内容:

<pre name="code" class="plain">Here's a typical code snippet from the init script:
[0] mount -t proc proc /proc
[1] mount -t sysfs sysfs /sys
[2] echo /bin/mdev > /proc/sys/kernel/hotplug
[3] mdev -s
......
Of course, a more "full" setup would entail executing this before the previous
code snippet:
[4] mount -t tmpfs -o size=64k,mode=0755 tmpfs /dev
[5] mkdir /dev/pts
[6] mount -t devpts devpts /dev/pts
 


根据这些内容,以及参照韦老师讲解,我是这么做的。

1. /etc/fstab文件中添加(对应文档步骤[0] [1])

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
tmpfs           /tmp            tmpfs   defaults            0       0   
sysfs           /sys            sysfs   defaults            0       0


2. /etc/init.d/rcS文件中添加(对应文档步骤[2] [3] [4] [6])

<pre name="code" class="plain">echo /bin/mdev > /proc/sys/kernel/hotplug
mdev -s
mount -t tmpfs -o size=64k,mode=0755 tmpfs /dev
mount -t devpts devpts /dev/pts
 


3. 手动创建/dev/pts目录(对应文档步骤[5])

PS:我是使用nfs网络文件系统,在host端的目录下直接创建的该目录。按道理说在启动后直接能看到该目录。


4. /etc/inittab文件中

console::askfirst:-/bin/sh
修改为

s3c2410_serial0::askfirst:-/bin/sh
PS:只看视频的同学可能不知道这一步,书上介绍了mdev生成的/dev目录串口名为s3c2410_serial0。至于console怎么了,以后再说。


好了上电,发现出现以下问题:

mount point /dev/pts does not exist

can't open /dev/s3c2410_serial0: No such file or directory

PS:错误为节选,不全,也可能不是原话。

意思是说/dev/pts和/dev/s3c2410_serial0不存在。我就在我host机上看了下/dev目录的内容,发现都存在啊,然后就各种纠结了。后来我想再仔细看看busybox提供的文档。我发现这么一句我可能理解错了。

Of course, a more "full" setup would entail executing this before the previous<pre name="code" class="plain">code snippet:

 我看到entail第一反应就是结尾处,所以步骤[4] [5] [6]应该在[0] [1] [2] [3]后面执行。后来才知道entail是“需要“的意思。(o(╯□╰)o,英语就是渣啊)这句话是说下面的内容要在上面的内容之前执行。跟开始的理解正好相反。 


修改下方案。

1. /etc/init.d/rcS文件修改为

#! /bin/sh
echo "yb's first filesystem!"
mount -t tmpfs -o size=63k,mode=0755 tmpfs /dev
mkdir /dev/pts
mount -t devpts devpts /dev/pts
mount -a
echo /bin/mdev > /proc/sys/kernel/hotplug
mdev -s

重启后,一切OK~

我在板子上执行mount -t tmpfs -o size=63k,mode=0755 tmpfs /dev后,看/dev目录空了,也就是这个原因导致了前面提到的错误(注意,以前创建的console也没有了,正常启动时被s3c2410_serial0替代)。


最后提下,文档中步骤[2]中/bin/mdev其实应该为/sbin/mdev,mdev是在/sbin目录下的。这是看别人blog看到的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值