Bearpi-HM-Micro開機(jī)自啟動(dòng)程序
??想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:??
1、前言
項(xiàng)目開發(fā)需要聯(lián)網(wǎng)傳輸數(shù)據(jù),每次開機(jī)都要事先運(yùn)行WiFi程序。于是想辦法能不能板子開機(jī)的時(shí)候就能自動(dòng)啟動(dòng)運(yùn)行WiFi程序,不需要每次都命令行輸入。
2、開發(fā)例程
(1)準(zhǔn)備工作
找到啟動(dòng)WiFi的程序,文件目錄:/home/nebula/bearpi/bearpi-hm_micro_small/applications/BearPi/BearPi-HM_Micro/samples/communication/wpa_supplicant/src/wpa_sample.c。
以下代碼為主函數(shù)代碼:
依照官方執(zhí)行WiFi程序的命令./bin/wpa_supplicant -i wlan0 -d -c /etc/wpa_supplicant.conf,把程序?qū)懰?/p>
特別注意:經(jīng)過后期的教訓(xùn)終結(jié),一定要 sleep(30),等待開發(fā)板初始化網(wǎng)卡才能連接。
(2)查找資料&確定方向
??干貨!openharmony L1級(jí)開機(jī)啟動(dòng)項(xiàng)服務(wù)設(shè)置??從啟動(dòng)日志簡(jiǎn)單梳理Openharmony啟動(dòng)流程。
雖然沒有找到完全適合Micro的,但都是OpenHarmony的架構(gòu),大同小異。
可以發(fā)現(xiàn)配置開機(jī)啟動(dòng)項(xiàng)是在代碼根目錄下的vender(內(nèi)核)文件夾里配置的。找到含有類似init_config.cfg.的文件名。
具體在Bearpi-Micro的詳細(xì)地址如下:vendor/bearpi/bearpi_hm_micro/init_configs/。
好了,問題來了,這兩個(gè)除了名字不一樣,內(nèi)容一模一樣的文件到底該改哪一個(gè)?
經(jīng)過大量的試錯(cuò)(修改了八九次)發(fā)現(xiàn)只能修改init_bearpi_hm_micro.cfg這個(gè)文件。
詳細(xì)的配置如下:
在OpenHarmony 中init進(jìn)程通過讀取/etc/init.cfg,根據(jù)配置執(zhí)行指定命令,或啟動(dòng)指定進(jìn)程。
添加的代碼有:
Init配置文件基于JSON格式,用來配置系統(tǒng)啟動(dòng)時(shí)必要的命令和服務(wù)。Init在系統(tǒng)啟動(dòng)時(shí)解析配置文件,并根據(jù)配置文件執(zhí)行對(duì)應(yīng)的命令,啟動(dòng)相應(yīng)的服務(wù)。
3、效果
4、總結(jié)
看似簡(jiǎn)單,實(shí)則配置文件的格式要求十分十分嚴(yán)謹(jǐn),多一個(gè)逗號(hào)不行,少一個(gè)逗號(hào)也不行!??!
都是在不斷的試錯(cuò)、嘗試中總結(jié)的經(jīng)驗(yàn)。
其實(shí)在OpenHarmony設(shè)備開發(fā)的官方文檔???引導(dǎo)啟動(dòng)配置文件???中也有說到:
cfg文件是嚴(yán)格按照J(rèn)SON格式編寫的,當(dāng)添加服務(wù)或命令未生效時(shí),可以優(yōu)先排查添加內(nèi)容的格式是否正確/(ㄒoㄒ)/~~。