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)    收藏  举报

导航