转:Real6410 Linux 常见问题总结(截至2010/07/26)

AQ0:
出现uncorrectable error : uncorrectable error错误的解决

答:
A.软件版本的问题,我们提供的第一版的软件(2009年12月份的版本)在个别板子上会这个错误,请到我们的代码更新空间下载最新的代码包。uboot、kernel的运行之处都会打印出该镜像的制作时间,根据时间来判断是不是软件版本的问题。
如uboot的:
U-Boot 1.1.6 (Mar 14 2010 - 19:45:59) for SMDK6410
如kernel的:
Linux version 2.6.28.6 (figo@figo-desktop) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #186 PREEMPT Thu Dec 17 13:56:42 CST 2009

B.部分用户第一次烧写linux && Android系统的时候会遇到s3c-nand: ECC uncorrectable error detected这样的问题,这是因为WinCE对Nandflash的OOB区的操作和Linux系统不一致,导致linux认为是坏块。
出现这样的问题的时候请按照下面的步骤解决:

i.uboot命令行中运行下面命令:

nand erase 0

该命令将删除整块nandflash。

ii.使用SD启动的uboot重新烧写各个镜像文件。

如果这样做还是出问题,那么第一步中的nand erase 0 换成nand scrub,并根据输出提示输入y,回车,将nand包括OOB在内的所有内容彻底清除,并重复第二步。

FAQ1:
终端老是跳出这个:
[root@Real6410 /]# sh: apm: not found
QDir::readDirEntries: Cannot read the directory: /usr/lib/ipkg/externinfo
什么原因?

答:
1.qt运行的时候会去运行apm命令,但实际上文件系统没有安装这个命令,解决办法。。。。我的想法比较傻瓜,就是在文件系统中增加一个可执行脚本apm,当然这个脚本什么也不用做,内容如下即可:

#!/bin/sh

在主机中给这个脚本增加可执行属性并放到板子文件系统的/usr/sbin下即可。我已做过实验可以消除掉 sh: apm: not found。

2.自己手动建立/usr/lib/ipkg/externinfo目录即可:

mkdir -p /usr/lib/ipkg/externinfo

FAQ2:
进入系统后,系统自选择的网卡模式为 eth0: link up ,100Mbps , full-duplex, lpa 0x45E1
但只有10M模式才能连接网络
如果在u-boot执行国过网络命令(tftp ,ping等)再启动内核,则系统自选择网卡模式为eth0: link up ,10Mbps , full-duplex, lpa 0x45E1
该如何解决?

答:
这是网卡之间的配合问题,我试过同一块板子,通过switch连接到pc时,板子的网卡速率使用100M就会丢包严重,使用10M就非常理想,但是板子如果直接连到pc,那么使用100M也是非常理想的。遇到这种情况时可以根据情况来修改uboot下的网络速率,修改方法为:
修改uboot/drivers/dm9000x.c中的static int media_mode = DM9000_AUTO;修改为static int media_mode = DM9000_10MFD;
这样便能强制使用10M模式,如果强制用100M则改为DM9000_100MFD,DM9000_AUTO表示自适应速率。

FAQ3:
Uart3不能使用,写/dev/ttySAC3不能产生信号,如何解决?

答:
这是由于uart3的相关引脚还没配置成uart3模式,解决办法:
1.在s3c-linux-2.6.28.6-Real6410/arch/arm/mach-s3c6410/mach-smdk6410.c中添加下面的函数:
void real6410_set_gpio()
{
unsigned int val;

val = __raw_readl(S3C64XX_GPBCON);
val &= ~(0xff<<8);
val |= (0x22<<8); /* Output Mode */
__raw_writel(val, S3C64XX_GPBCON);
}
2.在同一个文件的smdk6410_machine_init的最后加入real6410_set_gpio();

FAQ4:
版主,用你们提供的helper_sd.bin  sd8686.bin后 wifi模块仍然无法加载。打印下面两句后就没有了
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
没办法产生文档中所说的下面的输出信息:
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
hq
libertas_sdio mmc0:0001:1: firmware: requesting ./helper_sd.bin
libertas_sdio mmc0:0001:1: firmware: requesting ./sd8686.bin
libertas: 00:22:43:6b:0b:9e, fw 9.70.3p24, cap 0x000003a3
libertas: PREP_CMD: command 0x00a3 failed: 2
libertas: PREP_CMD: command 0x00a3 failed: 2
libertas: eth1: Marvell WLAN 802.11 adapter
请问这是怎么回事?

答:
很可能是没有冷重启导致的,因为wifi模块在系统热重启后(比如说通过reboot命令重启、按reset按键重启)不能正常工作,必须断电重启才能重新进入正常模式。

