999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Hi3559處理器Ubuntu系統適配

2022-05-09 01:05:45李博劉作龍錢軍琪呂民強蒲駿偉
中國新通信 2022年5期

李博 劉作龍 錢軍琪 呂民強 蒲駿偉

【摘要】? ? 本文介紹了海思Hi3559AV100處理器運行Ubuntu Linux系統的適配過程,適配過程可分為內核適配,根文件系統適配,系統固化三個步驟。在Hi3559AV100平臺中適配Ubuntu系統,可以利用Ubuntu成熟的軟件生態提升系統配置的靈活性,滿足更多應用場景的需求。

【關鍵詞】? ? Ubuntu Linux? ? Linux內核? ? 根文件系統

引言:

隨著嵌入式硬件性能的不斷提升,采用arm64架構的處理器已逐步可以滿足Linux發行版的基本運行需求。部分Linux發行版如Ubuntu,也提供了arm64版本的系統,本文詳細描述了在海思的Hi3559AV100處理器運行Ubuntu系統的適配過程。在嵌入式平臺中使用Ubuntu,可以利用Ubuntu成熟的軟件包管理功能及豐富的軟件包資源,提升系統配置的靈活性,滿足更多應用場景的需求。

一、硬件平臺

本文使用基于Hi3559AV100的開發板作為硬件平臺進行Ubuntu系統適配。Hi3559AV100是海思公司推出的專業的相機SOC,使用先進低功耗工藝和架構設計,集成了雙核A73和雙核A53的大小核架構[1]。A73和A53均為arm64架構的處理器核心,可支持arm64架構的Ubuntu系統運行。

Hi3559AV100開發板主要包括以下硬件資源:1. Hi3559AV100處理器一片;2. 4GB容量DDR4內存;3. 8GB容量eMMC存儲;4. 1個RS232調試串口;5. 1 個RJ45 網絡接口。

二、Ubuntu系統

Ubuntu Linux基于Debian Linux的unstable版本發展而來,使用了debian系列的deb格式軟件包及apt軟件包管理工具。Ubuntu的出現提升了Linux發行版的易用性,造就了龐大的用戶群體及活躍的社區,目前在桌面領域及服務器領域份額已成為Linux發行版的領頭羊,在云計算等領域也提供了相應的解決方案并得到了廣泛應用。隨著ARM生態的不斷發展,arm64架構的CPU在性能上已經可以勝任Ubuntu發行版的運行需求,目前許多arm64架構的處理器廠商都已經為其開發板提供了官方的Ubuntu的適配,例如,Xilinx公司的Ultrascale+開發板以及著名的樹莓派平臺均為開發者提供了預裝的Ubuntu系統。Ubuntu也提供了其各主要版本的arm64系統下載鏈接。arm64架構下,Ubuntu僅提供其根文件系統,Linux內核由用戶針對其具體處理器及板級進行適配。本文描述針對Hi3559AV100處理器適配arm64版本的Ubuntu16.04系統。

三、適配過程

海思官方提供Hi3559AV100開發SDK,其中包含適配Hi3559AV100開發板的u-boot、Linux內核、根文件系統及開發用的軟件框架和實例程序。SDK中,Linux內核的默認配置可支持SDK中的根文件系統,但無法支持Ubuntu系統的運行,因此需要修改內核配置,編譯,生成支持Ubuntu的內核鏡像。得到可支持Ubuntu系統啟動的內核鏡像后,可進一步修改根文件系統,滿足使用需求,并生成固化用的文件系統鏡像,并最終固化至開發板,完成適配過程。

(一)環境準備

適配前需搭建如圖1所示的開發環境,開發主機環境為一臺安裝Ubuntu系統的PC機,按照文檔[2]安裝SDK并搭建了完整的開發環境,建立了有效的tftp服務器及NFS服務器環境。從Ubuntu下載鏈接下載的Ubuntu16.04系統的arm64版本壓縮包解壓至開發主機環境的NFS路徑下。開發板和開發主機通過以太網和串口連接,在開發調試階段,開發板上運行Linux內核存儲在開發主機端的tftp目錄中,通過網絡文件系統NFS掛載存儲于開發主機端NFS目錄中的Ubuntu系統。

(二)內核適配

通過實際測試,SDK安裝完成后,其內核版本為4.9,默認的配置不支持Ubuntu系統的啟動,需修改內核配置,在Linux內核源碼路徑下輸入如下命令打開Linux內核配置操作界面:

make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- menuconfig

在調試階段,Ubuntu系統部署在了開發機中,Hi3559開發板需通過NFS掛載根文件系統,默認的內核配置不支持根文件系統的NFS的方式掛載,因此首先配置內核的網絡部分和文件系統部分,開啟內核對根文件系統的NFS的方式掛載的支持,如圖2、圖3所示。

SDK中根文件系統中設置了基本的設備節點,確保了啟動時/dev路徑下具備基本的設備節點。Ubuntu使用udev機制,因而Ubuntu中/dev路徑默認為空,為保證系統啟動時具備基本的設備節點,需配置內核中的/dev/tmpfs選項,使得內核啟動后自行創建基本的/dev下的設備節點,如圖4所示。

