1. 程式人生 > >x4412開發板移植Linux核心4.9.123版本

x4412開發板移植Linux核心4.9.123版本

X4412開發板移植Linux核心4.9.123版本

基本移植

1、原始碼下載

官網下載linux4.9.123核心:https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/。

2、解壓並配置

xz -d linux-4.9.123.tar.xz

tar -xvf linux-4.9.123.tar

使用命令cd linux-4.9.123進入原始碼根目錄, 然後vi Makefile 開啟頂層的Makefile進行如下修改:

修改:

ARCH  ?= $(SUBARCH)

CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

為:

ARCH  ?= arm

CROSS_COMPILE ?= arm-linux-gnueabi-     /*根據實際使用的toolchain修改*/

注意:

  • 在VI命令下,可以使用/ CROSS_COMPILE 搜尋並快速定位
  • 如果不修改編譯工具鏈,預設將使用編譯x86的gcc編譯器,此時make編譯需要指定架構和工具鏈字首,如:
    make uImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

3、匯入的exynos的預設配置

make exynos_defconfig

實際上是執行了:cp arch/arm/configs/exynos_defconfig .config

4、配置核心

make menuconfig

修改指定核心的除錯串列埠:

Kernel hacking

    --> Kernel low-level debugging functions (read help!)  選擇

        --> Kernel low-level debugging port (Use Samsung S3C UART 2 for low-level debug)  開啟選擇uart2

選擇這個除錯串列埠很重要,否則打印不出核心啟動的相關資訊(exynos預設沒有開啟此功能,沒有開啟此處會發現核心列印資訊停止在Starting kernel …處)

5、編譯核心和裝置樹

一、編譯uImage映象:

make uImage LOADADDR=0x40008000

注意:

LOADADDR=0X40008000表示指定核心的載入地址(如果沒有新增該選項編譯會出錯) 

二、編譯裝置樹:

在編譯裝置樹之前需要對裝置樹進行配置,由於x4412和參考板origen類似,所以一般都是參考origen進行x4412的配置。

的裝置樹檔案。

cp arch/arm/boot/dts/exynos4412-origen.dts  arch/arm/boot/dts/exynos4412-x4412.dts

修改arch/arm/boot/dts/下的Makefile檔案:

make dtbs

6、移植網絡卡

增加DM9000網絡卡的裝置樹節點資訊: vi arch/arm/boot/dts/exynos4412-x4412.dts 

[email protected] {

        compatible = "simple-bus";

        #address-cells = <1>;

        #size-cells = <1>;

        reg = <0x7000000 0x1000000>;

        ranges;

        [email protected] {

                compatible = "davicom,dm9000";

                reg = <0x7000000 0x2 0x7000004 0x2>;

                interrupt-parent = <&gpx2>;

                interrupts = <5 4>;

                davicom,no-eeprom;

                mac-address = [00 0a 2d a6 55 a2];

        };

};

新增外部中斷pin配置,vi arch/arm/boot/dts/exynos4x12-pinctrl.dtsi。新增如下節點

eint21: ext-int21 {

                            samsung,pins = "gpx2-5";

                            samsung,pin-function = <EXYNOS_PIN_FUNC_F>;

                            samsung,pin-pud = <EXYNOS_PIN_PULL_NON22E>;

                            samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;

                   };

注意:

DM9000 網絡卡驅動正常都是一樣的,移植時主要是更改pin配置和base addr,這個需要根據實際硬體電路修改.通過查詢x4412電路圖已經DM9000的trm,可知base addr是0x7000000.而pin使用的是gpx2-5,外部中斷號eint21,所以還需要修改gedit arch/arm/boot/dts/exynos4x12-pinctrl.dtsi,新增eint21的初始化。(功能需要選擇wakeup,也就是功能2).完成後按照手冊的方法修改interrupt-parent = <&gpx2>;#xeint31是gpx2_5   
interrupts = <5 4>;#中斷偏移是5,  4代表高電平觸發

核心配置:

// 網路協議配置

[*] Networking support --->

Networking options --->

<*> Packet socket

<*> Unix domain sockets

[*] TCP/IP networking

[*] IP: kernel level autoconfiguration

// 網絡卡驅動的配置

Device Drivers --->

[*] Network device support --->

[*] Ethernet driver support (NEW) --->

<*> DM9000 support

// NFS服務和根檔案系統配置

File systems --->

[*] Network File Systems (NEW) --->

<*> NFS client support

[*] NFS client support for NFS version 3

[*] NFS client support for the NFSv3 ACL protocol extension

[*] Root file system on NFS

重新編譯核心和裝置樹即可。

最後為了能正常啟動linux需要配置uboot環境變數,這邊使用的變數如下:

fatload mmc 0:1 42000000 linux4.9/exynos4412-x4412.dtb
fatload mmc 0:1 41000000 linux4.9/uImage
setenv bootargs root=/dev/mmcblk0p2 rw rootfstype=ext4 console=ttySAC2,115200
bootm 41000000 - 42000000

相關推薦

x4412開發移植Linux核心4.9.123版本

X4412開發板移植Linux核心4.9.123版本 基本移植 1、原始碼下載 官網下載linux4.9.123核心:https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/。 2、解壓並配置 xz -d

hfrk2410_a1.1開發移植linux-2.6.32.27--網絡卡篇(cs8900)

硬體:恆豐銳科開發板hfrk2410_A1.1 軟體:linux-2.6.32.27 cs8900網絡卡移植: 將cs8900驅動原始碼檔案拷貝至drivers/net/,修改drivers/net/Kconfig檔案 config ARM_CS8900

