一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于RV1126開發(fā)板設(shè)置快速開機(jī)自啟動(dòng)

ljx2016 ? 來源:ljx2016 ? 作者:ljx2016 ? 2025-04-17 14:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 簡(jiǎn)要介紹:

用戶想要在S99_userapp調(diào)用之前就啟動(dòng)應(yīng)用程序,可以通過systemd方案實(shí)現(xiàn)。

1.1 Systemd

Systemd 是一個(gè)系統(tǒng)和服務(wù)管理器,也是 Linux 操作系統(tǒng)中最常用的初始化系統(tǒng)之一。最早是為了代替?zhèn)鹘y(tǒng)的初始化系統(tǒng)(init)而開發(fā)的,相較于傳統(tǒng) init,systemd 具有支持并行啟動(dòng),【可同時(shí)啟動(dòng)多個(gè)服務(wù)】,提高系統(tǒng)啟動(dòng)速度的優(yōu)勢(shì),可以更好地管理系統(tǒng)和服務(wù)進(jìn)程。目前,許多主流 Linux 發(fā)行版都采用了 systemd 作為其默認(rèn)的初始化系統(tǒng),包括 Ubuntu、Debian、Fedora、CentOS、Arch Linux 等。

1.2 服務(wù)單元文件

Systemd通過【服務(wù)單元文件】進(jìn)行開機(jī)啟動(dòng)管理?!痉?wù)單元文件】指的是在 /etc/systemd/system 目錄中以“.service”后綴的結(jié)尾的文件。

2. 操作指導(dǎo):

2.1 配置開機(jī)啟動(dòng)服務(wù)

建立adb連接(不清楚如何操作,可參考《入門指南/開發(fā)板調(diào)試方式介紹》中的1.ADB調(diào)試)

執(zhí)行命令,切換到板卡環(huán)境:

adb shell

wKgZO2gAmd-AE8W4AAAqiCgwz14471.png

首先我們?cè)?/etc/systemd/system/ 創(chuàng)建一個(gè)自己的【服務(wù)單元文件(Systemd Service)】:myservice.service。

cd /etc/systemd/system/ vim myservice.service

wKgZPGgAmeCAVDt2AAC4N96OmsE071.png

注意:Systemd Service 既可位于 /etc/systemd/system(供系統(tǒng)管理員和用戶使用),也可以位于/usr/lib/systemd/system(供發(fā)行版打包者使用),我們一般使用前者即可。

【服務(wù)單元文件】腳本文件以 .service 結(jié)尾,由 Unit、Service 和 Install 三個(gè)區(qū)塊組成,以下為 service 文件腳本樣例:

wKgZO2gAmeCALOOGAABnXsLlWz0758.png

注意:ExecStart為指定啟動(dòng)單元的命令或者腳本,是配置文件里面最重要的字段,下面來演示如何創(chuàng)建并編輯腳本。

2.2 創(chuàng)建并編輯腳本

創(chuàng)建一個(gè)可執(zhí)行的腳本用于啟動(dòng)Service進(jìn)程,用戶可根據(jù)需求向腳本寫入需要執(zhí)行的可執(zhí)行文件,此處的腳本僅服務(wù)于演示需要。

執(zhí)行命令,先定位到/userdata目錄:

cd /userdata

然后通過vim命令,可以創(chuàng)建start.sh腳本進(jìn)行編輯:

touchstart.sh chmod755start.sh vimstart.sh

wKgZPGgAmeCAXvGCAAAawRKQ44g562.png

注意:這里簡(jiǎn)單地通過編譯hellonano.c生成了hellonano可執(zhí)行文件,僅為在此進(jìn)行說明演示。用戶需根據(jù)自己需求向腳本寫入需要執(zhí)行的可執(zhí)行文件。

2.3 驗(yàn)證開機(jī)啟動(dòng):

在創(chuàng)建或修改任何【服務(wù)單元文件】后,我們必須讓 systemd 知道有新的【服務(wù)單元文件被創(chuàng)建】或者【服務(wù)單元文件被修改】,可通過下方命令讓systemd執(zhí)行查找與同步:

systemctl daemon-reload

此時(shí),我們新的【服務(wù)單元文件】應(yīng)該已經(jīng)被識(shí)別,我們可通過下方命令啟動(dòng)它:

systemctl start myservice.service

最后,告訴 systemd 使能新的【服務(wù)單元文件】,以便每次開機(jī)啟動(dòng)時(shí)它都會(huì)啟動(dòng):

systemctl enable myservice.service

