有一段时间没有碰开发板,忘记了之前自己设置启动的地方。
一开机就要延时个5秒,然后挂载到虚拟机上。
现在要重新修改一下挂载的地址,但是忘记了在哪里找了
有印象修改的目录都在/etc/init.d/
里面
进去目录底下只有这几个文件S00devs
S01udev
S80network
S90hibernate
rcS
研究了一下rcS,发现挺有趣的,以前以为打印一些字符出来都是用算法啥的,原来只是自己echo凑出来的。
另外值得借鉴的是,原来rcS里面是有个for循环的,去执行/etc/init.d目录里面的S开头的脚本。
for initscript in /etc/init.d/S[0-9][0-9]*
是用来遍历这个目录
if [ -x $initscript ] ;
是用来判断这个脚本是否有-x 可执行权限
如果有的话就echo,然后执行。
#! /bin/sh
/bin/mount -a
echo "
_ _ _ _ _ _ _ _ _ _ _ _
\ _ _ _ _ _ ___
/ /__/ \ |_/
/ __ / - _ ___
/ / / / / /
_ _ _ _/ / / \_/ \_ ______
___________\___\__________________
"
for initscript in /etc/init.d/S[0-9][0-9]*
do
if [ -x $initscript ] ;
then
echo "[RCS]: $initscript"
$initscript
fi
done
按道理我之前修改过的应该在这里修改的,mount命令之类的,但是我全都翻遍了没找着。
后面去回顾视频课程才发现了端倪
我自己修改新增的代码竟然在/etc/profile
文件里面
NORMAL="^[[0;39m"
RED="^[[1;31m"
GREEN="^[[1;32m"
YELLOW="^[[1;33m"
BLUE="^[[1;34m"
MAGENTA="^[[1;35m"
CYAN="^[[1;36m"
WHITE="^[[1;37m"
umask 022
echo "${GREEN}Welcome to HiLinux.${NORMAL}"
#这里开始就是我自己加的
ifconfig lo 127.0.0.1
ifconfig eth0 192.168.1.10
cd /ko
./load3518e -i -sensor ar0130 -osmen 32 -total 64
echo "sleep 5s...wait for eth0 up ... "
sleep 5
mount -t nfs -o nolock 192.168.1.141:/home/nfs_server /mnt
cd /mnt
echo "${GREEN}mount success.${NORMAL}"
我解压了官方给的rootfs_uclibc压缩包,进去了目录G:\vmsd\Hi3518E_V200R001C01SPC030\Hi3518E_V200R001C01SPC030\01.software\board\Hi3518E_SDK_V1.0.3.0\Hi3518E_SDK_V1.0.3.0\package\rootfs_uclibc\rootfs_uclibc\etc
打开了官方给的profile
文件进行对比,才发现了自己新增的是啥东西。
1.打开了网卡并且配置了板子的ip地址
2.打开看ko文件夹并且用load3518e
这个工具去load了摄像头的驱动
./load3518e -i -sensor ar0130 -osmen 32 -total 64
sensor是ar0130
给os的mem是32M
总的mem是64M
这里跟uboot中设置的是一致的。
3.sleep了5秒,记起来了,之前如果不设置延时的话会挂载不上,设置5秒已经是极限了,具体原因不清楚。
补充:
后面测试的时候确认了if [ -x $initscript ] ;
确实在判断这个文件是否有可执行权限。
我新建了个文件S88tttt
1.当权限设置为755时,也就是有x可执行权限的时候,会执行
2.当权限设置为744,也就是没有x权限的时候,不会执行。
3./etc
目录里面的profile
文件的执行是在init.d
的rcS
之后的,先执行rcS
,后执行profile