3-Openwrt start process

Openwrt start process

OpenWrt是一个典型的嵌入式Linux工程,主要添加了很多网络路由等功能,所以其启动过程与常见的嵌入式系统类似,不外乎Bootloader->EmbededOS->Filesystem->Application这四个过程,但内部细节它也有一套自己的方式,下面就介绍一下OpenWrt的启动流程。

OpenWrt的启动流程主要:1.Bootloader->2.linux->3./etc/preinit->4./sbin/init ->5./etc/inittab ->6./etc/init.d/rcS->7./etc/rc.d/S*

1.Bootloader

bootloader即最先启动的部分,类似u-boot、barebox、redboot。它的任务只是创造一个简单的环境,让系统先运行起来。除了能够跳转到特定地址上启动操作系统(如Linux)外,它还能让你download东西到上面,比如download一个linux,然后启动它。linux启动之后,将由linux全部接管系统。

另外,值得一提的是,bootloader在启动之后会有1,2秒的时间等待由tftp上传的内核并烧写到flash上。这就给一些操作系统损坏但bootloader还能工作的”砖头”板一个起死回生的机会。

2.Linux

alarm_plan.c: In function 'alarm_plan_data_model': alarm_plan.c:373:5: error: expected ',' or ';' before 'DS_DAT_MON_DESC' 373 | DS_DAT_MON_DESC alarm_plan_data_monitor[] = | ^~~~~~~~~~~~~~~ In file included from /home/wuhsulei/share_smbd/Cworkspace/NVMP/nvmp/staging_dir/target-arm-openwrt-linux-gnueabi-d130v1/usr/include/libds.h:13, from /home/wuhsulei/share_smbd/Cworkspace/NVMP/nvmp/staging_dir/target-arm-openwrt-linux-gnueabi-d130v1/usr/include/slp_model.h:7, from alarm_plan.c:5: alarm_plan.c:380:25: error: 'alarm_plan_data_monitor' undeclared (first use in this function); did you mean 'alarm_plan_data_model'? 380 | alarm_plan_tables, alarm_plan_data_monitor); | ^~~~~~~~~~~~~~~~~~~~~~~ /home/wuhsulei/share_smbd/Cworkspace/NVMP/nvmp/staging_dir/target-arm-openwrt-linux-gnueabi-d130v1/usr/include/ds_cmodule_def.h:108:22: note: in definition of macro 'DSLL_MOD' 108 | .data_monitor_num = module_data_monitor_num, \ | ^~~~~~~~~~~~~~~~~~~~~~~ alarm_plan.c:379:3: note: in expansion of macro 'DS_STRUCT_MOD' 379 | DS_STRUCT_MOD("alarm_plan", alarm_plan_init, alarm_plan_check, alarm_plan_reload, alarm_plan_start, NULL, | ^~~~~~~~~~~~~ alarm_plan.c:380:25: note: each undeclared identifier is reported only once for each function it appears in 380 | alarm_plan_tables, alarm_plan_data_monitor); | ^~~~~~~~~~~~~~~~~~~~~~~ /home/wuhsulei/share_smbd/Cworkspace/NVMP/nvmp/staging_dir/target-arm-openwrt-linux-gnueabi-d130v1/usr/include/ds_cmodule_def.h:108:22: note: in definition of macro 'DSLL_MOD' 108 | .data_monitor_num = module_data_monitor_num, \ | ^~~~~~~~~~~~~~~~~~~~~~~ alarm_plan.c:379:3: note: in expansion of macro 'DS_STRUCT_MOD' 379 | DS_STRUCT_MOD("alarm_plan", alarm_plan_init, alarm_plan_check, alarm_plan_reload, alarm_plan_start, NULL, | ^~~~~~~~~~~~~ cc1: all warnings being treated as errors
最新发布
08-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Creator_Ly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值