自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

首發(fā)!友善之臂NanoPi M1 Plus移植Openharmony標準版

系統(tǒng)
本文參考這種方式在友善之臂NanoPi M1 Plus上移植了Openharmony標準版,用的方法比較簡單粗暴,目前只是能成功跑起來看到畫面。

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區(qū)

https://harmonyos.51cto.com

首先感謝永恒666分享的

4412開發(fā)板移植openharmony3.0標準版-原來移植ohos可以這樣簡單!

本文參考這種方式在友善之臂NanoPi M1 Plus上移植了Openharmony標準版

用的方法比較簡單粗暴,目前只是能成功跑起來看到畫面。

首發(fā)!友善之臂NanoPi M1 Plus移植Openharmony標準版-鴻蒙HarmonyOS技術社區(qū)

整理實現(xiàn)方式如下:

一 OpenHarmony Linux內(nèi)核移植

參考:一種快速移植OpenHarmony Linux內(nèi)核的方法

1.按照Building U-boot and Linux for H5/H3/H2+/zh獲取NanoPi M1 Plus內(nèi)核

主要步驟如下:

1.1 安裝交叉編譯器

下載交叉編譯器arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz,然后解壓編譯器:

  1. $ mkdir -p /opt/FriendlyARM/toolchain 
  2. $ tar xf arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/FriendlyARM/toolchain/ 

 然后將編譯器的路徑加入到PATH中,用vi編輯vi ~/.bashrc,在末尾加入以下內(nèi)容,

此處建議使用每次重開終端前輸入以下指令的方式:

  1. $ export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH 
  2. $ export GCC_COLORS=auto 

 執(zhí)行一下~/.bashrc腳本讓設置立即在當前shell窗口中生效,注意"."后面有個空格:

  1. $ . ~/.bashrc 

 這個編譯器是64位的,不能在32位的Linux系統(tǒng)上運行,安裝完成后,你可以快速的驗證是否安裝成功:

  1. $ arm-linux-gcc -v 
  2. gcc version 4.9.3 (ctng-1.21.0-229g-FA) 

 1.2 編譯Linux內(nèi)核

在編譯過ipcamera_hispark_taurus的源碼中下載NanoPi M1 Plus Linux4.14內(nèi)核源碼,并切換分支:

我的ohos3.0路徑是/home/soon/ohos300/,這個路徑替換成你自己的

  1. $ cd /home/soon/ohos300/out/KERNEL_OBJ/kernel/src_tmp 
  2. $ git clone https://github.com/friendlyarm/linux.git -b sunxi-4.14.y --depth 1 
  3. $ mv linux linux-nanopi 

 編譯確認環(huán)境沒有問題:

  1. $ sudo apt-get install u-boot-tools 
  2. $ cd /home/soon/ohos300/out/KERNEL_OBJ/kernel/src_tmp/linux-nanopi 
  3. $ touch .scmversion 
  4. $ make sunxi_defconfig ARCH=arm CROSS_COMPILE=arm-linux- 
  5. $ make zImage dtbs ARCH=arm CROSS_COMPILE=arm-linux- 

 編譯完成后會在arch/arm/boot/目錄下生成zImage,并且在arch/arm/boot/dts/目錄下生成dtb文件。

2 內(nèi)核態(tài)基礎代碼的移植

