sharp LCD 在9263平台上的显示(kernel部分)

来源:互联网 发布:兰州seo 编辑:程序博客网 时间:2024/05/21 15:47

     年前在uboot上把5.7 和10.4的LCD都驱起来了,年后工作要把内核部分显示做好,至今已解决在内核上的显示,遇到的问题下面说下。

     (1) 注意编译内核的工具要用arm-none-linux-gnueabi 否则在编译内核的时候有一些选项编译

          不过!

     (2) 想让kernel的启动信息显示在LCD上依次有以下操作:

     修改启动代码的环境变量setenv bootargs ethaddr=3a:1f:34:08:54:54 bootdelay=3 baudrate=115200

     stdin=serial stdout=serial stderr=serial bootargs=mem=64M console=tty0,115200 root=/dev/mtdblock0

      rw rootfstype=jffs2 bootcmd= cp.b 0xC0040000 0x22200000 0x00185800;bootm 0x22200000

     其中tty0代表显示在LCD上,ttyS0只显示在串口上!

     这块板子利用脚本文件生成了一个环境变量文件,将环境变量文件通过sam-ba写到0x4000的位置,那么系统启动的时候

     uboot上的环境变量不起作用了,起作用的是环境变量文件中的值!

     内核配置上将boot option上的CMDLINE上的console也改成tty0,添加Device drivers中的graphics support ->virtual  framebuffer support ,添加console display driver supper->framebuffer console support 及其下的几项 其中字体的那项我选择的是8*16的

     至此编译烧写到0x40000位置,启动可看到启动信息!

      (3) 启动后发现 显示mtd->read(***) return ECC error

         经过上网浏览一些信息+看Uboot的nand_ecc部分的代码发现board->atmel->9263

          - >nand.c中nand->eccmode= NAND_ECC_SOFT;

         内核选项中也把hardware ECC 改成Software ECC 解决此问题!

    (4)kernel panic -not syncing:Attempted to kill init

         此问题需选中Kernel Features下的EABI和Allow old ABi两项 可以解决

         如果出现abi=aapcs-linux问题 用arm-none-linux-gnueabi 编译工具可解决!

      

          补充:./mkimage -A arm -O Linux -T kernel -C none -a 0x20008000 -e 0x20008000 -n 'Linux-2.6.27'

-d ./zImage ./uImage