|
AT91RM9200 + Angstron linux, консоль? |
|
|
|
Oct 18 2008, 11:43
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Собрал сабжевый линух. Собрал ядро. Залил rootfs на внешний винт. Подключил его к rainbow. Ядро загружается, монтирует корневой раздел и останавливается на Freeing init memory: 100K. Явно не зватает записи в inittab для запуска консоли. Может кто добрый подкинет свой inittab? Собственно лог: Код ... io scheduler noop registered io scheduler anticipatory registered (default) atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL atmel_usart.1: ttyS1 at MMIO 0xfffc4000 (irq = 7) is a ATMEL_SERIAL usbcore: registered new interface driver ub eth0: Link now 100-FullDuplex eth0: AT91 ethernet at 0xfefbc000 int=24 100-FullDuplex (12:23:34:45:56:67) eth0: Micrel KS8721 PHY Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx Driver 'sd' needs updating - please use bus_type methods SCSI Media Changer driver v0.25 Driver 'ch' needs updating - please use bus_type methods physmap platform flash device: 00200000 at 10000000 physmap-flash physmap-flash.0: map_probe failed at91_cf: irqs det #64, io #0 usbmon: debugfs is not available at91_ohci at91_ohci: AT91 OHCI at91_ohci at91_ohci: new USB bus registered, assigned bus number 1 at91_ohci at91_ohci: irq 23, io mem 0x00300000 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected usb usb1: Product: AT91 OHCI usb usb1: Manufacturer: Linux 2.6.24-gentoo-r4 ohci_hcd usb usb1: SerialNumber: at91 Initializing USB Mass Storage driver... usb 1-1: new full speed USB device using at91_ohci and address 2 usb 1-1: configuration #1 chosen from 1 choice usb 1-1: Product: USB to ATA/ATAPI Bridge usb 1-1: Manufacturer: JMicron usb 1-1: SerialNumber: 222222222222 usb 1-2: new low speed USB device using at91_ohci and address 3 usb 1-2: device descriptor read/64, error -62 usb 1-2: device descriptor read/64, error -62 usb 1-2: new low speed USB device using at91_ohci and address 4 usb 1-2: device descriptor read/64, error -62 usb 1-2: device descriptor read/64, error -62 usb 1-2: new low speed USB device using at91_ohci and address 5 usb 1-2: device not accepting address 5, error -62 usb 1-2: new low speed USB device using at91_ohci and address 6 usb 1-2: device not accepting address 6, error -62 scsi0 : SCSI emulation for USB Mass Storage devices usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver libusual udc: at91_udc version 3 May 2006 mice: PS/2 mouse device common for all mice at91_rtc at91_rtc: rtc core: registered at91_rtc as rtc0 AT91 Real Time Clock driver. i2c /dev entries driver AT91 Watchdog Timer enabled (5 seconds, nowayout) TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 at91_rtc at91_rtc: setting system clock to 1998-01-01 00:00:17 UTC (883612817) Waiting 20sec before mounting root device... scsi 0:0:0:0: Direct-Access Maxtor 2 X3JE 1PB0 PQ: 0 ANSI: 2 CCS sd 0:0:0:0: [sda] 39102336 512-byte hardware sectors (20020 MB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Assuming drive cache: write through sd 0:0:0:0: [sda] 39102336 512-byte hardware sectors (20020 MB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Assuming drive cache: write through sda: sda1 sd 0:0:0:0: [sda] Attached SCSI disk sd 0:0:0:0: Attached scsi generic sg0 type 0 EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended VFS: Mounted root (ext2 filesystem). Freeing init memory: 100K А вот мой inittab: Код # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
# The default runlevel. id:5:initdefault:
# Boot-time system configuration/initialization script. # This is run first except when booting in emergency (- B) mode. si::sysinit:/etc/init.d/rcS
# What to do in single-user mode. ~~:S:wait:/sbin/sulogin
# /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot.
l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin S:2345:respawn:/sbin/getty 115200 ttyS0
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 35)
|
Oct 24 2008, 14:11
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Dron_Gus @ Oct 18 2008, 14:43)  Собственно лог: Ээмммм.... А в начале лога есть такое Код Kernel command line blah blah blah blah blah ?? У Вас тама что полновесный дистриб? Не на базе busybox? Для busybox inittab будет немного не такой. К тому же Код [quote] id:5:initdefault: [/quote] Там и X11 есть? Если ожидаете консоль на последовательном порту то в конфиге ядра задайте что-то вроде Код CONFIG_CMDLINE="... console=ttyS0,115200 ..." Троеточия это место для того, что там у Вас уже написано. Возможно ничего.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Oct 29 2008, 20:58
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Поковырялся тут. init=/bin/bash не особо помогает. Собрал ванильное ядро. Все заканчивается на примерно том же. Freeing init memory: 116K<CR><LF> Kernel panic - not syncing: Attempted to kill init! Полный лог в приложении. Строка ядра 'mem=32M console=ttyS0,115200 root=/dev/sda1 rootdelay=15 debug' В чем может быть проблемма?
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Nov 3 2008, 15:02
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Dron_Gus @ Nov 2 2008, 11:41)  Нет. Через некоторое время после Freeing init memory: 116K вываливается Kernel panic - not syncing: Attempted to kill init!  Я уже начинаю думать, что, может быть, это связанно с тем что у меня квварц 12 МГц, а не 18.432... Но вроде как все подрихтовал в этом плане. Вообщем затык. Что-то не понял про консоль. Она есть или ее нет. Цитата Вот он мой баг http://freshmeat.net/projects/busybox/?bra...lease_id=287401 . Только что дальше делать все равно не представляю.... Это ссылка busybox. Выше Вы утверждали что у Вас там не он. И где тут баг? Если все таки busybox - скомпилируйте его статически. Если нет - смотрите, есть ли ВСЕ нужные динамические бибилиотеки на корневухе. Для надежности положите их все в /lib.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Nov 3 2008, 16:15
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Извиняюсь, если я не так выразился. Сам только осваиваю...
Дистрибьютив на базе бизибокса. То, что я пока смог выяснить по пунктам: 1) ядро рабочее. с образом рутфс (рамдиск) от рэйнбоу запускается и работает. можно даже воткнуть флешку с рутфс от Ангстрома и chroot'нуться туда. Что-нибудь поделать, позапускать проги. Т.е. вроде как, компилируется правильно. 2) если ядру передавать строчку init=/bin/sh root=/dev/sda1 то ядро падает в кернел паник. Из этого сделал вывод про этот баг (http://freshmeat.net/projects/busybox/?bra...lease_id=287401) 3) если ядру не передавать init=..., но с root=/dev/sda1 то все грузится, но не опявляется приглашения залогиниться и на консоль не реагирует. Но реагирует на втыкание новых УСБ-устройств.
Сейчас проверю как оно скомпилировано сейчас... Предложение скомпилировать бизибокс статически. Я только за. Но, боюсь, не смогу это сделать правильно. Вся система собирается bitbake'ом. Система сама на основе скриптов собирает все необходимые (и дополнительные) пакеты. Разобраться в скриптах мне не хватит знаний.
За работоспособность такой системы говорит то, что абсолютно аналогичная система собранная для at91sam9260 на at91sam9260 рабочая. Все, что я сделал это подправил конфиг от at91sam9260, поменяв ядро arm926 на arm920.
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Nov 3 2008, 22:46
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Цитата(amw @ Nov 3 2008, 18:02)  Если все таки busybox - скомпилируйте его статически. Скомпилировал. Выросла до 1.6 Мб. Результат все тот же Kernel panic - not syncing: Attempted to kill init! Цитата(dch @ Nov 3 2008, 20:24)  Когдато было что подобное - я просто посмотрел по текстам где выдается собщение: Посмотрел ядро на предмет этого текста - вываливается, когда завершается процес init. Глубже копнуть не хватает опыьа
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Nov 4 2008, 08:52
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Dron_Gus @ Nov 4 2008, 00:46)  Скомпилировал. Выросла до 1.6 Мб. Результат все тот же Kernel panic - not syncing: Attempted to kill init! ОК. Пока так и оставте. Если root=/dev/sda1 то 1. Убедитесь, что на этом самом /dev/sda1 есть /bin/busybox 2. Убедитесь что /bin/init ссылка на /bin/busybox. 3. Убедитесь что /bin/sh ссылка на /bin/busybox. 4. Видимо это должно быть первым  . А какя ФС на /dev/sda1? Надеюсь не FAT. Она не поддерживает ссылки. 5. Если не помогает и/или если ФС - FAT попробуйте такое: - задайте в командной строке init=/bin/busybox - Перезагрузите. - Если с busybox все ОК, то вы увидите что-то типа Код BusyBox v1.10.2 (Debian 1:1.10.2-2) multi-call binary Copyright (C) 1998-2007 Erik Andersen, Rob Landley, Denys Vlasenko and others. Licensed under GPLv2. See source distribution for full notice.
Usage: busybox [function] [arguments]... or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix utilities into a single executable. Most people will create a link to busybox for each function they wish to use and BusyBox will act like whatever it was invoked as!
Currently defined functions: [, [[, adjtimex, arping, ash, awk, basename, brctl, bunzip2, bzcat, bzip2, cal, cat, chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, cpio, cut, date, dc, dd, deallocvt, df, dirname, dmesg, dos2unix, du, dumpkmap, echo, egrep, env, expr, false, fgrep, find, fold, free, ftpget, ftpput, getopt, grep, gunzip, gzip, head, hexdump, hostid, hostname, httpd, id, ifconfig, ip, ipcalc, kill, killall, klogd, last, length, ln, loadfont, loadkmap, logger, logname, logread, losetup, ls, lzmacat, md5sum, mkdir, mkfifo, mknod, mktemp, more, mount, mt, mv, nameif, nc, netstat, nslookup, od, openvt, patch, pidof, ping, ping6, printf, ps, pwd, rdate, readlink, realpath, renice, reset, rm, rmdir, route, rpm, rpm2cpio, run-parts, sed, setkeycodes, sh, sha1sum, sleep, sort, start-stop-daemon, strings, stty, swapoff, swapon, sync, sysctl, syslogd, tac, tail, tar, tee, telnet, test, tftp, time, top, touch, tr, traceroute, true, tty, umount, uname, uncompress, uniq, unix2dos, unlzma, unzip, uptime, usleep, uudecode, uuencode, vi, watch, watchdog, wc, wget, which, who, whoami, xargs, yes, zcat Естественно, что busybox завершится и будет Kernel panic. Но если вы увидите такое сообщение, то вероятно у Вас либо FAT (нет симлинка /bin/sh на /bin/busybox), либо нет shell по умолчанию в конфигурации busybox. Или может нет самого /bin/init. В случае busybox у Вас по идее будет один исполняемый файл - /bin/busybox, а все остальное симлинки на него. Цитата Посмотрел ядро на предмет этого текста - вываливается, когда завершается процес init. Глубже копнуть не хватает опыьа  Это нормальное поведение когда завершается init. В нормальных условиях такого быть не может. Если init завершился (не важно по какой причине - ошибка или его убили вручную, или невозможно его запустить) то Kernel panic. init не может завершится. Он должен работать всегда.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Nov 4 2008, 11:34
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
2 AVR, фишка данного дистра в простоте установки (как я надеялся). Ну и в наличии большого количества пакетов в виде готовых скриптов для установки. Типа не надо качать, патчить, собирать. Все делается автоматом. Цитата(amw @ Nov 4 2008, 11:52)  ОК. Пока так и оставте. Если root=/dev/sda1 то 1. Убедитесь, что на этом самом /dev/sda1 есть /bin/busybox 2. Убедитесь что /bin/init ссылка на /bin/busybox. 3. Убедитесь что /bin/sh ссылка на /bin/busybox. 4. Видимо это должно быть первым  . А какя ФС на /dev/sda1? Надеюсь не FAT. Она не поддерживает ссылки. 5. Если не помогает и/или если ФС - FAT попробуйте такое: - задайте в командной строке init=/bin/busybox - Перезагрузите. - Если с busybox все ОК, то вы увидите что-то типа Естественно, что busybox завершится и будет Kernel panic. Но если вы увидите такое сообщение, то вероятно у Вас либо FAT (нет симлинка /bin/sh на /bin/busybox), либо нет shell по умолчанию в конфигурации busybox. Или может нет самого /bin/init. В случае busybox у Вас по идее будет один исполняемый файл - /bin/busybox, а все остальное симлинки на него. 1. + 2. - ls /sbin/ -l lrwxrwxrwx 1 1000 1000 19 Nov 4 2008 init -> /sbin/init.sysvinit -rwxr-xr-x 1 1000 1000 27496 Nov 1 2008 init.sysvinit В /bin/ init'а нет. 3. ls /bin -l lrwxrwxrwx 1 root root 7 Jan 1 00:06 sh -> busybox 4. ext2 5. Kernel panic - not syncing: Attempted to kill init! Хм... Я в этой жини чего-то не понимаю.
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Nov 4 2008, 13:32
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Dron_Gus @ Nov 4 2008, 13:34)  1. +
2. -
ls /sbin/ -l
lrwxrwxrwx 1 1000 1000 19 Nov 4 2008 init -> /sbin/init.sysvinit -rwxr-xr-x 1 1000 1000 27496 Nov 1 2008 init.sysvinit В /bin/ init'а нет. А что такое /sbin/init.sysvinit ? Самостоятельный исполняемый файл? Или скрипт? Если исполняемый (в смысле полученный компиляцией из *.c файла) то либо его скомпилить статически либо положыть нужные ему либы в /lib Цитата 3.
ls /bin -l
lrwxrwxrwx 1 root root 7 Jan 1 00:06 sh -> busybox
4. ext2 Цитата 5. Kernel panic - not syncing: Attempted to kill init!
Хм... Я в этой жини чего-то не понимаю. ?? Если не передавать ядру init=blah-blah-blah то исполняется штатный init. init - это процесс, который делает все в системе, кроме того, что делает ядро. Он должен работать все время, пока не выключится питание. Потому как все равно "Kernel panic - not syncing: Attempted to kill init!" то нужно разобраться с этим init. Вот теперь, когда busybox статический попробуйте init=/bin/sh И убедитесь, что busybox таки статический. Код arm-как-там-у вас-readelf -d busybox Если есть что-то типа Код Dynamic section at offset 0xb92d8 contains 23 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libncurses.so.5] 0x0000000000000001 (NEEDED) Shared library: [libdl.so.2] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000c (INIT) 0x41b260 0x000000000000000d (FINI) 0x490234 0x0000000000000004 (HASH) 0x400240 0x000000006ffffef5 (GNU_HASH) 0x4030d0 0x0000000000000005 (STRTAB) 0x411b18 0x0000000000000006 (SYMTAB) 0x406490 0x000000000000000a (STRSZ) 30183 (bytes) 0x000000000000000b (SYMENT) 24 (bytes) 0x0000000000000015 (DEBUG) 0x0 0x0000000000000003 (PLTGOT) 0x6b94a0 0x0000000000000002 (PLTRELSZ) 4344 (bytes) 0x0000000000000014 (PLTREL) RELA 0x0000000000000017 (JMPREL) 0x41a168 0x0000000000000007 (RELA) 0x41a0a8 0x0000000000000008 (RELASZ) 192 (bytes) 0x0000000000000009 (RELAENT) 24 (bytes) 0x000000006ffffffe (VERNEED) 0x41a038 0x000000006fffffff (VERNEEDNUM) 2 0x000000006ffffff0 (VERSYM) 0x419100 0x0000000000000000 (NULL) 0x0 значит он не статический. Проверте то-же и для /sbin/init Для статических будет такое Код arm-как-там-у вас-readelf -d busybox
There is no dynamic section in this file.
Сообщение отредактировал amw - Nov 4 2008, 13:47
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Nov 4 2008, 23:31
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Цитата(amw @ Nov 4 2008, 16:32)  А что такое /sbin/init.sysvinit ? Самостоятельный исполняемый файл? Или скрипт? Самостоятельный исполняемый. Код arm-angstrom-linux-gnueabi-readelf -d busybox There is no dynamic section in this file. Код arm-angstrom-linux-gnueabi -readelf -d init.sysvinit Dynamic section at offset 0x6184 contains 24 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libc.so.6] 0x0000000c (INIT) 0x93f8 0x0000000d (FINI) 0xd874 0x00000019 (INIT_ARRAY) 0x16178 0x0000001b (INIT_ARRAYSZ) 4 (bytes) 0x0000001a (FINI_ARRAY) 0x1617c 0x0000001c (FINI_ARRAYSZ) 4 (bytes) 0x00000004 (HASH) 0x8148 0x00000005 (STRTAB) 0x8cb0 0x00000006 (SYMTAB) 0x8620 0x0000000a (STRSZ) 811 (bytes) 0x0000000b (SYMENT) 16 (bytes) 0x00000015 (DEBUG) 0x0 0x00000003 (PLTGOT) 0x1626c 0x00000002 (PLTRELSZ) 768 (bytes) 0x00000014 (PLTREL) REL 0x00000017 (JMPREL) 0x90f8 0x00000011 (REL) 0x90d0 0x00000012 (RELSZ) 40 (bytes) 0x00000013 (RELENT) 8 (bytes) 0x6ffffffe (VERNEED) 0x90b0 0x6fffffff (VERNEEDNUM) 1 0x6ffffff0 (VERSYM) 0x8fdc 0x00000000 (NULL) 0x0 libc.so.6 присутствует в /lib. Код -rwxr-xr-x 1 1000 1000 1127916 Nov 2 00:12 libc-2.6.1.so lrwxrwxrwx 1 root root 14 Jan 1 1998 libc.so -> /lib/libc.so.6 lrwxrwxrwx 1 1000 1000 13 Nov 4 14:54 libc.so.6 -> libc-2.6.1.so Попробую пересобрать инит статически, если это возможно. Цитата(amw @ Nov 4 2008, 16:32)  Вот теперь, когда busybox статический попробуйте init=/bin/sh Вот строка с которой пытался запустить. Код mem=64M console=ttyS0,115200 root=/dev/sda1 rootwait init=/bin/sh Результат все тот же Код Freeing init memory: 108K Kernel panic - not syncing: Attempted to kill init! Цитата(amw @ Nov 4 2008, 16:32)  Если не передавать ядру init=blah-blah-blah то исполняется штатный init. init - это процесс, который делает все в системе, кроме того, что делает ядро. Он должен работать все время, пока не выключится питание.
Потому как все равно "Kernel panic - not syncing: Attempted to kill init!" то нужно разобраться с этим init. В том то и дело, что если не передавать ядру init=... то просто тишина. Нет приглашения логиниться. Но ядро же не паникует! Т.е. я делаю вывод о том, что init правильный. Проосто в скрипте инициалиации чего-то не хватает для запуска getty или чего-то подобного на ttyS0. Или я не правильно рассуждаю?
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Nov 5 2008, 09:14
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Dron_Gus @ Nov 5 2008, 01:31)  Самостоятельный исполняемый. Хм. А откуда он? Например для init -> /bin/busybox формат файла /etc/inittab будет другой (не такой как для обычного init используемого в ПК). Возможно тут есть подвох. Цитата Код arm-angstrom-linux-gnueabi-readelf -d busybox There is no dynamic section in this file. Это хорошо. Для начала упростим себе жизнь. Цитата Код arm-angstrom-linux-gnueabi -readelf -d init.sysvinit Dynamic section at offset 0x6184 contains 24 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libc.so.6] ... libc.so.6 присутствует в /lib. Это хорошо, но! Нужен по крайней мере еще и ld.so. Используются различные имена для ссылок на него. Например: Код $ ls -l /lib|grep ld- -rwxr-xr-x 1 root root 119288 жов 13 17:50 ld-2.7.so lrwxrwxrwx 1 root root 34 жов 29 14:40 ld-linux.so.2 -> /emul/ia32-linux/lib/ld-linux.so.2 lrwxrwxrwx 1 root root 9 жов 29 14:40 ld-linux-x86-64.so.2 -> ld-2.7.so Это на ПК 64 бит система. У Вас будет типа такого Код $ ls -l /lib|grep ld- -rwxr-xr-x 1 root root 121440 жов 13 17:51 ld-2.7.so lrwxrwxrwx 1 root root 9 жов 29 14:40 ld-linux.so.2 -> ld-2.7.so Это динамический линкер - нужен для динамической линковки. Ну и любая динамическая либа может быть слинкована с другой, что не обязательно фигурирует в исполняемом файле. Убедитесь, что библиотеки в /lib используют то-же ABI что и ядро. То же относится к busybox независимо от того как он слинкованЦитата Код -rwxr-xr-x 1 1000 1000 1127916 Nov 2 00:12 libc-2.6.1.so lrwxrwxrwx 1 root root 14 Jan 1 1998 libc.so -> /lib/libc.so.6 lrwxrwxrwx 1 1000 1000 13 Nov 4 14:54 libc.so.6 -> libc-2.6.1.so Попробую пересобрать инит статически, если это возможно. Вот строка с которой пытался запустить. Код mem=64M console=ttyS0,115200 root=/dev/sda1 rootwait init=/bin/sh Результат все тот же Код Freeing init memory: 108K Kernel panic - not syncing: Attempted to kill init! В том то и дело, что если не передавать ядру init=... то просто тишина. Нет приглашения логиниться. Но ядро же не паникует! Т.е. я делаю вывод о том, что init правильный. Проосто в скрипте инициалиации чего-то не хватает для запуска getty или чего-то подобного на ttyS0. Или я не правильно рассуждаю? Вроде правильно. Тогда, используя /sbin/init (не перопределяя его в командной строке) попробуем следующее. 1. Есть ли /dev/console 2. Есть ли /dev/ttyS0 3. Упростите /etc/inittab примерно до такого (соблюдая формат Вашего init) Код id:5:initdefault: S:12345:respawn:/sbin/getty 115200 ttyS0 4. /sbin/getty -> /bin/busybox ?? Или самостоятельный исполняемый? А может ему передать /dev/ttyS0? 5. Проверяем, сконфигурирован ли busybox с поддержкой init и выключаем его. 6. Попробуйте написать свою простейшую программу типа int main() { fprintf(stdout, "Hello\n"); fprintf(stder, "Hello\n"); return 0; } Скомпилировать ее статически и подсунуть ее init=/bin/your_test_prog Что получится? Компилятор по умолчанию создает исполняемые файлы в формате gnueabi? Следите за тем, чтобы все программы были в том же формате, что и ядро. Включая glibc.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Nov 7 2008, 20:13
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
1. да 2. да 3. ничего не изменилось.  4. отдельный исполняемый файл.проверил, все либы есть. 5 и 6 не получается пока что.  Провел эксперимент: взял гоотвый инит из образа от rainbow, изменил линк init->busybox: Freeing init memory: 116K System halted.
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Dec 27 2008, 23:59
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Удалось запустить?  Я вот тоже с этим Angstrom бьюсь - скачал тестовый образ с сайта - Kernel panic - not syncing: Attempted to kill init! Собрал свой образ (OpenEmbedded + bitbake, остальное само из инета тянулось, включая компилятор, собиралось несколько часов), запускаю через NFS: Kernel panic - not syncing: Attempted to kill init! Самосборное с USB флэшки: Kernel panic - not syncing: Attempted to kill init! Просто беда... =( Плата - cs-ep9302...
--------------------
|
|
|
|
|
Dec 30 2008, 02:12
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(sasamy @ Dec 30 2008, 02:48)  #cat /etc/fstab и еще вывод команды #ls -a /dev
|
|
|
|
|
Feb 19 2009, 08:23
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(Dron_Gus @ Feb 19 2009, 01:43)  А остальное заработало? На какой железке испытывали? Плата "ARM для детей CS-EP9302", совместимая с EDB9302. Подробно не тестировал, но вроде все работает очень хорошо. ЗЫ Впечатления: корневая фс всего 8 Мб, а можно уменьшить и до 4-х Мб, а если еще и сжатие применить... Оперативной памяти 10 Мб кушается, но и это можно сократить. В общем, впечатление положительные. А еще и пакетный менеджер есть легковесный, можно и без него, определять состав кфс на этапе сборки... Красота...
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|