那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

全志Tina Linux下busybox init簡介

冬至子 ? 來源:丨budboool ? 作者:丨budboool ? 2023-11-15 14:26 ? 次閱讀

一、簡介

tina 使用busybox init方式啟動,首先調用執行pseudo_init(掛載文件系統,如/proc、/tmp、/sys /etc、/usr),接著會調用/sbin/init進程,而init進程調用的第一個啟動腳本為/etc/init.d/rcS。

二、平臺的自定義

不同的平臺文件系統具有其共性與特殊性。tina/packge/busybox-init-base-files/files下提供了所有平臺的基礎文件。

而在tina/target/allwinner/XXX/busybox-init-base-files下存放的是平臺特性文件,其優先級高于前者,即當前者目錄和后者存在有相同文件時,以后者為準。如有以下兩個文件:

A:tina/target/allwinner/r11-R11_pref1/busybox-init-base-files/etc/banner
B:tina/package/busybox-init-base-files/files/etc/banner

最終拷貝到文件系統中的為A。

三、pseudo_init與rcS

pseudo_init與rcS文件中存在很多平臺共性的代碼,避免系統充斥大量冗余代碼,以及方便基礎文件的維護和開發。所以不允許在特定平臺下自定義pseudo_init、rcS文件(必須使用tina/packge/busybox-init-base-files/files下的pseudo_init、rcS)。

如果需要添加平臺特定配置(pseudo_init,rcS沒有配置),可將其寫到rc.preboot,rc.final中,參考第四節。

四、rcS腳本

1.功能描述

(1)執行/etc/init.d/rc.preboot。

為了滿足開機快速啟動的需求,提供了用戶可自定義rc.preboot文件,即在tina/target/allwinner/XXX/busybox-init-base-files/etc/init.d/目錄下創建rc.preboot腳本文件,將會被rcS最先調用執行。

(2)配置打印級別,主機名稱。

(3)執行/etc/init.d/rc.log,配置系統log信息

系統默認使用的是tina/package/busybox-init-base-files/files/etc/init.d/rc.log腳本進行配置系統log信息。用戶可在tina/target/allwinner/XXX/busybox-init-base-files/etc/init.d/下創建rc.log,自定義rc.log。

如果需要使用默認rc.log,需要在make menuconfig配置。

Base system  --- >
     busybox-init-base-files......................... Busybox init base system  --- >
      [*]   Use the rc.log

(4)掛載UDISK。

(5)執行/etc/init.d/rc.modules,加載內核模塊。

系統默認使用的是tina/package/busybox-init-base-files/files/etc/init.d/rc.modules腳本進行內核模塊自加載,用戶可在tina/target/allwinner/XXX/busybox-init-base-files/etc/init.d/下創建rc.modules,自定義rc.modules。

如果需要使用默認rc.modules,需要在make menuconfig配置如下。

Base system  --- >
     busybox-init-base-files......................... Busybox init base system  --- >
       [*]   Use the rc.modules

(6)啟動/etc/rc.d下的腳本。

關于執行rc.d下的啟動腳本,目的為兼容procd式的應用腳本。/etc/rc.d下的腳本是鏈接到/etc/init.d/下,默認情況下只執行adbd,如果需要執行其他腳本,需要在tina/target/allwinner/XXX/busybox-init-base-files/etc/init.d/下,自定義load_script.conf文件,文件內容中寫上要啟動的應用,如adbd(注意,每一個應用占一行)。可參考:tina/packge/busybox-init-base-files/files/etc/init.d/load_script.conf。

如果需要執行rc.d下的啟動腳本,需要在make menuconfig做如下配置。

Base system --->
busybox-init-base-files......................... Busybox init base system --->
[*] Auto load the script in /etc/rc.d

(7)ota初始化。

(8)執行/etc/init.d/rc.final,用戶自定義啟動腳本。

用戶可在tina/packge/busybox-init-base-files/files/etc/init.d/下創建一個rc.final腳本,自定義啟動應用程序,該腳本將會被rcS最后調用執行。

2.rc.preboot與rc.final的區別?

rc.preboot比rc.final先運行,在執行rc.preboot腳本的時候,系統的一些初始化操作還沒完成,如掛載UDISK、內核模塊自加載、ota等等操作。而rc.final執行的時候,以上的初始化操作已經完成。

五.如何寫應用的啟動腳本

example:開機自啟動smartlinkd(tina/package/allwinner/smartlinkd/files/smartlinkd.init)

1.方法一(特定格式要求)

(1)procd式

#!/bin/sh /etc/rc.common   #本質為script腳本,以#!開頭, 之后執行/etc/rc.common
START=98        #開機啟動優先級(序列) [數值越小, 越先啟動]
STOP=98            #關機停止優先級(序列) [數值越小, 越先關閉]

USE_PROCD=1
PROG=smartlinkd

start_service() {    #啟動函數
    procd_open_instance
    procd_set_param command $PROG -d
    procd_close_instance
}

shutdown() {
    echo shutdown
}

(2)Sys式

#!/bin/sh /etc/rc.common
START=98
STOP=98

PROG=smartlinkd

start() {
  smartlinkd -d &
}

使用上述procd式和sys式腳本,既能兼容procd init啟動和busybox init的啟動方式。
另外如果使用的是busybox init的啟動方式,還需要在load_script.conf文件中換行添加內容:smartlinkd

2.方法二(無特定格式要求)

