RM新时代网站-首页

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

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

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

Tina_Linux_系統(tǒng)軟件開發(fā)指南

嵌入式Linux那些事 ? 來源:嵌入式Linux那些事 ? 作者:嵌入式Linux那些事 ? 2023-03-02 15:25 ? 次閱讀


Tina_Linux_系統(tǒng)軟件 開發(fā)指南

image-20221123145359081image-20221123145359081image-20221123145359081image-20221123145359081image-20221123145359081

1 概述

編寫目的:本文檔作為Allwinner Tina Linux系統(tǒng)平臺開發(fā)指南,旨在幫助軟件開發(fā)工程師、技術(shù)支持工程師快速上手,熟悉Tina Linux系統(tǒng)的開發(fā)及調(diào)試流程。

適用范圍:Tina Linux v3.5及以上版本。

2 Tina系統(tǒng)資料

2.1 概述

Tina SDK發(fā)布的文檔旨在幫助開發(fā)者快速上手開發(fā)及調(diào)試,文檔中涉及的內(nèi)容并不能涵蓋所有的開發(fā)知識和問題。文檔列表也正在不斷更新。

Tina SDK提供豐富的文檔資料,包括硬件參考設(shè)計文檔、Flash等基礎(chǔ)器件支持列表、量產(chǎn)工具使用說明、軟件開發(fā)與制定介紹文檔、芯片研發(fā)手冊等資料。

2.2 文檔列表

請以全志科技全志客戶服務(wù)平臺最新列表為準(zhǔn)。

3 Tina系統(tǒng)概述

3.1 概述

Tina Linux系統(tǒng)是基于openwrt-14.07的版本的軟件開發(fā)包,包含了Linux系統(tǒng)開發(fā)用到的內(nèi)核源碼、驅(qū)動、工具、系統(tǒng)中間件與應(yīng)用程序包。openwrt是一個開源的嵌入式Linux系統(tǒng)自動構(gòu)建框架,是由Makefile腳本和Kconfig配置文件構(gòu)成的。使得用戶可以通過menuconfig配置,編譯出一個完整的可以直接燒寫到機(jī)器上運行的Linux系統(tǒng)軟件。

3.2 系統(tǒng)框圖

圖3-1: Tina Linux系統(tǒng)框圖

Tina系統(tǒng)軟件框圖如圖所示,從下至上分為Kernel && Driver、Libraries、System Ser-vices、Applications四個層次。各層次內(nèi)容如下:

Kernel&&Driver主要提供Linux Kernel的標(biāo)準(zhǔn)實現(xiàn)。Tina平臺的Linux Kernel 采用Linux3.4、linux3.10、linux4.4、linux4.9等內(nèi)核(不同硬件平臺可能使用不同內(nèi)核版本)。提供安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧等基礎(chǔ)支持;主要是通過Linux內(nèi)核管理設(shè)備硬件資源,如CPU調(diào)度、緩存、內(nèi)存、I/O等。

Libraries層對應(yīng)一般嵌入式系統(tǒng),相當(dāng)于中間件層次。包含了各種系統(tǒng)基礎(chǔ)庫,及第三方開源程序庫支持,對應(yīng)用層提供API接口,系統(tǒng)定制者和應(yīng)用開發(fā)者可以基于Libraries層的API開發(fā)新的應(yīng)用。

System Services層對應(yīng)系統(tǒng)服務(wù)層,包含系統(tǒng)啟動管理、配置管理、熱插拔管理、存儲管理、多媒體中間件等。

Applications層主要是實現(xiàn)具體的產(chǎn)品功能及交互邏輯,需要一些系統(tǒng)基礎(chǔ)庫及第三方程序庫支持,開發(fā)者可以開發(fā)實現(xiàn)自己的應(yīng)用程序,提供系統(tǒng)各種能力給到最終用戶。

3.3 開發(fā)流程

Tina Linux 系統(tǒng)是基于 Linux Kernel,針對多種不同產(chǎn)品形態(tài)開發(fā)的 SDK??梢曰诒?SDK,有效地實現(xiàn)系統(tǒng)定制和應(yīng)用移植開發(fā)。

圖3-2: Tina Linux系統(tǒng)開發(fā)流程

如上圖所示,開發(fā)者可以遵循上述開發(fā)流程,在本地快速構(gòu)建Tina Linux系統(tǒng)的開發(fā)環(huán)境和編譯 代碼。下面將簡單介紹下該流程:

檢查系統(tǒng)需求:在下載代碼和編譯前,需確保本地的開發(fā)設(shè)備能夠滿足需求,包括機(jī)器的硬件能力,軟件系統(tǒng),工具鏈等。目前Tina Linux系統(tǒng)只支持Ubuntu操作系統(tǒng)環(huán)境下編譯,并僅提供Linux環(huán)境下的工具鏈支持,其他如MacOS,Windows等系統(tǒng)暫不支持。

搭建編譯環(huán)境:開發(fā)機(jī)器需要安裝的各種軟件包和工具,詳見開發(fā)環(huán)境章節(jié),獲知TinaLinux已經(jīng)驗證過的操作系統(tǒng)版本,編譯時依賴的庫文件等。

選擇設(shè)備:在編譯源碼前,開發(fā)者需要先導(dǎo)出預(yù)定義環(huán)境變量,然后根據(jù)開發(fā)者根據(jù)的需求,選擇對應(yīng)的硬件板型,詳見編譯章節(jié)。

系統(tǒng)定制:開發(fā)者可以根據(jù)使用的硬件板子、產(chǎn)品定義,定制U-Boot、Kernel及Open-wrt,請參考后續(xù)章節(jié)中相關(guān)開發(fā)指南和配置的描述。

編譯與打包:完成設(shè)備選擇、系統(tǒng)定制之后執(zhí)行編譯命令,包括整體或模塊編譯以及編譯清理等工作,進(jìn)一步的,將生成的boot/內(nèi)核二進(jìn)制文件、根文件系統(tǒng)、按照一定格式打包成固件。詳見編譯打包章節(jié)。

燒錄并運行:繼生成鏡像文件后,將介紹如何燒錄鏡像并運行在硬件設(shè)備,進(jìn)一步內(nèi)容詳見系統(tǒng)燒寫章節(jié)。

4 Tina開發(fā)環(huán)境

4.1 概述

嵌入式產(chǎn)品開發(fā)流程中,通常有兩個關(guān)鍵的步驟,編譯源碼與燒寫固件。源碼編譯需要先準(zhǔn)備好

編譯環(huán)境,而固件燒寫則需要廠家提供專用燒寫工具。本章主要講述這如何搭建環(huán)境來實現(xiàn)Tinasdk的編譯、燒寫。

4.2 編譯環(huán)境搭建.

