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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

樹莓派4B移植OHOS 3.0 LTS標準系統(tǒng)

丫丫119 ? 來源:未知 ? 作者:亮子力 ? 2021-11-23 14:39 ? 次閱讀
終于在樹莓派4B 上將 OHOS3.0 啟動起來了,雖然還不完整,目前只能實現(xiàn)的顯示和觸摸。但是可以和大家分享下我的思路。

poYBAGGcigWAfnNvACjChnYrbnA632.gif

我的方法比較簡單粗暴,直接使用的樹莓派的樹莓派 linux rpi-5.10.y 內(nèi)核。

Git 地址:
https://github.com/raspberrypi/linux

然后編譯 OHOS3.0 的文件系統(tǒng),看缺什么補什么大概是這個意思。目前發(fā)現(xiàn) OHOS 需要內(nèi)核開啟 selinux 和 binder:
  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
復(fù)制代碼

然后修改下面幾項:
  1. Security options--->
  2. (32768) Low address space for LSM to protect from user allocation
  3. NSA SELinux Support (選中)
  4. NSA SELinux boot parameter (選中)
  5. [ ] NSA SELinux runtime disable
  6. NSA SELinux Development Support
  7. NSA SELinux AVC Statistics
  8. (1) NSA SELinux checkreqprot default value (設(shè)置為1)
  9. (9) NSA SELinux sidtab hashtable size
  10. (256) NSA SELinux SID to context string translation cache size
  11. First legacy 'major LSM' to be initialized (SELinux)---> (選中) SELinux
  12. Ordered list of enabLEDLSMs (填入:"lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf")
  13. Device Drivers--->
  14. Android--->
  15. Android Drivers (開啟)
  16. Android Binder IPC Driver (開啟)
復(fù)制代碼

目前發(fā)現(xiàn)開啟這兩項 hilog 就可以輸出。內(nèi)核掛上根文件系統(tǒng),至少可以啟動串口有輸出了。然后分析下 OHOS 的圖形子系統(tǒng)。

OHOS 目前是內(nèi)核→DRM→libdrm→wayland→weston 這么個模式,如有錯誤歡迎指出。這里要感謝@梁克雷和釗哥 ohos 第三方板移植群各位的支持。

所以樹莓派的 DRM 正常了,后面顯示應(yīng)該就是沒為題的。好在樹莓派的生態(tài)比較開放,資料還是比較好獲取的,在樹莓派官方論壇趴了一段時間。

Pi4 的 GPU 是 VideoCore VI 支持 OpenGL ES 3.2,而 Pi3 的 GPU 是 VideoCore IV 支持 OpenGL ES 2.0。VideoCore IV 驅(qū)動程序是 VC4,VideoCore VI 驅(qū)動程序的 V3D。

需要在 config.txt 中開啟 vc4-fkms-v3d,而驅(qū)動 kernal 已經(jīng)提供了模塊,只要在 init 階段將模塊加載就可以了。

這里有個比較惡心的地方,OHOS 的根文件系統(tǒng)使用的是 Toybox,但是很多工具不支持,比如 modprobe 就沒有,所以只能根據(jù) modules.dep 文件,一個一個 insmod。當然可以直接將驅(qū)動編進內(nèi)核也是可以的。
  1. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/gpu/drm/drm_panel_orientation_quirks.ko",
  2. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/video/backlight/backlight.ko",
  3. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/gpu/drm/drm.ko",
  4. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/media/cec/core/cec.ko",
  5. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/video/fbdev/core/syscopyarea.ko",
  6. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/video/fbdev/core/sysfillrect.ko",
  7. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/video/fbdev/core/sysimgblt.ko",
  8. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/video/fbdev/core/fb_sys_fops.ko",
  9. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/gpu/drm/drm_kms_helper.ko",
  10. "insmod /lib/modules/5.10.76-v7l/kernel/sound/core/snd.ko",
  11. "insmod /lib/modules/5.10.76-v7l/kernel/sound/core/snd-timer.ko",
  12. "insmod /lib/modules/5.10.76-v7l/kernel/sound/core/snd-pcm.ko",
  13. "insmod /lib/modules/5.10.76-v7l/kernel/sound/core/snd-compress.ko",
  14. "insmod /lib/modules/5.10.76-v7l/kernel/sound/core/snd-pcm-dmaengine.ko",
  15. "insmod /lib/modules/5.10.76-v7l/kernel/sound/soc/snd-soc-core.ko",
  16. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/gpu/drm/vc4/vc4.ko",
  17. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/gpu/drm/scheduler/gpu-sched.ko",
  18. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/gpu/drm/v3d/v3d.ko"