將以下路徑代碼,從OpenHarmony3.0內(nèi)核代碼目錄kernel/linux/linux-4.19/drivers/staging中,拷貝到out/KERNEL_OBJ/kernel/src_tmp/linux-nanopi/drivers/staging 下。

  1. drivers/staging/hilog 
  2. drivers/staging/hievent 
  1. soon@soon-u20:~/ohos300/out/KERNEL_OBJ/kernel/src_tmp/linux-nanopi/drivers/staging $ ls -al 
  2. total 224 
  3. drwxrwxr-x  52 soon soon 4096 12月 29 22:51 . 
  4. drwxrwxr-x 132 soon soon 4096 12月 29 22:53 .. 
  5. drwxrwxr-x   4 soon soon 4096 12月 29 22:51 android 
  6. drwxrwxr-x   2 soon soon 4096 12月 29 19:24 board 
  7. -rw-rw-r--   1 soon soon  628 12月 29 22:51 built-in.o 
  8. -rw-rw-r--   1 soon soon  251 12月 29 22:51 .built-in.o.cmd 
  9. drwxrwxr-x   3 soon soon 4096 12月 29 19:24 ccree 
  10. drwxrwxr-x   2 soon soon 4096 12月 29 19:24 clocking-wizard 
  11. drwxrwxr-x   4 soon soon 4096 12月 29 19:24 comedi 
  12. drwxrwxr-x   2 soon soon 4096 12月 29 19:24 dgnc 
  13. drwxrwxr-x   2 soon soon 4096 12月 29 19:24 emxx_udc 
  14. drwxrwxr-x   2 soon soon 4096 12月 29 22:51 fbtft 
  15. drwxrwxr-x   3 soon soon 4096 12月 29 19:24 fsl-dpaa2 
  16. drwxrwxr-x   4 soon soon 4096 12月 29 19:24 fsl-mc 
  17. drwxrwxr-x   2 soon soon 4096 12月 29 19:24 fwserial 
  18. drwxrwxr-x   2 soon soon 4096 12月 29 19:24 gdm724x 
  19. drwxrwxr-x   2 soon soon 4096 12月 29 19:24 goldfish 
  20. drwxrwxr-x   4 soon soon 4096 12月 29 19:24 greybus 
  21. drwxrwxr-x   2 soon soon 4096 12月 29 19:24 gs_fpgaboot 
  22. drwxr-xr-x   2 soon soon 4096 12月 29 19:49 hievent 
  23. drwxr-xr-x   2 soon soon 4096 12月 29 19:49 hilog 

 在三方內(nèi)核的drivers/staging/Kconfig文件內(nèi)增加如下代碼:

  1. source "drivers/staging/hilog/Kconfig" 
  1. source “drivers/staging/hievent/Kconfig” 

在內(nèi)核config項中打開對應的CONFIG控制宏:CONFIG_HILOG和CONFIG_HIEVENT。

  1. CONFIG_HILOG=y 
  2. CONFIG_HI_LOG_BUFFER_SIZE=2048 
  3. CONFIG_HIEVENT=y 

3 內(nèi)核態(tài)必選特性HDF的移植

3.1打HDF補丁

因為patch_hdf.sh是最近才上傳的,如果用repo下載的,先更新下/home/soon/ohos300/drivers/adapter/khdf/linux這個目錄

也可以去把整個倉庫下載來替換。指令更新可以使用如下

  1. git pull 
  2. git checkout master 

在Linux內(nèi)核打HDF補丁時,執(zhí)行補丁shell腳本合入HDF補丁。

配置HDF補丁腳本的三個變量參數(shù)。

獲取patch_hdf.sh腳本。

執(zhí)行patch_hdf.sh腳本依次傳入三個變量參數(shù)。

patch_hdf.sh腳本三個參數(shù)含義為:

第一個入?yún)楣こ谈夸浡窂剑诙雲(yún)閮?nèi)核目錄路徑,第三個入?yún)閔df補丁文件。

./patch_hdf.sh [工程根目錄路徑] [內(nèi)核目錄路徑] [hdf補丁文件]

我這邊用的指令如下

  1. /home/soon/ohos300/drivers/adapter/khdf/linux/patch_hdf.sh \ 
  2. /home/soon/ohos300 \ 
  3. /home/soon/ohos300/out/KERNEL_OBJ/kernel/src_tmp/linux-nanopi \ 
  4. /home/soon/ohos300/kernel/linux/patches/linux-4.19/hi3516dv300_patch/hdf.patch  

3.2配置config

提供HDF基本配置,如果需要其他功能,通過menuconfig打開對應驅動開關即可。

