天嵌 ARM开发社区

 找回密码
 注册
查看: 4858|回复: 15

内核的配置单,,天嵌的技术人员出来!!!!!火起!!!!

[复制链接]
Sasoritattoo 发表于 2010-10-31 12:37:48 | 显示全部楼层 |阅读模式
本帖最后由 Sasoritattoo 于 2010-10-31 12:39 编辑

我这两天开始搞驱动,搞了两天,一个hello_world驱动都没搞定。每一次都是编译好了内核,然后烧到开发板上,可是最后的结果总是,卡在了启动Linux系统的路上,我快要崩溃了,每次编译多长时间大家应该都清楚吧,我已经编译了不下 7   次了。
我尝试了几次后认为可能是自己板子的硬件问题,于是我重新烧了出厂内核镜像,可是,这一次竟然可以完好无缺的进入内核系统了!!!问题就显然而出了我按照手册上一步一步走的,编译Linux2.6.30.4内核,我现在严重怀疑天嵌给的内核编译配置单有严重的问题!!!!!!!
  1. Enter your selection: 8
  2. Start Linux ...
  3. Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00200000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......
  4. Uncompressing Linux........................................................................................................................ done, booting the kernel.
  5. Linux version 2.6.30.4-EmbedSky (root@localhost.localdomain) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #3 Sun Oct 31 10:50:38 CST 2010
  6. CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
  7. CPU: VIVT data cache, VIVT instruction cache
  8. Machine: SMDK2440
  9. ATAG_INITRD is deprecated; please update your bootloader.
  10. Memory policy: ECC disabled, Data cache writeback
  11. CPU S3C2440A (id 0x32440001)
  12. S3C24XX Clocks, (c) 2004 Simtec Electronics
  13. S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz
  14. CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
  15. Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
  16. Kernel command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
  17. NR_IRQS:85
  18. irq: clearing pending ext status 00080000
  19. irq: clearing subpending status 00000003
  20. irq: clearing subpending status 00000002
  21. PID hash table entries: 256 (order: 8, 1024 bytes)
  22. Console: colour dummy device 80x30
  23. console [ttySAC0] enabled
  24. Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
  25. Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
  26. Memory: 64MB = 64MB total
  27. Memory: 60884KB available (3360K code, 377K data, 116K init, 0K highmem)
  28. SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
  29. Calibrating delay loop... 199.47 BogoMIPS (lpj=498688)
  30. Mount-cache hash table entries: 512
  31. CPU: Testing write buffer coherency: ok
  32. net_namespace: 936 bytes
  33. NET: Registered protocol family 16
  34. S3C Power Management, Copyright 2004 Simtec Electronics
  35. S3C2440: Initialising architecture
  36. S3C2440: IRQ Support
  37. S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
  38. DMA channel 0 at c4808000, irq 33
  39. DMA channel 1 at c4808040, irq 34
  40. DMA channel 2 at c4808080, irq 35
  41. DMA channel 3 at c48080c0, irq 36
  42. S3C244X: Clock Support, DVS off
  43. bio: create slab <bio-0> at 0
  44. SCSI subsystem initialized
  45. usbcore: registered new interface driver usbfs
  46. usbcore: registered new interface driver hub
  47. usbcore: registered new device driver usb
  48. s3c2440-i2c s3c2440-i2c: slave address 0x10
  49. s3c2440-i2c s3c2440-i2c: bus frequency set to 97 KHz
  50. s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
  51. NET: Registered protocol family 2
  52. IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
  53. TCP established hash table entries: 2048 (order: 2, 16384 bytes)
  54. TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
  55. TCP: Hash tables configured (established 2048 bind 2048)
  56. TCP reno registered
  57. NET: Registered protocol family 1
  58. NetWinder Floating Point Emulator V0.97 (extended precision)
  59. JFFS2 version 2.2. (NAND) (SUMMARY)  漏 2001-2006 Red Hat, Inc.
  60. ROMFS MTD (C) 2007 Red Hat, Inc.
  61. msgmni has been set to 119
  62. io scheduler noop registered
  63. io scheduler anticipatory registered (default)
  64. io scheduler deadline registered
  65. io scheduler cfq registered
  66. GPIO-Control initialized
  67. PWM-Test initialized
  68. adc initialized
  69. lp: driver loaded but no devices found
  70. ppdev: user-space parallel port driver
  71. Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
  72. s3c2440-uart.0: tq2440_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440
  73. s3c2440-uart.1: tq2440_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440
  74. s3c2440-uart.2: tq2440_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440
  75. brd: module loaded
  76. loop: module loaded
  77. Uniform Multi-Platform E-IDE driver
  78. ide-gd driver 1.18
  79. ide-cd driver 5.00
  80. Driver 'sd' needs updating - please use bus_type methods
  81. dm9000 Ethernet Driver, V1.31
  82. Now use the default MAC address: 10:23:45:67:89:ab
  83. eth0 (dm9000): not using net_device_ops yet
  84. eth0: dm9000e at c4872000,c4876004 IRQ 51 MAC: 10:23:45:67:89:ab (EmbedSky)
  85. S3C24XX NAND Driver, (c) 2004 Simtec Electronics
  86. s3c2440-nand s3c2440-nand: Tacls=3, 30ns Twrph0=7 70ns, Twrph1=3 30ns
  87. NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
  88. Scanning device for bad blocks
  89. Bad eraseblock 660 at 0x000005280000
  90. Bad eraseblock 1258 at 0x000009d40000
  91. Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
  92. 0x000000000000-0x000000040000 : "EmbedSky_Board_uboot"
  93. 0x0000001f0000-0x0000003f0000 : "EmbedSky_Board_kernel"
  94. mtd: partition "EmbedSky_Board_kernel" doesn't start on an erase block boundary -- force read-only
  95. 0x0000003f0000-0x000003ff8000 : "EmbedSky_Board_yaffs2"
  96. mtd: partition "EmbedSky_Board_yaffs2" doesn't start on an erase block boundary -- force read-only
  97. usbmon: debugfs is not available
  98. ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
  99. s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
  100. s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
  101. s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
  102. usb usb1: configuration #1 chosen from 1 choice
  103. hub 1-0:1.0: USB hub found
  104. hub 1-0:1.0: 2 ports detected
  105. usbcore: registered new interface driver libusual
  106. usbcore: registered new interface driver usbserial
  107. USB Serial support registered for generic
  108. usbcore: registered new interface driver usbserial_generic
  109. usbserial: USB Serial Driver core
  110. USB Serial support registered for FTDI USB Serial Device
  111. usbcore: registered new interface driver ftdi_sio
  112. ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver
  113. USB Serial support registered for pl2303
  114. usbcore: registered new interface driver pl2303
  115. pl2303: Prolific PL2303 USB to serial adaptor driver
  116. mice: PS/2 mouse device common for all mice
  117. S3C24XX RTC, (c) 2004,2006 Simtec Electronics
  118. s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
  119. s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
  120. S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
  121. s3c2410-wdt s3c2410-wdt: starting watchdog timer
  122. s3c2410-wdt s3c2410-wdt: watchdog active, reset abled, irq enabled
  123. mapped channel 0 to 0
  124. s3c2440-sdi s3c2440-sdi: powered down.
  125. s3c2440-sdi s3c2440-sdi: initialisation done.
  126. Advanced Linux Sound Architecture Driver Version 1.0.18a.
  127. ALSA device list:
  128.   No soundcards found.
  129. TCP cubic registered
  130. NET: Registered protocol family 17
  131. RPC: Registered udp transport module.
  132. RPC: Registered tcp transport module.
  133. s3c2440-sdi s3c2440-sdi: powered down.
  134. s3c2410-rtc s3c2410-rtc: setting system clock to 2008-11-09 07:21:02 UTC (1226215262)
  135. List of all partitions:
  136. 1f00             256 mtdblock0 (driver?)
  137. 1f01            2048 mtdblock1 (driver?)
  138. 1f02           61472 mtdblock2 (driver?)
  139. No filesystem could mount root, tried:  ext3 ext2 cramfs vfat msdos iso9660 romfs
  140. Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
  141. [<c002b644>] (unwind_backtrace+0x0/0xd4) from [<c02a0e90>] (panic+0x40/0x10c)
  142. [<c02a0e90>] (panic+0x40/0x10c) from [<c0008fa8>] (mount_block_root+0x1c8/0x208)
  143. [<c0008fa8>] (mount_block_root+0x1c8/0x208) from [<c0009240>] (prepare_namespace+0x164/0x1bc)
  144. [<c0009240>] (prepare_namespace+0x164/0x1bc) from [<c000858c>] (kernel_init+0xb0/0xdc)
  145. [<c000858c>] (kernel_init+0xb0/0xdc) from [<c0045c38>] (do_exit+0x0/0x580)
  146. [<c0045c38>] (do_exit+0x0/0x580) from [<c381a300>] (0xc381a300)
