成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Bearpi-HM-Micro開機(jī)自啟動程序

系統(tǒng) OpenHarmony
項(xiàng)目開發(fā)需要聯(lián)網(wǎng)傳輸數(shù)據(jù),每次開機(jī)都要事先運(yùn)行WiFi程序。于是想辦法能不能板子開機(jī)的時候就能自動啟動運(yùn)行WiFi程序,不需要每次都命令行輸入。

??想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

1、前言

項(xiàng)目開發(fā)需要聯(lián)網(wǎng)傳輸數(shù)據(jù),每次開機(jī)都要事先運(yùn)行WiFi程序。于是想辦法能不能板子開機(jī)的時候就能自動啟動運(yùn)行WiFi程序,不需要每次都命令行輸入。

2、開發(fā)例程

(1)準(zhǔn)備工作

找到啟動WiFi的程序,文件目錄:/home/nebula/bearpi/bearpi-hm_micro_small/applications/BearPi/BearPi-HM_Micro/samples/communication/wpa_supplicant/src/wpa_sample.c。

以下代碼為主函數(shù)代碼:

int main(int argc, char *argv[])
{
printf("------------------------\n");
printf("------------------------\n");
printf("------------------------\n");
printf("--------test------------\n");
printf("------------------------\n");
printf("------------------------\n");
printf("------------------------\n");

g_wpaArgc = argc;
for (int i = 0; i < g_wpaArgc; i++)
{
g_wpaArg[i] = argv[i];
}
sleep(30);
g_wpaArgc = 5;
g_wpaArg[0] = "-i";
g_wpaArg[1] = "wlan0";
g_wpaArg[2] = "-d";
g_wpaArg[3] = "-c";
g_wpaArg[4] = "/etc/wpa_supplicant.conf";

int ret = pthread_create(&g_wpaThread, NULL, ThreadMain, NULL);
if (ret != 0)
{
printf("[WpaSample]create thread failed error:%s.\n", strerror(ret));
return 1;
}
pthread_join(g_wpaThread, NULL);
return 0;
}

依照官方執(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)卡才能連接。

【FFH】Bearpi-HM-Micro開機(jī)自啟動程序-開源基礎(chǔ)軟件社區(qū)

(2)查找資料&確定方向

??干貨!openharmony L1級開機(jī)啟動項(xiàng)服務(wù)設(shè)置??從啟動日志簡單梳理Openharmony啟動流程。

雖然沒有找到完全適合Micro的,但都是OpenHarmony的架構(gòu),大同小異。

【FFH】Bearpi-HM-Micro開機(jī)自啟動程序-開源基礎(chǔ)軟件社區(qū)


可以發(fā)現(xiàn)配置開機(jī)啟動項(xiàng)是在代碼根目錄下的vender(內(nèi)核)文件夾里配置的。找到含有類似init_config.cfg.的文件名。

具體在Bearpi-Micro的詳細(xì)地址如下:vendor/bearpi/bearpi_hm_micro/init_configs/。

【FFH】Bearpi-HM-Micro開機(jī)自啟動程序-開源基礎(chǔ)軟件社區(qū)

好了,問題來了,這兩個除了名字不一樣,內(nèi)容一模一樣的文件到底該改哪一個?

經(jīng)過大量的試錯(修改了八九次)發(fā)現(xiàn)只能修改init_bearpi_hm_micro.cfg這個文件。

詳細(xì)的配置如下:

{
"jobs" : [{
"name" : "pre-init",
"cmds" : [
"mkdir /storage/data/log",
"chmod 0755 /storage/data/log",
"chmod 0777 /dev/hdf",
"chown 4 4 /storage/data/log",
"mkdir /storage/data/softbus",
"mkdir /sdcard",
"chmod 0777 /sdcard",
"start foundation",
"start bundle_daemon",
"start appspawn",
"start wms_server",
"start shell"
]
}, {
"name" : "init",
"cmds" : [
"start apphilogcat",
"start wpa_supplicant"
]
}, {
"name" : "post-init",
"cmds" : [
"chown 0 99 /dev/hdf",
"chown 0 99 /dev/hdf/dev_mgr",
"chown 0 99 /dev/hdf/hdfwifi",
"chown 0 99 /dev/gpio",
"chown 0 99 /dev/i2c-0",
"chown 0 99 /dev/i2c-1",
"chown 0 99 /dev/i2c-2",
"chown 0 99 /dev/i2c-3",
"chown 0 99 /dev/i2c-4",
"chown 0 99 /dev/i2c-5",
"chown 0 99 /dev/i2c-6",
"chown 0 99 /dev/i2c-7",
"chown 0 99 /dev/uartdev-0",
"chown 0 99 /dev/uartdev-1",
"chown 0 99 /dev/uartdev-2",
"chown 0 99 /dev/uartdev-3",
"chown 0 99 /dev/spidev0.0",
"chown 0 99 /dev/spidev1.0",
"chown 0 99 /dev/spidev2.0",
"chown 0 99 /dev/spidev2.1"
]
}
],
"services" : [{
"name" : "foundation",
"path" : ["/bin/foundation"],
"uid" : 7,
"gid" : 7,
"once" : 0,
"importance" : 1,
"caps" : [10, 11, 12, 13]
}, {
"name" : "shell",
"path" : ["/bin/shell"],
"uid" : 2,
"gid" : 2,
"once" : 0,
"importance" : 0,
"caps" : [4294967295]
}, {
"name" : "appspawn",
"path" : ["/bin/appspawn"],
"uid" : 1,
"gid" : 1,
"once" : 0,
"importance" : 0,
"caps" : [2, 6, 7, 8, 11, 23]
}, {
"name" : "apphilogcat",
"path" : ["/bin/apphilogcat", "-L", "auto"],
"uid" : 4,
"gid" : 4,
"once" : 1,
"importance" : 0,
"caps" : []
}, {
"name" : "wpa_supplicant",
"path" : ["/bin/wpa_supplicant","-i","wlan0","-d","-c","/etc/wpa_supplicant.conf"],
"uid" : 8,
"gid" : 8,
"once" : 0,
"importance" : 0,
"caps" : [0,1]
},{
"name" : "wms_server",
"path" : ["/bin/wms_server"],
"uid" : 0,
"gid" : 0,
"once" : 1,
"importance" : 0,
"caps" : []
}, {
"name" : "bundle_daemon",
"path" : ["/bin/bundle_daemon"],
"uid" : 8,
"gid" : 8,
"once" : 0,
"importance" : 0,
"caps" : [0, 1]
}
]
}

