PopMetal和PX2上運(yùn)行upstreamlinuxkernel代碼怎么寫

本篇文章給大家分享的是有關(guān)PopMetal和PX2上運(yùn)行upstream linux kernel代碼怎么寫,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的尉氏網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Rockchip的平臺,以其強(qiáng)大的性能和豐富的功能,在開源社區(qū)大受歡迎,Linux內(nèi)核對其提供越來越豐富的支持。

    Linux內(nèi)核目前發(fā)布的最新穩(wěn)定版本是Linux 4.2,Linux 4.3的合并窗口已經(jīng)打開,大概下周會發(fā)布rc1版本,最終的穩(wěn)定版本

會在一兩個(gè)月內(nèi)發(fā)布。在Linux內(nèi)核的每一個(gè)版本中,都會合并國內(nèi)外大量Linux kernel hacker們?yōu)镽ockchip平臺提交的代碼,使得

upstream對Rockchip平臺的支持越來越完善。

    Chipspark打造的兩款開發(fā)板PX2和PopMetal,以其豐富的接口和強(qiáng)大的性能,受到了國內(nèi)外創(chuàng)客的廣泛青睞,在Linux 4.1版本中,

日本的大牛FUKAUMI Naoki就提交了對PX2的支持代碼。同時(shí),PopMetal也在Linux 4.2中得到了支持,成為upstream默認(rèn)支持的一款開發(fā)板。

    對于Linux愛好者來說,能時(shí)刻follow upstream的最新代碼,是一件很酷的事情,不僅能體會到自己hack的樂趣,還能時(shí)刻體驗(yàn)Linux的最新

特性,無論是對自己的學(xué)習(xí)還是對新產(chǎn)品的開發(fā) ,都會提供很大的幫助。

    下面主要講一下,如何編譯upstream的最新代碼,并使他運(yùn)行在PopMetal和PX2開發(fā)板上。

   (1)首先現(xiàn)在代碼,在這里我們下載linux-stable分之的代碼。

        git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

        下載完成后,我們切到最新的穩(wěn)定分支linux-4.2.y,當(dāng)然其他分支也可以。

        git checkout -b linux-4.2.y origin/linux-4.2.y 

   (2)配置,Linux upstream目前對ARM的配置采用multi platform的方式,即所有的ARM平臺(無論是Rockchip還是Samsung exynos、TI omap),

        他們共用同  一個(gè)配置文件,對于ARM Cortex 系列 32位的芯片來說,這個(gè)配置文件是multi_v7_defconfig

         export ARCH=arm

        export CROSS_COMPILE=arm-linux-gnueabi-

        make  multi_v7_defconfig

       為了能夠正常的適用debug 串口的功能,我們還在配置(make menuconfig)里面做如下修改:

        make menuconfig

         PopMetal和PX2上運(yùn)行upstream linux kernel代碼怎么寫  

        該配置主要是在cmdline里面指定debug的console為ttyS2,并且開啟earlyprintk功能:console=ttyS2,115200 earlyprintk

        另外,為了能夠順利進(jìn)入命令行, 我們這里采用最簡單的initramfs文件系統(tǒng),initramfs文件系統(tǒng)的制作方法很簡單,想自己

        實(shí)踐的同學(xué)可以去網(wǎng)上查找相關(guān)資料,這里直接可以從github上下載我制作好的initramfs:

        git clone https://github.com/andyshrk/AndyHack.git

        克隆下來的rootfs目錄即是我制作的簡易initramfs,然后在make menuconfig里面做如下配置:

         PopMetal和PX2上運(yùn)行upstream linux kernel代碼怎么寫  

        這里需要填寫的是initramfs目錄在本地的相對路徑,請根據(jù)自己的實(shí)際情況填寫。

        PopMetal上使用的PMU是RK808,multi_v7_defconfig默認(rèn)沒有打開RK808的配置,在這里我們需要自己配置上去,否則emmc會

        工作異常:

        首先要選上Rockchip RK3xxx I2C adapter

          PopMetal和PX2上運(yùn)行upstream linux kernel代碼怎么寫  

        選上RK808的MFD配置

           PopMetal和PX2上運(yùn)行upstream linux kernel代碼怎么寫 

        選上RK808 regulator配置:

        另外,大家手上的開發(fā)板里面應(yīng)該默認(rèn)都燒寫了Android系統(tǒng),這樣Uboo在啟動的時(shí)候,會自動把Android的根文件系統(tǒng)boot.img

      加載到內(nèi)存中,為了避免內(nèi)核自動加載Android的根文件系統(tǒng)(因?yàn)閡pstream的kernel默認(rèn)配置有很多是和Android 不匹配的,加載會失敗

      導(dǎo)致內(nèi)核崩潰),需要對內(nèi)核代碼做如下修改:

     PopMetal和PX2上運(yùn)行upstream linux kernel代碼怎么寫      

   (3)編譯代碼,這個(gè)PopMetal和PX2 有一些差別,主要是因?yàn)镻opMetal的uboot支持標(biāo)準(zhǔn)的dtb功能,而PX2的uboot不支持該功能

        所以對于PX2來說,需要把dtb文件和內(nèi)核編譯在一起,而PopMetal確實(shí)編譯生成獨(dú)立的kernel.img和resource.img

       make zImage -j8

       make dtbs

       對于PopMetal,執(zhí)行如下命令:

       ./resource_tool  arch/arm/boot/dts/rk3288-popmetal.dtb

       ./mkkrnlimg arch/arm/boot/zImage kernel.img

        對于PX2,執(zhí)行如下命令:

        cat arch/arm/boot/zImage arch/arm/boot/dts/rk3066a-rayeager.dtb > dkernel

        ./mkkrnlimg dkernel kernel.img

      其中resource_tool和mkkrnling是Rockchip平臺上生成resource.img和kernel.img的工具,可以直接從chipspark提供的內(nèi)核代碼里面拷貝

      燒寫生成的kernel.img和resource.img(對于PX2,只需要燒寫kernel.img) ,系統(tǒng)就能啟動到命令行狀態(tài)。

PopMetal和PX2上運(yùn)行upstream linux kernel代碼怎么寫

      另外,如果對Android的boot.img里面的init.xxx.rc腳本做少量的修改,也可以用upstream的內(nèi)核把Android的基本系統(tǒng)跑起來,這個(gè)后面再寫。

以上就是PopMetal和PX2上運(yùn)行upstream linux kernel代碼怎么寫,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章標(biāo)題:PopMetal和PX2上運(yùn)行upstreamlinuxkernel代碼怎么寫
URL地址:http://bm7419.com/article30/ipoeso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、定制網(wǎng)站微信公眾號、定制開發(fā)、搜索引擎優(yōu)化云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作