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

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

系統 OpenHarmony
項目開發需要聯網傳輸數據,每次開機都要事先運行WiFi程序。于是想辦法能不能板子開機的時候就能自動啟動運行WiFi程序,不需要每次都命令行輸入。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

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

1、前言

項目開發需要聯網傳輸數據,每次開機都要事先運行WiFi程序。于是想辦法能不能板子開機的時候就能自動啟動運行WiFi程序,不需要每次都命令行輸入。

2、開發例程

(1)準備工作

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

以下代碼為主函數代碼:

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;
}

依照官方執行WiFi程序的命令./bin/wpa_supplicant -i wlan0 -d -c /etc/wpa_supplicant.conf,把程序寫死

特別注意:經過后期的教訓終結,一定要 sleep(30),等待開發板初始化網卡才能連接。

【FFH】Bearpi-HM-Micro開機自啟動程序-開源基礎軟件社區

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

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

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

【FFH】Bearpi-HM-Micro開機自啟動程序-開源基礎軟件社區


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

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

【FFH】Bearpi-HM-Micro開機自啟動程序-開源基礎軟件社區

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

經過大量的試錯(修改了八九次)發現只能修改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,根據配置執行指定命令,或啟動指定進程。

添加的代碼有:

【FFH】Bearpi-HM-Micro開機自啟動程序-開源基礎軟件社區

【FFH】Bearpi-HM-Micro開機自啟動程序-開源基礎軟件社區

Init配置文件基于JSON格式,用來配置系統啟動時必要的命令和服務。Init在系統啟動時解析配置文件,并根據配置文件執行對應的命令,啟動相應的服務。

3、效果

【FFH】Bearpi-HM-Micro開機自啟動程序-開源基礎軟件社區

4、總結

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

???想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

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

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區
相關推薦

2010-01-04 10:05:18

linux掛載windows

2022-11-04 15:10:31

JS應用LED燈

2013-11-19 13:31:16

遠程控制軟件

2010-01-27 18:00:57

Android開機自啟

2021-08-06 12:47:22

Windows 10Windows微軟

2021-08-06 22:41:53

Windows微軟自啟動

2015-10-28 17:21:37

Oracle11glinux自啟動

2018-03-02 13:28:19

Linux開機自啟動

2010-02-03 09:47:34

Linux smb服務

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系統

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監聽自啟動

2010-05-26 09:21:12

啟動SVN

2010-09-10 09:41:53

Android

2023-05-31 07:54:11

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷久久五月天 | 成人黄色在线 | 欧美国产视频 | 国产在线观看一区二区三区 | 日韩欧美一级精品久久 | 免费在线观看av | 美女黄色在线观看 | 久久亚洲精品国产精品紫薇 | 日一区二区 | 欧美精品一区二区免费视频 | 亚洲欧美一区在线 | 精品九九 | 四虎影院新地址 | 亚洲视频欧美视频 | 国产乱码精品一区二三赶尸艳谈 | 精品久久久久久久人人人人传媒 | 亚洲成人一区 | 福利社午夜影院 | 欧美一区二区免费电影 | 中文字幕在线观看一区二区 | 久久精品一 | 国产精品s色 | 日韩电影中文字幕在线观看 | www亚洲一区 | 国产剧情一区 | 久久www免费人成看片高清 | 国产精品美女久久久久aⅴ国产馆 | 91人人澡人人爽 | 日韩精品免费 | 久久精品国产亚洲一区二区三区 | 国产伦精品一区二区三区在线 | 日日干天天干 | 亚州av | 久久99国产精品 | 中文字幕一区二区三区四区 | 激情欧美日韩一区二区 | 精品动漫一区 | 色综合久 | 国产资源在线视频 | 国产片侵犯亲女视频播放 | 日韩国产欧美一区 |