注意:您不會(huì)從此命令中獲得反饋,因?yàn)樗龅闹皇窍?systemd 發(fā)送一條消息,告訴它啟動(dòng)您的服務(wù)。您鍵入的命令不會(huì)停留以查看接下來會(huì)發(fā)生什么。

我們可以用以下命令來檢查我們的服務(wù),確保它看起來沒問題

systemctl status myservice.service

wKgZPGgAmeCAe5LsAACIRuU-KP8941.png

Loaded行:配置文件的位置,是否設(shè)為開機(jī)啟動(dòng)
Active行:表示正在運(yùn)行
Main PID行:主進(jìn)程ID
CGroup塊:應(yīng)用的所有子進(jìn)程
日志塊:應(yīng)用的日志

下面我們進(jìn)行軟件重啟,在adb shell環(huán)境下輸入重啟命令

reboot

進(jìn)入板卡環(huán)境

adb shell

最終程序運(yùn)行后,可在ps -x進(jìn)程列表中看到進(jìn)程在啟動(dòng)運(yùn)行

ps -x

wKgZO2gAmeGABn-uAAGYvlvzOQM043.png

注意:要在該程序源代碼中加入死循環(huán),否則無法看到該程序正在運(yùn)行

3. 詳細(xì)說明:

wKgZPGgAmeGAeiBbAABnXsLlWz0392.png

3.1 [Unit] 啟動(dòng)順序與依賴關(guān)系

定義控制單元 [Unit]

所有引導(dǎo)過程中 Systemd 要控制的東西都是一個(gè)單元?;镜挠梅ㄈ缦拢?/p>

Description:代表整個(gè)單元的描述,可根據(jù)需要簡(jiǎn)單填寫。

Environment:環(huán)境變量或參數(shù)(系統(tǒng)環(huán)境變量此時(shí)無法使用)

After:描述服務(wù)類別,表示本服務(wù)需要在某服個(gè)務(wù)(*.service)或多個(gè)服務(wù)啟動(dòng)后再啟動(dòng),也可以表示需要在某個(gè)服務(wù)組(*.target)啟動(dòng)后再啟動(dòng)。

Before:表示本服務(wù)需要在某些服務(wù)啟動(dòng)之前啟動(dòng),通常不建議使用此配置,因?yàn)楹竺娴姆?wù)有可能會(huì)被本服務(wù)阻塞。

Defaultdependencies=no 可以禁止默認(rèn)依賴的注入,是為了【減少錯(cuò)誤】 和 【減少單元配置文件的體量】。

Wants:本單元啟動(dòng)了,它“想要”的單元也會(huì)被啟動(dòng)。但是這個(gè)單元若啟動(dòng)不成功,對(duì)本單元沒有影響。

Requires: 這個(gè)設(shè)定并不能控制啟動(dòng)順序,它表示"強(qiáng)依賴"關(guān)系,即如果該服務(wù)啟動(dòng)失敗或異常退出,則本單元也無法啟動(dòng),所以不建議使用這個(gè)字段。

OnFailure:若本單元啟動(dòng)失敗了,那么啟動(dòng)這個(gè)單元作為折衷。

3.2 [Service] 啟動(dòng)行為

定義服務(wù)本體 [service]

在定義完了 Systemd 用來識(shí)別服務(wù)的單元后,我們來定義服務(wù)本體。基本的用法如下:

Type:服務(wù)的類型,各種類型的區(qū)別如下所示

simple:默認(rèn),這是最簡(jiǎn)單的服務(wù)類型。ExecStart字段啟動(dòng)的進(jìn)程為主進(jìn)程

forking:ExecStart 字段將以 fork() 方式啟動(dòng),此時(shí)父進(jìn)程將會(huì)退出,子進(jìn)程將成為主進(jìn)程(例如用 shell 腳本啟動(dòng)服務(wù)進(jìn)程)。

oneshot:適用于那些被一次性執(zhí)行的任務(wù)或者命令,它運(yùn)行完成后便了無痕跡。類似于simple,但只執(zhí)行一次,Systemd 會(huì)等它執(zhí)行完,才啟動(dòng)其他服務(wù)。

dbus:這個(gè)程序啟動(dòng)時(shí)需要獲取一塊 DBus 空間,所以需要和 BusName= 一起用。只有它成功獲得了 DBus 空間,依賴它的程序才會(huì)被啟動(dòng)。

ExecStart:在輸入的命令是start時(shí)候執(zhí)行的命令,這里的命令啟動(dòng)的程序必須使用絕對(duì)路徑,比如你必須用/sbin/arp而不能簡(jiǎn)單的以環(huán)境變量直接使用arp。