一個典型的嵌入式開發(fā)環(huán)境包括本地開發(fā)主機(jī)和目標(biāo)硬件板。

本地開發(fā)主機(jī)作為編譯服務(wù)器,需要提供Linux操作環(huán)境,建立交叉編譯環(huán)境,為軟件開發(fā)提供代碼更新下載,代碼交叉編譯服務(wù)。

本地開發(fā)主機(jī)通過串口或USB與目標(biāo)硬件板連接,可將編譯后的鏡像文件燒寫到目標(biāo)硬件板,并調(diào)試系統(tǒng)或應(yīng)用程序。

4.2.1 開發(fā)主機(jī)配置.

Tina Linux SDK是在ubuntu14.04開發(fā)測試的,因此我們 推薦使用Ubuntu 14.04 主機(jī)環(huán)境進(jìn)行源碼編譯,其他版本沒有具體測試,可能需要對軟件包做相應(yīng)調(diào)整。

4.2.2 軟件包配置.

編譯Tina Linux SDK 之前,需要先確定編譯服務(wù)器安裝了gcc,binutils,bzip2,flex,python,perl,make,ia32-libs,find,grep,diff,unzip,gawk,getopt,subver-sion,libz-dev,libc headers

ubuntu可直接執(zhí)行以下命令安裝:

sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawkflex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip ia32-libslib32z1 lib32z1-dev lib32stdc++6 libstdc++6 -y

ubuntu 16.04及以上版本,執(zhí)行下面命令安裝軟件包:

sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lib32z1 lib32z1-dev lib32stdc++ libstdc++6 -y libc6:i386 libstdc++6:i386 lib32ncurses5 lib32z

5 Tina系統(tǒng)獲取

5.1 概述

5.2 SDK獲取

Allwinner Tina Linux SDK通過全志代碼服務(wù)器對外發(fā)布。客戶需要向業(yè)務(wù)/技術(shù)支持窗口申請SDK下載權(quán)限。申請需同步提供SSH公鑰進(jìn)行服務(wù)器認(rèn)證授權(quán),獲得授權(quán)后即可同步代碼。

5.3 SDK結(jié)構(gòu)

Tina Linux SDK主要由構(gòu)建系統(tǒng)、配置工具、工具鏈、host工具包、目標(biāo)設(shè)備應(yīng)用程序、文檔、腳本、linux內(nèi)核、bootloader部分組成,下文按照目錄順序介紹相關(guān)的組成組件。

Tina-SDK/

├── build

├── config

├── Config.in

├── device

├── dl

├── docs

├── lichee

├── Makefile

├── out

├── package

├── prebuilt

├── rules.mk

├── scripts

├── target

├── tmp

├── toolchain

└── tools

5.3.1 build目錄

build目錄存放Tina Linux的構(gòu)建系統(tǒng)文件,此目錄結(jié)構(gòu)下主要是一系列基于Makefile規(guī)格編 寫的mk文件。主要的功能是:

檢測當(dāng)前的編譯環(huán)境是否滿足Tina Linux的構(gòu)建需求。

生成host包編譯規(guī)則。

生成工具鏈的編譯規(guī)則。

生成target包的編譯規(guī)則。

生成linux kernel的編譯規(guī)則。

生成系統(tǒng)固件的生成規(guī)則。

build/

├── autotools.mk

├── aw-upgrade.mk

├── board.mk

├── cmake.mk

├── config.mk

├── debug.mk

├── depends.mk

├── device.mk

├── device_table.txt

├── download.mk

├── dumpvar.mk

├── envsetup.sh

5.3.2 config目錄

config目錄主要存放Tina Linux中配置菜單的界面以及一些固定的配置項,該配置菜單基于內(nèi) 核的mconf規(guī)格書寫。

config/

├── Config-build.in

├── Config-devel.in

├── Config-images.in

├── Config-kernel.in

└── top_config.in

5.3.3 devices目錄

devices目錄用于存放方案的配置文件,包括內(nèi)核配置,env配置,分區(qū)表配置,sys_config.fex, board.dts等。

這些配置在舊版本上是保存于target目錄下,新版本挪到device目錄。

注意defconfig仍保存在target目錄。

device/

└── config

├── chips

├── common

└── rootfs_tar

快捷跳轉(zhuǎn)命令:cconfigs

5.3.4 docs目錄

docs目錄主要存放用于開發(fā)的文檔,以markdown格式書寫。

本目錄不再更新,請以全志客戶服務(wù)平臺系統(tǒng)文檔為準(zhǔn)。

docs/

├── build.md

├── config.md

├── init-scripts.md

├── Makefile

├── network.md

├── tina.md

├── wireless.md

└── working.md

5.3.5 lichee目錄

lichee目錄主要存放bootloader,內(nèi)核,arisc,dsp等代碼。

lichee/

├── bootloader

│ ├── uboot_2011_sunxi_spl

│ └── uboot_2014_sunxi_spl

├── brandy

│ ├── u-boot-2011.09

│ └── u-boot-2014.07

├── brandy-2.0

│ ├── spl

│ ├── tools

│ └── u-boot-2018

├── linux-3.4

├── linux-3.10

├── linux-4.4

├── linux-4.9

├── arisc

快捷跳轉(zhuǎn)命令:ckernel,cboot,cboot0,carisc。

5.3.6 package目錄

package目錄存放target機(jī)器上的軟件包源碼和編譯規(guī)則,目錄按照目標(biāo)軟件包的功能進(jìn)行分 類。

package/ ├── allwinner ├── base-files ├── devel ├── dragonst ├── firmware ├── kernel ├── ...... └── utils

5.3.7 prebuilt目錄

prebuild目錄存放預(yù)編譯交叉編譯器,目錄結(jié)構(gòu)如下。

prebuilt/ └── gcc └── linux-x86 ├── aarch64 │ ├── toolchain-sunxi-musl │ └── toolchain-sunxi-glibc ├── arm │ ├── toolchain-sunxi-arm9-glibc │ ├── toolchain-sunxi-arm9-musl │ ├── toolchain-sunxi-glibc │ ├── toolchain-sunxi-musl └── host └── host-toolchain.txt

5.3.8 scripts目錄

scripts目錄用于存放一些構(gòu)建編譯相關(guān)的腳本。

scripts/ ├── arm-magic.sh ├── brcmImage.pl ├── bundle-libraries.sh ├── checkpatch.pl ├── clang-gcc-wrapper ├── cleanfile ├── clean-package.sh ├── cleanpatch ├── ......

5.3.9 target目錄

target目錄用于存放目標(biāo)板相關(guān)的配置以及sdk和toolchain生成的規(guī)格。

target/ ├── allwinner ├── Config.in ├── imagebuilder ├── Makefile ├── sdk └── toolchain

快捷跳轉(zhuǎn)命令:cdevice。

