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

OpenHarmony富設(shè)備移植指南(二)—從postmarketOS獲取移植資源

系統(tǒng) OpenHarmony
我們需要通過刷入postmarketOS進(jìn)行確認(rèn)手機(jī)是否可以啟動(dòng)第三方系統(tǒng),從中獲取引導(dǎo)啟動(dòng)的相關(guān)信息以及文件,并仿照postmarketOS的引導(dǎo)鏡像創(chuàng)建我們自己的引導(dǎo)鏡像。

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

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

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

開篇引言

安卓設(shè)備的引導(dǎo)需要boot.img鏡像,其中含有內(nèi)核鏡像,設(shè)備樹,boot配置文件,initrd.img根文件系統(tǒng)鏡像,開發(fā)板因?yàn)槭情_發(fā)用途,系統(tǒng)引導(dǎo)基本沒有限制,而成品安卓手機(jī)往往有各種限制,我們需要通過刷入postmarketOS進(jìn)行確認(rèn)手機(jī)是否可以啟動(dòng)第三方系統(tǒng),從中獲取引導(dǎo)啟動(dòng)的相關(guān)信息以及文件,并仿照postmarketOS的引導(dǎo)鏡像創(chuàng)建我們自己的引導(dǎo)鏡像。

1、準(zhǔn)備postmarketOS編譯環(huán)境

參照pmbootstrap - postmarketOS 中的 Installation -- From git 準(zhǔn)備編譯環(huán)境

$ git clone https://git.sr.ht/~postmarketos/pmbootstrap
$ mkdir -p ~/.local/bin
$ ln -s "$PWD/pmbootstrap/pmbootstrap.py" ~/.local/bin/pmbootstrap
$ pmbootstrap --version

2、執(zhí)行初始化

pmbootstrap init1.

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

或者替換使用鏡像源,不然會(huì)有網(wǎng)絡(luò)問題,需要替換兩個(gè)鏡像源地址,postmarketOS鏡像,和Alpine Linux鏡像。

使用以下命令設(shè)置設(shè)置成清華源進(jìn)行初始化,也可以根據(jù)鏡像源列表找自己喜歡的設(shè)置。

pmbootstrap --mirror-pmOS https://mirrors.tuna.tsinghua.edu.cn/postmarketOS/ 
--mirror-alpine https://mirrors.tuna.tsinghua.edu.cn/alpine/ 1.

postmarketOS鏡像源列表:postmarketOS // Official postmarketOS Mirrors。

Alpine Linux鏡像源列表:Mirror health (alpinelinux.org)。

3、編譯安卓格式的刷機(jī)包

pmbootstrap install --android-recovery-zip1.

編譯時(shí)間會(huì)比較長(zhǎng),中間會(huì)提示創(chuàng)建進(jìn)入手機(jī)系統(tǒng)的新密碼。

如果中途出現(xiàn)錯(cuò)誤,可以重試幾次,仍然不行的話刪除整個(gè)work目錄,重新執(zhí)行初始化再編譯刷機(jī)包,最終結(jié)果如下:

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

4、導(dǎo)出刷機(jī)包

pmbootstrap export1.

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

執(zhí)行以下命令找到刷機(jī)包位置。

cd $(dirname $(readlink /tmp/postmarketOS-export/pmos-*.zip))1.

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

至此拿到刷機(jī)包。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

查找資料的時(shí)候有參考這篇文章的方案二部分,在此貼出。

手機(jī)運(yùn)行Docker: 從修改內(nèi)核到刷入原生Linux | yzddMr6's Blog。

5、刷入手機(jī)驗(yàn)證并獲取芯片控制器名稱

音量上+電源開機(jī)進(jìn)入twrp(twrp的安裝是搞機(jī)必備,網(wǎng)上教程很多,在此不再重復(fù))。

小米(Mi) 6小米(Mi) 6 手機(jī)刷 TWRP 方法,刷三方Recovery方法(解決卡米問題)刷機(jī)解鎖 (onfix.cn)。

點(diǎn)擊安裝:

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

點(diǎn)擊刷機(jī)包:

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

確認(rèn)刷入:

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

刷機(jī)會(huì)出現(xiàn)錯(cuò)誤,不用管。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

刷完重啟,等待一段時(shí)間直到顯示welcome信息。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

輸入用戶名:user,密碼:自己之前設(shè)置的,進(jìn)入系統(tǒng)。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

至此確認(rèn)手機(jī)正常運(yùn)行Linux系統(tǒng),顯示,觸摸等正常工作。

6、解包獲取移植需要的資料

解包獲取的資料:

bootimg.cfg:boot分區(qū)配置信息,內(nèi)核啟動(dòng)參數(shù)。

config:默認(rèn)內(nèi)核編譯配置,后續(xù)適配內(nèi)核在此基礎(chǔ)進(jìn)行變更。

firmware:啟動(dòng)加載必須的驅(qū)動(dòng)固件文件。

右鍵解壓縮pmos-xiaomi-sagit.zip得到pmos-xiaomi-sagit。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

