移植linux4.14內核到4412開發板

最近法師收到了不少留言,其中有一部分問法師何時更新,還有一大部分問法師我是買迅爲的IMX6UL精英版好呢仍是買4412精英版好呢,由於咱們這倆個都不貴。法師的建議的是入手4412!爲何呢?linux

       第一,4412是三星第一款經典處理器,爲三星創造了輝煌,是當年在國內紅得發紫的GalaxyS3手機的主控,他的出現,開啓了手機和平板的四核時代,讓手機和平板變得流暢,能夠說,到目前爲止,4412上用到的技術,還是當前的主流技術,其餘的處理器並無質的飛躍,一樣,通過7年以上各行各業的考驗,已經很是的穩定。並且四核處理器系統能夠實現動態調頻調壓,因此,咱們一個板子不只能夠學習uboot,linux,裸機,還可學習安卓,一個板子就足夠了。ubuntu

       第二,通過多年的累積,4412已經積累了海量的開發資料。bash

       第三,也是最重要的一點!!!     工具

      2017 年 6 月份左右,迅爲電子 iTOP 系列開發平臺 iTOP-4412 的 SCP 核心板,獲得世界最大開源軟件 Linux 的官方支持,這意味着從linux官方www.kernel.orrg下載的最新內核稍加修改就能夠直接在ITOP4412上運行,極大方便用戶產品的技術升級。學習

       因此,一個既能運行安卓,ubuntu,QT系統,還被linux官方支持的開發板四五百元就能夠入手,他不香嘛~~網站

       另外若是是迅爲的老用戶,再次在官方店購買個人產品,向旺旺出示在官方店購買的訂單截圖,可在得到一次優惠!ui

       接下來,咱們切到今天的主題,咱們體驗一番,在被linux官方支持的開發板移植一個新的內核是多方便。debug

第一步:從linux官網下載內核3d

     從linux官網下載內核,linux 官方網站是https://www.kernel.org/ 以下圖所示調試

咱們進入linux官網,爲了和以前的設備樹教程統一,這裏咱們選擇4.14.2的內核版本。下載完成後,咱們放在ubuntu裏面備用,以下圖所示:

第二步:安裝編譯器

編譯器版本:gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz

ubuntu版本:ubuntu12.04

     咱們把編譯器在/usr/local/arm/下解壓,獲得gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12的目錄。以下圖所示:

接着咱們修改環境變量,在.bashrc文件底行添加環境變量,注意這裏,你們要屏蔽掉其餘的編譯器,以下圖所示:

更新環境變量,咱們使用命令source .bashrc更新環境變量,而後重啓ubuntu,以下圖所示:

第三步:配置內核

      1)在ubuntu上解壓咱們下載的linux源碼,而後進入到解壓的文件,打開頂層Makefile,以下圖所示:

 2)在頂層Makefile裏面找到251和252行,修改平臺和編譯器,修改完成後,以下圖所示

3)生成.config,咱們直接使用linux官方的默認配置便可,直接輸入命令make exynos_defconfig,以下圖所示。

  4)配置平臺和調試串口。在內核源碼下輸入命令make menuconfig打開menuconfig,以下圖所示:

 5)選擇芯片類型,咱們進入下面的路徑:

 

把這個路徑的選項配置成下圖所示:

6)配置調試串口,咱們返回到menuconfig第一級目錄,從第一級目錄進入到如下路徑:

選中Kernel low-level debugging functions (read help!),以下圖所示:

而後選擇Kernel low-level debugging port (Use Samsung S3C UART 0 for low-level debug) 選項,把串口設置成串口2,以下圖所示:

返回到menuconfig第一級目錄,從第一級目錄進入到如下路徑:

選中 Samsung SoC serial debug (NEW)和Support for console on Samsung SoC serial port ,以下圖所示:

返回到menuconfig第一級目錄,從第一級目錄進入到如下路徑:

去掉下圖選項,以下圖所示:

設置完成後,保存並退出。

第四步:編譯內核

咱們在內核源碼下輸入如下命令:

其中LOADADDR=0X40007000 表示指定內核的加載地址,以下圖所示:

H=arm CROSS_COMPILE=arm-none-linux-gnueabi- LOADADDR=0x40007000 -j4

其中LOADADDR=0X40007000 表示指定內核的加載地址,以下圖所示:

第五步:修改dts文件

    咱們進到內核arch/arm/boot/dts/下,裏面默認有itop的設備樹文件,以下圖所示:

咱們打開exynos4412-itop-scp-core.dtsi文件,修改設備樹文件。

第一處:註釋掉29到32行的代碼,以下圖所示:

第二處:由於沒有events這個屬性,因此咱們要把71行的events修改爲event,以下圖所示:

第三處:配置核心板電源芯片,這部分你們能夠對照下scp的核心板原理圖,也能夠參考下圖,把下面的代碼修改爲以下圖所示:

編譯設備樹,咱們輸入如下命令,以下圖所示:
make dtbs ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

編譯完成如圖所示:

第六步:燒寫鏡像

咱們把編譯生成的uimage和dtb文件拷貝fastboot工具,uboot使用咱們移植好的uboot_2015.04便可,具體燒寫方法你們能夠看設備樹視頻燒寫章節。

燒寫到板子後啓動成功以下圖所示:

是否是感受很容易,對!就是這麼簡單的。而且真正的作到了和linux官方同步,咱們能夠不用換板子,也不用很費勁的就在4412的板子上學到最新的linux技術了,能夠緊跟linux的發展,這是否是太酷了!!!!

相關文章
相關標籤/搜索