arm开发板自启动设置
- 两个目录
- /etc/init.d/rcS 文件是开机启动要运行的脚本
- /etc/rc.d/init.d/* 在这个文件夹下的所有脚本均为1目录对应启动软件的脚本
启动软件的脚本在2目录,调用启动脚本在1目录的文件夹下配置。
-
下面是rcS脚本
#! /bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin: runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel # # Trap CTRL-C &c only in this shell so we can interrupt subprocesses. # trap ":" INT QUIT TSTP /bin/hostname FriendlyARM /bin/mount -n -t proc none /proc /bin/mount -n -t sysfs none /sys /bin/mount -n -t usbfs none /proc/bus/usb /bin/mount -t ramfs none /dev echo /sbin/mdev > /proc/sys/kernel/hotplug /sbin/mdev -s /bin/hotplug # mounting file system specified in /etc/fstab mkdir -p /dev/pts mkdir -p /dev/shm /bin/mount -n -t devpts none /dev/pts -o mode=0622 /bin/mount -n -t tmpfs tmpfs /dev/shm /bin/mount -n -t ramfs none /tmp /bin/mount -n -t ramfs none /var mkdir -p /var/empty mkdir -p /var/log mkdir -p /var/lock mkdir -p /var/run mkdir -p /var/tmp /sbin/hwclock -s syslogd /etc/rc.d/init.d/netd start echo " " > /dev/tty1 echo "Starting networking..." > /dev/tty1 /etc/rc.d/init.d/leds echo "Starting led service..." > /dev/tty1 echo " " /sbin/ifconfig lo 127.0.0.1 /etc/init.d/ifconfig-eth0 soundplayer /root/testsound.mp3& /bin/rtm& echo " " > /dev/tty1 echo "Starting MiniTest, please waiting..." > /dev/tty1
-
下面是程序启动的脚本,举例leds程序的自启动
#!/bin/sh base=led-player # See how we were called. case "$1" in start) /usr/bin/$base & ;; stop) pid=`/bin/pidof $base` if [ -n "$pid" ]; then kill -9 $pid fi ;; esac exit 0
总结:
因此我们在更改开发板自启动的时候,主要来配置我们的rcS文件,另外需要指出的是,上面的启动程序脚本采用的是建立线程来处理程序的运行,这样不会干扰其他程序的运行,就像是多程序并行一样,处理自己的启动程序时,我们也需要这样的来处理,后面还会再学习到。