Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1071715
  • 博文数量: 139
  • 博客积分: 1823
  • 博客等级: 上尉
  • 技术积分: 3403
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-05 09:54
文章存档

2014年(7)

2013年(16)

2012年(48)

2011年(68)

分类: 嵌入式

2011-09-13 19:50:41

问题一:
make时出现一些错误,比如函数或变量没有定义等情况,仔细检查发现已经定义。
解决方法:
修改内核顶层的Makefile中的选项,CROSS_COMPILE注意这里的路径要带上,因为在我的主机上还装了其他编辑器。
如果不加上,就可能出现一些莫名其妙的错误。即:CROSS_COMPILE = /usr/local/arm/4.3.2/bin/arm-linux-

问题二:
内核出现:kernel panic-not syncing……
解决方法:
在配置内核时加上支持EABI编译这一选项。

问题三:
  1. mkimage -n 'linux-2.6.30.4' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage uImage.img
解决方法:
执行以上代码后,进入linux-2.6.30.4主目录,发现uImage.img文件只有64B,太小,下载到NAND FLASH上运行不好。
最后才发现生成的uImage.img文件应该在 arch/arm/boot下面。
原来我选错文件了。

问题四:
  1. Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
  2. 0x000000000000-0x000000100000 : "Boot"
  3. 0x000000120000-0x000000520000 : "Kernel"
  4. 0x000000520000-0x000004000000 : "yaffs2"
  5. ……
  6. ……
  7. drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
  8. Root-NFS: No NFS server available, giving up.
  9. VFS: Unable to mount root fs via NFS, trying floppy.
  10. VFS: Cannot open root device "hda1" or unknown-block(2,0)
  11. Please append a correct "root=" boot option; here are the available partitions:
  12. 1f00 1024 mtdblock0 (driver?)
  13. 1f01 4096 mtdblock1 (driver?)
  14. 1f02 60288 mtdblock2 (driver?)
  15. Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
  16. [] (unwind_backtrace+0x0/0xdc) from [] (panic+0x40/0x110)
  17. [] (panic+0x40/0x110) from [] (mount_block_root+0x1d0/0x210)
  18. [] (mount_block_root+0x1d0/0x210) from [] (prepare_namespac)
  19. [] (prepare_namespace+0x164/0x1bc) from [] (kernel_init+0xd)
  20. [] (kernel_init+0xd4/0x108) from [] (kernel_thread_exit+0x0)
解决方法:
先修改内核配置里的Boot options-->Default kernel command string中root=/dev/mtdblock3,再修改bootargs为: root=/dev/mtdblock3.但又遇到新的问题,如下.

问题五:
  1. 问题:yaffs: dev is 32505858 name is "mtdblock2"
  2. yaffs: passed flags ""
  3. yaffs: Attempting MTD mount on 31.2, "mtdblock2"
  4. yaffs_read_super: isCheckpointed 0
  5. VFS: Mounted root (yaffs filesystem) readonly on device 31:2.
  6. devtmpfs: error mounting -2
  7. Freeing init memory: 120K
  8. Failed to execute /linuxrc. Attempting defaults...
  9. Kernel panic - not syncing: No init found. Try passing init= option to kernel.
这个问题困扰了我近两周。最开始我百度,很多人说是文件系统问题,我重新做了一遍文件系统,没有解决。也有人说是内核问题,我重新做了内核,仍没有解决,后来我换了内核版本,严格按照《嵌入式linux之我行》的内核版本和方法来做,但结果结果 还是让人很失望。
解决方法:
后来,通过交流,找到了同我一样用《嵌入式linux之我行》文档的朋友,他也遇到了同样的问题。把他的内核和文件系统来过来后,仍然没有解决问题。后来我怀疑是不是我的UBOOT有问题。后来找到《嵌入式linux之我行》的UBOOT,再加上我的内核 和文件系统,发现OK!
  1. S3C24XX RTC, (c) 2004,2006 Simtec Electronics
  2. S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
  3. s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
  4. Advanced Linux Sound Architecture Driver Version 1.0.20.
  5. ALSA device list:
  6. No soundcards found.
  7. TCP cubic registered
  8. NET: Registered protocol family 17
  9. RPC: Registered udp transport module.
  10. RPC: Registered tcp transport module.
  11. drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
  12. yaffs: dev is 32505859 name is "mtdblock3"
  13. yaffs: passed flags ""
  14. yaffs: Attempting MTD mount on 31.3, "mtdblock3"
  15. yaffs_read_super: isCheckpointed 0
  16. VFS: Mounted root (yaffs filesystem) readonly on device 31:3.
  17. Freeing init memory: 136K

  18. Please press Enter to activate this console.
  19. [root@MY2440 /]# ls
  20. bin home lost+found proc usr
  21. dev lib mnt sbin var
  22. etc linuxrc opt tmp www
肯定是我的UBOOT有问题了,可能原因是UBOOT中对yaffs文件系统的烧写功能不完善。

现在把解决问题五的所有可能方法列出来(当时我就是google了所有这方面的原因,一个个排除,最后才得到解决的。)
1,没有将相应的动态库库复制到文件系统的/lib目录下。
2,烧写文件系统时,nand flash的地址不正确,导致文件系统没有烧写到正确的地方。
3,制作yaffs2的工具mkyaffs2image有问题。
4,文件系统中/bin/busybox不可执行。
5,uboot不支持yaffs的烧写指令,或者命令用错(误 把nand write.yaffs用为nand write)

问题六:
  1. # VFS: Mounted root (yaffs filesystem) readonly on device 31:3.
  2. # Freeing init memory: 136K
  3. #

  4. # Please press Enter to activate this console.
即文件系统不可写。
解决方法:
修改linux内核boot参数,加上:rw
阅读(8244) | 评论(5) | 转发(0) |
给主人留下些什么吧!~~

fgh159753002014-09-15 20:29:20

谢谢分享,根据你的思路。我解决了。我想大概知道问题了,我的问题跟你一样,换个uboot就可以了,我猜测原因是因为bootcmd不一样的原因。从NAND启动参数

setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0    <设置root的存储设备>

setenv bootcmd "nand read 0x30000000 0x60000 0x2300000; bootm 0x30000000" <设置kernel的起始地址>

 

设置YAFFS启动,引导参数:

setenv bootargs noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0

 

设置NFS启动,引导参数:

jerry200002012-11-28 17:40:27

现在没有了,等我回学校了再传你吧

cqojf2012-11-18 18:29:04

jerry20000: 你要哪些资料呢?.....
hfrk2440开发板的一些文档什么的

jerry200002012-11-18 15:18:00

cqojf: 拜读了您写的博文,总结的非常好!从您的博文得知您有使用过hfrk2440,我也有一块hfrk2440开发板,但资籵丢了,能帮忙share一份吗?
Email: cqojf@163.com.....
你要哪些资料呢?

cqojf2012-11-12 23:10:52

拜读了您写的博文,总结的非常好!从您的博文得知您有使用过hfrk2440,我也有一块hfrk2440开发板,但资籵丢了,能帮忙share一份吗?
Email: cqojf@163.com