復(fù)制代碼

為了驗證 drm 和 libdrm 是否正常,我寫了一個簡單的測試
  1. fd = open("/dev/dri/card0", O_RDWR | O_CLOEXEC);
  2. if (fd < 0) {
  3. printf("open failed");
  4. }else{
  5. printf("open seccess\n");
  6. }
  7. uint32_t conn_id;
  8. uint32_t crtc_id;
  9. res = drmModeGetResources(fd);// 獲取 crtc_id 和 connector_id
  10. if (!res) {
  11. printf("ERROR: drmModeGetResources failed!\n");
  12. drmClose(fd);
  13. return -1;
  14. }else{
  15. printf("drmModeGetResources seccess\n");
  16. }
  17. crtc_id = res->crtcs[0];
  18. conn_id = res->connectors[0];
  19. conn = drmModeGetConnector(fd, conn_id); // 獲取 drm_mode
  20. if (!conn) {
  21. printf("ERROR: drmModeGetConnector failed!\n");
  22. }else{
  23. printf("drmModeGetConnector seccess\n");
  24. }
復(fù)制代碼

其實 libdrm 是自帶測試的 modetest,但是 OHOS 沒有加入編譯。也可以將 modetest 加入編譯框架。

①為 modetest 添加 BUILD.gn
  1. third_party\libdrm\tests\modetest\BUILD.gn:
  2. import("http://build/ohos.gni")
  3. ohos_executable("modetest") {
  4. sources = [
  5. "buffers.c",
  6. "cursor.c",
  7. "modetest.c",
  8. ]
  9. cflags = [
  10. "-Wno-pointer-arith",
  11. ]
  12. include_dirs = [
  13. "../",
  14. ".",
  15. ]
  16. configs = [ "http://third_party/libdrm:libdrm_config" ]
  17. public_configs = [ "http://third_party/libdrm:libdrm_public_config" ]
  18. deps = [
  19. "http://third_party/libdrm:libdrm",
  20. "http://third_party/libdrm/tests/util/:util",
  21. ]
  22. public_deps = []
  23. install_images = [
  24. "system",
  25. "updater",
  26. ]
  27. part_name = "graphic_standard"
  28. subsystem_name = "graphic"
  29. }
復(fù)制代碼

②modetest 依賴這個
  1. third_party\libdrm\tests\util\BUILD.gn:
  2. import("http://build/ohos.gni")
  3. ohos_static_library("util") {
  4. sources = [
  5. "format.c",
  6. "kms.c",
  7. "pattern.c",
  8. ]
  9. cflags = []
  10. include_dirs = [
  11. "../",
  12. ".",
  13. ]
  14. configs = [ "http://third_party/libdrm:libdrm_config" ]
  15. public_configs = [ "http://third_party/libdrm:libdrm_public_config" ]
  16. deps = [
  17. "http://third_party/libdrm:libdrm",
  18. ]
  19. public_deps = []
  20. }
復(fù)制代碼

③加入到 OHOS 編譯框架,加在 weston 的依賴項里就可以了
  1. third_party\weston\BUILD.gn:
  2. "http://third_party/libdrm:libdrm",
  3. "http://third_party/libdrm/tests/util/:util",
  4. "http://third_party/libdrm/tests/modetest/:modetest",
復(fù)制代碼

有個報錯:問題不大,提示這個未使用,注釋的就好了。
  1. third_party\libdrm\tests\util\pattern.c:988
  2. // void *mem_base = mem;
復(fù)制代碼

如果 modetest 通過了,那剩下的就簡單了指定 weston 的后端就可以了。
system\etc\weston.ini:
  1. [output]
  2. name=card0
復(fù)制代碼

接下來是觸摸部分,我使用的是 DSI接口的觸摸屏。
  1. hexdump /dev/input/event2 # 可以使用hexdump看觸摸設(shè)備有沒有輸出,可惜這個命令也不支持
  2. cat /dev/input/event2 # cat也可以湊合用,只是輸出亂碼,但能證明觸摸是否好用