5.3.10 toolchain目錄.

toolchain目錄包含交叉工具鏈構(gòu)建配置、規(guī)則。

toolchain/ ├── binutils ├── Config.in ├── fortify-headers ├── gcc ├── gdb ├── glibc ├── info.mk ├── insight ├── kernel-headers ├── Makefile ├── musl └── wrapper

5.3.11 tools目錄.

tools目錄用于存放host端工具的編譯規(guī)則。

tools/ ├── autoconf ├── automake ├── aw_tools ├── b43-tools ├── ......

5.3.12 out目錄.

out目錄用于保存編譯相關(guān)的臨時文件和最終鏡像文件,編譯后自動生成此目錄,例如編譯方案 r328s2-perf1。

out/ ├── r328s2-perf └── host

其中host目錄用于存放host端的工具以及一些開發(fā)相關(guān)的文件。

r328s2-perf1目錄為方案對應(yīng)的目錄。方案目錄下的結(jié)構(gòu)如下:

out/r328s2-perf ├── boot.img ├── compile_dir ├── image ├── md5sums ├── packages ├── r328s2-perf1-boot.img ├── r328s2-perf1-uImage ├── r328s2-perf1-zImage ├── rootfs.img ├── sha256sums ├── staging_dir └── tina_r328s2-perf1_uart0.img

boot.img為最終燒寫到系統(tǒng)boot分區(qū)的數(shù)據(jù),可能為boot.img格式也可能為uImage格式。

rootfs.img為最終燒寫到系統(tǒng)rootfs分區(qū)的數(shù)據(jù),該分區(qū)默認(rèn)為squashfs格式。

r328s2-perf1-zImage為內(nèi)核的zImage格式鏡像,用于進(jìn)一步生成uImage。

r328s2-perf1-uImage為內(nèi)核的uImage格式鏡像,若配置為uImage格式,則會拷貝成boot.img。

r328s2-perf1-boot.img為內(nèi)核的boot.img格式鏡像,若配置為boot.img格式,則會拷貝成boot.img

compile_dir為sdk編譯host,target和toolchain的臨時文件目錄,存有各個軟件包的源碼。

staging_dir為sdk編譯過程中保存各個目錄結(jié)果的目錄。

packages目錄保存的是最終生成的ipk軟件包。

tina_r328s2-perf1_uart0.img為最終固件包(系統(tǒng)鏡像),串口信息通過串口輸出

若使用pack -d,則生成的固件包為xxx_card0.img,串口信息轉(zhuǎn)遞到tf卡座輸出。

快捷跳轉(zhuǎn)命令:cout。

5.4 SDK更新

SDK更新分為兩類:一類是以補丁的形式發(fā)布到一號通,發(fā)布后系統(tǒng)以郵件形式通知開發(fā)者;另一類是定期(半年或季度)的小版本迭代升級,將過往的補丁合入到SDK中,發(fā)布后以系統(tǒng)郵件通知開發(fā)者,可基于干凈的SDK包通過repo sync命令更新。

5.5 問題反饋

