主题 : Tiny6410光盘所带内核linux-2.6.28.6(-20101007)不能跑,可能移植有问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 32134
精华: 0
发帖: 14
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2010-11-10
最后登录: 2011-12-27
楼主  发表于: 2011-06-15 10:40

 Tiny6410光盘所带内核linux-2.6.28.6(-20101007)不能跑,可能移植有问题

Tiny6410光盘带了2个内核,linux-2.6.28.6-20101007.tar和linux-2.6.36-20110112.tar,2.6.36的内核能运行正常,但是2.6.28.6的内核跑起来有问题,特反馈如下:
===================================================================================================
U-Boot 1.1.6 (Dec 31 2010 - 14:36:43) for FriendlyARM MINI6410


CPU:     S3C6410@532MHz
         Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode
)
Board:   MINI6410
DRAM:    256 MB
Flash:   0 kB
NAND:    256 MB
In:      serial
Out:     serial
Err:     serial
MAC: 08:90:90:90:90:90
Hit any key to stop autoboot:  0

NAND read: device 0 offset 0x80000, size 0x500000

Reading data from 0x57f800 -- 100% complete.
5242880 bytes read: OK
Boot with zImage

Starting kernel ...

Uncompressing Linux.............................................................
................................................................................
..................... done, booting the kernel.

Error: unrecognized/unsupported machine ID (r1 = 0x000009d8).

Available machine support:

ID (hex)        NAME
0000065a        SMDK6410

Please check your kernel config and/or bootloader.
====================================================================================================

查看内核目录
[root@hello linux-2.6.28.6]# ls arch/arm/mach-s3c6410/
cpu.c  dma.c  irq.c  Kconfig  mach-smdk6410.c  Makefile  pm.c  setup-sdhci.c

====================================================================================================
查看相关文件
[root@hello linux-2.6.28.6]# vim arch/arm/mach-s3c6410/mach-smdk6410.c
MACHINE_START(SMDK6410, "SMDK6410")
        /* Maintainer: Ben Dooks <ben@fluff.org> */
        .phys_io        = S3C_PA_UART & 0xfff00000,
        .io_pg_offst    = (((u32)S3C_VA_UART) >> 18) & 0xfffc,
        .boot_params    = S3C64XX_PA_SDRAM + 0x100,

        .init_irq       = s3c6410_init_irq,
        .map_io         = smdk6410_map_io,
        .init_machine   = smdk6410_machine_init,
        .timer          = &s3c64xx_timer,
MACHINE_END
=====================================================================================================
对比2.6.28.6内核里面的mach-smdk6410.c和2.6.36内核里的mach-mini6410.c, 发现可能在这里没有移植。希望相关工作人员能修正。

内核2.6.28.6运行出错
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
1楼  发表于: 2011-06-15 11:44
28的内核应该要用旧的uboot来配合
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
2楼  发表于: 2011-06-15 11:47
你可以修改28内核中SMDK6410的machine ID为MINI6410的ID, 即0x9d8
如果没有特别需要的话, 就不建议使用28内核了
级别: 新手上路
UID: 32134
精华: 0
发帖: 14
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2010-11-10
最后登录: 2011-12-27
3楼  发表于: 2011-06-15 15:08

 回 2楼(911gt3) 的帖子

感谢911gt3的回复!
因为项目中有一个驱动只支持28的内核,所以是有特别需要才用28的内核的。
我试过了,仅仅改machine ID是不行的
=====================================================================================================
U-Boot 1.1.6 (Dec 31 2010 - 14:07:41) for FriendlyARM MINI6410


CPU:     S3C6410@532MHz
         Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode
)
Board:   MINI6410
DRAM:    128 MB
Flash:   0 kB
NAND:    256 MB
*** Warning - bad CRC or NAND, using default environment

In:      serial
Out:     serial
Err:     serial
MAC: 08:90:90:90:90:90
Hit any key to stop autoboot:  0

NAND read: device 0 offset 0x80000, size 0x500000

Reading data from 0x57f800 -- 100% complete.
5242880 bytes read: OK
Boot with zImage

Starting kernel ...

Uncompressing Linux.............................................................
................................................................................
........................................ done, booting the kernel.
=====================================================================================================
请问,还有更好的建议吗?或者麻烦你告诉我旧的uboot的下载地址,谢谢!
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
4楼  发表于: 2011-06-15 15:36
建议你将 28 的驱动移植到 36 中
只有一个这样的驱动, 不会太难搞的
级别: 新手上路
UID: 32134
精华: 0
发帖: 14
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2010-11-10
最后登录: 2011-12-27
5楼  发表于: 2011-06-15 16:54

 回 4楼(911gt3) 的帖子

再次感谢911gt3的回复!但是,你的建议是消极的,不能从根本上解决问题。

我刚刚搜索论坛也发现一个贴出现跟我一样的问题:
http://www.aiothome.net/read.php?tid-10244.html
(Tiny6410 自带的LINUX 2.6.28运行不了?)

为什么你们公司的光盘内带了28的内核,又不能用;不能用,没有移植好,又没有相应的解决方法?
我建议贵公司相关工作人员从根本上积极的解决这个问题,给客户提供满意的服务,谢谢!
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
6楼  发表于: 2011-06-15 17:17
我们提供的28内核仅供学习参考,它是完全开源的,主要从三星原厂而来。我们没有计划改进28内核,它太老了,wifi方面功能太弱。

如果是批量用户,我们可以考虑收费定制28内核。

软件满足每一个用户是不可能达到的,众口难调,总的方向是用新的比旧的要好。
[ 此帖被mindee在2011-06-15 17:29重新编辑 ]
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 32134
精华: 0
发帖: 14
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2010-11-10
最后登录: 2011-12-27
7楼  发表于: 2011-06-15 17:32

 回 6楼(mindee) 的帖子

明白了,感谢mindee的回复!
级别: 新手上路
UID: 52688
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2011-07-23
最后登录: 2011-08-10
8楼  发表于: 2011-07-24 14:17
我也遇到v4l2在38的内核下不能运行的问题,我的是cam130摄像头,你们这个里面的驱动是不是有问题,要不就写一个v4l2的用mmap的测试程序出来。这样大家也好参考
级别: 新手上路
UID: 41936
精华: 0
发帖: 27
金钱: 140 两
威望: 28 点
贡献值: 0 点
综合积分: 54 分
注册时间: 2011-04-02
最后登录: 2015-11-29
9楼  发表于: 2011-10-20 09:53
这么长时间了,也应该提供一种解决的方法。。。。