色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Purple Pi OH又開外掛!帶你搭建編譯環境及編譯Android 11固件

觸覺智能 ? 2024-05-22 08:32 ? 次閱讀

01介紹

今天的文章主題是分享與探討關于Purple Pi OH開發板Android開發之搭建編譯環境及編譯Android固件。

如果你是剛開始接觸嵌入式Linux開發,也許你會非常疑惑?

為什么同樣是ARM架構的芯片,我以前開發STM32的時候只需要在Windows里的MDK5點一點就可以了?,F在我想要使用Purple Pi OH開發板進行RK3566芯片開發,反而要使用虛擬機,要使用Linux黑乎乎的終端敲打一長串的命令,要關注內核版本、編譯工具鏈的安裝和配置、開發環境是否支持編譯等等!對比習慣了Windows開發的人員一時之間也是無法快速上手的。

因此在今天的文章中小智會跟你說為什么同樣是嵌入式開發,我們需要學習如此多的知識和做這么多的準備。

在Linux虛擬機環境中進行RK3566開發有很多原因,這里我只例舉比較重要的幾個原因:

PC虛擬機通常具有比嵌入式硬件更強的計算和內存資源,這意味著在虛擬機上編譯內核和程序可以大幅縮短編譯時間。

使用虛擬機可以確保開發環境的一致性,有助于減少因環境差異導致的問題,尤其是在團隊成員之間同步工作環境時。

通過虛擬機,可以將開發環境與主機系統隔離開來,避免對主機系統的潛在影響,如系統崩潰或數據丟失等風險。

在開發過程中,可能需要頻繁地測試和修改系統配置,這可能會帶來安全風險。使用虛擬機可以在一個封閉的環境中進行這些操作,從而保護主機系統不受潛在的惡意軟件或誤操作的影響。

某些開發工具和編譯器可能只在特定的Linux發行版上提供最佳支持,使用虛擬機可以輕松地安裝和運行這些工具。

綜上所述,搭建Linux虛擬機環境對于RK3566開發來說是非常有益的,它不僅能夠提高編譯效率,還能提供一個安全、一致且易于管理的開發環境。

來看我們用到的開發板長什么樣子

Purple Pi OH開發板cdaa98c8-17d2-11ef-bebc-92fbcf53809c.png

02固件源碼獲取

2.1源碼下載

當我們拿到一塊Linux開發板時,我們就需要同步進行開發的初期準備。

首先就是獲取資料,通常包括板子的芯片手冊、數據手冊、原理圖等。

獲取到資料后第二步就是通過查閱資料了解到源碼的獲取方式,其他的芯片資料可以先不看。因為通常源碼都非常大,我們需要時間從網絡上進行獲取。

第三步即開發環境搭建,通常我們也是通過官方資料查閱編譯SDK所需要的環境要求并搭建一個編譯環境。

cde33c78-17d2-11ef-bebc-92fbcf53809c.png

注意:所有的補丁都是基于1.1中的sdk整包生成。


cde972e6-17d2-11ef-bebc-92fbcf53809c.png

2.2開發環境搭建

接下來我們需要使用VMWare或者VirtualBox創建虛擬機,環境搭建的教程通常在網上搜索即可獲取大量資料。

只要根據要求配置編譯環境即可,以下是Android11推薦編譯主機配置:

1.Ubuntu18.04 操作系統

2.64 位 CPU

3.16GB 物理內存+交換內存

4.250GB 空閑的磁盤空間

2.3VMWare文件傳輸

在完成源碼獲取和編譯環境搭建后,我們需要將源碼拖動到虛擬機內,這就涉及到Windows和Linux虛擬機之間的傳輸文件方式,通常我們可以通過共享文件夾、FTP或SFTP、網絡傳輸工具等方式,我通常使用的是共享文件夾方式,其配置簡單且速度快,方便開發。

它可以直接在Windows資源管理器中訪問,即Linux虛擬機和Windows共享一塊存儲空間,兩邊都可以直接訪問和操作。過去我總是在Windows下直接通過VScode打開文件夾進行編碼,在Linux中進入文件夾直接編譯或者復制出來在其他地方編譯都可。

接下來我將講解如何創建與配置共享文件夾:

1. 首先將VMWare Tools安裝好,安裝詳細流程可以在網上搜索并學習。

2. 點擊【編輯虛擬機設置】,選中【選項】即可查看到共享文件夾的設置,

如下圖所示:

ce0f10e6-17d2-11ef-bebc-92fbcf53809c.png