Allwinner提供全志客戶服務(wù)平臺(https://open.allwinnertech.com),用來登記客戶遇到的 問題以及解決狀態(tài)。方便雙方追蹤,使問題處理更加高效。后續(xù)SDK問題、技術(shù)問題、技術(shù)咨詢 等都可以提交到此系統(tǒng)上,Allwinner技術(shù)服務(wù)會及時將問題進(jìn)行分發(fā)、處理和跟蹤。

注:系統(tǒng)登錄帳號需要與Allwinner開通確認(rèn)。

6 Tina編譯打包

6.1 概述

6.2 編譯系統(tǒng)

(1) source build/envsetup.sh (2) lunch (3) make [-jN] (4) pack [-d] 其中, 步驟(1)建立編譯環(huán)境,導(dǎo)出編譯變量。 步驟(2)提示需要選擇你想要編譯的方案。 步驟(3)參數(shù)N為并行編譯進(jìn)程數(shù)量,依賴編譯服務(wù)器CPU核心數(shù),如 4 核PC,可"make -j4" 步驟(4)打包固件,-d參數(shù)使生成固件包串口信息轉(zhuǎn)到tf卡座輸出。 編譯完成后系統(tǒng)鏡像會打包在out//目錄下

6.3 編譯boot

命令 命令有效目錄 作用
mboot tina下任意目錄 編譯boot0和uboot
mboot0 tina下任意目錄 編譯boot0
muboot tina下任意目錄 編譯uboot

6.4 編譯內(nèi)核

命令 命令有效目錄 作用
mkernel tina下任意目錄 編譯內(nèi)核

6.5 編譯arisc

arisc是AW平臺對cpus代碼環(huán)境的代稱,主要功能是負(fù)責(zé)休眠,關(guān)機(jī)等底層操作。它包含 cpus運行所需的驅(qū)動,庫及工具鏈等,編譯產(chǎn)生scp.bin,然后打包在Tina鏡像中,有boot- loader在啟動時加載到cpus域運行。

Tina中提供了如下與arisc相關(guān)的跳轉(zhuǎn)、編譯命令

命令 命令有效目錄 作用
carisc tina下任意目錄 跳轉(zhuǎn)到cpus代碼工程目錄
mkarisc tina下任意目錄 編譯cpus代碼

在Tina中,編譯arisc代碼有兩種方式,如下:

第一種方式,跳轉(zhuǎn)到arisc代碼路徑下,使用make編譯

arisc代碼庫具有獨立的工具鏈和構(gòu)建體系,因此對arisc代碼的編譯,也可以cd到對應(yīng)的路徑 下,執(zhí)行make命令。但需注意,此時需要手動將生成的scp.bin文件拷貝到SDK的bin文件 路徑下,覆蓋對應(yīng)的文件(一般路徑是tina/device/config/chips/${平臺名}/bin)。

操作如下,

step1 使用carisc或cd命令跳轉(zhuǎn)到arisc代碼環(huán)境下,一般為tina/lichee/arisc/ar100s。 step2 生成必要的配置。在arch/configs/下,存在許多defconfig默認(rèn)配置文件,可根據(jù)AXP型號選擇使用,例如make sun50iw10p1_axp803_defconfig。此操作將會在arisc根目錄生成.config。 step3 修改默認(rèn)配置,可使用make menuconfig。此操作會生成配置菜單,按需選擇配置即可,該操作會修改.config。如需重新使用默認(rèn)配置,重新執(zhí)行step2即可。 step4 使用make命令編譯 step5 將scp.bin拷貝到Tina的bin目錄,即cbin可跳轉(zhuǎn)的目錄即可。如/tina/device/config/chips/r818/binstep6 若需清理工程,可使用make clean step7 如需提交defconfig配置修改,可使用make savedefconfig命令。此命令會根據(jù).config在arisc根目錄生成 defconfig。將defconfig拷貝到arch/configs/下,覆蓋對應(yīng)配置文件即可。

注意:

一般來說,arisc執(zhí)行的功能較為底層,多與休眠,關(guān)機(jī)等操作相關(guān),對穩(wěn)定性要求較高。我們不 建議客戶自己修改任何相關(guān)配置和代碼,如必須,請與我司聯(lián)系或執(zhí)行足夠的穩(wěn)定性測試。

第二種方式,使用mkarisc命令

如上述方法所述,Tina為了解決arisc編譯后還需手動拷貝的問題,Tina提供了這個快捷命令 mkarisc。需要指出的是:目前只支持R818、MR813的arisc代碼編譯。

操作如下,較為簡單

step1 配置tina環(huán)境,如soure build/envsetup.sh, lunch等操作。 step2 使用mkarisc編譯即可或直接編譯Tina,在編譯Tina時,也會自動調(diào)用mkarisc命令。

注意:

使用mkarisc命令編譯時,會自動讀取board.dts獲取AXP型號,然后使用對應(yīng)的默認(rèn)配置文 件編譯。如board.dts中指定使用“x-powers,axp803”時,mkarsic命令會使用arisc工程環(huán) 境下的sun50iw10p1_axp803_defconfig配置文件編譯。此時,若您需要修改該arisc配置, 只能先修改該配置文件后編譯,除此外不接受其他配置修改的方式。

6.6 編譯E907固件(V85x平臺異構(gòu)AMP核)

E907是V85x平臺AMP CPU的代稱,其主要功能是提供通用算力補充、輔助Linux實現(xiàn)快起 等。它包含E907運行所需的驅(qū)動、庫及工具鏈等,編譯產(chǎn)生riscv.fex,打包到Tina鏡像中, 由bootloader在啟動時加載到RISC-V核上運行。

在Tina SDK中,編譯E907 RISCV代碼如下:

E907 RISCV 代碼庫具有獨立的工具鏈和構(gòu)建體系,因此對 E907 固件的編譯,也可以跳 轉(zhuǎn)到對應(yīng)的路徑下,執(zhí)行命令。但需注意,此時需要手動將生成的 melis30.elf 文件拷貝 到 SDK 的 bin 文件路徑下,覆蓋對應(yīng)的文件(一般路徑是 device/config/chips/${平臺 名}/configs/default/riscv.fex)。

操作如下,

step1 使用cd命令跳轉(zhuǎn)到e907代碼環(huán)境下,一般為rtos-dev/lichee/melis-v3.0/source step2 source melis-env.sh step3 lunch v853-e907-ver1-board step4 make menuconfig step5 make -j step6 如需減少存儲空間,可裁剪調(diào)試信息,在melis source目錄執(zhí)行:riscv64-unknown-elf-strip ekernel/melis30.elf step7 拷貝并重命名成riscv.fex替換掉tina/device/config/chips/v853/configs/default目錄下的riscv.fex cp ekernel/melis30.elf /home/xxx/tina/device/config/chips/v853/configs/default/riscv.fex step8 Tina系統(tǒng)目錄執(zhí)行打包命令pack

6.7 重編應(yīng)用

請確保進(jìn)行過一次固件的編譯,確保SDK基礎(chǔ)已經(jīng)編譯,才能單獨重編應(yīng)用包。重編應(yīng)用包應(yīng)用場景一般為: 只修改了應(yīng)用,不想重新燒寫固件,只需要安裝應(yīng)用安裝包即可 。請確保在編譯前已加載tina環(huán)境:

$ source build/envsetup.sh $ lunch

6.7.1 方法一

當(dāng)在應(yīng)用包的目錄(包括其子目錄)中,可執(zhí)行

$ mm [-B] => B參數(shù)則先clean此應(yīng)用臨時文件再編譯

示例:假設(shè)軟件包路徑為:tina/package/utils/rwcheck,則:

$ cd tina/package/utils/rwcheck $ mm -B

編譯出應(yīng)用安裝包保存路徑為:

tina/out/<方案>/packages/base

6.7.2 方法二

當(dāng)在tina的根目錄,可執(zhí)行:

$ make <應(yīng)用包的路徑>/clean,==>清空應(yīng)用包臨時文件 $ make <應(yīng)用包的路徑>/install,==>編譯軟件包 或者 $ make <應(yīng)用包的路徑>/{clean,install},==>先清空臨時文件再編譯

示例:假設(shè)軟件包的路徑為:tina/package/utils/rwcheck,則:

$ cd tina $ make package/utils/rwcheck/{clean,install}

6.8 其他命令

命令 命令有效目錄 作用
make tina根目錄 編譯整個sdk
make menuconfig tina根目錄 啟動軟件包配置界面
make kernel_menuconfig tina根目錄 啟動內(nèi)核配置界面
mkarisc tina下任意目錄 編譯cpus源碼,根據(jù)AXP型號選擇對應(yīng)的默認(rèn)配置
printfconfig tina下任意目錄 打印當(dāng)前SDK的配置
croot tina下任意目錄 快速切換到tina根目錄
cconfigs tina下任意目錄 快速切換到方案的bsp配置目錄
cdevice tina下任意目錄 快速切換到方案配置目錄
carisc tina下任意目錄 快速切換到cpus代碼目錄
cgeneric tina下任意目錄 快速切換到方案generic目錄
cout tina下任意目錄 快速切換到方案的輸出目錄
cboot tina下任意目錄 快速切換到bootloader目錄
cgrep tina下任意目錄 在c/c++/h文件中查找字符串
minstall path/to/package/ tina根目錄 編譯并安裝軟件包
mclean path/to/package/ tina根目錄 clean軟件包
mm [-B] 軟件包目錄 編譯軟件包,-B指編譯前先clean
pack tina根目錄 打包固件
m tina下任意目錄 make的快捷命令,編譯整個sdk
p tina下任意目錄 pack的快捷命令,打包固件

7 Tina系統(tǒng)燒寫

7.1 概述

本章節(jié)主要介紹如何將構(gòu)建完成的鏡像文件(image)燒寫并運行在硬件設(shè)備上的流程。

SDK中的燒錄工具不再更新,后續(xù)會刪除,請優(yōu)先選擇從全志客戶服務(wù)平臺下載最新燒錄工具。

windows工具均集成在APST中,下載安裝APST即可,APST的工具均自帶文檔。

7.2 燒錄工具

Tina提供的幾種鏡像燒寫工具介紹如表所示,用戶可以選擇合適的燒寫方式進(jìn)行燒寫。

工具 運行系統(tǒng) 描述
PhoenixSuit windows 分分區(qū)升級及整個固件升級工具
PhoenixCard windows 卡固件制作工具
PhoenixUSBpro windows 量產(chǎn)升級工具,支持USB一拖 8 燒錄
LiveSuit ubuntu 固件升級工具

對于ubuntu:

64bit主機(jī)使用LiveSuitV306_For_Linux64.zip。

32bit主機(jī)使用LiveSuitV306_For_Linux32.zip。

具體燒錄工具和使用說明,請到全志客戶服務(wù)平臺下載。

7.3 進(jìn)入燒錄模式.

設(shè)備需進(jìn)入燒錄模式,以下幾種情況會進(jìn)入燒錄模式:

BROM無法讀取到boot0,例如新?lián)Q的flash不包含數(shù)據(jù),或者上電時短路flash阻斷通信。

