EASYARM-IMX283 移植内核linux-3.2.57
debian 7.4下用apt-get source linux-source-3.2可以得到linux-3.2.57的源代码,文件名称为linux-3.2.57.orig.tar.xz.
也可以直接从https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.57.tar.gz下载,该版本我没有验证,但是应该跟linux-3.2.57.orig.tar.xz执行效果一致。
将其解压缩,并进行配置(imx283属于mxs配置)和编译:
tar xf linux_3.2.57.orig.tar.xz cd linux-3.2.57/ make ARCH=arm mxs_defconfig
make ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- uImage
编译快结束时出现如下错误:
LD vmlinux SYSMAP System.map SYSMAP .tmp_System.map Inconsistent kallsyms data This is a bug - please report about it Try make KALLSYMS_EXTRA_PASS=1 as a workaround
添加KALLSYMS_EXTRA_PASS=1参数,重新编译:
make ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- KALLSYMS_EXTRA_PASS=1 uImage
这次可以生成uImage文件。
然后执行make ARCH=arm menuconfig,将使得下面的选项中仅仅包含MX28EVK:
System Type--> [ ] Support STMP378x_devb Platform [ ] Support MX23EVK Platform [*] Support MX28EVK Platform [ ] Ka-Ro TX28 module [ ] Support DENX M28EVK Platform
然后再次执行下面命令生成uImage并拷贝到nfs文件夹:
make ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- uImage
将生成的uImage拷贝到nfs文件夹下,重启nfs:
cp arch/arm/boot/uImage /home/host/nfs/imx283/
/etc/init.d/nfs-kernel-server restart
在IMX283下设置成nfs启动内核(可以参看我前一篇文章《EASYARM-IMX283 nfs启动内核和根文件系统》).
但是控制台显示如下:
Starting kernel ... Uncompressing Linux... done, booting the kernel.
后续内容就无法显示了,很可能是串口配置或者驱动有问题。
而imx283内核中使用的串口是从UART0的CTS和RTS来作为DUART的,需要利用到mxs的duart驱动。
而linux3.2.57中默认使用的是amba设备来加载DUART,不需要用到duart驱动,移植起来困难比较大,暂时先放一下,有空再研究。
posted on 2014-05-23 16:40 qiaoqiao2003 阅读(1415) 评论(0) 收藏 举报
浙公网安备 33010602011771号