3. 點擊【總是啟用】,彈出下圖中第二步的【添加共享文件夾向導】。

電腦中選擇合適的位置建立共享文件夾。這里我是和虛擬機位置放在一起的。

如下圖所示:

ce135cfa-17d2-11ef-bebc-92fbcf53809c.png

4. 在設置好共享文件夾路徑后,點擊下一步時記得選中啟用此共享。

如下圖所示:

ce4961d8-17d2-11ef-bebc-92fbcf53809c.png

5. 接著我們在電腦資源管理器中訪問位置即可查看到,此時往文件夾拖文件就可以在Linux中的/mnt/hgfs/文件夾下即可實時看到,如下圖所示:

ce4da9e6-17d2-11ef-bebc-92fbcf53809c.png

03SDK編譯3.1源碼解壓

將源碼傳輸進Linux中后,

我們通過如下命令可以將源碼壓縮文件解壓縮至我們想要的路徑:

cat purple_pi_android11.tar.gza* | tar -xz -C target_path

語句意思為在當前文件夾下查看全部以

“purple_pi_android11.tar.gza”開頭的文件,

并將其結果使用tar命令解壓至[ target_path ],target_path即你想要解壓到的文件夾路徑。

效果如下圖所示:

ce62ee00-17d2-11ef-bebc-92fbcf53809c.png

3.2uboot編譯

接著我們進入SDK根目錄下的文件夾u-boot執行如下命令:

cd u-boot./make.shrk3566

執行命令后結果如下圖所示:

cebda430-17d2-11ef-bebc-92fbcf53809c.png

若編譯成功結果如下圖所示:

cedda834-17d2-11ef-bebc-92fbcf53809c.png

3.3kernel編譯

內核配置文件路徑:kernel/arch/arm64/configs/rockchip_purple_pi_3566_defconfig設備樹文件路徑:kernel/arch/arm64/boot/dts/rockchip/

我們提供了兩種顯示屏的適配,分別是:

1. “ido-pi-oh3566-v1.dts”,顯示屏驅動適配HDMI接口;

2. “ido-pi-oh3566-v1-dsi0-mipi.dts”,顯示屏驅動適配MIPI接口;

我們以編譯HDMI屏內核為例,編譯命令如下:

cd kernel make ARCH=arm64 rockchip_purple_pi_3566_defconfig rk356x_evb.config android-11.configmakeARCH=arm64ido-pi-oh3566-v1.img-j10

命令解釋:

cf08052a-17d2-11ef-bebc-92fbcf53809c.png

分別是:

Purple Pi OH默認的配置文件,包含了該開發板的默認設置和選項;

Rockchip RK356x的配置文件,包含了針對該板的特定設置和選項;

Android 11版本的配置文件,包含了針對Android 11操作系統的特定設置和選項。

cf28dd40-17d2-11ef-bebc-92fbcf53809c.png

特別注意:

部分開發者遇到編譯失敗時,可能是虛擬機的內存分配不夠,此時我們可以嘗試調小并行任務數編譯,例如 -j10調整為 –j4 或 –j1。

如果編譯提示選擇io_domain電壓,vccio4和vccio5選擇1.8v,其它選擇3.3v。


以上方式編譯完成后,kernel目錄生成的boot.img文件不能直接燒錄。

需要使用build.sh -K 命令來編譯kernel,編譯后燒寫rockdev/Image-rk3566_r/boot.img。

單獨編譯kernel生成可直接燒錄的boot.img。

此處的編譯方法的前提已存在rockdev/Image-rk3566_r/boot.img文件(即Android代碼已經完全編譯過一次或者執行過build.sh -K)。

編譯的原理為在kernel目錄下將編譯生成的 kernel.img 和 resource.img 替換到舊的 boot.img 中,命令如下:

cd kernel make ARCH=arm64 rockchip_purple_pi_3566_defconfig rk356x_evb.config android-11.configmakeARCH=arm64BOOT_IMG=../rockdev/Image-rk3566_r/boot.imgido-pi-oh3566-v1.img-j10

使用此方法編譯出kernel/boot.img文件可以直接用于燒錄至boot分區,kernel編譯結果如下圖所示:

cf2d8a2a-17d2-11ef-bebc-92fbcf53809c.png

3.4Android編譯及固件生成步驟

使用如下命令編譯

source build/envsetup.shlunch rk3566_r-userdebugmake-j10

編譯過程如下圖所示:

cf4c6d0a-17d2-11ef-bebc-92fbcf53809c.png

