LINUX 內核移植以及網卡驅動添加


我用的板子是sama5d3xek,原來板子內核是linux-at91-3.13,升級使用linux-at91-4.10

首先去官網下載一個linux—at91-4.10壓縮包,然后在ubuntu里解壓,進入源文件目錄,我這里用的是arm板子所以更改Makefile

如下 vi Makefile

使的 ARCH ?= $(SUBARCH)

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

改為 ARCH ?= arm

CROSS_COMPILE ?= arm-linux-

然后保存退出

查看arch/arm/configs/sama5_defconfig

輸入命令make ARCH=arm sama5_defconfig

在輸入 make ARCH=arm menuconfig 進行內核相關的配置(注意配置時候盡量把窗口最大化)

然后在 make -j4 ARCH=arm 進行內核編譯生成 zImage

如果要uImage可以執行 (無加載地址時)

LOADADDR=0x20008000

export LOADADDR

make ARCH=arm uImage

有加載地址直接make ARCH=arm uImag

編譯device tree

make ARCH=arm dtbs 就可以了

最終得到 zImage uImage和sama5d3*。dtb

Ⅱ 網卡驅動的添加

我這里需要的是1000M的dp83867網卡驅動,發現linux4.3以上版本都有他的網卡驅動程序,

果斷移植過來,dp83867。c和 ti-dp83867.h文件  然后進行內核配置,出現了一次錯誤,

把4.3內核的phy。h中的

static inline bool phy_interface_is_rgmii(struct phy_device *phydev)
 {
 return phydev->interface >= PHY_INTERFACE_MODE_RGMII &&
 phydev->interface <= PHY_INTERFACE_MODE_RGMII_TXID;
 };復制到4.10中,更改Makefile和Kconfig文件

重新配置編譯內核,ok

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM