7、某项目RCS内容解析

[root@(none)init.d]#cat rcS
#后面一般为注释的内容

#!/bin/sh
此句含义:
#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是解释此脚本的shell的路径。如果脚本中没有声明,则脚本将在用户默认的shell中执行。用户默认的shell环境是在/etc/passwd中定义:比如passwd文件第一行中 root:x:0:0:root:/root:/bin/bash,最后的/bin/bash说明root用户的默认shell是/bin/bash。虽然#! /bin/sh 可有可无,所以建议就把"#!/bin/sh"当成C 语言的main函数一样,写shell必须有,以使shell程序更严密。
ifconfig eth0 192.168.7.104          //配置网卡IP
mount -a 
此句含义:
mount -a 是自动挂载 /etc/fstab 里面的东西。
不过这东西开机时已经挂载了,你如果没有修改 fstab 增加新的东西那就肯定没输出。 mount -a 会忽略所有已经完成的操作,也就是开机时 fstab 已经挂载后,而且你没有修改 fstab 。你再运行 mount -a ,他会自动忽略全部 fstab 内容。

/etc/fstab的内容如下:

proc    /proc   proc    defaults    0       0

none    /tmp    ramfs   defaults 0       0

mdev    /dev    ramfs   defaults 0       0

sysfs   /sys    sysfs   defaults    0       0

. /etc/init.d/init.sh
#Udisk Auto Mount
mount -t sysfs sysfs /sys
此句含义:

sysfs是一种基于ram的文件系统,它提供了一种用于向用户空间展现内核空间里的对象、属性和链接。sysfs与kobject层次紧密相连,它将kobject层次关系表现出来,使得用户空间可以看见这些层次关系。

    在控制台输入命令“mount -t sysfs sysfs /sys”,就可以在/sys目录下看到这些层次关系了。

mount -t tmpfs mdev /dev
mkdir /dev/pts
mount -t devpts devpts /dev/pts    
echo /sbin/mdev > /proc/sys/kernel/hotplug   //命令内核在增删设备时执行 /sbin/mdev ,使设备节点文件会被创建和删除。
此句含义:
嵌入式设备上使用mdev来管理动态节点,
方法也很简单,就是在rcS脚本中加入下面一句,将用户空间的应用程序路径传递给内核,
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s                     //扫描并创建节点,这一步可不能少 
此句含义:
执行mdev -s :以‘-s’为参数调用位于 /sbin目录写的mdev(其实是个链接,作用是传递参数给/bin目录下的busybox程序并调用它),mdev扫描 /sys/class 和 /sys/block 中所有的类设备目录,如果在目录中含有名为“dev”的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev 下创建设备节点文件。一般只在启动时才执行一次 “mdev -s”。
mdev可以通过proc和sys文件系统来动态整理出注册的设备,进而到/dev/下生成他们对应的节点,使用该功能之前必须mount上proc和sys文件系统,然后简单的执行下面的一句就弯成了:mdev -s
rm -rf /usr/local/dbus-1.0.2/var/run/dbus/pid
/usr/local/dbus-1.0.2/bin/dbus-daemon --system &
echo 1000 > /sys/class/net/can0/tx_queue_len               //设置波特率为1M
echo 64 > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio64/direction
echo "rising" > /sys/class/gpio/gpio64/edge
cd /opt/bin                             
./CustomButton -qws &                     //后台运行 qt程序 CustomButton
sleep 1                                               //睡眠1秒
./Emb -qws &                                    //后台运行 qt程序 Emb
/usr/local/sbin/sshd &
mount /dev/mmcblk0p1 /mnt



以下是系统初始化脚本中一个典型的使用mdev 的代码片段:

[1] mount -t tmpfs mdev /dev

[2] mkdir /dev/pts

[3] mount -t devpts devpts /dev/pts

[4] mount -t sysfs sysfs /sys

[5] echo /bin/mdev > /proc/sys/kernel/hotplug

[6] mdev -s

简单说明一下上面的代码:

[1]确保 /dev 是 tmpfs 文件系统(假设文件系统在 flash 外运行)。

[2] 创建/dev/pts 挂载点

[3] 在 /dev/pts 挂载 devpts 文件系统

[4]你必须在执行mdev 前挂载 /sys 。

[5] 命令内核在增删设备时执行 /bin/mdev ,使设备节点文件会被创建和删除。

[6] 设置mdev,让它在系统启动时创建所有的设备节点。

完成以上6步骤,即可实现一个对mdev 更完整的安装


你可能感兴趣的:(linux驱动)