复制代码
基本到了这里就卡住了,有几次配置连内核都启动不了

天嵌的管理员能给点儿解释吗?????
konizhang 发表于 2010-10-31 13:40:59 | 显示全部楼层
No filesystem could mount root, tried:  ext3 ext2 cramfs vfat msdos iso9660 romfs
挂载不了文件系统
1. 用Embedsky的内核+Embedsky文件系统试一下
2. 用Embedsky的内核+你的文件系统试下
3. 用你编译的内核+Embedsky文件系统试下
还有一个问题是:你用的源代码是网上下的没有经过修改的,还是光盘中已经修改好的源代码?
 楼主| Sasoritattoo 发表于 2010-11-1 07:30:51 | 显示全部楼层
2# konizhang

本来烧的就是天嵌自带的内核+文件系统,后来又自己加了驱动,按照手册上来的,想看看hello驱动,但是编译出来的内核不行,中间又试了一次烧天嵌自带的出厂镜像,没想到成功进入内核了
还有,我用的内核代码是光盘中修改好的源代码
鬼鬼一哈 发表于 2010-11-1 09:52:48 | 显示全部楼层
中间又试了一次烧天嵌自带的出厂镜像,没想到成功进入内核了:L出厂镜像当然没问题的
y296144646q 发表于 2010-11-1 09:53:28 | 显示全部楼层
明显的是你yaffs2文件系统有问题 No filesystem could mount root, tried:  ext3 ext2 cramfs vfat msdos iso9660 romfs 就是没有YAFFS 你不是按教程来的吧
y296144646q 发表于 2010-11-1 09:57:29 | 显示全部楼层
你只要用TQ的Uboot 然后一步一步按TQ的教程来 不可能不行 除非你用的不是TQ做好的Uboot
天嵌_support1 发表于 2010-11-1 09:59:40 | 显示全部楼层
1# Sasoritattoo