Linux系統中,根文件系統掛載后,內核在根文件系統中尋找并執行init程序,開啟系統的初始化,SDK提供的根文件系統使用的是Sysvinit,而Ubuntu使用了功能更為強大的systemd,systemd需要使用內核的cgroups機制,因此需配置內核中cgroups相關選項,如圖5,圖6所示。

配置完成后,保存配置并退出,使用如下命令編譯Linux內核:

make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- uImage

編譯完成后就生成了內核文件uImage,Hi3559平臺下,要獲得可從u-boot引導啟動的Linux內核文件,還需使用SDK中的arm-trusted-firmware工具生成ATF+Kernel的鏡像文件fip.bin,該鏡像文件fip.bin可被Hi3559的u-boot正確啟動。

編譯內核后還需編譯內核模塊并安裝至NFS路徑下的Ubuntu文件系統中:

make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- modules

make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux-? \

INSTALL_MOD_PATH=/nfs/ubuntu? modules_install

編譯內核后還需編譯內核模塊并安裝后,NFS路徑中的Ubuntu系統可正確被內核啟動掛載,由于內核模塊安裝時自動設置了依賴關系,因此啟動后內核模塊將你被系統自動加載。

(三)根文件系統適配

目標機通過NFS網絡文件系統掛載運行Ubuntu系統,由于Ubuntu系統功能眾多,較為龐大,因此本文采用Ubuntu提供的最小化的base[3]系統作為Hi3559AV100適配Ubuntu的基礎根文件系統。Ubuntu base僅提供了最小化的系統能力,其他功能可通過聯網安裝獲取,因此需在開發環境中對Ubuntu根文件系統進行基礎設置,通過拷貝開發環境主機Ubuntu中的配置文件來更換NFS中Ubuntu系統的軟件源配置,用戶名密碼配置等,隨后即可啟動系統。在系統正常啟動后,使用軟件包管理工具apt安裝所需的軟件滿足實際使用需求,如net-tools,kmod等,如需編譯器可安裝gcc,g++等。

在開發板上啟動配置好的內核,通過NFS掛載Ubuntu系統,步驟如下:

1.啟動開發板,在u-boot出現shell提示符時在串口終端輸入任意按鍵,打斷默認啟動,修改啟動參數如下:

setenv bootargs “mem=2048M console=ttyAMA0,115200 noinitrd root=/dev/nfs rw \

nfsroot=192.168.0.100:/nfs/ubuntu,proto=tcp,nfsvers=3,nolock \

ip=192.168.0.120:192.168.0.100:192.168.0.1:255.255.255.0 \

blkdevparts=mmcblk0:1M(u-boot.bin),15M(kernel),7000M(rootfs)”

setenv bootcmd ”tftp 41000000 fip.bin;bootm 41000000”

按照上述命令設置bootargs參數,可配置內核啟動時以NFS的方式掛載根文件系統,根文件系統位于ip地址為192.168.0.100的主機的/nfs/ubuntu路徑下,并指定了開發板的ip地址為192.168.0.120。設置blkdevparts的目的在于告訴內核開發板的emmc芯片分區按照1M,15M,7000M劃分為3個分區。

2.在u-boot的shell中輸入boot命令,u-boot將根據配置先從tftp加載fip.bin文件至內存的0x4100000地址,隨后從0x41000000地址啟動Linux內核。

3. Linux內核啟動后將按照bootargs的設置,掛載NFS中的Ubuntu根文件系統,掛載成功后,Ubuntu中的systemd啟動,初始化系統,當出現登陸提示符時,代表Ubuntu啟動完成。

Ubuntu系統啟動完成后,可以使用先前配置的用戶名及密碼登錄系統,并使用apt工具安裝需要的軟件包,并進行相應的系統功能測試,系統功能可滿足需求則根文件系統適配完成。

(四)系統固化

系統固化指將內核鏡像及Ubuntu根文件系統部署至開發板的emmc芯片內,可以脫離開發環境的tftp+NFS啟動系統的過程。

存放在開發環境主機中NFS路徑下的Ubuntu根文件系統,可在主機端使用Linux中的tar工具進行打包,隨后燒寫至eMMC 分區中。燒寫固化流程如下:

1.啟動開發板,在u-boot出現提示符時在串口終端輸入,打斷默認啟動,隨后在u-boot的shell中執行如下命令:

mw.b 0x42000000 0xff 0xf00000

tftp 0x42000000 fip.bin

mmc write 0 0x42000000 0x800 0x7800

將Linux內核鏡像文件下載至0x42000000,并燒寫如emmc中。

2.固化文件系統,在燒寫內核完成后,通過燒入的內核鏡像文件啟動,此時仍需掛載NFS,設置參數如下:

setenv bootargs “mem=2048M console=ttyAMA0,115200 noinitrd root=/dev/nfs rw \

nfsroot=192.168.0.100:/nfs/ubuntu,proto=tcp,nfsvers=3,nolock \

ip=192.168.0.120:192.168.0.100:192.168.0.1:255.255.255.0 \