Android編譯成功結果如下圖所示:

cfa4027c-17d2-11ef-bebc-92fbcf53809c.png

需要編譯內核選擇的屏幕修改Android主顯和系統方向時可以修改如下參數:

1)HDMI: A)device/rockchip/rk356x/rk3566_r/rk3566_r.mk PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=HDMI-A-1B)device/rockchip/rk356x/BoardConfig.mk SF_PRIMARY_DISPLAY_ORIENTATION := 0
2)MIPI: A)device/rockchip/rk356x/rk3566_r/rk3566_r.mk PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=DSI B)device/rockchip/rk356x/BoardConfig.mk SF_PRIMARY_DISPLAY_ORIENTATION := 270

3.5固件打包

編譯完成后,執行 SDK 根目錄下的 mkimage.sh 腳本生成固件,所有燒寫所需的各分區鏡像將都

rockdev/Image-rk3566_r/目錄下,

命令如下:

./mkimage.sh


結果如下:

cffe6bd6-17d2-11ef-bebc-92fbcf53809c.png


將所有分區鏡像合并成單個的鏡像,命令如下:

cd RKTools/linux/Linux_Pack_Firmware/rockdev/./mkupdate_rk356x.sh

結果如下:

d02ad2fc-17d2-11ef-bebc-92fbcf53809c.png


執行mkupdate_rk356x.sh 命令后

會將各分區鏡像合并成一個update.img 的鏡像文件,如下圖所示:

d05422c4-17d2-11ef-bebc-92fbcf53809c.png


當我們做到這一步時,我們的固件編譯就完成啦!

由于固件編譯本身就是一個非常復雜和繁瑣的活,因此本篇內容的篇幅較長,非常感謝有耐心看到這里的小伙伴!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3959

    瀏覽量

    129333
  • 開發板
    +關注

    關注

    25

    文章

    5439

    瀏覽量

    101306
  • Purple
    +關注

    關注

    0

    文章

    8

    瀏覽量

    302