fl2440開發移植tslib-1.4

        在移植這個tslib時出現了好多問題,因為是新手出現,所以出現的更多的是低階錯誤         如果你要執行tslib的話,首先你要確定你之前移植的lcd,,觸控式螢幕驅動都是好好的否則的話出了錯,那就是比了xxx了。。。。。        下面就進入正題:

移植核心4.15.6到JZ2440開發

近來無事就想著動手移植新的核心在JZ2440開發板上跑起來,https://www.kernel.org/ 下載kernel linux-4.15.6.tar.xd,執行xz -d linux-4.15.6.tar.xz tar -xvf linux-4.15.6.tar進行

嵌入式Linux開發——(十四)移植Linux核心

基於Linux2.6.22.6 1、相關常識     ①VERSION = 2   PATCHLEVEL=6        主版本號,穩定版本用偶數來表示,每隔2~~3年出現一個穩定版 &nbs

第九章:基於九鼎X210開發移植2014.10版U-boot之啟動核心

接下來要啟動核心了。首先要先將機器碼設定成我們開發板的機器碼,將/board/Samsung/x210目錄下的x210.c中的board_init函式中的bi_arch_number傳入MACH_TYPE_SMDKV210,傳入正確的機器碼才能啟動核心。 但事實上,無論

I.MX6開發移植Linux4.1.15核心之TSC2007觸控式螢幕裝置樹資訊的新增

之前寫過一篇3.0.35核心移植關於TSC2007觸控式螢幕驅動移植的文章。裡面對TSC2007.c驅動程式的分析比較清晰,點選連結檢視:點選連結檢視 本篇文章,主要記錄在4.1.15核心移植的過程中,對於TSC2007裝置的新增,需要如何新增裝置樹資訊。 1、

移植Linux-3.4.2內核到S3C2440

解析 Coding 復制 ace otf fail port segment abs 一、BootLoader引導內核過程 1、Bootloader的工作 1.1、將內核讀入內存 2.2、保存內核啟動參數到指定位置,內核啟動時去這個位置解析

嵌入式Linux開發——(十六)Linux核心除錯技術

1、核心列印函式printk     ①printk函式與printf函式用法格式完全相同     ②它所列印的字串頭部可以加入“<n>”樣式字元,n=0---7表示這條資訊的記錄  級別     ③對於p

Linux Kernel 4 9中TCP BBR演算法的科普解釋

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

移植linux核心到s3c6410(kernel 列印:Uncompressing Linux ... done , booting the kernel.後無響應問題的解決。)

轉載地址: https://blog.csdn.net/roadtoforest/article/details/6652280 U-boot網口問題解決後,uImage和ramdisk終於可以上傳到單板上去驗證了。指令碼為: MINI6410 # setenv serverip

20181206 IMX6Q開發移植螢幕小小心得和參考文件

作為一個嵌入式開發的初學者,花了倆星期時間,終於讓跑Linux系統的IMX6開發板換上了新的螢幕。 這裡,移植螢幕的主要思路就是: 確保連線正確; 學習LCD液晶屏的時序(在修改引數時需要); 看懂螢幕的資料手冊(各種資料手冊對同一個現象的寫法不一樣); 修改uboot和(核心驅動部分的

開發移植MT7601網絡卡

grep “***” * -nR 掛載nfsmount -t nfs -o nolock 192.168.1.141:/home/aston/x210rootfs /opt wifi專案移植 1 開發環境搭建, 1)ubuntu14.04 2)核心原始碼樹 3)

linux 開發Linux USB Gadget) 模擬u盤

前幾天,搞了 hid裝置,通過usb hid裝置和windows進行通訊。現在開始搞這個 mass storge 首先說明 環境:linux版本:3.15        使用開發板:SAMa5d3        編譯

Error:Execution failed for task toolchains\mips64el-linux-android-4.9\prebuilt\windows-x86_64.異常處理

今天接入Bmob後,工程出現了這個異常 Error:Execution failed for task ‘:app:transformNativeLibsWithStripDebugSymbolForDebug’. > A problem occurred

Linux Kernel 4.9中BBR擁塞控制演算法的優勢

本文轉載自《Linux Kernel 4.9 中的 BBR 演算法與之前的 TCP 擁塞控制相比有什麼優勢?》 中國科大 LUG 的 @高一凡 在 LUG HTTP 代理伺服器上部署了 Linux 4.9 的 TCP BBR 擁塞控制演算法。從科大的移動出口到新加坡 D

Linux核心4級頁表的演進

Linux記憶體管理中core VM程式碼中,關於頁表(page tables)管理的程式碼是個重點,是虛擬記憶體(Virtual Memory, VM)的基石,本文探討Linux的頁表實現及發展過程。 頁表概覽 在虛擬記憶體中,頁表是個對映表的概念, 即從程序能理解的

手把手教你移植linux核心---------OK6410(一)

配置資訊: 移植核心:linux-3.3.5       可以從  http://www.kernel.org/     下載純正的版本    編譯環境:vmware下ubuntu11.04 交叉編譯版本:4.3.2 準備工作: 一塊OK6410開發板,交叉網線,串列埠線

手把手教你移植linux核心(目標平臺S3C2410)

Linux核心的最初版本由Linus Torvalds在1991年釋出,後來核心版本不斷更新: Linux1.0   1994年3月    僅支援386 Linux1.2   1995年3月    多

信盈達stm32f103zet6開發移植ucosii系統

身為一個電子資訊工程的學生, 臨近畢業了才開始走進嵌入式的大門, 是不是有點晚了, 這次要用rtos主要是因為想用在物聯網家居專案上.廢話少說, 開始我的ucosii的移植之路吧, 參照正點原子的移植教程, 其實挺簡單的. 實驗開發板:信盈達stm32f103zet6(其實發現市面上的開發板