FAQ5:
Real6410中附带的光盘的linux文件夹下的三星6410测试程序,用ads怎么编译不通过呢?请问怎么才能编译通过呢?打开的时候会提示Environment variable 'RVCT22INC' not found

答:
刚刚试了一下,发现不能编译的原因是有几个指令ADS不能识别,而看了一下那个编译选项发现我使用的ADS1.2并不支持ARM11构架,因此可能问题就在这里,我不知道三星用的ADS是否和我的有不一样。 

FAQ6:
qtopia2.2.0在Ubuntu-9.10下按照手册说明不能编译,什么原因?

答:
Ubuntu下编译qtopia-2.2.0需要安装几个软件包,在Ubuntu下输入下面的命令进行安装:
sudo apt-get -y install x-dev libx11-dev x11proto-xext-dev libxext-dev libqt3-mt-dev uuid
uuid-dev
如果是使用RedHat 9.0 或者RedHat AS4 的完全安装版那么不需要安装任何其他工具就
可以完成编译。

FAQ7:
使用key.c文件测试键盘的时候,程序中出现的问题:
keyboard.c: can't emulate rawmode for keycode 139
key 139 Released
keyboard.c: can't emulate rawmode for keycode 158
key 158 Pressed 

另外在Qt-2.2.0下使用键盘的时候也出现类似问题,为什么?

答:
linux手册中已经强调过,按键编码并不是按照标准键盘进行编码,而是为了Android的使用进行编码,而QT使用标准的键盘编码,所以出现上面的问题。

FAQ8:
Uboot中显示的内存大小是128M,并不是广告中宣传的256M,这是怎么回事?

答:
有用户反映我们的板子的内存和flash并不是宣传中的256M和1G,通过下面的指令可以看到内存和flash的情况:
df -h

free m


首先我们的板子的内存和flash分别是256M和1G,这肯定不会欺骗用户,除非不想混了,呵呵。 
然后对于flash的容量问题,的确是小弟在烧写ubifs的时候没有正确设置ubifs文件系统的大小(不过我多少有点认为是ubimkvol这个命令的本身的问题),用修正之后的rootfs.cramfs重新烧写ubifs即可。由于论坛限制文件大小所以这个cramfs放到http中。

再然后是内存的问题,要知道,samsang的好几个media驱动(CMM、POST、FIMC、2D、3D、MFC、JPG)在内核启动的时候就需要预先留出几十MB的memory为各自使用,剩下的才是系统可以使用的内存,因此这就是为什么看到的内存为196而不是256.

另外有些用户反映在uboot下看到的内存是128M,那么这个uboot应该是我们最早发布的一个版本,到我们的http更新一下代码吧,这里只是显示为128,实际上还是256。


FAQ9:
做完烧入的最后一步。。烧写QT下去之后。并且修改一下内核的启动参数,让内核不再挂载cramfs格式的mtdblock0,转而挂载ubifs格式的mtdblock1:重启板子之后出现了
Starting Qtopia, please waiting...
Please press Enter to activate this console. Warning: could not register server
QDir::readDirEntries: Cannot read the directory: /usr/lib/ipkg/externinfo
<6>usb 1-2: new full speed USB device using s3c2410-ohci and address 2
usb 1-2: new full speed USB device using s3c2410-ohci and address 2
<3>usb 1-2: device descriptor read/64, error -62
usb 1-2: device descriptor read/64, error -62
<3>usb 1-2: device descriptor read/64, error -62
usb 1-2: device descriptor read/64, error -62
<6>usb 1-2: new full speed USB device using s3c2410-ohci and address 3
usb 1-2: new full speed USB device using s3c2410-ohci and address 3
<3>usb 1-2: device descriptor read/64, error -62
usb 1-2: device descriptor read/64, error -62
<3>usb 1-2: device descriptor read/64, error -62
usb 1-2: device descriptor read/64, error -62
<6>usb 1-2: new full speed USB device using s3c2410-ohci and address 4
usb 1-2: new full speed USB device using s3c2410-ohci and address 4
<3>usb 1-2: device not accepting address 4, error -62
usb 1-2: device not accepting address 4, error -62
<6>usb 1-2: new full speed USB device using s3c2410-ohci and address 5
usb 1-2: new full speed USB device using s3c2410-ohci and address 5
<3>usb 1-2: device not accepting address 5, error -62
usb 1-2: device not accepting address 5, error -62
<3>hub 1-0:1.0: unable to enumerate USB device on port 2
hub 1-0:1.0: unable to enumerate USB device on port 2
  