收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    【觸覺智能 Purple Pi OH 開發板體驗】+ 熟悉PurplePiOH編譯固件

    Purple Pi OH 開發板的鴻蒙使用體驗。熟悉了軟硬件環境,燒寫固件。搭建
    的頭像 發表于 07-26 16:01 ?2238次閱讀
    【觸覺智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 開發板體驗】+ 熟悉PurplePiOH<b class='flag-5'>編譯</b><b class='flag-5'>固件</b>

    【觸覺智能 Purple Pi OH 開發板體驗】+2、燒錄debian固件體驗

    廠家為Purple Pi OH 提供了多種系統。
    的頭像 發表于 07-27 09:05 ?1366次閱讀
    【觸覺智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 開發板體驗】+2、燒錄debian<b class='flag-5'>固件</b>體驗

    【觸覺智能 Purple Pi開發板試用】系統重燒固件及ffmpeg編譯

    前言: 前面環境搭建已經完成,基礎外圍測試基本完成,根據當下手里的硬件進行測試,因無配套屏幕,許多測試無法進行,先來測試刷機功能及ffmpeg的編譯。一、PurPle-Pi-R1
    發表于 11-16 17:45

    【觸覺智能 Purple Pi OH 開發板體驗】檢測Android系統的完備性

    Purple Pi OH運行Android11,性能穩定,該有的硬件外設接口資源,檢測均未發現異常。并能兼容安裝第三方apk軟件,如果能在功耗、散熱性上再做優化,將會給RK3566帶
    發表于 09-10 17:23

    RP4412 Android4.0 環境搭建和源碼編譯說明_v1

    RP4412 Android4.0 環境搭建和源碼編譯說明。
    發表于 05-04 16:04 ?0次下載

    modemcu 打包_自己動手編譯nodemcu固件

    。完全可以通過源碼自己編譯固件,動手能力強的,可以自己搭建編譯環境。神奇的是,樂鑫并沒有給出友好的文檔說如何
    發表于 12-17 17:56 ?8次下載
    modemcu 打包_自己動手<b class='flag-5'>編譯</b>nodemcu<b class='flag-5'>固件</b>

    Purple Pi OH開源主板通過 OpenHarmony 兼容性測評

    Purple Pi OH Purple Pi OH作為一款兼容樹莓派的開源主板,采用RK3566
    的頭像 發表于 04-10 09:40 ?1085次閱讀
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>開源主板通過 OpenHarmony 兼容性測評

    Purple Pi OH Android11 ROOT方法

    為了讓應用程序可以直接調用su執行系統命令和獲取root權限,本文基于Purple Pi OH主板的Android SDK,介紹如果修改和編譯
    的頭像 發表于 06-25 09:49 ?1017次閱讀
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>Android11</b> ROOT方法

    Purple Pi OH Android11 ROOT方法

    為了讓應用程序可以直接調用su執行系統命令和獲取root權限,本文基于Purple Pi OH主板的Android SDK,介紹如果修改和編譯
    的頭像 發表于 06-30 14:59 ?830次閱讀
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>Android11</b> ROOT方法

    【觸覺智能 Purple Pi OH 開發板體驗】+ 編譯open Harmony固件成功

    成功編譯openharmony固件
    的頭像 發表于 07-26 17:45 ?822次閱讀
    【觸覺智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 開發板體驗】+ <b class='flag-5'>編譯</b>open Harmony<b class='flag-5'>固件</b>成功

    Purple Pi OH 開發板體驗:固件開發+應用開發

    觸覺智能 Purple Pi OH 開發板體驗的開發環境,介紹了設備端和應用端的基本知識點
    的頭像 發表于 08-04 10:52 ?1118次閱讀
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 開發板體驗:<b class='flag-5'>固件</b>開發+應用開發

    【觸覺智能 Purple Pi OH 開發板體驗】+ 兩款Purple Pi的對比

    先前曾使用過Purple Pi,此次又見到了Purple Pi OH,就對這兩款產品進行簡單的對比。
    的頭像 發表于 08-17 10:11 ?1930次閱讀
    【觸覺智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 開發板體驗】+ 兩款<b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b>的對比

    3568編譯環境搭建

    主要介紹如何在本地搭建編譯環境編譯rockchipBBuildrootllinuxSDK的源代碼。d當前sdk只支持在linux環境
    發表于 12-13 11:23 ?18次下載

    瑞芯微RK3566鴻蒙開發板Ubuntu虛擬機環境搭建教程,觸覺智能Purple Pi OH主板

    本文適用于Ubuntu虛擬機環境搭建教程學習,設備為觸覺智能開發的瑞芯微RK3566開發板,型號Purple Pi OH。是華為Laval官
    的頭像 發表于 09-05 17:47 ?335次閱讀
    瑞芯微RK3566鴻蒙開發板Ubuntu虛擬機<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>教程,觸覺智能<b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>主板

    瑞芯微RK3566鴻蒙開發板Ubuntu虛擬機環境搭建教程,觸覺智能Purple Pi OH主板

    本文適用于Ubuntu虛擬機環境搭建教程學習,設備為觸覺智能開發的瑞芯微RK3566開發板,型號Purple Pi OH。是Laval官方社
    的頭像 發表于 09-08 18:25 ?2268次閱讀
    瑞芯微RK3566鴻蒙開發板Ubuntu虛擬機<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>教程,觸覺智能<b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>主板
    主站蜘蛛池模板: 一本之道高清在线观看一区 | 亚洲精品AV一二三区无码 | 成人欧美一区二区三区白人 | 日本久久网站 | 欧美日韩精品一区二区三区高清视频 | 37pao成人国产永久免费视频 | 免费在线亚洲视频 | 色噜噜视频 | 韩国精品无码少妇在线观看网站 | 成年美女黄网站色app | 中文字幕一区二区三区在线不卡 | 久久久久综合一本久道 | 中俄两军在日本海等上空战略巡航 | 2021国产精品一卡2卡三卡4卡 | 国产精品一区二区三区免费 | 在线免费观看a视频 | 2020最新无码国产在线视频 | 男女后进式猛烈xx00动态图片 | 久久re热线视频精品99 | 美女视频秀色福利视频 | 欧美亚洲日韩一道免费观看 | 美女脱了内裤张开腿让男人桶到爽 | 在教室伦流澡到高潮H免费视频 | z0000性欧美| 猫咪最新破解版下载 | 最新2017年韩国伦理片在线 | 欧美の无码国产の无码影院 | 动态抽插图视频 | 久久久久免费视频 | 麻花传媒XK在线观看 | 一本之道高清www在线观看 | 电影果冻传媒在线播放 | 亚洲午夜无码久久久久蜜臀av | 俄罗斯黄色大片 | 快播最新电影网站 | 国产精品无码久久久久不卡 | 嘟嘟嘟影院免费观看视频 | 97公开超碰在线视频 | 欧美A级肉欲大片XXX | 中文在线观看永久免费 | bbw美女与zooxx |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品