主题 : 移植2.6.31到mini2440成功! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 1330
精华: 0
发帖: 39
金钱: 390 两
威望: 139 点
贡献值: 0 点
综合积分: 78 分
注册时间: 2008-08-18
最后登录: 2011-02-07
楼主  发表于: 2009-10-03 12:17

 移植2.6.31到mini2440成功!

遇到的问题如下:

  1. USB设备未编译,导致编译内核失败。

  2. 设备初始化代码段不对,导致指针错误。

  3. LED背光设备、NAND等结构体缺失元素(不影响启动)

  4. 背光灯先亮后灭;


解决的方法如下:

  1. 设备未编译,导致编译内核失败,添加编译规则即可,打开linux2.6.31/arch/arm/mach-s3c2440/Kconfig;在92行后添加如下内容:
    复制代码
    1.     select S3C_DEV_USB_HOST


  2. 初始化代码不对,这个我也不是很清楚原因,待知道的兄弟解释一下,我是从http://code.google.com/p/mini2440的代码库里得到的解决方法。解决办法就是打开linux2.6.31/arch/arm/mach-s3c2440/mach-mini2440.c,将除了下面这一句之外的所有的 __init去掉即可
    复制代码
    1. static char mini2440_features_str[12] __initdata = "0tb";

    另外提一下,上面这一句是设置mini2440初始化参数的。

  3. 结构体缺失的问题,应该不影响启动,但是为了代码规范还是注意点比较好。解决方法,同样是打开linux2.6.31/arch/arm/mach-s3c2440/mach-mini2440.c,将
    复制代码
    1. static struct s3c2410_platform_nand mini2440_nand_info __initdata = {
    2.      .tacls        = 0,
    3.      .twrph0        = 25,
    4.      .twrph1        = 15,
    5.      .nr_sets    = ARRAY_SIZE(mini2440_nand_sets),
    6.      .sets        = mini2440_nand_sets,
    7.      .ignore_unset_ecc = 1,
    8. };

    修改为:
    复制代码
    1. static struct s3c2410_platform_nand mini2440_nand_info __initdata = {
    2.      .tacls        = 0,
    3.      .twrph0        = 25,
    4.      .twrph1        = 15,
    5.      .nr_sets    = ARRAY_SIZE(mini2440_nand_sets),
    6.      .sets        = mini2440_nand_sets,
    7.      .ignore_unset_ecc = 1,
    8.     .select_chip    = NULL
    9. };

    再将
    复制代码
    1. static struct s3c24xx_led_platdata mini2440_led_backlight_pdata __initdata = {
    2.      .name        = "backlight",
    3.      .gpio        = S3C2410_GPG(4),
    4.      .def_trigger    = "backlight",
    5. };

    修改为:
    复制代码
    1. static struct s3c24xx_led_platdata mini2440_led_backlight_pdata __initdata = {
    2.      .name        = "backlight",
    3.      .gpio        = S3C2410_GPG(4),
    4.     .flags        = S3C24XX_LEDF_STARTON,
    5.      .def_trigger    = "backlight",
    6. };

    即加上
    复制代码
    1.     .flags        = S3C24XX_LEDF_STARTON,
    这一行。并且打开arch/arm/mach-s3c2410/include/mach/leds-gpio.h,在18行后添加下面一行:
    复制代码
    1. #define S3C24XX_LEDF_STARTON    (1<<2)        /* Initialise 'on' */

    以定义从开机一直保持液晶常亮的宏参数。


  4. 背光灯的问题,有两种解决方法,一是在启动参数中加上
    复制代码
    1. mini2440=0t
    参数;而是修改上面的
    复制代码
    1. static char mini2440_features_str[12] __initdata = "0tb";


    复制代码
    1. static char mini2440_features_str[12] __initdata = "0t";

    即可,这里实际上是mini2440移植的时候作的一个参数化的处理。具体可以参考linux2.6.31/arch/arm/mach-s3c2440/mach-mini2440.c的584行到625行这一段。



相关的补丁如下:
mini2440-stuff.patch.tar.bz2 (3 K) 下载次数:94
[ 此帖被athurg在2009-10-03 13:59重新编辑 ]
级别: 新手上路
UID: 8849
精华: 0
发帖: 9
金钱: 100 两
威望: 50 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2009-09-08
最后登录: 2010-12-18
1楼  发表于: 2009-10-03 14:14
呵呵,我触屏都成功了。
级别: 圣骑士
UID: 9221
精华: 0
发帖: 376
金钱: 2110 两
威望: 539 点
贡献值: 0 点
综合积分: 752 分
注册时间: 2009-09-22
最后登录: 2016-07-04
2楼  发表于: 2009-10-03 15:50
谢谢,楼主,二楼也是强人,写写笔记吧!
一起学习,一起进步
级别: 新手上路
UID: 5623
精华: 0
发帖: 35
金钱: 250 两
威望: 120 点
贡献值: 0 点
综合积分: 70 分
注册时间: 2009-05-01
最后登录: 2018-04-19
3楼  发表于: 2009-10-06 23:41
你们的UDA1341声音正常吗?
级别: 新手上路
UID: 5171
精华: 0
发帖: 35
金钱: 250 两
威望: 100 点
贡献值: 0 点
综合积分: 70 分
注册时间: 2009-04-13
最后登录: 2016-03-30
4楼  发表于: 2009-10-09 13:56
呵呵,学习中,每天来论坛逛逛是我的习惯
级别: 圣骑士
UID: 9221
精华: 0
发帖: 376
金钱: 2110 两
威望: 539 点
贡献值: 0 点
综合积分: 752 分
注册时间: 2009-09-22
最后登录: 2016-07-04
5楼  发表于: 2009-10-09 17:04
楼上的同学,怎么跟我一样呀!
一起学习,一起进步
要不干脆就不要做...
级别: 新手上路
UID: 7244
精华: 0
发帖: 29
金钱: 290 两
威望: 150 点
贡献值: 0 点
综合积分: 58 分
注册时间: 2009-07-06
最后登录: 2009-11-16
6楼  发表于: 2009-11-03 21:44
引用楼主athurg于2009-10-03 12:17发表的 移植2.6.31到mini2440成功! :
初始化代码不对,这个我也不是很清楚原因,待知道的兄弟解释一下,我是从http://code.google.com/p/mini2440的代码库里得到的解决方法。解决办法就是打开linux2.6.31/arch/arm/mach-s3c2440/mach-mini2440.c,将除了下面这一句之外的所有的 __init去掉即可
复制代码static char mini2440_features_str[12] __initdata = "0tb";


另外提一下,上面这一句是设置mini2440初始化参数的。

我按照你说的删除了 __init但是make zImage时候出现一大堆错误..

不去掉可以编译通过..但是在开发板上不能正常初始化..在内核引导阶段就出问题了..进入不了start_kernel..
难道就是这个地方的原因?可是我去掉__init不能编译啊。。

还有那个http://code.google.com/p/mini2440网站我没有找到有关这个问题的解决办法哦...

还有你发的那个补丁。。不能解压缩。。解压出来的是个空文档。。Orz...

仍旧很感谢你的帖子。。给我很大帮助。。。希望您能把初始化问题讲的详细些...
真正奇妙的不是世界是什么样子..而是世界就是这个样子..
级别: 新手上路
UID: 7760
精华: 0
发帖: 11
金钱: 90 两
威望: 44 点
贡献值: 0 点
综合积分: 22 分
注册时间: 2009-07-27
最后登录: 2011-07-12
7楼  发表于: 2009-11-21 22:52
非常感谢楼主的这个帖子,解决了困扰我一个多月的问题!