天嵌 ARM开发社区

 找回密码
 注册
查看: 3371|回复: 8

移植内核失败

[复制链接]
feng5683y 发表于 2010-7-29 18:41:42 | 显示全部楼层 |阅读模式
以前使用天嵌的镜像移植内核和文件系统,移植成功。现在想自己编译内核,所以完全按照pdf教程来做,可是没有成功。内核移植到开发板后无法启动系统。串口显示如下:
Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00200000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......
Uncompressing Linux............................................................................................................................. done, booting the kernel.
Linux version 2.6.30.4-EmbedSky (root@EmbedSky) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-176) ) #12 Tue Jul 27 21:02:52 CST 2010
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: SMDK2440
ATAG_INITRD is deprecated; please update your bootloader.
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
Kernel command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
NR_IRQS:85
irq: clearing subpending status 00000003
irq: clearing subpending status 00000002
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
console [ttySAC0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 60608KB available (3592K code, 523K data, 116K init, 0K highmem)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 199.47 BogoMIPS (lpj=498688)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 296 bytes
NET: Registered protocol family 16
S3C2440: Initialising architecture
S3C2440: IRQ Support
S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
DMA channel 0 at c4808000, irq 33
DMA channel 1 at c4808040, irq 34
DMA channel 2 at c4808080, irq 35
DMA channel 3 at c48080c0, irq 36
S3C244X: Clock Support, DVS off
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
s3c2440-i2c s3c2440-i2c: slave address 0x10
s3c2440-i2c s3c2440-i2c: bus frequency set to 97 KHz
s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
cfg80211: Calling CRDA to update world regulatory domain
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
yaffs Jul 27 2010 20:58:52 Installing.
msgmni has been set to 118
alg: No test for stdrng (krng)
io scheduler noop registered (default)
Console: switching to colour frame buffer device 30x20
fb0: s3c2410fb frame buffer device
s3c2440-uart.0: tq2440_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440
s3c2440-uart.1: tq2440_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440
s3c2440-uart.2: tq2440_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440
loop: module loaded
Driver 'sd' needs updating - please use bus_type methods
dm9000 Ethernet Driver, V1.31
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2440-nand s3c2440-nand: Tacls=2, 20ns Twrph0=3 30ns, Twrph1=2 20ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 293 at 0x0000024a0000
Bad eraseblock 295 at 0x0000024e0000
Bad eraseblock 297 at 0x000002520000
Bad eraseblock 556 at 0x000004580000
Bad eraseblock 560 at 0x000004600000
Bad eraseblock 1721 at 0x00000d720000
Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000000040000 : "EmbedSky_Board_uboot"
0x000000200000-0x000000500000 : "EmbedSky_Board_kernel"
0x000000500000-0x000010000000 : "EmbedSky_Board_ysffs2"
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: S3C24XX OHCI
usb usb1: Manufacturer: Linux 2.6.30.4-EmbedSky ohci_hcd
usb usb1: SerialNumber: s3c24xx
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
usbserial: USB Serial Driver core
USB Serial support registered for GSM modem (1-port)
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems
USB Serial support registered for pl2303
usbcore: registered new interface driver pl2303
pl2303: Prolific PL2303 USB to serial adaptor driver
mice: PS/2 mouse device common for all mice
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
i2c /dev entries driver
Linux video capture interface: v2.00
zc0301: V4L2 driver for ZC0301[P] Image Processor and Control Chip v1:1.10
usbcore: registered new interface driver zc0301
gspca: main v2.5.0 registered
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v0.1.0)
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.20.
No device for DAI UDA134X
No device for DAI s3c24xx-i2s
ALSA device list:
  No soundcards found.
TCP cubic registered
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
lib80211: common routines for IEEE802.11 drivers
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
end_request: I/O error, dev mtdblock2, sector 0
FAT: unable to read boot sector
VFS: Cannot open root device "mtdblock2" or unknown-block(31,2)
Please append a correct "root=" boot option; here are the available partitions:
1f00             256 mtdblock0 (driver?)
1f01            3072 mtdblock1 (driver?)
1f02          257024 mtdblock2 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
Backtrace:
[<c002a13c>] (dump_backtrace+0x0/0x10c) from [<c02c5500>] (dump_stack+0x18/0x1c)
r7:c38090d9 r6:c03d5b20 r5:c3809000 r4:c381df40
[<c02c54e8>] (dump_stack+0x0/0x1c) from [<c02c5550>] (panic+0x4c/0x124)
[<c02c5504>] (panic+0x0/0x124) from [<c0008e30>] (mount_block_root+0x178/0x234)
r3:00000000 r2:c3837cec r1:c381df40 r0:c03515a8
[<c0008cb8>] (mount_block_root+0x0/0x234) from [<c0008f9c>] (mount_root+0xb0/0xf4)
[<c0008eec>] (mount_root+0x0/0xf4) from [<c00090d8>] (prepare_namespace+0xf8/0x18c)
r7:c03d5504 r6:c001f83c r5:c001f83c r4:c001f84c
[<c0008fe0>] (prepare_namespace+0x0/0x18c) from [<c0008478>] (kernel_init+0xc8/0xf4)
r7:00000000 r6:c001e9f8 r5:c001e670 r4:c001e9f8
[<c00083b0>] (kernel_init+0x0/0xf4) from [<c003b200>] (do_exit+0x0/0x644)
r7:00000000 r6:00000000 r5:00000000 r4:00000000

然后就不动了,也不再显示任何信息,开发板的屏上也是花屏。我又换成了以前用天嵌提供的内核下载进去,系统就正常了。这说明文件系统是没有问题的。而是内核的问题,然后我按照4.5版本的附录5的配置单重新配置,还是不行而且有的选项找不到。到底是哪里出了问题?
我分析了这个串口信息和成功的时候的信息,主要区别在后边:
VFS: Cannot open root device "mtdblock2" or unknown-block(31,2)
Please append a correct "root=" boot option; here are the available partitions:
1f00             256 mtdblock0 (driver?)
1f01            3072 mtdblock1 (driver?)
1f02          257024 mtdblock2 (driver?)
如果是成功的话,串口打印的信息应该是
VFS: Mounted root (yaffs filesystem) on device 31:2.
我想应该是文件系统没法挂载的问题,是内核没法决定mtdblock2就是在unknown-block(31,2)这里,可是我不知道具体的哪里出了错误,希望亚瑟王能提供帮助。
再次提醒:内核是我按照教程上下载的2.6.30.4然后自己制作的  文件系统是使用天嵌提供的而且如果用天嵌的内核是测试成功的,但是配上自己的内核就不行。
 楼主| feng5683y 发表于 2010-7-30 17:17:14 | 显示全部楼层
版主 求救啊!!这个问题我都快弄一周了,关于内核移植的帖子几乎看完了 方法也试了很多种,都不行啊
回复

使用道具 举报

liushuiyue 发表于 2010-8-2 19:15:29 | 显示全部楼层
查看内核中加入对mtd 块设备的支持没?同时内核加入对yaffs文件系统的支持,打个补丁就可以了
回复

使用道具 举报

亚瑟王 发表于 2010-8-2 20:20:45 | 显示全部楼层
你修改uboot的启动参数为从yaffs启动,修改方法见TQ2440使用手册的第四章。uboot使用的章节。然后重新烧写yaffs文件系统后测试。
回复

使用道具 举报

 楼主| feng5683y 发表于 2010-8-2 21:13:18 | 显示全部楼层
好 我现在试试 谢谢管理员哈
回复

使用道具 举报

 楼主| feng5683y 发表于 2010-8-2 21:29:47 | 显示全部楼层
还不行啊,打印信息还是那样没有变,哪里还有可能存在问题吗?
回复

使用道具 举报

arm2010 发表于 2010-8-2 23:30:22 | 显示全部楼层
0x000000000000-0x000000040000 : "EmbedSky_Board_uboot"
0x000000200000-0x000000500000 : "EmbedSky_Board_kernel"
0x000000500000-0x000010000000 : "EmbedSky_Board_ysffs2


不要使用 0x000000500000  而使用 0x000000400000
就是
0x000000200000-0x000000400000 : "EmbedSky_Board_kernel"
0x000000400000-0x000010000000 : "EmbedSky_Board_ysffs2

在一个****.c文件中可以改的
回复

使用道具 举报

亚瑟王 发表于 2010-8-4 22:58:35 | 显示全部楼层
你有没有烧写文件系统?
回复

使用道具 举报

 楼主| feng5683y 发表于 2010-8-7 20:31:32 | 显示全部楼层
绝对烧写了,这方面我检查了。配置单检查了好几遍,文件系统也用的是天嵌的文件系统,内核补丁也打上了,可是都不行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-8-5 03:13 , Processed in 2.046944 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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