復(fù)制代碼

然后查看驅(qū)動模塊:
  1. ls -l /sys/dev/char/|grep input # 查看input下的觸摸設(shè)備的主次設(shè)備號
  2. cat /sys/dev/char/226\:0/device/uevent # 然后輸入主次設(shè)備號,查看設(shè)備的驅(qū)動程序
  3. DRIVER=raspberrypi-ts
  4. ... ...
復(fù)制代碼

發(fā)現(xiàn)驅(qū)動是 raspberrypi-ts,那就好辦了,在 init 的時候安裝這個模塊就好了。
  1. "insmod /lib/modules/5.10.76-v7l/kernel/drivers/input/touchscreen/raspberrypi-ts.ko"
復(fù)制代碼

基本是這么個思路,寫出來和大家分享下,希望對正在移植的小伙伴能有些幫助。

當然加到鴻蒙編譯框架可能沒有這么簡單,接下來我會先整理這部分的文檔,就更新在下面這個倉:

https://gitee.com/liangzili/harmony-raspberry

這個碼倉我之前移植過 OHOS1.0 LiteOS-A 內(nèi)核到樹莓派 2ModuleB,就直接放到一起了,近期會更新,感興趣的可以關(guān)注,一起討論。

原文作者:亮子力
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    379

    瀏覽量

    28150
  • 樹莓派
    +關(guān)注

    關(guān)注

    117

    文章

    1710

    瀏覽量

    105730
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2636

    瀏覽量

    66468
