免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1764 | 回复: 0
打印 上一主题 下一主题

linux2.6.30.4内核移植到hfrk2440开发板问题总结 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 03:35 |只看该作者 |倒序浏览
问题一:
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. [<c002c75c>] (unwind_backtrace+0x0/0xdc) from [<c02b3d40>] (panic+0x40/0x110)
  17. [<c02b3d40>] (panic+0x40/0x110) from [<c000900c>] (mount_block_root+0x1d0/0x210)
  18. [<c000900c>] (mount_block_root+0x1d0/0x210) from [<c00092a4>] (prepare_namespac)
  19. [<c00092a4>] (prepare_namespace+0x164/0x1bc) from [<c00085b8>] (kernel_init+0xd)
  20. [<c00085b8>] (kernel_init+0xd4/0x108) from [<c0027d74>] (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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP