构建根文件系统(2)Busybox init 进程

发布者:lidong4069最新更新时间:2023-08-15 来源: elecfans关键字:根文件系统  Busybox  init  进程 手机看文章 扫描二维码
随时随地手机看文章

讲init进程的启动过程从/etc/inittab出发。

内核启动init进程时已经打开/dev/console设备作为控制台,一般情况下Busybox init程序就使用/dev/console,

如果内核启动init进程的同时设置了环境变量CONSOLE或console,则使用环境变量所指定的设备。

1、/etc/inittab文件的相关文档和示例代码都在Busybox 的examples/inittab文件中。

vi examples/inittab

内容如下(红色字为格式重要部分):

# /etc/inittab init(8) configuration for BusyBox
#
# Copyright (C) 1999-2004 by Erik Andersen
#
#
# Note, BusyBox init doesn't support runlevels. The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use sysvinit.
#
#
# Format for each entry: :::
#
# : WARNING: This field has a non-traditional meaning for BusyBox init!
#
# The id field is used by BusyBox init to specify the controlling tty for
# the specified process to run on. The contents of this field are
# appended to "/dev/" and used as-is. There is no need for this field to
# be unique, although if it isn't you may have strange results. If this
# field is left blank, it is completely ignored. Also note that if
# BusyBox detects that a serial console is in use, then all entries
# containing non-empty id fields will be ignored. BusyBox init does
# nothing with utmp. We don't need no stinkin' utmp.
: The runlevels field is completely ignored.
#
# : Valid actions include: sysinit, respawn, askfirst, wait, once,
# restart, ctrlaltdel, and shutdown.
#
# Note: askfirst acts just like respawn, but before running the specified
# process it displays the line "Please press Enter to activate this
# console." and then waits for the user to press enter before starting
# the specified process.
#
# Note: unrecognised actions (like initdefault) will cause init to emit
# an error message, and then go along with its business.
#
# : Specifies the process to be executed and it's command line.
#
# Note: BusyBox init works just fine without an inittab. If no inittab is
# found, it has the following default behavior:
# ::sysinit:/etc/init.d/rcS
# ::askfirst:/bin/sh
# ::ctrlaltdel:/sbin/reboot
# ::shutdown:/sbin/swapoff -a
# ::shutdown:/bin/umount -a -r
# ::restart:/sbin/init
#
# if it detects that /dev/console is _not_ a serial console, it will
# also run:
# tty2::askfirst:/bin/sh
# tty3::askfirst:/bin/sh
# tty4::askfirst:/bin/sh
#
# Boot-time system configuration/initialization script.
# This is run first except when booting in single-user mode.
#
::sysinit:/etc/init.d/rcS
# /bin/sh invocations on selected ttys
#
# Note below that we prefix the shell commands with a "-" to indicate to the
# shell that it is supposed to be a login shell. Normally this is handled by
# login, but since we are bypassing login in this case, BusyBox lets you do
# this yourself...
#
# Start an "askfirst" shell on the console (whatever that may be)
::askfirst:-/bin/sh
# Start an "askfirst" shell on /dev/tty2-4
tty2::askfirst:-/bin/sh
tty3::askfirst:-/bin/sh
tty4::askfirst:-/bin/sh

# /sbin/getty invocations for selected ttys
tty4::respawn:/sbin/getty 38400 tty5
tty5::respawn:/sbin/getty 38400 tty6

# Example of how to put a getty on a serial line (for a terminal)
#::respawn:/sbin/getty -L ttyS0 9600 vt100
#::respawn:/sbin/getty -L ttyS1 9600 vt100
#
# Example how to put a getty on a modem line.
#::respawn:/sbin/getty 57600 ttyS2

# Stuff to do when restarting the init process
::restart:/sbin/init

# Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
2、仿照Busybox 的examples/inittab 文件,创建一个inittab文件,内容如下:

#/etc/inittab

#init进程启动的第一个子进程,它是一个脚本,可以在里面指定用户想执行的操作

#比较挂接其他文件系统、配置网络等

::sysinit:/etc/init.d/rcS

#启动shell,以/dev/ttySAC0作为控制台

ttySAC0::askfirst:-/bin/sh

#按下Ctrl+Alt+Del之后执行的程序,不过在串口控制台中无法输入Ctrl+Alt+Del组合键

::ctrlaltdel:/sbin/reboot

#重启、关机前执行的程序

::shutdown:/bin/umount -a -r


关键字:根文件系统  Busybox  init  进程 引用地址:构建根文件系统(2)Busybox init 进程

上一篇:构建根文件系统(3)编译、安装Busybox、安装glibc
下一篇:构建根文件系统(1)Linux root filesystem目录结构

推荐阅读最新更新时间:2024-11-17 06:32

1_5.4.3_文件系统_构建文件系统busybox_P
构建根文件系统之前,先来编译一下busybox。 查看readme,看一下有没有讲怎么编译,里面有一些关于busybox的介绍,比如什么是busybox。 怎么使用busybox。 没有看到讲解怎么编译的,查看一下install文件,可以看到,编译busybox的方法和编译Linux kernel相似,也是先配置然后make编译,需要注意的是,直接执行make install,默认是会安装到PC机上的,我们需要额外指定一下安装的地址。 也就是执行#后面的那个make CONFIG_PREFIX=/path/from/root install,安装到我们指定的地方。 在busybox目录下执行make menuc
[单片机]
1_5.4.3_<font color='red'>根</font><font color='red'>文件系统</font>_构建<font color='red'>根</font><font color='red'>文件系统</font>之<font color='red'>busybox</font>_P
汽车电气化进程加快 48V/高压传动等技术风起
即使汽车电气化之路并非一路坦途,但几乎没人会否认,它已成为汽车行业所无法忽视的一大趋势。仅在过去的一个月中,便先有福特表明2025年其70%车型将在华电气化,后有PSA透露2023年其34款核心车型80%将电气化。如果再将时间向前推,此类例子更是不胜枚举。 汽车电气化,一定程度上可以理解为强化电机在汽车驱动系统重要性的过程,因此诸如普通混动汽车、插电式混动汽车或是纯电动汽车其实是不同程度汽车电气化的表现。在4月20日大陆集团的媒体沟通会上,大陆集团执行董事会主席兼CEO 德根哈特博士(Dr. Elmar Degenhart)就表示,未来汽车将以电驱动为主,预计2025年纯电动车市场份额将占到10%左右,混合动力汽车约为30%。
[汽车电子]
展会进行时 | 与步科在慕尼黑上海电子展探索智能制造新进程
今天,2024慕尼黑上海电子生产设备展在上海新国际博览中心开展,作为2024年首批制造行业展会,观众们收缩了已久的观展热情喷涌而出,展会现场人头攒动,步科展台迎来一波又一波观展高峰,小步为你带来展会进行时报道,一起来看看步科在此次展会上展示的自动化新品和方案,如何牢牢抓住了观众的眼球! 2024慕尼黑上海电子生产设备展 日期:2024年03月20-22日 展位号:E2.2580 地址:上海新国际博览中心 龙年新颜展新品 kinco 2024年又是步科蓄力满满启航的一年,在展会现场,多款新品和解决方案在发布前抢先与观众见面,惊喜产品,精彩夺目: 01新一代iSMK一体机 去电柜化,现场型安装,适用于 机器人 ,仓储物流
[机器人]
传东芝暂停存储器芯片业务销售进程
1.传东芝暂停存储器芯片事业销售进程; 彭博今天引述知情人士指出,为了因应产业伙伴提出的疑虑,东芝公司(Toshiba Corp.)暂时取消有关出售存储器芯片事业的所有会议和决策。 东芝现正尝试出售半导体事业以筹集亟需的现金,并已缩减有兴趣的买家数量。然而,总部设于加州圣荷西的合资企业伙伴──西部数据电子公司(Western Digital Corp.)表示此举恐违反两家企业契约而受阻。 经过首轮竞标后,东芝已将有意购并的买家数量缩减。根据彭博报导,台湾的鸿海精密工业股份有限公司已表示,愿出价高达 3 兆日圆(约 270 亿美元)收购。东芝发言人否认销售进程暂停。 因资讯未公开而不愿具名的知情人士表示,西部数据执行长米里根(Ste
[半导体设计/制造]
瑞萨高精度光隔离ΔΣ调制器,提速智能工厂发展进程
半导体解决方案供应商瑞萨电子集团宣布推出RV1S9353A光隔离ΔΣ调制器。与其它10MHz时钟输出光隔离器件相比,RV1S9353A可达到业界领先高精度。该产品包含具有13.8位(典型值)ENOB的精密模数转换器,可将模拟电压输入转换为跨隔离栅的1比特位数据流输出。RV1S9353A可直接连接到RZ/T MPU、RX72M MCU或其它带有数字滤波器的MPU、MCU、SoC和FPGA,适用于机械臂控制器以及一系列智能工厂设备中的AC伺服控制器和NC伺服控制器。 提升工业仪器控制精度的趋势推动着对高精度光隔离的需求。瑞萨RV1S9353A具备业界领先的精确感测特性,包括较低的偏置电压漂移、较高的信噪比(SNR)、较低的基
[工业控制]
瑞萨高精度光隔离ΔΣ调制器,提速智能工厂发展<font color='red'>进程</font>
Mobileye、北京公交集团和北太智能助力公共交通自动驾驶进程
在今天的2019年国际消费电子展上,英特尔子公司Mobileye、北京公共交通控股(集团)有限公司(下称“北京公交集团”)和北京市北太机电设备工贸有限公司旗下北太智能(下称“北太智能”)宣布达成合作,将在中国对自动驾驶公共交通服务进行商业部署。这项合作标志着,自动驾驶技术推动中国向智慧公共交通和增强城市移动出行的未来,迈出了坚实的一步。 凭借北京公交集团丰富的运营经验和Mobileye的自动驾驶套件(一个经L4自动驾驶能力验证的一站式软硬件自动驾驶解决方案),三家公司将在中国合作开发并部署一个商业化的公共交通自动驾驶解决方案。该合作旨在促进公共交通自动驾驶技术的发展,建立新的行业标准,并提高公共交通服务的整体质量。 北京公
[汽车电子]
多核调试方案加速开发进程
对于嵌入式设备而言,多核技术是指在单一处理器芯片中放入多个处理内核,可提供更高的处理器性能、更有效的电源利用率,并且占用更少的物理空间,因此给硬件和软件开发工程师带来了许多优势。与多核解决方案相提并论的是多处理器技术,即在单块电路板或一个集成系统中包含多个处理器。为充分发挥多核以及多处理解决方案的潜能,仅仅拥有高性能的芯片是不够的,还需要采用新的调试方法和工具,以帮助软件和硬件开发人员在完整的多核系统环境中高效地进行调试工作,进而对“编译—编辑—调试”的流程进行优化。 在传统上,JTAG调试技术主要是用于硬件bring-up,近来也常常被用于配合基于代理的调试(agent-based debugging)。不过,在多核和多处理的
[单片机]
多核调试方案加速开发<font color='red'>进程</font>
Diamond合并进程中前进力求降低测试成本
  Credence和LTX的高管对于依照两家公司合并计划优化产品线的长期计划保持沉默,但是在Credence方面,Diamond平台的仪器开发工作依然在紧锣密鼓地进行。最新研发的产品是72通道HDVI(高密度电压/电流)仪器。该产品旨在通过支持大量站点并行测试降低测试成本。   在对Credence产品营销经理Arun Kancharla和Diamond平台营销总监Thomas Vana进行电话采访时,Kancharla表示,新仪器(实际上整个平台)都是针对消费类电子器件,如微控制器、可编程逻辑器件(PLD)、FPGA、门阵列、DSP,以及音频、视频、无线蜂窝、数码相机、基带和电源管理应用中使用的嵌入式控制器。这与Creden
[测试测量]
Diamond合并<font color='red'>进程</font>中前进力求降低测试成本
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved