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
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x7000000 0x1000000>;
ranges;
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(其實發現市面上的開發板