而且好像eth0也没有打开。。
eth0: link down
Done

这样的问题如何解决。。

答:
1.出现usb 1-2: device descriptor read/64, error -62的时候你的USB接口是否连接什么东西?另外,你的kernel配置也可能导致这个问题。
2.eth0在网络连接上的时候就会up,没有连接上就会自己down,网络闲置的时候也会down,当你要使用网络进行数据传输的时候也会自己up。当然你也可以使用ifconfig eth0 down、ifconfig eth0 up来手动决定它的down、up

FAQ10:
我想知道我们的板子有坏块咋办啊,第一次烧写时就一直在那里不动了啊,一个劲的出那个坏块的内容啊,不知道有办法解决不? 

答:
uboot下运行nand scrub清除所有伪坏块 

FAQ11:
我的gprs模块测试,怎么都是显示no data?手机在家里有信号啊 

答:
gprs模块的led指示灯(LED2)是否闪烁? 如果LED2在启动之后没有闪烁,那么应该是uboot没有打开GPRS模块的开关,可以下载我们提供的最新的uboot试试,因为硬件有过更改,软件上可能没有及时做更改。

FAQ12:
一个奇怪的问题:6410板子跑Linux操作系统,运行GPRS测试程序 能打电话,但收发短信有问题。发短信返回错误CIM 515,请问怎么解决??? 

答:
在运行gprs的测试程序时,要按3配置一下短信中心号码,然后再发短信就可以了,测试程序默认是杭州的中移动短信服务中心号码。

FAQ13:
GPS测试的时候没有输出信息,或者输出了乱码,怎么解决?

答:
有些用户反映用的GPS模块会出现乱码,这是因为很早的时候供货商说模块的默认波特率是9600,但是后来才知道有些模块默认是4800,因此可能需要根据自己模块的情况修改一下波特率,修改方法是修改gps测试程序linux\Applications\gps\main.c中的#define BAUDRATE B9600
为4800.后面会在文档中进行说明 

FAQ14:
GPS编译错:
root@chen-desktop:opt/gps/# make
makefile:2: ../Rules.mak: 没有那个文件或目录
make:  *** 没有规则可以创建目标"../Rules.mak".停止。

答:
进入目录后输入:arm-linux-gcc -o gps main.c gps.c -lpthread
之前忘了修改Makefile的内容,不好意思:-)

FAQ15:
SD相关问题:
A.        使用IROM_Fusing_Tool.exe烧写SD卡的时候烧写不进去
B.        烧写SD成功后不能启动
按照说明书里的步骤,用光盘里的 IROM_Fusing_Tool.exe,烧写了\工具软件\u-boot_mmc.bin到 SD卡里(FAT32 512MB),在切换成 SD卡启动,DNW-0.60C 上只输出了个 "K",其他什么都没有呢 ? 然后,有烧写了\linux\linux-image\u-boot_mmc.bin到 SD卡里,还是启动失败。

答:
导致这些问题的可能性有下面几种:
1.我们是在Windows xp下烧写的,如果是vista或者是win7,可能IROM_Fusing_Tool.exe不能正常使用。
2.SD读卡器的缘故,比如所使用的笔记本的SD读卡器,更换SD读卡器后再试试。
3.SD本身的问题,请使用容量为2G及以下的SD卡,并且最好是使用Kingston的正品SD。
4.SD启动设置要正确,拨码开关需要全部为off才能从SD启动。

FAQ16:
烧写完Qt系统后,没有出现Qt界面,系统启动的时候也没有出现小企鹅,这是怎么回事?

答:
没有烧写正确的zImage,我们根据不同的LCD尺寸提供了不同的zImage镜像,比如zImage_qtopia_50表示是5.0寸LCD,zImage_qtopia_43表示是4.3寸LCD,zImage_qtopia_70表示是7寸LCD,要根据自己的LCD情况来选择烧写不同的zImage。

FAQ17:
请问下:NFS 启动参数 ?
从NFS启动,从tftp下载内核,要如何修改参数?

答:
设置NFS启动参数:
setenv bootargs noinitrd root=/dev/nfs console=ttySAC0 init=/linuxrc nfsroot=192.168.1.178:/nfsboot/qtopia-nfs ip=192.168.1.20:192.168.1.178:192.168.1.1:255.255.255.0::eth0:on
之后保存:
saveenv

设置启动时通过tftp下载zImage:
setenv bootcmd "tftp c0008000 zImage;bootm c0008000"
saveenv

转自:http://bbs.realarm.cn/viewthread.php?tid=44&extra=page%3D6

原文地址:https://www.cnblogs.com/yyangblog/p/2080542.html