国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Yocto Project開(kāi)發(fā)(八):Linux Kernel 開(kāi)發(fā)

本文介紹使用Yocto Project Linux內(nèi)核時(shí)要執(zhí)行的幾項(xiàng)常見(jiàn)任務(wù)。這些任務(wù)包括為主機(jī)開(kāi)發(fā)系統(tǒng)準(zhǔn)備內(nèi)核開(kāi)發(fā),準(zhǔn)備層,修補(bǔ)內(nèi)核,配置內(nèi)核等。內(nèi)核開(kāi)發(fā)最好使用devtool而不是通過(guò)傳統(tǒng)的內(nèi)核工作流方法來(lái)完成,下面會(huì)介紹這兩個(gè)方案的信息。

使用devtool準(zhǔn)備開(kāi)發(fā)

  • 初始化BitBake環(huán)境
     $ cd ~/poky
     $ source oe-init-build-env
  • 準(zhǔn)備local.conf文件:默認(rèn)情況下,MACHINE變量設(shè)置為“qemux86”,如果你在32位模式下為QEMU仿真器構(gòu)建,則可以正常運(yùn)行。但是,如果不是,則需要在構(gòu)建目錄中找到MACHINEconf/local.conf文件中 正確設(shè)置 變量 。
  • 為修補(bǔ)程序創(chuàng)建圖層:
     $ cd ~/poky/build
     $ bitbake-layers create-layer ../../meta-mylayer
  • 把圖層通知BitBake構(gòu)建環(huán)境
     $ cd ~/poky/build
     $ bitbake-layers add-layer ../../meta-mylayer          
  • 構(gòu)建可擴(kuò)展SDK
     $ cd ~/poky/build
     $ bitbake core-image-minimal -c populate_sdk_ext
  • 安裝可擴(kuò)展SDK
     $ cd ~/poky/build/tmp/deploy/sdk
     $ ./poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-2.7.1.sh
  • 設(shè)置新終端以使用可擴(kuò)展SDK:必須要打開(kāi)一個(gè)新的終端來(lái)使用新的SDK,不能使用之前使用的BitBake shell
     $ source ~/poky_sdk/environment-setup-i586-poky-linux
  • 構(gòu)建全新鏡像:準(zhǔn)備在內(nèi)核上工作的最后一步是使用devtool在剛剛為SDK設(shè)置并初始化的新終端中構(gòu)建初始鏡像:
    $ devtool build-image

準(zhǔn)備一個(gè)Layer

  • 創(chuàng)建圖層的結(jié)構(gòu):conf目錄保存配置文件,recipes-kernel目錄保存追加文件和最終補(bǔ)丁文件。
     $ cd $HOME
     $ mkdir meta-mylayer
     $ mkdir meta-mylayer/conf
     $ mkdir meta-mylayer/recipes-kernel
     $ mkdir meta-mylayer/recipes-kernel/linux
     $ mkdir meta-mylayer/recipes-kernel/linux/linux-yocto
  • 創(chuàng)建層配置文件:移動(dòng)到meta-mylayer/conf目錄,創(chuàng)建layer.conf文件:
     # We have a conf and classes directory, add to BBPATH
     BBPATH .= ":${LAYERDIR}"

     # We have recipes-* directories, add to BBFILES
     BBFILES += "${LAYERDIR}/recipes-*/*/*.bb                  ${LAYERDIR}/recipes-*/*/*.bbappend"

     BBFILE_COLLECTIONS += "mylayer"
     BBFILE_PATTERN_mylayer = "^${LAYERDIR}/"
     BBFILE_PRIORITY_mylayer = "5"
                    
  • 創(chuàng)建內(nèi)核配方附加文件:移動(dòng)到meta-mylayer/recipes-kernel/linux目錄并創(chuàng)建內(nèi)核的附加文件。本例使用linux-yocto-4.12內(nèi)核。因此,append文件的名稱為linux-yocto_4.12.bbappend:
     FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

     SRC_URI_append += "file://patch-file-one"
     SRC_URI_append += "file://patch-file-two"
     SRC_URI_append += "file://patch-file-three"

使用devtool開(kāi)發(fā)內(nèi)核

下面這個(gè)過(guò)程中的步驟展示了如何使用可擴(kuò)展SDKdevtool對(duì)內(nèi)核進(jìn)行打補(bǔ)丁。

  • 使用以下devtool命令下載內(nèi)核代碼:
     $ source ~/poky_sdk/environment-setup-i586-poky-linux
     $ devtool modify linux-yocto
  • 修改內(nèi)核源碼:
$ cd ~/poky_sdk/workspace/sources/linux-yocto

# Edit the init/calibrate.c file
  • 構(gòu)建更新的內(nèi)核源代碼
     $ devtool build linux-yocto
  • 使用新的內(nèi)核創(chuàng)建鏡像
     $ cd ~
     $ devtool build-image core-image-minimal
  • 測(cè)試新的鏡像:
     $ runqemu qemux86
     # dmesg | less
  • 提交修改源碼:
     $ cd ~/poky_sdk/workspace/sources/linux-yocto
     $ git status
     $ git add init/calibrate.c
     $ git commit -m "calibrate: Add printk example"
  • 導(dǎo)出補(bǔ)丁并創(chuàng)建附加文件
     $ devtool finish linux-yocto ~/meta-mylayer
  • 使用修改后的內(nèi)核構(gòu)建鏡像:
     $ cd ~/poky/build
     $ bitbake core-image-minimal

使用傳統(tǒng)方式開(kāi)發(fā)內(nèi)核

  • 我們可以在下載好的內(nèi)核源碼目錄修改代碼:
     $ cd poky/build/tmp/work/qemux86-poky-linux/linux-yocto/4.12.12+gitAUTOINC+eda4d18...
     ...967-r0/linux-qemux86-standard-build/source
     
     # Edit the init/calibrate.c file
  • 接著進(jìn)入內(nèi)核構(gòu)建目錄:
     $ cd poky/build/tmp/work/qemux86-poky-linux/linux-yocto/4.12.12+gitAUTOINC+eda4d18...
     ...967-r0/linux-qemux86-standard-build/
  • 使用可擴(kuò)展SDK來(lái)構(gòu)建開(kāi)發(fā)內(nèi)核:
     $ source ~/poky_sdk/environment-setup-i586-poky-linux
     $ make menuconfig
     $ make
  • 提交修改源碼:
     $ cd poky/build/tmp/work/qemux86-poky-linux/linux-yocto/4.12.12+gitAUTOINC+eda4d18...
     ...967-r0/linux-qemux86-standard-build/source
     $ git status
     $ git add init/calibrate.c
     $ git commit -m "calibrate: Add printk example"
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Yocto 環(huán)境搭建
縱論物聯(lián)網(wǎng)(六):基于Linux的物聯(lián)網(wǎng)操作系統(tǒng)
4 種用于構(gòu)建嵌入式 Linux 系統(tǒng)的工具 | Linux 中國(guó)
i.MX8MM嵌入式linux開(kāi)發(fā)指南
內(nèi)核編譯環(huán)境變量ARCH,CROSS_COMPILE配置
[置頂]Linux 內(nèi)核學(xué)習(xí)(1)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服