各位大哥,buildroot编译出来的根文件系统没有,/etc/rc.local文件,自己用vi建个/etc/rc.local文件没有执行里面的内容,是什么问题?
# vi /etc/rc.local
/root/wifi.sh
exit 0
离线
你应该去 /etc/init.d/S80wifi 这个文件, 文件名随意,只要S开头即可, 文件要可执行。
晕哥,如要我开机就运行/etc/rc.local脚本,要怎么做呢?下面我是按(TF WIFI 小白编)里操用的,但不能执行/etc/rc.local脚本
6.开机自动连网
首先写一个shell脚本来加载驱动,启动wlan0,运行连网脚本,放在任意目录都可以,输入命令:
vi wifi.sh
然后按a进入插入模式,输入:
#!/bin/sh
insmod /root(你放WiFi驱动的路径)/wifi.ko(WiFi驱动的名字)
ifconfig wlan0 up
/root/connect_wx.sh
写好后按下esc,再输入:wq
保存数据后输入:
chmod 777 wifi.sh
然后添加开机启动脚本
vi /etc/rc.local
然后把你的wifi自启脚本以绝对路径形式输入exit 0上面的一行中,如果路径太长,一行写不完,就在这一行的最后面输入\然后按下enter键
离线
离线
开机不会执行 /etc/rc.local,
开机只会执行 /etc/init.d/rcS, 除非你在/etc/init.d/rcS 文件最后一行添加 /etc/rc.local 才会执行。否则你老老实实按照我二楼给的方法.
晕哥,我想知道linux启动时,最先加截什么脚本?
/etc/init.d/rcS是在那里设置开机就加载.
离线
BusyBox的 init进程依次进行以下工作:
1)为init设置信号处理进程。
2)初始化控制台。
3)解析inittab文件(/etc/inittab)。
4)执行系统初始化脚本(/etc/init.d/rcS作为缺省)。
5)执行所有阻塞的(会导致init暂停的)inittab命令(动作类型:wait)。
6)执行所有仅执行一次的inittab命令(动作类型:once)。
7)一旦完成以上工作,init进程便会循环执行以下工作:
8)执行所有终止时必须重新启动的inittab命令(动作类型:respawn)。
9)执行所有中止时必须重新启动但启动前必须前询问用户的inittab命令(动作类 型:askfirst)。
参考链接: busybox的init程序分析
没有比这个更清晰明了的了。
离线
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 15883
[ 0.000000] Kernel command line: console=ttyS0,115200 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,9M(kernel)ro,-(rootfs) root=/dev/ram0 rdinit=/sbin/init vt.global_cursor_default=0
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
# ps
PID USER COMMAND
1 root init
2 root [kthreadd]
3 root [kworker/0:0]
4 root [kworker/0:0H]
5 root [kworker/u2:0]
6 root [mm_percpu_wq]
7 root [ksoftirqd/0]
8 root [rcu_sched]
9 root [rcu_bh]
10 root [migration/0]
11 root [cpuhp/0]
12 root [kdevtmpfs]
13 root [netns]
14 root [oom_reaper]
15 root [writeback]
16 root [kcompactd0]
17 root [crypto]
18 root [kblockd]
19 root [cfg80211]
20 root [kworker/0:1]
21 root [watchdogd]
22 root [kswapd0]
47 root [kworker/u2:1]
49 root [irq/23-sunxi-mm]
75 root -/bin/sh
92 root ps
/sbin/init 是在Kernel command指定的第一个进程!
离线
hello
请教一个问题,在使用buildroot编译根文件系统,使用的时 buildroot2017.08.1这个文件的内容,编译的主机使用的ubuntu16.0.4 lts。编译是成功的,系统初始使用的是busybox,自己也添加了很多东西,但是出现了一个致命的问题。我的/etc/init.d/rcS在开机的时候没有执行。
首先,我确定以下文件的符后链接是正确的:/sbin/init(链接到了/bin/busybox),bash环境是ok的,文件有执行的权限,/etc/inittab有相应的执行命令,测试更改该文件内容,启动会变得不正常,说明该文件是正常执行了(该文件内的其他内容有被执行,比如设置的串口不需要密码自动登录)。开机后 /etc/init.d/文件夹下的内容没有执行(通过rcS执行该文件夹内容),我不知道是否是buildroot中某一个选项没有配置上。现在不知道怎么去解决这个问题。能提供一些帮助信息吗。
开机后手动执行/etc/init.d/rcS是成功的。
以下是/etc/inittab 的内容:
# Startup the system
::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -o remount,rw /
::sysinit:/bin/mkdir -p /dev/pts
::sysinit:/bin/mkdir -p /dev/shm
::sysinit:/bin/mount -a
::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
::sysinit:/etc/init.d/rcS
# Put a getty on the serial port
#console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL
ttyS0::respawn:/bin/sh
ttyS1::askfirst:/bin/sh
# Stuff to do for the 3-finger salute
#::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting
::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
找到原因了,串口登录时没有将一些信息,显示出来,问题在这句代码上:ttyS0::respawn:/bin/sh,这个暂时还没有搞明白怎么解释这个
最近编辑记录 forever_rainy (2022-05-21 20:18:28)
离线