HDF補丁執(zhí)行成功后,默認HDF開關是關閉的,打開HDF基本配置選項如下:

  1. CONFIG_DRIVERS_HDF=y 
  2. CONFIG_HDF_SUPPORT_LEVEL=2 
  3. CONFIG_DRIVERS_HDF_PLATFORM=y 
  4. CONFIG_DRIVERS_HDF_PLATFORM_MIPI_DSI=y 
  5. CONFIG_DRIVERS_HDF_PLATFORM_GPIO=y 
  6. CONFIG_DRIVERS_HDF_PLATFORM_I2C=y 
  7. CONFIG_DRIVERS_HDF_PLATFORM_UART=y 
  8. CONFIG_DRIVERS_HDF_TEST=y 

4 打開內(nèi)核的一些關鍵配置

4.1 打開 Android Drivers 和Android Binder IPC Driver

Device Drivers —>

Android —>

[] Android Drivers (開啟)

[] Android Binder IPC Driver (開啟)

4.2 打開SELinux Support相關配置

參考亮子力的整理,樹莓派4B移植OHOS 3.0 LTS標準系統(tǒng)

可以在make menuconfig 下用/ 執(zhí)行查找關鍵字,看配置項的位置和依賴,

也可以參考文章附件配置。

5 重新編譯生成zImage 和dtb

配置完成后直接下以下指令:

  1. $ make zImage dtbs ARCH=arm CROSS_COMPILE=arm-linux- 

編譯完成后會在arch/arm/boot/目錄下生成zImage,并且在arch/arm/boot/dts/目錄下生成dtb文件。把這兩個文件拷貝出來備用。

二 合成boot.img

1. 先拷貝一份NanoPi M1 Plus的boot 分區(qū)到~/ohos300/out/ohos-arm-release/packages/phone/boot/下。

可以從制作的SD卡上拷貝,如何制作SD 啟動卡參考NanoPi M1 Plus 4.3.3.1 燒寫到TF卡。

2.替換zImage和dtb文件

  1. cp -f /home/soon/ohos300/out/KERNEL_OBJ/kernel/src_tmp/linux-nanopi/arch/arm/boot/zImage /home/soon/ohos300/out/ohos-arm-release/packages/phone/boot/ 
  2. cp -f /home/soon/ohos300/out/KERNEL_OBJ/kernel/src_tmp/linux-nanopi/arch/arm/boot/dts/sun8i-*-nanopi-*.dtb /home/soon/ohos300/out/ohos-arm-release/packages/phone/boot/ 

3.用build_boot.py生成boot.img