在OpenHarmony 中init進(jìn)程通過讀取/etc/init.cfg,根據(jù)配置執(zhí)行指定命令,或啟動指定進(jìn)程。

添加的代碼有:

【FFH】Bearpi-HM-Micro開機(jī)自啟動程序-開源基礎(chǔ)軟件社區(qū)

【FFH】Bearpi-HM-Micro開機(jī)自啟動程序-開源基礎(chǔ)軟件社區(qū)

Init配置文件基于JSON格式,用來配置系統(tǒng)啟動時必要的命令和服務(wù)。Init在系統(tǒng)啟動時解析配置文件,并根據(jù)配置文件執(zhí)行對應(yīng)的命令,啟動相應(yīng)的服務(wù)。

3、效果

【FFH】Bearpi-HM-Micro開機(jī)自啟動程序-開源基礎(chǔ)軟件社區(qū)

4、總結(jié)

看似簡單,實(shí)則配置文件的格式要求十分十分嚴(yán)謹(jǐn),多一個逗號不行,少一個逗號也不行!!!
都是在不斷的試錯、嘗試中總結(jié)的經(jīng)驗(yàn)。
其實(shí)在OpenHarmony設(shè)備開發(fā)的官方文檔???引導(dǎo)啟動配置文件???中也有說到:
cfg文件是嚴(yán)格按照J(rèn)SON格式編寫的,當(dāng)添加服務(wù)或命令未生效時,可以優(yōu)先排查添加內(nèi)容的格式是否正確/(ㄒoㄒ)/~~。

???想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??。

責(zé)任編輯:jianghua 來源: 51CTO開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2010-01-04 10:05:18

linux掛載windows

2022-11-04 15:10:31

JS應(yīng)用LED燈

2010-01-27 18:00:57

Android開機(jī)自啟

2013-11-19 13:31:16

遠(yuǎn)程控制軟件

2021-08-06 22:41:53

Windows微軟自啟動

2021-08-06 12:47:22

Windows 10Windows微軟

2015-10-28 17:21:37

Oracle11glinux自啟動

2018-03-02 13:28:19

Linux開機(jī)自啟動

2010-02-03 09:47:34

Linux smb服務(wù)

2016-09-23 15:50:25

Windows 7VirtualBox虛擬機(jī)

2023-11-13 16:28:48

微軟Windows 11

2010-02-22 18:12:25

CentOS vsft

2013-01-18 17:30:32

Linux系統(tǒng)

2017-06-23 15:01:10

2012-06-04 13:11:30

Windows 8開機(jī)啟動

2009-11-28 20:16:04

2009-11-11 10:26:02

LinuxOracle監(jiān)聽自啟動

2010-05-26 09:21:12

啟動SVN

2010-09-10 09:41:53

Android

2023-05-31 07:54:11

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成人免费网站视频 | 久久国产精品99久久久久久丝袜 | 91在线最新| 99精品一区二区三区 | 成人国产一区二区三区精品麻豆 | 亚洲手机视频在线 | 亚洲欧洲一区二区 | 午夜精品久久久久久久星辰影院 | 毛片网在线观看 | 欧美理论片在线观看 | 国产欧美日韩一区二区三区 | 高清国产午夜精品久久久久久 | 欧美日韩一区二区在线播放 | 国产一区二区在线播放视频 | 国产成人精品视频 | 电影在线 | 亚洲国产激情 | 亚洲免费福利视频 | 亚洲一级淫片 | 日韩小视频在线 | 日日干日日色 | 国产成人久久精品 | 色综合一区二区 | 亚洲精品99| 欧美a在线| 一区二区在线 | 91久久精品视频 | 一级aaaaaa毛片免费同男同女 | 在线中文字幕亚洲 | 色综合区| 男女下面一进一出网站 | 国产综合av | 激情91| 精品中文字幕一区 | 国产成人免费视频 | 国产精品a一区二区三区网址 | 国产精品视频一二三区 | 久久精品99| 国产一区二区在线免费观看 | 欧美国产亚洲一区二区 | 日韩综合一区 |