創建rc.preboot或者rc.final腳本,添加啟動smartlinkd的內容。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux系統
    +關注

    關注

    4

    文章

    595

    瀏覽量

    27509
  • RCS
    RCS
    +關注

    關注

    0

    文章

    57

    瀏覽量

    12752
收藏 人收藏

    評論

    相關推薦

    V853的ARM A7和RISC-V E907之間的通信

    作者:DOT小文哥 V853芯片包含兩個CPU。一個是主核心Arm A7 CPU,運行Tina Linux自研Linux)系統,為芯片
    發表于 07-27 15:32 ?1276次閱讀
    <b class='flag-5'>全</b><b class='flag-5'>志</b>V853的ARM A7和RISC-V E907之間的通信

    D1-H tina Docker 編譯環境制作和使用

    /bash# 第一次執行的時候,需要下載鏡像,會耗時比較久一點# 執行完上面 docker 命令后, 會將本機 /opt/tina-sdk 映射到 docker 中的 /sdk ,就可以在 docker
    發表于 03-14 11:26

    Tina Linux的Ubuntu20.04交叉編譯OpenCV 4.5.2

    /libatomic.so* (target_path)2. diff如何應用?- 百度一: linux patch用法原貼鏈接:https://bbs.aw-ol.com/topic/221/志在線開發者交流企鵝
    發表于 03-14 11:36

    R329Tina安全啟動校驗linux/rootfs失敗直接重啟如何解決?

    問題描述客戶發現在安全啟動時,如果uboot中校驗linux、rootfs失敗,會進入uboot控制臺,不符合他們的安全要求。他們希望校驗失敗重啟或停止運行。問題分析默認情況Tina安全啟動中
    發表于 03-15 10:04

    全新Tina Linux v5.0釋放!帶來全新AIoT產品開發體驗

    Tina Linux基于linux內核深度定制開發的AIoT系統。“Tina”取“Tin
    發表于 07-12 18:25

    【免費試用04期】V853開發板試用活動

    】編譯 Tina Linux部分之openWrt 編譯【V853開發板試用】編譯 Tina Linu
    發表于 07-21 10:27

    V853開發板試用之一(Tina Linux 5.0編譯 和NPU使用)

    Tina Linux 5.0編譯 和 基于NPU的YOLOV3模型使用。一、Tina Linux 5.0編譯(一)下載源碼V853的Tina
    發表于 08-21 23:40

    V853開發板試用】開箱及初識之美

    , 同時支持供電和數據傳輸PMU:AXP2101板身大小:長 118mm寬 75mmPCB板層:4層板系統配置官方支持Tina Linux系統,基于
    發表于 08-21 23:47

    V853開發板試用】編譯 Tina Linux部分之buildroot 編譯

    繼【V853開發板試用】編譯 Tina Linux部分之openWrt 編譯之后,開始buildroot 編譯buildroot 的編譯大致分為以下流程:(1) ./build.s
    發表于 09-01 22:57

    V853如何實現mpp sample外編?

    V853開發板購買鏈接:https://item.hqchip.com/2500385672.html1.主題V系列多媒體mpp sample外編方法2.問題背景用戶希望Tina SDK 能提供
    發表于 01-29 10:42

    V853芯片 如何在Tina V85x平臺切換sensor?

    V853開發板購買鏈接:https://item.hqchip.com/2500386536.html目的V85x某方案目前默認Sensor是GC2053。實際使用時若需要用到GC4663(比如
    發表于 02-13 11:03

    Tina Linux 啟動優化

    本文轉載自V853在線文檔:https://v853.docs.aw-ol.com/soft/tina_boottime/ Tina Lin
    發表于 05-24 10:32

    Tina Linuxbusybox init 簡介

    一、簡介 tina 使用busybox init方式啟動,首先調用執行pseudo_init(掛載文件系統,如/proc、/tmp、/sys
    發表于 11-15 09:36

    Linux系統init進程的前世今生

    Linux系統中的init進程(pid=1)是除了idle進程(pid=0,也就是init_task)之外另一個比較特殊的進程,它是Linux內核開始建立起進程概念時第一個通過
    發表于 04-28 17:23 ?993次閱讀

    AW_R329_Tina_Linux_開發入門_v0.5

    AW_R329_Tina_Linux_開發入門_v0.5
    發表于 10-19 15:11 ?3次下載
    百家乐官网上分器定位器| 百家乐赌博讨论群| 玩百家乐秘诀| 百家乐官网新送彩金| 石首市| 大发888bocai官方下载| 七胜百家乐娱乐平台| 百家乐有没有稳赢| 赌王百家乐官网的玩法技巧和规则 | 幸运水果机游戏下载| 免费玩百家乐的玩法技巧和规则| 风水做生意店铺的门| 百家乐官网赌场策略论坛| 百家乐官网游戏合法吗| 优博注册| 百家乐官网开户首选| 百家乐官网游戏机子| 优博国际娱乐城| 皇冠娱乐网| 大发888娱乐城下载地址| 威尼斯人娱乐城怎么赢| 百家乐英皇赌场娱乐网规则| 百家乐永利娱乐网| 百家乐高手论| 免费玩百家乐的玩法技巧和规则| 水果机遥控器多少钱| 速博网上娱乐| 99真人娱乐城| 柘荣县| 礼泉县| 葡京百家乐官网玩法| 四川省| 免费下百家乐官网赌博软件| 百家乐官网注码投注论坛| 济阳县| 百家乐官网真钱斗地主| 奇迹百家乐官网的玩法技巧和规则 | 百家乐官网投注办法| 百家乐官网真人视屏游戏| 百家乐官网香港六合彩| 百家乐高人玩法|