在串口中按 2 進(jìn)入燒錄。即,在串口工具輸出框中,按住鍵盤的’2’,不停輸出字符’2’,上電啟動。boot0檢測到此字符,會跳到燒錄模式。

在uboot控制臺,執(zhí)行efex。

在linux控制臺,執(zhí)行reboot efex。

adb可用的情況下,可使用adb shell reboot efex,或點擊燒錄工具上的“立即燒錄”按鈕。

當(dāng)完整配置[fel_key]下fel_key_max和fel_key_min時,按下鍵值在范圍內(nèi)按鍵,之后上電。

當(dāng)板子有FEL按鍵時,按住FEL按鍵上電。

制作特殊的啟動卡,從卡啟動再進(jìn)入燒錄模式。

8 Tina uboot定制開發(fā)

8.1 概述

本章節(jié)簡單介紹uboot基本配置、功能裁剪、編譯打包、常用命令的使用,幫助客戶了解Tina 平臺uboot框架,為boot定制開發(fā)提供基礎(chǔ)。

目前Tina SDK共有三版uboot,分別是uboot-2011、uboot-2014、uboot-2018,分別在不 同硬件平臺上使用,客戶拿到SDK需要根據(jù)開發(fā)的硬件平臺核對版本信息。

8.2 代碼路徑

TinaSDK/ ├── brandy │ ├── ... │ ├── u-boot-2011 │ └── u-boot-2014 ├── brandy-2.0 │ ├── ... │ └── u-boot-2018

8.3 uboot功能

TinaSDK中,bootloader/uboot在內(nèi)核運行之前運行,可以初始化硬件設(shè)備、建立內(nèi)存空間映 射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適狀態(tài),為最終調(diào)用linux內(nèi)核準(zhǔn)備好正確的環(huán)境。 在Tina系統(tǒng)平臺中,除了必須的引導(dǎo)系統(tǒng)啟動功能外,uboot還提供燒寫、升級等其它功能。

引導(dǎo)內(nèi)核能從存儲介質(zhì)(nand/mmc/spinor)上加載內(nèi)核鏡像到DRAM指定位置并運行。

量產(chǎn)&升級包括卡量產(chǎn),USB量產(chǎn),私有數(shù)據(jù)燒錄,固件升級。

電源管理包括進(jìn)入充電模式時的控制邏輯和充電時的顯示畫面。

開機(jī)提示信息開機(jī)能顯示啟動logo圖片(BMP格式)。

Fastboot功能實現(xiàn)fastboot的標(biāo)準(zhǔn)命令,能使用fastboot刷機(jī)。

8.4 uboot配置

以uboot-2018為例,各項功能可以通過defconfig或配置菜單menuconfig進(jìn)行開啟或關(guān)閉, 具體配置方法如下:

8.4.1 defconfig方式

8.4.1.1 defconfig配置步驟

vim /TinaSDK/lichee/brandy2.0/u-boot-2018/configs/sun8iw18p1_defconfig (若是spinor方案則打開sun8iw18p1_nor_defconfig)

打開sun8iw18p1_defconfig或sun8iw18p1_nor_defconfig后,在相應(yīng)的宏定義前去掉或添加"#"即可將相應(yīng)功能開啟或關(guān)閉。

圖8-1: defconfig配置圖

如上圖,只要將CONFIG_SUNXI_NAND前的#去掉即可支持NAND相關(guān)功能,其他宏定義的開啟關(guān)閉也類似。

8.4.1.2 defconfig配置宏介紹.

如下圖是sun8iw18p1_defconfig/sun8iw18p1_nor_defconfig中的基本宏定義的介紹:

圖8-2: defconfig基本宏定義介紹圖

8.4.2 menuconfig方式

通過menuconfig方式配置的方法步驟如下:

cd /TinaSDK/lichee/brandy2.0/u-boot-2018/ make ARCH=arm menuconfig或make ARCH=arm64 menuconfig 注意:arm針對 32 位平臺,arm64針對 64 位平臺。

執(zhí)行上述命令會彈出menuconfig配置菜單,如下圖所示,此時即可對各模塊功能進(jìn)行配置,配 置方法menuconfig配置菜單窗口中有說明。

圖8-3: menuconfig配置菜單圖

8.5 uboot編譯

8.5.1 方法一

在tina目錄下即可編譯uboot。

source build/envsetup.sh(見詳注1) lunch (見詳注2) muboot(見詳注3) 詳注: 1 加載環(huán)境變量及tina提供的命令。 2 輸入編號,選擇方案。 3 編譯uboot,編譯完成后自動更新uboot binary到TinaSDK/target/allwinner/$(BOARD)-common/bin/。

8.5.2 方法二

source build/envsetup.sh(見詳注1) lunch (見詳注2) cboot(見詳注3) make XXX_config(見詳注4) make -j 詳注: 3 跳轉(zhuǎn)到Uboot源碼目錄。 4 選擇方案配置,如果是使用norflash,運行make XXX_nor_config。 5 執(zhí)行編譯uboot的動作。

8.6 uboot的配置

8.6.1 sys_config配置.

sys_config.fex是對不同模塊參數(shù)進(jìn)行配置的重要文件,對各模塊重要參數(shù)的更改及更新提供了 極大的方便。其文檔存放路徑:

TinaSDK/target/allwinner/$(BOARD)/configs/sys_config.fex TinaSDK/device/config/chips/$(CHIP)/configs/$(BOARD)/sys_config.fex

8.6.1.1 sys_config.fex結(jié)構(gòu)介紹

sys_config.fes主要由主鍵和子鍵構(gòu)成,主鍵是某項功能或模塊的主標(biāo)識,由[]括起,子鍵是對 該功能或模塊中各個參數(shù)的配置項,如下圖所示,dram_para是主鍵,dram_clk、dram_type 和dram_zp是子鍵。

圖8-4: sysconfig.fex基本結(jié)構(gòu)圖

8.6.1.2 sys_config.fex配置實例

[platform]:平臺相關(guān)配置項。

圖8-5: platform配置圖