參考樹莓派rpi3的device\rpi3\rpi3\kernel\build_kernel.py腳本,修改:

  1. #!/usr/bin/env python3 
  2. import sys 
  3. import os 
  4. import os.path 
  5. import subprocess 
  6. import multiprocessing 
  7. import shutil 
  8. import pathlib 
  9.  
  10. bootimgsize = 64*1024*1024 
  11. command = sys.argv[1] 
  12. output_dir = sys.argv[2] 
  13.  
  14. def make_boot_img(): 
  15.     oldpwd = os.getcwd() 
  16.     os.chdir(output_dir) 
  17.  
  18.     imagefile = 'images/boot.img' 
  19.     imagefile_tmp = imagefile + '.tmp' 
  20.     boot_dir = 'boot' 
  21.     with open(imagefile_tmp, 'wb'as writer: 
  22.         writer.truncate(bootimgsize) 
  23.     subprocess.run(F'mkfs.vfat {imagefile_tmp} -n BOOT', shell=Truecheck=True
  24.     subprocess.run(F'mcopy -i {imagefile_tmp} {boot_dir}/* ::/', shell=Truecheck=True
  25.     os.rename(imagefile_tmp, imagefile) 
  26.  
  27.     os.chdir(oldpwd) 
  28.  
  29. command_table = { 
  30.     'bootimg': make_boot_img, 
  31.  
  32. command_table[command]() 

把build_boot.py放到~/ohos300 執(zhí)行以下指令生成boot.img,

  1. soon@soon-u20:~/ohos300 $ python3 build_boot.py bootimg /home/soon/ohos300/out/ohos-arm-release/packages/phone 
  2. mkfs.fat 4.1 (2017-01-24) 

三 合成SD卡燒錄img

參考Make Image Files for H3

1 下載Build an sd card image環(huán)境

  1. git clone https://github.com/friendlyarm/sd-fuse_h3.git 
  2. cd sd-fuse_h3 
  3. wget http://112.124.9.243/dvdfiles/H3/images-for-eflasher/friendlycore-focal_4.14_armhf.tgz 
  4. tar xvzf friendlycore-focal_4.14_armhf.tgz 

2 準備system.img、vendor.img、userdata.img

這邊用的之前編譯的樹莓派rpi3的img

將friendlycore-focal_4.14_armhf下的.img 刪除

并將之前合好的boot.img、system.img、vendor.img、userdata.img拷貝到該目錄下。

3 修改partmap.txt

  1. # sd0 partition map 
  2. # flash= <device>.<dev no>:<partition>:<fstype>:<start>,<length> 
  3. #   support device : eeprom, nand, mmc 
  4. #   support fstype : 2nd, boot, raw, fat, ext4, ubi 
  5. # CPU=h3 
  6. flash=mmc,0:boot0:raw:0x2000,0x17FE000:u-boot-sunxi-with-spl.bin; 
  7. flash=mmc,0:boot:fat:0x1800000,0x4000000:boot.img; 
  8. flash=mmc,0:system:ext4:0x5800000,0x20000000:system.img; 
  9. flash=mmc,0:vendor:ext4:0x025800000,0x4000000:vendor.img; 
  10. flash=mmc,0:userdata:ext4:0x29800000,0x12C00000:userdata.img; 

4 合成SD卡燒錄img

在sd-fuse_h3目錄下執(zhí)行:

  1. sudo ./mk-sd-image.sh friendlycore-focal_4.14_armhf h3-sd-friendlycore.img 
  1. soon@soon-u20:~/nanopi-m1-plus/sd-fuse_h3 $ sudo ./mk-sd-image.sh friendlycore-focal_4.14_armhf h3-sd-friendlycore.img 
  2. [sudo] password for soon:  
  3. Creating RAW image: out/h3-sd-friendlycore.img (7800 MB) 
  4. --------------------------------- 
  5. 0+0 records in 
  6. 0+0 records out 
  7. 0 bytes copied, 0.0010239 s, 0.0 kB/s 
  8. Using device: /dev/loop14 
  9. --------------------------------- 
  10. Friendlycore-focal_4.14_armhf filesystem fusing 
  11. Image root: ./friendlycore-focal_4.14_armhf 
  12.  
  13. ---------------------------------------------------------------- 
  14. [/dev/loop14] capacity = 7438MB, 7799999488 bytes 
  15. current /dev/loop14 partition: 
  16. MBR.0 start : 0x0000100000 size 0x01d0da8c00  kB 
  17. ---------------------------------------------------------------- 
  18. parsing ./friendlycore-focal_4.14_armhf/partmap.txt: 
  19. part.0 flash=mmc,0:boot0:raw:0x2000,0x17fe000:u-boot-sunxi-with-spl.bin:[RAW] ./friendlycore-focal_4.14_armhf/u-boot-sunxi-with-spl.bin 
  20. part.1 flash=mmc,0:boot:fat:0x1800000,0x4000000:boot.img:[MBR] ./friendlycore-focal_4.14_armhf/boot.img 
  21. part.2 flash=mmc,0:system:ext4:0x5800000,0x20000000:system.img:[MBR] ./friendlycore-focal_4.14_armhf/system.img 
  22. part.3 flash=mmc,0:vendor:ext4:0x25800000,0x4000000:vendor.img:[MBR] ./friendlycore-focal_4.14_armhf/vendor.img 
  23. part.4 flash=mmc,0:userdata:ext4:0x29800000,0x12c00000:userdata.img:[MBR] ./friendlycore-focal_4.14_armhf/userdata.img 
  24. ---------------------------------------------------------------- 
  25. create new MBR 4: 
  26. [MBR.0] start : 0x0001800000 size 0x0004000000  
  27. [MBR.1] start : 0x0005800000 size 0x0020000000  
  28. [MBR.2] start : 0x0025800000 size 0x0004000000  
  29. [MBR.3] start : 0x0029800000 size 0x0012c00000  
  30. ---------------------------------------------------------------- 
  31. copy from: ./friendlycore-focal_4.14_armhf to /dev/loop14 
  32.  [RAW. 0]:     2040 KB | ./friendlycore-focal_4.14_armhf/u-boot-sunxi-with-spl.bin > 100% : done. 
  33.  [MBR. 0]:    65536 KB | ./friendlycore-focal_4.14_armhf/boot.img                  > 100% : done. 
  34.  [MBR. 1]:   524288 KB | ./friendlycore-focal_4.14_armhf/system.img                > 100% : done. 
  35.  [MBR. 2]:    65536 KB | ./friendlycore-focal_4.14_armhf/vendor.img                > 100% : done. 
  36.  [MBR. 3]:   307200 KB | ./friendlycore-focal_4.14_armhf/userdata.img              >  21                                                                                                                                                                                   100% : done. 
  37. ---------------------------------------------------------------- 
  38. /dev/loop14: msdos partitions 1 2 3 4 
  39. ### try to resize2fs: /dev/loop14p3 
  40. resize2fs 1.45.5 (07-Jan-2020) 
  41. The filesystem is already 16384 (4k) blocks long.  Nothing to do! 
  42.  
  43. --------------------------------- 
  44. Friendlycore-focal_4.14_armhf is fused successfully. 
  45. All done. 
  46. --------------------------------- 
  47. RAW image successfully created (23:44:53). 
  48. -rw-r--r-- 1 root root 7799999488 12月 30 23:44 out/h3-sd-friendlycore.img 
  49. Tip: You can compress it to save disk space
  50. soon@soon-u20:~/nanopi-m1-plus/sd-fuse_h3 $  

會在out目錄下生成img

  1. soon@soon-u20:~/nanopi-m1-plus/sd-fuse_h3/out $ ls -al 
  2. total 964620 
  3. drwxrwxr-x  2 soon soon       4096 12月 30 23:46 . 
  4. drwxrwxr-x 10 soon soon       4096 12月 30 23:46 .. 
  5. -rw-rw-r--  1 soon soon        167 12月  6 22:28 .gitignore 
  6. -rw-r--r--  1 root root 7799999488 12月 30 23:44 h3-sd-friendlycore.img 
  7. soon@soon-u20:~/nanopi-m1-plus/sd-fuse_h3/out $  

5 燒錄img

可以用dd 也可以用Win32DiskImager,dd指令如下:

  1. sudo dd if=out/h3-sd-friendlycore.img bs=1M of=/dev/sdX 

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區(qū)

https://harmonyos.51cto.com

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關推薦

2022-02-11 14:28:50

樹莓派Openharmon鴻蒙

2021-12-29 16:11:11

鴻蒙HarmonyOS應用

2021-01-19 15:57:53

CorelliumMacLinux

2021-03-18 09:17:00

LinuxM1 Mac蘋果

2013-02-22 09:32:45

微軟Windows BluWindows 8

2013-02-22 11:34:34

Windows Blu

2021-09-14 09:28:08

微軟Windows 10Windows

2011-12-15 09:07:21

javaeclipse

2011-09-10 10:59:58

惠普激光打印機

2011-07-19 09:34:25

復合一體機評測

2021-03-13 06:56:56

M1版SSDMacBook

2021-07-09 20:42:41

微信macOS移動應用

2021-12-16 15:14:54

鴻蒙HarmonyOS應用

2013-12-06 10:44:04

Windows 9標準版專業(yè)版

2010-03-05 09:41:43

Visual Stud

2013-01-17 14:49:16

Office 2013微軟云計算

2013-01-18 10:13:08

Office 2013

2022-06-28 10:36:27

MacBookM2 芯片M1

2021-08-26 14:28:37

微軟Mac M1 Mac

2020-11-26 06:08:39

MacBook
點贊
收藏

51CTO技術棧公眾號