网友们的解释已经到位。
你没有添加了yaffs2文件系统的支持。
我不知道你的操作步骤怎么走。
天嵌的hello world 驱动模块测试,本意是让你体会一下
如何添加自己的驱动程序。
如何编译成模块,
如何加载模块,
如何卸载模块。
不知网友有没有这样去走。
y296144646q 发表于 2010-11-1 10:00:37 | 显示全部楼层
应该是内核没有yaffs2驱动
天嵌_support1 发表于 2010-11-1 10:08:01 | 显示全部楼层
1# Sasoritattoo


问:“我这两天开始搞驱动,搞了两天,一个hello_world驱动都没搞定。每一次都是编译好了
     内核,然后烧到开发板上,可是最后的结果总是,卡在了启动Linux系统的路上,
     我快要崩溃了,每次编译多长时间大家应该都清楚吧,我已经编译了不下 7   次了。”

答:如果网友只是想学习一下如何开发驱动,你不需要每次全部编译内核,烧写内核。
      你只需要编译相应的驱动模块,放到文件系统,执行加载测试就可以了。
      编译模块: make modules SUBDIR=drivers/char
      加载命令: insmod hello_world.ko
问:“我尝试了几次后认为可能是自己板子的硬件问题,于是我重新烧了出厂内核镜像,
       可是,这一次竟然可以完好无缺的进入内核系统了!!!问题就显然而出了我按照
       手册上一步一步走的,编译Linux2.6.30.4内核,我现在严重怀疑天嵌给的内核编译
       配置单有严重的问题”
答:你用的是天嵌的源代码么?配置单没有问题的,我不知道测试多少次。跟着手册走也可能有
      遗漏细节的时候。网友还是把步骤贴出来大家讨论。再一个就是......学习开发这个....要有百
     折不挠的精神,奔溃这两个字,删除吧
 楼主| Sasoritattoo 发表于 2010-11-1 20:49:06 | 显示全部楼层
9# embedsky_lxt

因为我每次都怀疑是配置单有问题,所以就不断地尝试别的配置单,检查配置单哪里有遗漏。不好意思,发那么大火。当时真的是太恼人了
版主说“如果网友只是想学习一下如何开发驱动,你不需要每次全部编译内核,烧写内核。
      你只需要编译相应的驱动模块,放到文件系统,执行加载测试就可以了。
      编译模块: make modules SUBDIR=drivers/char
      加载命令: insmod hello_world.ko  ”
可是那些驱动并没有在内核中被设置为M 模块状态啊,不是要先在内核里面注册吗?
比如,如果我想写个驱动,只需在PC主机上编译好这个模块,然后放到板子上的文件系统里,然后在终端执行insmod 命令吗?难道不用在内核里添加支持吗?不行吧好像...
竹影 发表于 2010-11-1 23:14:59 | 显示全部楼层
欢迎加群83864208,一起学习
天嵌_support1 发表于 2010-11-2 12:12:56 | 显示全部楼层
10# Sasoritattoo


可以以模块的方式来学习的。
加上利用 nfs文件系统,就方便你开发学习多了。
没有选择为模块,你可以自己选嘛,Linux配置可以不选择,可以选择编译进去内核,可以选择编译成模块。
 楼主| Sasoritattoo 发表于 2010-11-2 13:52:07 | 显示全部楼层
12# embedsky_lxt
是啊,斑竹大人。
我就是刚搭建好nfs文件系统,又刚准备深入搞一下驱动的。但是写了驱动还是要先在内核里添加,然后重新编译内核,文件系统就不用了,我干的就是这事。所以内核也至少得编译一次吧
天嵌_support1 发表于 2010-11-2 14:24:56 | 显示全部楼层
13# Sasoritattoo


嗯,对的。
紧那罗王 发表于 2011-1-15 20:52:56 | 显示全部楼层
我也纳闷,究竟要不要重新编译更新内核
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-8-21 06:53 , Processed in 1.022501 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表