例如,debug_mode =1表示開啟uboot的調(diào)試模式,開啟后會在log中打印出對應(yīng)的調(diào)試信 息。next_work=2表示燒錄完成后系統(tǒng)的下一步執(zhí)行動作(0x1表示正常啟動、0x2表示重啟、 0x3表示關(guān)),其他配置可以查看[platform]前的提示說明。

[target]:目標(biāo)平臺相關(guān)功能配置項

圖8-6: target配置圖

上圖中的可以通過配置boot_clock配置cpu的頻率大小。

[uart_para]:串口配置項,uart_para配置項是uboot串口打印調(diào)試時用到的重要配置

圖8-7: uart_para配置圖

上圖中的uart_debug_port=0表示使用的是uart0,uart_debug_tx/uart_debug_rx配置的gpio口(PA04/PA05)需要根據(jù)對應(yīng)的GPIO DATASHEET進(jìn)行配置。

8.6.1.3 sys_config.fex解析流程

在uboot2014/2018中sys_config.fex最終會被轉(zhuǎn)化為dtb(device tree binary,linux內(nèi)核配置方式),dtb最終會被打包燒錄至flash中,啟動過程中會將該文件加載至內(nèi)存,之前在sys_config.fex中配置的參數(shù)已轉(zhuǎn)化為dtb節(jié)點,最終會調(diào)用fdt_getprop_32()函數(shù)對dtb中的節(jié)點進(jìn)行解析。

8.6.2 環(huán)境變量配置.

uboot的環(huán)境變量就是一個個的鍵值對,操作接口為:getenv(),setenv(),saveenv()。環(huán)境變量的形式:

boot_normal=sunxi_flash read 40007800 boot;boota 4000780 boot_recovery=sunxi_flash read 40007800 recovery;boota 40007800 boot_fastboot= fastboot

8.6.2.1 環(huán)境變量作用.

可以把一些參數(shù)信息或者命令序列定義在該環(huán)境變量中。在環(huán)境變量中定義UBOOT命令序列,

可以把UBOOT各個功能模塊按順序組合在一起執(zhí)行,從而完成某個重要功能。

例如,如果執(zhí)行了上述提到的 boot_normal 環(huán)境變量對應(yīng)的命令,Uboot 則會先調(diào)用 sunxi_flash命令從存儲介質(zhì)的boot分區(qū)上加載內(nèi)核到DRAM的0x40007800位置;然后調(diào) 用boota命令完成內(nèi)核的引導(dǎo)。

uboot啟動時調(diào)用環(huán)境變量方式下如圖所示:

圖8-8: uboot啟動調(diào)用環(huán)境變量方式圖

8.6.2.2 環(huán)境變量配置示例介紹.

TinaSDK中,環(huán)境變量配置文件保存在TinaSDK/target/allwinner/$(BOARD)/configs/env.cfg 文件,用戶使用的時候,可能會看到env-4.4.cfg、env-4.9.cfg等文件,env-xxx后綴數(shù)字表示在不同內(nèi)核版本上的配置。打開后其內(nèi)容示例如下,

bootdelay=0,改環(huán)境變量bootdelay(即boot啟動時log中的倒計時延遲時間)值的大小,為便于調(diào)試,bootdelay的值一般不要等于 0 ,這樣在小機(jī)上電后按下任意鍵才能進(jìn)入uboot shell命令狀態(tài)。

boot_normal=sunxi_flash read 40007800 boot;boota 4000780,設(shè)置啟動內(nèi)核命令,即將boot分區(qū)讀到內(nèi)存0x40007800地址處,然后從內(nèi)存0x40007800地址處啟動內(nèi)核。

Setargs_nand=setenv bootargs earlyprintk=${earlyprink}....... ,設(shè)置內(nèi)核相關(guān)環(huán)境變量,該變量在啟動至內(nèi)核的log中會打印處理,即cmdline如下圖:

圖8-9: kernel cmdline圖

loglevel=8,設(shè)置內(nèi)核log打印等級。

8.6.3 sys_partition.fex分區(qū)配置

分區(qū)配置文件是一個規(guī)劃磁盤分區(qū)的文件,燒錄過程會按照該分區(qū)配置文件將各分區(qū)數(shù)據(jù)燒錄至flash中。

TinaSDK中,分區(qū)配置文件路徑TinaSDK/target/allwinner/$(BOARD)/configs/sys_partition.fex。有些方案可以看到sys_partition.fex、sys_partition_nor.fex兩個分區(qū)配置文件,若是打包Tina非nor固件,則使用的是sys_partition_linux.fex配置文件,若是打包nor固件,則使用的是sys_partition_nor.fex。

8.6.3.1 sys_partition.fex分區(qū)配置介紹

一個分區(qū)的屬性,包含名稱、分區(qū)大小、下載文件與用戶屬性。以下是文件中所描述的一個分區(qū)的屬性:

name,分區(qū)名稱由用戶自定義。當(dāng)用戶在定義一個分區(qū)的時候,可以把這里改成自己希望的字符串,但是長度不能超過 16 個字節(jié)。

size,定義該分區(qū)的大小,以扇區(qū)的單位(1扇區(qū)=512bytes,如上圖給env 分區(qū)分配了32768 個扇區(qū),即32768*512/1024/1024 = 16M),注意,為了字節(jié)對齊,這里分配的扇區(qū)大小應(yīng)當(dāng)能整除 128 。

downloadfile,下載文件的路徑和名稱。可以使用相對路徑,相對是指相對于image.cfg文件所在分區(qū)。也可以使用絕對路徑。

user_type,提供給操作系統(tǒng)使用的屬性。目前,每個操作系統(tǒng)在讀取分區(qū)的時候,會根據(jù)用戶屬性來判斷當(dāng)前分區(qū)是不是屬于自己的然后才進(jìn)行操作。這樣設(shè)計的目的是為了避免在多系統(tǒng)同時存在的時候,A操作系統(tǒng)把B操作系統(tǒng)的系統(tǒng)分區(qū)進(jìn)行了不應(yīng)該的讀寫操作,導(dǎo)致B操作系統(tǒng)無法正常工作。

更具體的說明,可參考《TinaLinux存儲管理開發(fā)指南》。

9 Tina kernel定制開發(fā)

9.1 概述

本章節(jié)簡單介紹kernel基本配置、功能裁剪、常用命令的使用,幫助客戶了解Tina平臺linux 內(nèi)核,為內(nèi)核定制開發(fā)提供基礎(chǔ)。

目前Tina SDK共有 4 版linux kernel,分別是linux-3.4、linux-3.10、linux-4.4、linux- 4.9,分別在不同硬件平臺上使用,客戶拿到SDK需要根據(jù)開發(fā)的硬件平臺核對內(nèi)核信息。

9.2 代碼路徑

TinaSDK/ ├── ... ├── linux-3.10 ├── linux-3.4 ├── linux-4.4 └── linux-4.9

