User Info
Добро пожаловать, Guest Пользователей: 3 Поисковых ботов: 3 Гостей: 1
Поддержка в ядре initramfs
kruger
Пункты: 3936
Регистрация: 09.05.2010
Пол: Мужчина
Доброго времени суток!
Имеется в наличии плата SK-AT91SAM9260, ядро linux версии 3.0.4 и buildroot-2011.08.
Пытаюсь сделать initramfs, чтобы ядро и файловая система была одним файлом.
Мои действия:
1. Генерирую ФС с помощью buildroot'а
2. Перехожу в каталог со «сгенеренной» ФС buildroot-2011.08/output/target
3. Выполняю команду find . | cpio -H newc -o > ../initramfs.cpio
4. Включаю поддержку initramfs в ядре. Там же в качестве пути к ФС указываю путь и имя файла initramfs.cpio
5. В качестве параметров ядра выступают аргументы: mem=64M console=/dev/ttyS1,115200 init=/sbin/init
В результате загрузки ядра:
Код Starting kernel ...
Linux version 3.0.4 (kruger@desktop) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41) ) #8 Tue Oct 4 13:36:39 EEST 2011
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Atmel AT91SAM9260-EK
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 200 MHz, master 100 MHz, main 12.000 MHz
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: mem=64M console=/dev/ttyS1,115200 init=/sbin/init
PID hash table entries: 256 (order: -2, 1024 bytes)
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: 60132k/60132k available, 5404k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xffc00000 - 0xffe00000 ( 2 MB)
vmalloc : 0xc4800000 - 0xfee00000 ( 934 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc026b000 (2444 kB)
.text : 0xc026b000 - 0xc048a000 (2172 kB)
.data : 0xc048a000 - 0xc04a16e0 ( 94 kB)
.bss : 0xc04a1704 - 0xc04ae0e4 ( 51 kB)
NR_IRQS:192
AT91: 96 gpio irqs in 3 banks
Console: colour dummy device 80x30
console [ttyS0] enabled
Calibrating delay loop... 99.73 BogoMIPS (lpj=498688)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
devtmpfs: initialized
NET: Registered protocol family 16
AT91: Power Management
AT91: Starting after user reset
bio: create slab <bio-0> at 0
Switching to clocksource pit
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
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
ROMFS MTD (C) 2007 Red Hat, Inc.
msgmni has been set to 117
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xfffb0000 (irq = 6) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xfffb4000 (irq = 7) is a ATMEL_SERIAL
brd: module loaded
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfffc4000 irq 21 (00:01:12:00:00:00)
eth0: attached PHY driver [Micrel KS8001 or KS8721] (mii_bus:phy_addr=ffffffff:01, irq=-1)
mousedev: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 17
VFP support v0.3: not present
VFS: Cannot open root device "(null)" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Backtrace:
[<c0278fc4>] (dump_backtrace+0x0/0x110) from [<c0410544>] (dump_stack+0x18/0x1c)
r6:00008000 r5:c3879000 r4:c04a1a58
[<c041052c>] (dump_stack+0x0/0x1c) from [<c04105a4>] (panic+0x5c/0x180)
[<c0410548>] (panic+0x0/0x180) from [<c0008e9c>] (mount_block_root+0x23c/0x28c)
r3:00000000 r2:20000013 r1:c381bf6c r0:c046061c
r7:c0267b88
[<c0008c60>] (mount_block_root+0x0/0x28c) from [<c0009034>] (mount_root+0x50/0x68)
r8:00000000 r7:00000013 r6:c0289974 r5:c001f688 r4:00000000
[<c0008fe4>] (mount_root+0x0/0x68) from [<c00091bc>] (prepare_namespace+0x170/0x1cc)
r4:c04a1780
[<c000904c>] (prepare_namespace+0x0/0x1cc) from [<c0008ad4>] (kernel_init+0xe8/0x11c)
r5:c001f688 r4:c001f8e0
[<c00089ec>] (kernel_init+0x0/0x11c) from [<c0289974>] (do_exit+0x0/0x654)
r5:c00089ec r4:00000000
если же в качестве параметров ядра указать mem=64M console=/dev/ttyS1,115200 rdinit=/sbin/init, то лог загрузки имеет следующий вид:
Код Starting kernel ...
Linux version 3.0.4 (kruger@desktop) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41) ) #8 Tue Oct 4 13:36:39 EEST 2011
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Atmel AT91SAM9260-EK
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 200 MHz, master 100 MHz, main 12.000 MHz
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: mem=64M console=/dev/ttyS1,115200 rdinit=/sbin/init
PID hash table entries: 256 (order: -2, 1024 bytes)
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: 60132k/60132k available, 5404k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xffc00000 - 0xffe00000 ( 2 MB)
vmalloc : 0xc4800000 - 0xfee00000 ( 934 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc026b000 (2444 kB)
.text : 0xc026b000 - 0xc048a000 (2172 kB)
.data : 0xc048a000 - 0xc04a16e0 ( 94 kB)
.bss : 0xc04a1704 - 0xc04ae0e4 ( 51 kB)
NR_IRQS:192
AT91: 96 gpio irqs in 3 banks
Console: colour dummy device 80x30
console [ttyS0] enabled
Calibrating delay loop... 99.73 BogoMIPS (lpj=498688)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
devtmpfs: initialized
NET: Registered protocol family 16
AT91: Power Management
AT91: Starting after user reset
Unable to handle kernel paging request at virtual address 1a001a38
pgd = c0004000
[1a001a38] *pgd=00000000
Internal error: Oops: 5 [#1]
Modules linked in:
CPU: 0 Not tainted (3.0.4 #8)
PC is at copy_process+0x4b8/0xc94
LR is at 0x0
pc : [<c028572c>] lr : [<00000000>] psr: 40000013
sp : c381fef4 ip : 00000020 fp : c381ff30
r10: 00000000 r9 : 1a001a30 r8 : 00000000
r7 : c3827660 r6 : 00000000 r5 : 00800711 r4 : c3827580
r3 : 00000000 r2 : 00000000 r1 : e08280d0 r0 : c3838084
Flags: nZcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 0005317f Table: 20004000 DAC: 00000017
Process kthreadd (pid: 2, stack limit = 0xc381e260)
Stack: (0xc381fef4 to 0xc3820000)
fee0: c381ff18 00000000 c381ff7c
ff00: 00000000 00000000 00000000 c381ff7c 00000000 00800711 00000000 00000000
ff20: 00000000 c381ff70 c381ff34 c028603c c0285284 00000000 00000000 00000000
ff40: fffdeffd bfffffff c3815ac0 c029ebf4 c381bf2c 00000611 00000013 00000000
ff60: 00000000 c381ffdc c381ff74 c02767b0 c0285f4c 00000000 00000000 00000000
ff80: 00000000 00000000 00000000 c381bf2c c029ebf4 c0289974 00000013 00000000
ffa0: 00000000 00000000 00000000 00000000 00000000 00000000 c0276684 00000093
ffc0: 00000000 c381bf2c c381bf48 c0289974 c381fff4 c381ffe0 c029eebc c0276750
ffe0: 00000000 c029ee08 00000000 c381fff8 c0289974 c029ee18 fdfffcff ffffffbf
Backtrace:
[<c0285274>] (copy_process+0x0/0xc94) from [<c028603c>] (do_fork+0x100/0x278)
[<c0285f3c>] (do_fork+0x0/0x278) from [<c02767b0>] (kernel_thread+0x70/0x80)
[<c0276740>] (kernel_thread+0x0/0x80) from [<c029eebc>] (kthreadd+0xb4/0xf0)
r6:c0289974 r5:c381bf48 r4:c381bf2c
[<c029ee08>] (kthreadd+0x0/0xf0) from [<c0289974>] (do_exit+0x0/0x654)
r5:c029ee08 r4:00000000
Code: e215a801 1a00004d e59f97a8 e59f17bc (e5990008)
---[ end trace 1b75b31a2719ed1c ]---
Есть у кого какие нибудь идеи или предложения?
Заранее благодарен!
Pavel Ivanchenko
Admin
Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Вот аргумены ядра 9G45 для initramfs:
Код mem=64M console=ttyS0,115200 initrd=0x73100000,0x800000 root=/dev/ram0 rw
kruger
Пункты: 3936
Регистрация: 09.05.2010
Пол: Мужчина
То есть получается, что 0x73100000 - это адрес куда ядро "самостоятельно засунет" ФС ?
Jury093
Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата То есть получается, что 0x73100000 - это адрес куда ядро "самостоятельно засунет" ФС ?
пардон что влезаю..
если скачать мануал на кит 9260 с этого сайта
тыц
то в логе загрузки можно подсмотреть интересную строчку:
Kernel command line: root=/dev/ram0 rw initrd=0x23100000,0x800000 console=ttyS0,115200
mem=64M
еще можно погуглить со строчкой
9260 initramfs site:starterkit.ru но там негусто..
На любой вопрос есть любой ответ.
kruger
Пункты: 3936
Регистрация: 09.05.2010
Пол: Мужчина
тока пришел домой, сейчас опробую.
2 Jury093:
Спасибо за ссылку на мануал, я совсем и забыл про него, просто когда платы покупал то его еще не было.
kruger
Пункты: 3936
Регистрация: 09.05.2010
Пол: Мужчина
применив параметр загрузки ядра root=/dev/ram0 rw initrd=0x23100000,0x800000 console=ttyS0,115200
mem=64M, результат выглядит следующим образом:
Код Starting kernel ...
Linux version 3.0.4 (kruger@desktop) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41) ) #11 Tue Oct 4 22:47:17 EEST 2011
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Atmel AT91SAM9260-EK
INITRD: 0x23100000+0x08000000 is not a memory region - disabling initrd
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 200 MHz, master 100 MHz, main 12.000 MHz
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: mem=64M console=/dev/ttyS0,115200 root=/dev/ram0 rw initrd=0x23100000,0x800000
PID hash table entries: 256 (order: -2, 1024 bytes)
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: 57292k/57292k available, 8244k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xffc00000 - 0xffe00000 ( 2 MB)
vmalloc : 0xc4800000 - 0xfee00000 ( 934 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc04d9000 (4932 kB)
.text : 0xc04d9000 - 0xc074c000 (2508 kB)
.data : 0xc074c000 - 0xc07676c0 ( 110 kB)
.bss : 0xc07676e4 - 0xc07740e4 ( 51 kB)
NR_IRQS:192
AT91: 96 gpio irqs in 3 banks
Console: colour dummy device 80x30
console [ttyS0] enabled
Calibrating delay loop... 99.73 BogoMIPS (lpj=498688)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
devtmpfs: initialized
NET: Registered protocol family 16
AT91: Power Management
AT91: Starting after user reset
bio: create slab <bio-0> at 0
Switching to clocksource pit
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
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
ROMFS MTD (C) 2007 Red Hat, Inc.
msgmni has been set to 111
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xfffb0000 (irq = 6) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xfffb4000 (irq = 7) is a ATMEL_SERIAL
brd: module loaded
atmel_nand atmel_nand: No DMA support for NAND access.
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 2 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000000040000 : "Partition 1"
mtd: Giving out device 0 to Partition 1
0x000000040000-0x000010000000 : "Partition 2"
mtd: Giving out device 1 to Partition 2
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfffc4000 irq 21 (00:01:12:00:00:00)
eth0: attached PHY driver [Micrel KS8001 or KS8721] (mii_bus:phy_addr=ffffffff:01, irq=-1)
mousedev: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 17
VFP support v0.3: not present
List of all partitions:
No filesystem could mount root, tried: ext2 romfs
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
Backtrace:
[<c04e8d10>] (dump_backtrace+0x0/0x10c) from [<c06ce24c>] (dump_stack+0x18/0x1c)
r6:00000006 r5:c387900b r4:c0767a38
[<c06ce234>] (dump_stack+0x0/0x1c) from [<c06ce2b0>] (panic+0x60/0x188)
[<c06ce250>] (panic+0x0/0x188) from [<c0008eb4>] (mount_block_root+0x24c/0x29c)
r3:00000000 r2:c381bf64 r1:c381bf64 r0:c071eb58
r7:00000000
[<c0008c68>] (mount_block_root+0x0/0x29c) from [<c0009054>] (mount_root+0x54/0x6c)
[<c0009000>] (mount_root+0x0/0x6c) from [<c00091d8>] (prepare_namespace+0x16c/0x1cc)
r5:c04d5edd r4:c0767760
[<c000906c>] (prepare_namespace+0x0/0x1cc) from [<c0008adc>] (kernel_init+0xec/0x120)
r5:c0020aa4 r4:c0020aa4
[<c00089f0>] (kernel_init+0x0/0x120) from [<c04fc224>] (do_exit+0x0/0x6b4)
r5:c00089f0 r4:00000000
Мне кажется что проблема в том, как я "генерю" initramfs :(
sasamy
Пункты: 83542
Регистрация: 14.08.2009
Цитата
Мне кажется что проблема в том, как я "генерю" initramfs :(
А у вас там присутствует в корне симлинк init -> /bin/busybox ?
kruger
Пункты: 3936
Регистрация: 09.05.2010
Пол: Мужчина
действительно не было. когда поставил лог загрузки стал оканчиваться на:
Код TCP cubic registered
NET: Registered protocol family 17
VFP support v0.3: not present
Freeing init memory: 4932K
Kernel panic - not syncing: Attempted to kill init!
Backtrace:
[<c04e8d10>] (dump_backtrace+0x0/0x10c) from [<c06ce24c>] (dump_stack+0x18/0x1c)
r6:c07549f4 r5:c07549f4 r4:c0767a38
[<c06ce234>] (dump_stack+0x0/0x1c) from [<c06ce2b0>] (panic+0x60/0x188)
[<c06ce250>] (panic+0x0/0x188) from [<c04fc8a8>] (do_exit+0x684/0x6b4)
r3:60000013 r2:c2c1be54 r1:c2c15d60 r0:c07223e4
r7:c2c15d60
[<c04fc224>] (do_exit+0x0/0x6b4) from [<c04fcb78>] (do_group_exit+0x48/0xc4)
r7:c2c1bed0
[<c04fcb30>] (do_group_exit+0x0/0xc4) from [<c0508240>] (get_signal_to_deliver+0x1bc/0x3a4)
r4:0830009f
[<c0508084>] (get_signal_to_deliver+0x0/0x3a4) from [<c04e7f50>] (do_signal+0x98/0x548)
[<c04e7eb8>] (do_signal+0x0/0x548) from [<c04e89d8>] (do_notify_resume+0x54/0x60)
[<c04e8984>] (do_notify_resume+0x0/0x60) from [<c04e5a14>] (work_pending+0x24/0x28)
r4:00000000
Jury093
Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
если погуглить по вышеприведенной строчке, то там упоминается необходимость симлинка и вероятно решение ваших грабель..
полагаю, что имеет место быть расхождение с настройкой EABI..
и вот эта строчка из лога настораживает:
Код INITRD: 0x23100000+0x08000000 is not a memory region - disabling initrd
На любой вопрос есть любой ответ.
kruger
Пункты: 3936
Регистрация: 09.05.2010
Пол: Мужчина
В предыдущем посте я написал что симлинка небыло, установил его с помощью ln, после чего лог стал оканчиватся
Код Kernel panic - not syncing: Attempted to kill init!
(см. пред. пост)
А по поводу:
INITRD: 0x23100000+0x08000000 is not a memory region - disabling initrd - это я просто после несколькиз неудач экспериментировал с размером, и по своей невнимательности вставил не тот лог.
Кстати бизибокс который в составе билдрута необходимо собирать статиком?
К сожелении к плате доберусь только вечером :(
Также спасибо всем большое за помощь!!! :)