女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

樹(shù)莓派4B移植OHOS 3.0 LTS標(biāo)準(zhǔn)系統(tǒng)

丫丫119 ? 來(lái)源:未知 ? 作者:亮子力 ? 2021-11-23 14:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

終于在樹(shù)莓派4B 上將 OHOS3.0 啟動(dòng)起來(lái)了,雖然還不完整,目前只能實(shí)現(xiàn)的顯示和觸摸。但是可以和大家分享下我的思路。

poYBAGGcigWAfnNvACjChnYrbnA632.gif

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

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

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

然后修改下面幾項(xiàng):
  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 (開(kāi)啟)
  16. Android Binder IPC Driver (開(kāi)啟)
復(fù)制代碼

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

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

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

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

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

這里有個(gè)比較惡心的地方,OHOS 的根文件系統(tǒng)使用的是 Toybox,但是很多工具不支持,比如 modprobe 就沒(méi)有,所以只能根據(jù) modules.dep 文件,一個(gè)一個(gè) insmod。當(dāng)然可以直接將驅(qū)動(dòng)編進(jìn)內(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ù)制代碼

為了驗(yàn)證 drm 和 libdrm 是否正常,我寫(xiě)了一個(gè)簡(jiǎn)單的測(cè)試
  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ù)制代碼

其實(shí) libdrm 是自帶測(cè)試的 modetest,但是 OHOS 沒(méi)有加入編譯。也可以將 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 依賴這個(gè)
  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 的依賴項(xiàng)里就可以了
  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ù)制代碼

有個(gè)報(bào)錯(cuò):?jiǎn)栴}不大,提示這個(gè)未使用,注釋的就好了。
  1. third_party\libdrm\tests\util\pattern.c:988
  2. // void *mem_base = mem;
復(fù)制代碼

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

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

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

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

基本是這么個(gè)思路,寫(xiě)出來(lái)和大家分享下,希望對(duì)正在移植的小伙伴能有些幫助。

當(dāng)然加到鴻蒙編譯框架可能沒(méi)有這么簡(jiǎn)單,接下來(lái)我會(huì)先整理這部分的文檔,就更新在下面這個(gè)倉(cāng):

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

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

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

    關(guān)注

    1

    文章

    401

    瀏覽量

    28691
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    121

    文章

    2007

    瀏覽量

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

    關(guān)注

    183

    文章

    2642

    瀏覽量

    68087
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    樹(shù)莓分類(lèi)器:用樹(shù)莓識(shí)別不同型號(hào)的樹(shù)莓!

    對(duì)準(zhǔn)樹(shù)莓4,屏幕上會(huì)顯示“RaspberryPi4”;對(duì)準(zhǔn)樹(shù)莓Zero時(shí)顯示“Raspber
    的頭像 發(fā)表于 06-13 16:39 ?414次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>分類(lèi)器:用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>識(shí)別不同型號(hào)的<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>!

    樹(shù)莓5 與 樹(shù)莓4:深度對(duì)比與獨(dú)特優(yōu)勢(shì)!

    和專(zhuān)業(yè)人士都好奇它與前代產(chǎn)品樹(shù)莓4相比表現(xiàn)如何。本文將深入對(duì)比這兩款機(jī)型,突出它們的差異和獨(dú)特優(yōu)勢(shì),幫助您做出明智的決策。1.處理器樹(shù)莓
    的頭像 發(fā)表于 05-21 13:15 ?524次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>5 與 <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>4</b>:深度對(duì)比與獨(dú)特優(yōu)勢(shì)!

    樹(shù)莓派性能優(yōu)化指南(第一彈):讓樹(shù)莓變身“小鋼炮”!

    超頻?如果需要讓樹(shù)莓跑高速計(jì)算的應(yīng)用,比如視頻編解碼、圖像識(shí)別、游戲模擬器等,當(dāng)然速率越快越好。有老外網(wǎng)友嘗試,BCM2711B0(樹(shù)莓
    的頭像 發(fā)表于 04-03 16:40 ?877次閱讀
    <b class='flag-5'>樹(shù)莓</b>派性能優(yōu)化指南(第一彈):讓<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>變身“小鋼炮”!

    樹(shù)莓4b連接DLPDLCR230NPEVM,HDMI和DPI可以同時(shí)用嘛?

    樹(shù)莓4b連接DLPDLCR230NPEVM,HDMI和DPI可以同時(shí)用嘛
    發(fā)表于 02-21 11:48

    關(guān)于DLPDLCR230NPEVM與樹(shù)莓4B的幾個(gè)問(wèn)題求解

    有關(guān)于DLPDLCR230NPEVM與樹(shù)莓4B的以下幾個(gè)問(wèn)題,望大佬解答: 1、如何用DLP投影出樹(shù)莓
    發(fā)表于 02-18 07:06

    deepin 23+樹(shù)莓讓小車(chē)動(dòng)起來(lái)

    。 ? ? 硬件準(zhǔn)備 以下是所需的硬件清單,看看自己都備齊了嗎? 樹(shù)莓 4b 智能小車(chē)底盤(pán) 雙層圓盤(pán)(兩輪附帶電機(jī)、電池盒) Type-C?接口 5V 鋰電池(給樹(shù)莓
    的頭像 發(fā)表于 02-12 09:12 ?762次閱讀
    deepin 23+<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>讓小車(chē)動(dòng)起來(lái)

    ARM開(kāi)發(fā)板與樹(shù)莓的比較

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

    樹(shù)莓4B的WiFi配置過(guò)程

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

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

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

    樹(shù)莓4b支持多大的sd卡

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

    樹(shù)莓4b和什么性能計(jì)算機(jī)相當(dāng)

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

    樹(shù)莓4b相當(dāng)于什么CPU

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

    樹(shù)莓4B的性能特點(diǎn)及應(yīng)用

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

    樹(shù)莓4b風(fēng)扇插哪個(gè)引腳

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

    OpenHarmony標(biāo)準(zhǔn)系統(tǒng)C++公共基礎(chǔ)類(lèi)庫(kù)案例:HelloWorld

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