9.3 模塊開發(fā)文檔.

詳閱BSP開發(fā)文檔,文檔目錄包括常用內(nèi)核模塊使用與開發(fā)說明。

9.4 內(nèi)核配置

客戶在定制化產(chǎn)品時,通常需要更改linux內(nèi)核配置,在TinaSDK中,打開內(nèi)核配置的方式如 下,

croot make kernel_menuconfig

執(zhí)行完后,shell控制臺會跳出配置菜單。如下圖所示,

圖9-1: TinaLinux內(nèi)核配置菜單

10 Tina系統(tǒng)定制開發(fā)

10.1 Tina procd-init與busybox-init切換.

tina默認(rèn)為procd-init:

make menuconfig進(jìn)行配置: 1.System init 選擇procd-init 2.以下一步步選中 Base system ---> <*>block-mount <*>busybox................................ Core utilities for embedded Linux ---> Init Utilities ---> [ ] init 此處不選 Coreutils ---> [*] head Miscellaneous Utilities ---> [*] strings <*> uci <*> logd 3.env.cfg修改 init=/sbin/init

busybox-init自啟動方式配置如下:

make menuconfig進(jìn)行配置: 1.System init 選擇busy-init 2.以下一步步選中 Base system ---> <*>busybox................................ Core utilities for embedded Linux ---> Init Utilities ---> [* ] init 此處選上 3.env.cfg修改 init=/init rdinit=/rdinit

10.2應(yīng)用移植

在Tina Linux SDK中一個軟件包目錄下通常包含如下兩個目錄和一個文件:

package/<分類>/<軟件包名>/Makefile package/<分類>/<軟件包名>/patches/ [可選] package/<分類>/<軟件包名>/files/ [可選] 其中, patches 保存補丁文件,在編譯前會自動給源碼打上所有補丁 files 保存軟件包的源碼,在編譯時會對應(yīng)源碼覆蓋源碼中的源文件 Makefile 編譯規(guī)則文件,

10.2.1 Makefile范例

該Makefile的功能是軟件源碼的準(zhǔn)備,編譯和安裝的過程,提供給Tina Linux識別和管理軟件包的接口,軟件的編譯邏輯是由軟件自身的Makefile決定,理論上和該Makefile(該Makefile只執(zhí)行make命令和相關(guān)參數(shù))無實質(zhì)關(guān)系。

圖10-2-1

詳注:

1.如果是開源軟件,軟件包版本建議與下載軟件包的版本一致。 2.以PKG開頭的變量主要告訴編譯系統(tǒng)去哪里下載軟件包。 3.md5sum用于校驗下載下來的軟件包是否正確,如果正確,在編譯該軟件的時候,就會在PKG_BUILD_DIR下找到該軟件包的源碼。 4.Package/: 用來指定該Package的名字,該名字會在配置系統(tǒng)中顯示。 5.使用依賴包的名字來指定依賴關(guān)系,如果是擴(kuò)展包,前面添加一個”+”號,如果是內(nèi)核版本依賴使用@LINUX_2_。 6.如果該值為 1 ,該包將不會出現(xiàn)在配置菜單中,但會作為固定編譯,可選。 7.在開源軟件中一般用來生成Makefile,其中參數(shù)可以通過CONFIGURE_VARS來傳遞。 8.在開源軟件中一般相當(dāng)于執(zhí)行make,其中有兩個參數(shù)可以使用:MAKE_FLAGS和MAKE_VARS。 9.內(nèi)置的幾個關(guān)鍵字如下: INSTALL_DIR相當(dāng)于install -d m0755 INSTALL_BIN相當(dāng)于install -m0755 INSTALL_DATA相當(dāng)于install -m0644 INSTALL_CONF相當(dāng)于install -m0600 10.該Makefile的所有define部分都是為該宏的參數(shù)做的定義.上層Makefile通過調(diào)用此宏進(jìn)行編譯。

10.2.2 自啟動設(shè)置

在Tina Linux中支持兩種格式的初始化腳本,一種是busybox式或者sysV式的初始化腳本, 一種是procd式的初始化腳本。一般我們把由初始化腳本啟動的應(yīng)用叫做服務(wù)。

初始化腳本以shell腳本的編程語言組織,shell腳本作為基礎(chǔ)知識在此不展開說明。一般情況 下,初始化腳本源碼保存在軟件的files目錄,且后綴為“.init”,例如:

tina/package/system/fstools/files/fstab.init

在Makefile的install中把初始化腳本安裝到小機(jī)端的/etc/init.d中,例如:

define Package/block-mount/install $(INSTALL_DIR) $(1)/etc/init.d/ $(INSTALL_BIN) ./files/fstab.init $(1)/etc/init.d/fstab endef

10.2.2.1調(diào)用自啟動腳本.

手動調(diào)用方式在啟動的時候會有太多的log,且log信息已被logd守護(hù)進(jìn)程收集,不利于我們 調(diào)試初始化腳本,此時可通過小機(jī)端的命令行手動調(diào)用的形式來調(diào)試,例如:

root@TinaLinux: /# /etc/init.d/fstab start

10.2.2.2 sysV格式腳本

sysV式的初始化腳本保存在小機(jī)端的/etc/init.d/目錄下,實現(xiàn)開機(jī)自啟動。下例以最小內(nèi)容的初 始化腳本作示例講解,核心是實現(xiàn)start/stop函數(shù):

#!/bin/sh /etc/rc.common # Example script # Copyright (C) 2007 OpenWrt.org START=10 STOP=15 DEPEND=xxxx start() { #commands to launch application } stop() { #commands to kill application } 注意: START=10, 指明開機(jī)啟動優(yōu)先級(序列) [數(shù)值越小, 越先啟動],取值范圍0-99。 STOP=15, 指明關(guān)機(jī)停止優(yōu)先級(序列) [數(shù)值越小, 越先關(guān)閉],取值范圍0-99。 DEPEND=xxxx, 指明初始化腳本會并行執(zhí)行,通過此項配置確保執(zhí)行的依賴。

名稱 屬性 功能
start 必須實現(xiàn) 啟動一個服務(wù)
stop 必須實現(xiàn) 停止一個服務(wù)
reload 可選實現(xiàn) 重啟一個服務(wù)
enable 可選實現(xiàn) 重新加載服務(wù)
disable 可選實現(xiàn) 禁用服務(wù)

在shell里面可以使用如下的命令來操作相關(guān)的服務(wù)。

$ root@TinaLinux:/# /etc/init.d/exmple restart|start|stop|reload|enable|disable

10.2.2.3 procd格式腳本

以下例的初始化腳本作示例講解,主要是實現(xiàn)函數(shù)start_service:

