我用的板子是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