ExecStop:在輸入的命令是stop時(shí)候執(zhí)行的命令,要求同上。

ExecReload:這個(gè)不是必需,如果不寫則你的service就不支持restart命令。ExecStart和ExecStop是必須要有的。

3.3 [Install] 安裝服務(wù)

安裝服務(wù) [install]

服務(wù)編寫完之后還需要被systemd裝載,定義安裝單元各個(gè)字段如下:

WantedBy:設(shè)置服務(wù)被誰裝載,一般設(shè)置為multi-user.target

執(zhí)行以下命令可查看multi-user.target所包含的所有服務(wù)

systemctl list-dependencies multi-user.target

wKgZO2gAmeGAKkJUAADraXw8dXU356.png

3.4關(guān)于TARGET

Target 的含義是【服務(wù)組】,如 WantedBy=multi-user.target 指的是該服務(wù)所屬于 multi-user.target。當(dāng)執(zhí)行以下命令時(shí),xxx.service 的符號(hào)鏈接就會(huì)被創(chuàng)建在 /etc/systemd/system/multi-user.target 目錄下。

systemctl enable xxx.service

可以通過以下命令查看系統(tǒng)默認(rèn)啟動(dòng)的 target

systemctl get-default

一般為 multi-user 或者是 graphical。因此配置好相應(yīng)的 WantedBy 字段,可以實(shí)現(xiàn)服務(wù)的開機(jī)啟動(dòng)。

注意:常用的 Target 有兩個(gè):一個(gè)是multi-user.target,表示多用戶命令行狀態(tài);另一個(gè)是graphical.target,表示圖形用戶狀態(tài),它依賴于multi-user.target。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5620

    瀏覽量

    103507
  • rv1126
    +關(guān)注

    關(guān)注

    0

    文章

    106

    瀏覽量

    3444
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于RV1126開發(fā)板實(shí)現(xiàn)人臉檢測(cè)方案

    RV1126開發(fā)板上實(shí)現(xiàn)人臉檢測(cè):在圖像中找出人臉,以及每張人臉的landmarks位置。 方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像, 算法代碼負(fù)責(zé)人臉檢測(cè)功能。
    的頭像 發(fā)表于 04-21 17:59 ?392次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b>實(shí)現(xiàn)人臉檢測(cè)方案

    基于RV1126開發(fā)板實(shí)現(xiàn)人臉檢測(cè)方案

    RV1126開發(fā)板上實(shí)現(xiàn)人臉檢測(cè):在圖像中找出人臉,以及每張人臉的landmarks位置。 方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像, 算法代碼負(fù)責(zé)人臉檢測(cè)功能。
    的頭像 發(fā)表于 04-21 14:00 ?13次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b>實(shí)現(xiàn)人臉檢測(cè)方案

    基于RV1126開發(fā)板實(shí)現(xiàn)人臉檢測(cè)方案

    RV1126開發(fā)板上實(shí)現(xiàn)人臉檢測(cè):在圖像中找出人臉,以及每張人臉的landmarks位置。 方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像, 算法代碼負(fù)責(zé)人臉檢測(cè)功能。
    的頭像 發(fā)表于 04-21 10:21 ?99次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b>實(shí)現(xiàn)人臉檢測(cè)方案

    基于RV1126開發(fā)板實(shí)現(xiàn)駕駛員行為檢測(cè)方案

    RV1126開發(fā)板上實(shí)現(xiàn)駕駛員行為檢測(cè):通過圖像識(shí)別出這幾種行為:打電話、抽煙、疲勞駕駛。
    的頭像 發(fā)表于 04-18 17:47 ?354次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b>實(shí)現(xiàn)駕駛員行為檢測(cè)方案

    基于RV1126開發(fā)板實(shí)現(xiàn)人員檢測(cè)方案

    RV1126開發(fā)板實(shí)現(xiàn)人員檢測(cè):在圖像中找出人。 方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,算法代碼負(fù)責(zé)人員檢測(cè)功能。
    的頭像 發(fā)表于 04-18 17:14 ?220次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b>實(shí)現(xiàn)人員檢測(cè)方案

    基于RV1126開發(fā)板設(shè)置應(yīng)用開機(jī)自啟動(dòng)

    用戶根據(jù)對(duì)自身項(xiàng)目程序的管理需求,進(jìn)行自帶或者自定義應(yīng)用開機(jī)自啟動(dòng)的創(chuàng)建與編輯。
    的頭像 發(fā)表于 04-17 13:49 ?262次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>設(shè)置</b>應(yīng)用<b class='flag-5'>開機(jī)</b><b class='flag-5'>自啟動(dòng)</b>

    基于RV1126開發(fā)板的音頻硬件電路設(shè)計(jì)

    ? ? ? ?核心自帶音頻輸入輸出功能,無需外接音頻編解碼芯片,節(jié)省成本與空間。核心核上的PMIC RK809-2芯片內(nèi)部集成高性能音頻Codec,RV1126通過I2S1接口和RK809-2
    的頭像 發(fā)表于 04-17 09:31 ?269次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b>的音頻硬件電路設(shè)計(jì)

    基于RV1126開發(fā)板的按鍵測(cè)試方法與例程

    RV1126開發(fā)板的按鍵測(cè)試方法與例程詳細(xì)描述
    的頭像 發(fā)表于 04-15 17:03 ?308次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b>的按鍵測(cè)試方法與例程

    基于RV1126開發(fā)板網(wǎng)絡(luò)配置方法

    RV1126開發(fā)板網(wǎng)絡(luò)硬件資源有:以太網(wǎng)、WiFi,采用的網(wǎng)絡(luò)配置方案是:Netplan。 ? ? ? ?Netplan是一個(gè)用于配置Linux網(wǎng)絡(luò)的簡(jiǎn)單工具。用戶只需要一個(gè)yaml格式的文件去
    的頭像 發(fā)表于 04-15 14:57 ?298次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b>網(wǎng)絡(luò)配置方法

    基于RV1126開發(fā)板的人員檢測(cè)算法開發(fā)

    RV1126開發(fā)人員檢測(cè)AI算法組件
    的頭像 發(fā)表于 04-14 13:56 ?282次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b>的人員檢測(cè)算法<b class='flag-5'>開發(fā)</b>

    基于RV1126開發(fā)板的人臉檢測(cè)算法開發(fā)

    RV1126開發(fā)人臉檢測(cè)算法組件
    的頭像 發(fā)表于 04-14 10:19 ?289次閱讀
    基于<b class='flag-5'>RV1126</b><b class='flag-5'>開發(fā)板</b>的人臉檢測(cè)算法<b class='flag-5'>開發(fā)</b>

    RV1126 實(shí)現(xiàn)人臉檢測(cè)方案

    基于RV1126開發(fā)板實(shí)現(xiàn)人臉檢測(cè)方案,充分體現(xiàn)了電子方面的實(shí)踐經(jīng)驗(yàn)和目標(biāo)檢測(cè)技術(shù)。
    的頭像 發(fā)表于 04-14 09:25 ?210次閱讀
    <b class='flag-5'>RV1126</b> 實(shí)現(xiàn)人臉檢測(cè)方案

    RV1126 實(shí)現(xiàn)簡(jiǎn)單的UI開發(fā)示例

    RV1126上實(shí)現(xiàn)簡(jiǎn)單的UI開發(fā)實(shí)例
    的頭像 發(fā)表于 04-09 16:08 ?350次閱讀
    <b class='flag-5'>RV1126</b> 實(shí)現(xiàn)簡(jiǎn)單的UI<b class='flag-5'>開發(fā)</b>示例

    RV1126核心特性概述

    ,結(jié)合RISC-V MCU,為用戶提供了卓越的計(jì)算性能和高效的指令處理能力。這種雙架構(gòu)的融合,使得RV1126在處理復(fù)雜任務(wù)和實(shí)時(shí)響應(yīng)方面表現(xiàn)出色。 二、快速啟動(dòng)能力 得益于其優(yōu)化的啟動(dòng)
    的頭像 發(fā)表于 02-08 16:56 ?1478次閱讀

    基于迅為RK3568開發(fā)板全國產(chǎn)平臺(tái),快速實(shí)現(xiàn)APP開機(jī)自啟動(dòng)技術(shù)分享

    基于迅為RK3568開發(fā)板全國產(chǎn)平臺(tái),快速實(shí)現(xiàn)APP開機(jī)自啟動(dòng)技術(shù)分享
    的頭像 發(fā)表于 11-21 13:58 ?886次閱讀
    基于迅為RK3568<b class='flag-5'>開發(fā)板</b>全國產(chǎn)平臺(tái),<b class='flag-5'>快速</b>實(shí)現(xiàn)APP<b class='flag-5'>開機(jī)</b><b class='flag-5'>自啟動(dòng)</b>技術(shù)分享