偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Bearpi-HM-Micro開機自啟動程序

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

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

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

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

1、前言

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

2、開發(fā)例程

(1)準備工作

找到啟動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開機自啟動程序-開源基礎(chǔ)軟件社區(qū)

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

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

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

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


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

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

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

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

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

詳細的配置如下:

{
"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進程通過讀取/etc/init.cfg,根據(jù)配置執(zhí)行指定命令,或啟動指定進程。

添加的代碼有:

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

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

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

3、效果

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

4、總結(jié)

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

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

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

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

責任編輯: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開機自啟

2013-11-19 13:31:16

遠程控制軟件

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開機自啟動

2010-02-03 09:47:34

Linux smb服務(wù)

2016-09-23 15:50:25

Windows 7VirtualBox虛擬機

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開機啟動

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

點贊
收藏

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