blkdevparts=mmcblk0:1M(u-boot.bin),15M(kernel),7000M(rootfs)”

setenv bootcmd ”mmc read 0 41000000; bootm 41000000”

隨后輸入boot啟動系統。系統啟動后先格式化emmc的第三分區:

mkfs.ext4? /dev/mmcblk01p3

格式化后掛載該分區至/mnt路徑:

mount /dev/mmcblk01p3 /mnt

隨后將使用tar命令打包的Ubuntu系統解壓至/mnt路徑

tar xvf ubuntu.tar -C /mnt

解壓完成后,使用sync命令,確保文件寫入emmc中,至此根文件系統燒寫部署完成,可重啟開發板,設置啟動參數。

3.設置啟動參數。重啟開發板,在u-boot出現shell提示符時在串口終端輸入任意按鍵,打斷默認啟動,修改啟動參數如下:

setenv bootargs “mem=2048M console=ttyAMA0, 115200 noinitrd root=/dev/mmcblk01p3 \

rootfstype=ext4 rw ip=192.168.0.120 blkdevparts=mmcblk0:1M(u-boot.bin),15M(kernel), \

7000M(rootfs)”

setenv bootcmd ”mmc read 0 41000000; bootm 41000000”

隨后輸入saveenv保存設置,至此系統固化完成,重新啟動開發板后,將自動從emmc中加載Linux內核鏡像,并啟動emmc中的Ubuntu系統。與傳統嵌入式Linux難以靈活擴展功能不同,Linux發行版系統以軟件源的方式提供了豐富的軟件生態,系統啟動并登陸后,可以使用apt工具依據實際需求,安裝需要的軟件組件,支持豐富的應用場景。

四、結束語

本文指出了Linux發行版Ubuntu應用于嵌入式環境的方法,并在Hi3559開發板進行了驗證。隨著嵌入式硬件平臺性能的不斷提升,Linux發行版作為使用廣泛,便于擴展定制的基礎系統平臺必將更加廣泛的應用與嵌入式場景,為嵌入式開發者提供更好的系統通用性、靈活性,更適用于未來物聯網行業的開發及部署,提升應用的開發效率,縮短研發周期,使嵌入式產品更具競爭力。

參? 考? 文? 獻

[1] Hi3559A/C V100用戶指南

[2] Hi3559A/C V100開發環境用戶指南

[3] https://wiki.ubuntu.com/Base

李博(1988.06-),男,漢族,陜西銅川,碩士研究生,工程師,研究方向:Linux操作系統。

主站蜘蛛池模板: 午夜国产在线观看| 91精品国产丝袜| 美女无遮挡免费视频网站| 亚洲不卡av中文在线| A级毛片高清免费视频就| 亚洲日本www| 国产va在线观看免费| 中日无码在线观看| 天天干天天色综合网| 国产福利在线免费观看| 亚洲自拍另类| 国产视频大全| 日韩不卡高清视频| 亚洲无限乱码| 国产农村1级毛片| 国产无人区一区二区三区| 精品一区二区无码av| 国产精品不卡片视频免费观看| 九九九久久国产精品| 另类专区亚洲| 看看一级毛片| 波多野结衣在线se| 五月天天天色| 538国产视频| 69国产精品视频免费| 亚洲无线视频| 国产精品女在线观看| 亚洲成人一区在线| 欧美午夜在线观看| 久久先锋资源| 午夜久久影院| 国产香蕉在线视频| 亚洲精品卡2卡3卡4卡5卡区| 国产国产人成免费视频77777| 另类综合视频| 亚洲一区二区三区国产精品 | 91在线精品麻豆欧美在线| 强奷白丝美女在线观看| 熟女日韩精品2区| 久久久久青草大香线综合精品| 亚洲视频在线网| 在线无码av一区二区三区| 狠狠五月天中文字幕| 看看一级毛片| 亚洲精品国产日韩无码AV永久免费网 | 在线播放国产一区| 色久综合在线| 欧美a在线看| 波多野结衣AV无码久久一区| 精品五夜婷香蕉国产线看观看| 无码啪啪精品天堂浪潮av| 亚洲欧美成人网| 国产成人AV男人的天堂| 国产精品久久久久鬼色| 亚洲日韩久久综合中文字幕| 亚洲综合九九| 色欲色欲久久综合网| 青青草91视频| 国产真实自在自线免费精品| 国产在线麻豆波多野结衣| 国产真实自在自线免费精品| 在线播放91| 深夜福利视频一区二区| 在线观看国产黄色| 在线99视频| 免费国产福利| 青青国产视频| 在线观看国产精品第一区免费 | 欧美成人午夜在线全部免费| 99在线视频精品| 欧美成人午夜在线全部免费| 米奇精品一区二区三区| 91九色国产porny| 一级毛片免费观看久| 中文字幕乱妇无码AV在线| 国产精品夜夜嗨视频免费视频| 国产福利在线观看精品| 九九热免费在线视频| 真实国产精品vr专区| 88av在线播放| 欧美一道本| 国产精品午夜福利麻豆|