[linux kernel]内核移植过程记录

本文详细记录了将Linux内核移植到Ubuntu 18.04上的AT91SAMA5D36开发板的过程,包括配置文件路径设置、交叉编译器的使用、设备树的编译以及烧录后硬件驱动的验证。通过打印信息分析了GPIO、DMA、USB、i2C、蓝牙、串口、SPI、CAN驱动等模块的状态,并指出GMAC和KSZ8081芯片驱动未成功的原因。
摘要由CSDN通过智能技术生成

系统版本:Ubuntu18.04-64

编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)

uboot版本:2018.07 -linux4sam_6.0

板子型号:at91sama5d3x-xplained

MCU型号:sama5d36

内核移植主要是裁剪一些不需要的功能,使用对应的交叉工具链把内核重新编译,设备树文件按照硬件去配置。

一、配置文件路径

arch/arm/configs/sama5_defconfig

//配置文件路径
arch/arm/configs/sama5_defconfig

//声明环境变量,指定交叉编译器
$ export CROSS_COMPILE=arm-linux-gnueabi-

//先按照默认配置编译内核文件,看是否会报错,编译出来的文件先进行烧录,是否能正确引导文件系统;
$ make ARCH=arm sama5_defconfig
$ make ARCH=arm

//图形化配置窗口调出
$ make ARCH=arm menuconfig

//单独编译设备树文件,生成dtb文件
$ make ARCH=arm dt

二、把编译的zImage和dtb文件烧录板子,根据打印信息,分析出硬件驱动的情况。

1、内核接收uboot传递过来的分区信息,要和设备树中的分区一致,后面再细讲;

Kernel command line: console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,768k(uboot)ro,256K(env_redundant),256k(env),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype=ubifs ubi.mtd=6 root=ubi0:rootfs

2、GPIO控制器驱动OK

AT91: PM: standby: standby, suspend: ulp0
gpio-at91 fffff200.gpio: at address (ptrval)
gpio-at91 fffff400.gpio: at address (ptrval)
gpio-at91 fffff600.gpio: at address (ptrval)
gpio-at91 fffff800.gpio: at address (ptrval)
gpio-at91 fffffa00.gpio: at address (ptrval)
pinctrl-at91 ahb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值