同樣使用右鍵解壓縮rootfs.tar.gz得到rootfs,在rootfs/boot文件夾拿到boot.img和內(nèi)核編譯的config配置。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

安裝安卓boot打包解包工具:

sudo apt update
sudo apt install abootimg1.2.

把boot.img復(fù)制到任意的文件夾,然后使用以下命令解包:

abootimg -x boot.img1.

得到boot分區(qū)配置bootimg.cfg。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

查看initrd.img文件格式為gzip壓縮文件。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

使用gzip解壓,發(fā)現(xiàn)解壓失敗,原因?yàn)楹缶Y名不支持,我們使用mv命令復(fù)制initrd.img為initrd.img.gz,然后使用解壓命令就可以成功解壓了,解壓后原來的initrd.img會(huì)被解壓出的文件替換掉,這時(shí)initrd.img的格式為cpio鏡像文件。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

使用cpio解壓initrd.img鏡像。

cpio -idmv < initrd.img1.

得到我們需要的boot階段所必須的固件firmware,后面要編譯進(jìn)OH的ramdisk鏡像中。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

7、獲取正常啟動(dòng)的log

參考上面手機(jī)運(yùn)行docker那篇文章,用usb連接電腦,設(shè)置好驅(qū)動(dòng)。

打開命令提示符,使用ssh連接Linux,ip是固定的172.16.42.1。

ssh user@172.16.42.11.

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

輸入dmesg打印輸出內(nèi)核log,這個(gè)是正常的內(nèi)核啟動(dòng)log,復(fù)制下來保存好以便移植時(shí)啟動(dòng)出錯(cuò)或者驅(qū)動(dòng)有問題時(shí)方便進(jìn)行對(duì)照。

dmesg1.

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

8、獲取設(shè)備名,分區(qū)信息

連接Linux,輸入以下命令獲取信息。

獲取USB控制器名稱,后面移植hdc連接程序會(huì)用到。

ls /sys/class/udc/
a800000.usb1.2.

獲取存儲(chǔ)控制器名稱,后面配置分區(qū)會(huì)用到。

ls /sys/devices/platform/soc1.

暫時(shí)判斷1da4000.ufshc為存儲(chǔ)控制器名稱。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

重啟,進(jìn)入twrp,輸入以下命令進(jìn)入recovery的shell。

adb shell1.

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

輸入以下命令可以交叉確認(rèn)1da4000.ufshc為存儲(chǔ)控制器名稱。

ls dev/block/platform/soc/1.

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

獲取分區(qū)信息。

ls -al /dev/block/platform/soc/1da4000.ufshc/by-name/1.

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

手機(jī)上勾選掛載vendor分區(qū)。

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

df -h1.

OpenHarmony富設(shè)備移植指南(2)從postmarketOS獲取移植資源-開源基礎(chǔ)軟件社區(qū)

確認(rèn)vendor分區(qū)對(duì)應(yīng)到sde42 -> cust。

system分區(qū)因?yàn)榘惭bpmOS的緣故無法掛載,但是可以確定分區(qū)映射關(guān)系是,

/dev/block/platform/soc/1da4000.ufshc/by-name/cust ---> sde42 ---> vendor

/dev/block/platform/soc/1da4000.ufshc/by-name/system ---> sde43 ---> system

/dev/block/platform/soc/1da4000.ufshc/by-name/userdata ---> sda17 ---> data

至此移植需要提前準(zhǔn)備的信息基本講完,下篇開始講解OpenHarmony編譯的部分,敬請(qǐng)期待。

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

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

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

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

2023-03-06 16:11:00

設(shè)備移植開源GPU驅(qū)動(dòng)

2023-03-10 09:47:45

OpenGL渲染設(shè)備移植

2023-03-23 16:02:07

樹莓派4GPU調(diào)試

2023-02-28 15:40:16

鴻蒙CPU渲染

2023-04-06 09:10:13

設(shè)備移植鴻蒙

2023-02-07 15:52:50

2023-02-14 17:06:31

設(shè)備移植打包刷機(jī)

2023-05-05 16:05:26

設(shè)備內(nèi)核移植鴻蒙

2023-02-08 15:46:50

設(shè)備移植第三方內(nèi)核適配

2023-05-16 14:49:25

鴻蒙內(nèi)核移植

2022-04-15 14:31:02

鴻蒙操作系統(tǒng)

2022-09-07 15:08:58

操作系統(tǒng)鴻蒙

2021-09-08 15:23:51

鴻蒙HarmonyOS應(yīng)用

2022-02-09 19:45:41

MQTTOpenHarmon鴻蒙

2022-06-21 11:30:22

littleVGL鴻蒙

2021-10-14 15:48:28

鴻蒙HarmonyOS應(yīng)用

2022-06-09 14:40:14

系統(tǒng)移植鴻蒙

2010-07-23 16:08:38

OPhone平臺(tái)

2021-12-29 16:11:11

鴻蒙HarmonyOS應(yīng)用

2011-09-05 09:28:58

MySQLMongoDB
點(diǎn)贊
收藏

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