收藏 人收藏

    評論

    相關(guān)推薦

    ARM開發(fā)板與樹莓的比較

    處理器 ARM開發(fā)板通常采用不同的ARM處理器,如Cortex-A系列、Cortex-M系列等,而樹莓則主要使用博通的ARM處理器。樹莓的處理器性能相對較高,尤其是在最新的
    的頭像 發(fā)表于 11-05 11:11 ?518次閱讀

    樹莓4B的WiFi配置過程

    和需求。 一、準備工作 在開始配置WiFi之前,請確保你已經(jīng)擁有了以下物品: 樹莓4B 適用的電源適配器 裝有Raspbian或其他兼容操作系統(tǒng)的SD卡 無線網(wǎng)絡(luò)名稱(SSID)和密
    的頭像 發(fā)表于 08-30 17:10 ?1975次閱讀

    樹莓4b 2g和4g區(qū)別大嗎

    樹莓4B樹莓基金會推出的一款性能強大的微型計算機,它具有多種版本,其中最常見的是2GB RAM版本和
    的頭像 發(fā)表于 08-30 17:05 ?1429次閱讀

    樹莓4b支持多大的sd卡

    樹莓4B是一款非常受歡迎的微型計算機,它具有強大的性能和豐富的擴展功能。在樹莓4B的使用過程
    的頭像 發(fā)表于 08-30 17:02 ?1278次閱讀

    樹莓4b和什么性能計算機相當

    樹莓4B與何種性能的計算機相當,這個問題涉及到多個方面的比較,包括處理器性能、內(nèi)存大小、接口豐富度以及應(yīng)用場景等。以下是從這些方面進行的綜合分析: 1. 處理器性能 樹莓
    的頭像 發(fā)表于 08-30 17:01 ?1082次閱讀

    樹莓4b相當于什么CPU

    樹莓4B作為一款基于ARM架構(gòu)的單板計算機,自其發(fā)布以來就因其高性價比、豐富的接口和強大的擴展性而備受關(guān)注。在探討樹莓
    的頭像 發(fā)表于 08-30 16:59 ?1654次閱讀

    樹莓4B的性能特點及應(yīng)用

    HDMI、USB 3.0、千兆以太網(wǎng)、藍牙5.0等,可以滿足各種應(yīng)用場景的需求。 樹莓4B性能特點 2.1 CPU性能 樹莓
    的頭像 發(fā)表于 08-30 16:54 ?2015次閱讀

    樹莓4b風扇插哪個引腳

    樹莓4B驅(qū)動風扇時,風扇可以插接的引腳主要取決于風扇的類型和所使用的控制方法。以下是一些常見的風扇插接引腳情況: 1. 直接連接法 對于簡單的風扇(非PWM調(diào)速風扇),你可以直接將風扇的正負極連接
    的頭像 發(fā)表于 08-30 16:53 ?1645次閱讀

    樹莓和arm開發(fā)板的區(qū)別

    樹莓(Raspberry Pi)和ARM開發(fā)板都是基于ARM架構(gòu)的微型計算機,但它們之間存在一些關(guān)鍵區(qū)別。 一、歷史背景 樹莓(Raspberry Pi)
    的頭像 發(fā)表于 08-30 15:36 ?1087次閱讀

    OpenHarmony標準系統(tǒng)C++公共基礎(chǔ)類庫案例:HelloWorld

    1、程序簡介該程序是基于凌蒙OpenHarmony-v3.2.1標準系統(tǒng)C++公共基礎(chǔ)類庫的簡單案例:HelloWorld。主要講解C++公共基礎(chǔ)類庫案例如何搭建和編譯。2、程序解析2.1、創(chuàng)建
    的頭像 發(fā)表于 08-13 08:23 ?546次閱讀
    OpenHarmony<b class='flag-5'>標準系統(tǒng)</b>C++公共基礎(chǔ)類庫案例:HelloWorld

    樹莓5,Raspberry Pi 5 評測

    樹莓4已經(jīng)算是一款強大的單板計算機了,樹莓5聲稱其處理能力是樹莓
    發(fā)表于 06-19 14:51

    全志H616(BIGTREETECH CB1)和 博通BCM2711(樹莓4B)CPU對比測試

    一,實物對比圖: BIGTREETECH CB1的底板接口的分布和樹莓4B是一樣的,但是沒有樹莓的音頻接口,底板也不能放到
    發(fā)表于 05-31 14:09

    【鴻蒙】標準系統(tǒng)移植指南

    標準系統(tǒng)移植指南 本文描述了移植一塊開發(fā)板的通用步驟,和具體芯片相關(guān)的詳細移植過程無法在此一一列舉。后續(xù)社區(qū)還會陸續(xù)發(fā)布開發(fā)板移植的實例供開
    的頭像 發(fā)表于 02-27 14:36 ?944次閱讀
    【鴻蒙】<b class='flag-5'>標準系統(tǒng)</b><b class='flag-5'>移植</b>指南

    佰維存儲TF200系列microSD卡通過樹莓AVL認證

    佰維存儲的TF200系列microSD卡已經(jīng)成功通過了樹莓(Raspberry Pi 4B)的AVL認證,確保了與樹莓微型計算機的完美兼
    的頭像 發(fā)表于 01-24 17:00 ?618次閱讀

    佰維存儲microSD卡通過樹莓AVL認證

    設(shè)備,存儲卡性能和兼容性直接影響樹莓的整體性能。 佰維存儲TF200系列microSD卡通過了樹莓(Raspberry Pi 4B)AV
    的頭像 發(fā)表于 01-23 17:19 ?447次閱讀
    佰維存儲microSD卡通過<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>AVL認證
    主站蜘蛛池模板: 久久中文字幕亚洲精品最新| 欧美国产精品主播一区| 国产AV视频二区在线观看| 插我一区二区在线观看| 大香网伊人久久综合网2020| 国产WW高清大片免费看| 国产精品一区二区20P| 精品AV无码一二三区视频| 久久亚洲精品无码A片大香大香| 美女议员被泄裸照| 青青草色青伊人| 午夜视频在线网站| 一级毛片免费下载| BLACKED太粗太长| 国产精品高清免费网站| 九九热伊人| 欧美另类z0z000高清| 桃色窝| 亚洲这里只有精品| china chinese中国人玩| 国产成人久久婷婷精品流白浆| 狠狠干女人| 欧美卡1卡2卡三卡2021精品| 性欧美金发洋妞xxxxbbbb| 在线观看永久免费网站| 成人短片迅雷下载| 狠狠色狠狠色综合日日32| 美女脱三角裤| 午夜影院美女| 96.8在线收听| 国产麻豆AV伦| 免费看欧美xxx片| 香蕉久久一区二区三区啪啪| 最近中文字幕在线中文视频| 国产av久久免费观看| 久久亚洲精品中文字幕| 色偷偷超碰97人人澡人人| 曰本女人牲交视频免费| 高h喷水荡肉爽文总攻| 久久久精品3d动漫一区二区三区| 日本女人bbb|