#!/bin/sh /etc/rc.common USE_PROCD=1 PROG=xxxx START=10 STOP=15 DEPEND=xxxx start_service() { procd_open_instance procd_set_param command $PROG -f ...... procd_close_instance }

詳細(xì)的介紹可以參考:https://wiki.openwrt.org/inbox/procd-init-scripts。

10.3應(yīng)用調(diào)試

新添加的軟件默認(rèn)配置為不使能,此時需要手動配置使能軟件包。通過在tina的根目錄執(zhí)行 make menuconfig進(jìn)入軟件包的配置界面:

圖10-1:應(yīng)用配置主界面

軟件包的所在路徑與軟件包的Makefile中的定義有關(guān),以fstools為例,在Makefile中定義 為:

define Package/fstools SECTION:=base CATEGORY:=Base system DEPENDS:=+ubox +USE_GLIBC:librt +NAND_SUPPORT:ubi-utils TITLE:=OpenWrt filesystem tools MENU:=1 endef

此時,只需要在menuconfig界面中進(jìn)入Basy system即可找到fstools的軟件包。

圖10-2:軟件包所在界面

前綴符號含義:

[*] 或<*> : 編譯進(jìn)入SDK [ ] 或< > : 不包含

支持操作:

Y或y:選擇包含 N或n:取消選擇

10.4應(yīng)用編譯

詳見重編應(yīng)用章節(jié)。

10.5應(yīng)用安裝

獲取安裝包

安裝包一般位于目錄:

tina/out/<方案>/packages/base

安裝包命名格式為:

<應(yīng)用名>_<應(yīng)用版本>-<應(yīng)用釋放版本>_sunxi.ipk

安裝應(yīng)用包

通過adb推送安裝包到小機(jī):

$ adb push <安裝包路徑> <推送到小機(jī)路徑>

安裝應(yīng)用包:

$ opkg install <安裝包路徑>

10.6分區(qū)與掛載

升級分區(qū)

分區(qū) 功能
boot分區(qū) 存內(nèi)核鏡像
rootfs分區(qū) 基礎(chǔ)系統(tǒng)鏡像分區(qū),包含/lib,/bin,/etc等
recovery分區(qū) 存放恢復(fù)系統(tǒng)鏡像,僅大容量方案有,詳見OTA文檔
extend分區(qū) 存放恢復(fù)系統(tǒng)鏡像及rootfs的usr部分,僅小容量方案有,詳見OTA文檔

不升級分區(qū)

分區(qū) 功能
private分區(qū) 存儲SN號分區(qū)
misc分區(qū) 系統(tǒng)狀態(tài)、刷機(jī)狀態(tài)分區(qū)
UDISK分區(qū) 用戶數(shù)據(jù)分區(qū),一般掛載在/mnt/UDISK
overlayfs分區(qū) 存儲overlayfs覆蓋數(shù)據(jù)

默認(rèn)掛載點

分區(qū) 掛載點 備注
/dev/by-name/boot /boot
/dev/by-name/boot-res /boot-res
/dev/by-name/UDISK /mnt/UDISK 用戶數(shù)據(jù)分區(qū)
/dev/mmcblk0或/dev/mmcblk0p1 /mnt/SDCARD Tf卡掛載點
/dev/by-name/rootfs_data /overlay 存儲overlayfs覆蓋數(shù)據(jù)

審核編輯:湯梓紅

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

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209323
  • 系統(tǒng)軟件
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    10949
  • Tina
    +關(guān)注

    關(guān)注

    2

    文章

    45

    瀏覽量

    16976
收藏 人收藏

    評論

    相關(guān)推薦

    Tina_Linux系統(tǒng)裁剪開發(fā)指南

    Tina_Linux系統(tǒng)裁剪開發(fā)指南1 概述2 Tina系統(tǒng)裁剪簡介2.1 boot0裁剪2.2 uboot裁剪2.3 內(nèi)核裁剪2.3.1
    的頭像 發(fā)表于 03-06 09:52 ?1551次閱讀

    MSP430 軟件開發(fā)指南

    MSP430 軟件開發(fā)指南
    發(fā)表于 08-01 09:47

    Rockchip RK3399軟件開發(fā)指南

    本文檔主要介紹 Rockchip RK3399 軟件開發(fā)指南,旨在幫助軟件開發(fā)工程師更快上手 RK3399 的開發(fā)及調(diào)試。
    發(fā)表于 10-10 07:15

    基于MSP430軟件開發(fā)指南

    基于MSP430軟件開發(fā)指南
    發(fā)表于 10-13 15:49 ?23次下載
    基于MSP430<b class='flag-5'>軟件開發(fā)指南</b>

    Tina Linux配置開發(fā)指南

    Tina Linux配置開發(fā)指南
    的頭像 發(fā)表于 03-02 15:28 ?1.6w次閱讀
    <b class='flag-5'>Tina</b> <b class='flag-5'>Linux</b>配置<b class='flag-5'>開發(fā)指南</b>

    Linux NOR開發(fā)指南

    Linux NOR開發(fā)指南
    的頭像 發(fā)表于 03-06 09:55 ?954次閱讀
    <b class='flag-5'>Linux</b> NOR<b class='flag-5'>開發(fā)指南</b>

    Versal ACAP系統(tǒng)軟件開發(fā)人員指南

    電子發(fā)燒友網(wǎng)站提供《Versal ACAP系統(tǒng)軟件開發(fā)人員指南.pdf》資料免費下載
    發(fā)表于 09-13 15:20 ?0次下載
    Versal ACAP<b class='flag-5'>系統(tǒng)軟件開發(fā)</b>人員<b class='flag-5'>指南</b>

    Rockchip RK3399軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《Rockchip RK3399軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 10-09 14:30 ?14次下載
    Rockchip RK3399<b class='flag-5'>軟件開發(fā)指南</b>

    keil arm軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《keil arm軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 01-26 15:51 ?7次下載

    BQ769x2 軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ769x2 軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 08-12 14:41 ?0次下載

    BQ769x2軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ769x2軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 08-26 09:12 ?0次下載
    BQ769x2<b class='flag-5'>軟件開發(fā)指南</b>

    TUSS44x0軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《TUSS44x0軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 09-14 10:59 ?0次下載
    TUSS44x0<b class='flag-5'>軟件開發(fā)指南</b>

    PGA450-Q1軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《PGA450-Q1軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 09-30 14:25 ?0次下載
    PGA450-Q1<b class='flag-5'>軟件開發(fā)指南</b>

    PGA460軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《PGA460軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 10-09 10:30 ?0次下載
    PGA460<b class='flag-5'>軟件開發(fā)指南</b>

    BQ7690x軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ7690x軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 11-07 10:19 ?0次下載
    BQ7690x<b class='flag-5'>軟件開發(fā)指南</b>
    RM新时代网站-首页