|
|
  |
Linux для AT91SAM9260, Проблемы с ядром |
|
|
|
Feb 29 2008, 02:07
|
Участник

Группа: Validating
Сообщений: 19
Регистрация: 2-05-06
Пользователь №: 16 663

|
Для начала заказал оценочную плату с данным процессором. Там на компакт диске шел демо Linux для этого процесора (впринципе он бы подошел если бы только не отсутсвие поддержки ethernet и usb gadget) . Поэтому решил собрать новое ядро и соотвественно toolchain. Для сборки toolchain и Linux я воспользовался Buildroot (информация на linux4sam.org). С сборкой кроскомпилятора gcc и uclibc для ARM особых проблем не возниклою Удалось собрать загрузчики тоже без особых проблем. При сборке возникли небольшие проблемы с makefile для архитектуры ARM (ядро получалолсь просто невероятных размеров ), но их тоже решил. Так вот проблема возникла в следующем: - ядро загружается вполне штатно (так же как и работающий демоLinux для 9260) , но после того как он загрузился и подключил RAm диск не грузит консоль:
NET: Registered protocol family 1 NET: Registered protocol family 17 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 4096KiB [1 disk] into ram disk... done. VFS: Mounted root (ext2 filesystem). Freeing init memory: 100K
по идее дальше должен обрабатыватся либо init либо linuxrc (в настройках ядра указано что init=/linuxrc), но это не происходит.
Что делать и как это исправить?
з.ы. сначала думал что какие то проблемы с фс , но нет , она прекрасно монтируется под обычным линуксом. Пробовал использовать ядро от демоLinux для 9260 оно нормально подключает мою фс и начинает обрабатывать init и тд
|
|
|
|
|
Feb 29 2008, 08:33
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 4096KiB [1 disk] into ram disk... done. VFS: Mounted root (ext2 filesystem). Тут же написано что фс смонтирована. А на этой фс есть все необходимые устройства? В частности /dev/console, /dev/loop*, /dev/ram*, /dev/null. И еще, что используетс в качестве init? busybox? Думаю - не хватает библиотек, а точнее пути к ним не сконфигурированы. Скомпилируете busybox (ну или что Вы используете как init) статически. Там есть в конфигурации опция. BTW. linuxrc - это скрипт, как я понимаю. То есть для его исполнения нужен /bin/sh, то же статически слинкованый. А динамические библиотеки подключите позже.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Feb 29 2008, 10:03
|
Участник

Группа: Validating
Сообщений: 19
Регистрация: 2-05-06
Пользователь №: 16 663

|
да если фсэку подмантировать к host системе и посмотреть содержимое то там уже есть все устройства типа console loop null. Пробовал разные фс ничего не меняется (cramfs, jffs,ext2) после
VFS: Mounted root (ext2 filesystem). Freeing init memory: 100K
и все ... Попробую сделать свою фс без всяких библиотек со стаичным busybox...
з.ы. осталосось то всего ничего ... ядро в принципе работает ... если воткнуть флэху то он пишет логи ее подключения к usb-host (ядро откомпилено с дебаг )
|
|
|
|
|
Feb 29 2008, 10:14
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Bladerunner @ Feb 29 2008, 12:03)  да если фсэку подмантировать к host системе и посмотреть содержимое то там уже есть все устройства типа console loop null. Пробовал разные фс ничего не меняется (cramfs, jffs,ext2) после
VFS: Mounted root (ext2 filesystem). Freeing init memory: 100K
и все ... Попробую сделать свою фс без всяких библиотек со стаичным busybox...
з.ы. осталосось то всего ничего ... ядро в принципе работает ... если воткнуть флэху то он пишет логи ее подключения к usb-host (ядро откомпилено с дебаг ) А покажите-ка /etc/inittab. Может init настраивается не на ту консоль? У Вас консоле на последовательном порту? Попробуйте так: Код ttyS0:respawn:/bin/sh Не помню точно, гляньте в документации busybox точное количество двоеточий и их порядок.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Mar 4 2008, 01:07
|
Участник

Группа: Validating
Сообщений: 19
Регистрация: 2-05-06
Пользователь №: 16 663

|
Цитата(amw @ Feb 29 2008, 13:14)  А покажите-ка /etc/inittab. Может init настраивается не на ту консоль? У Вас консоле на последовательном порту? Попробуйте так: Код ttyS0:respawn:/bin/sh Не помню точно, гляньте в документации busybox точное количество двоеточий и их порядок. непонятно то что я беру фс от демаLinux, тот который идет на сд с китом , он тоже никак не хочет запускать init
|
|
|
|
|
Mar 6 2008, 07:11
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(amw @ Feb 29 2008, 11:14)  А покажите-ка /etc/inittab. Может init настраивается не на ту консоль? У Вас консоле на последовательном порту? Попробуйте так: Код ttyS0:respawn:/bin/sh Не помню точно, гляньте в документации busybox точное количество двоеточий и их порядок. Могу только подтвердить. У меня была такая проблемка, консоль на другой порт перестраивалась. глянь /etc/inittab, в общем, полазь в /etc/
|
|
|
|
|
Mar 12 2008, 09:19
|

Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 28-02-06
Из: Иркутск
Пользователь №: 14 771

|
Вот содержимое: Код cat inittab
# /etc/inittab # # Copyright (C) 2001 Erik Andersen <andersen@codepoet.org> # # Note: BusyBox init doesn't support runlevels. The runlevels field is # completely ignored by BusyBox init. If you want runlevels, use # sysvinit. # # Format for each entry: <id>:<runlevels>:<action>:<process> # # id == tty to run on, or empty for /dev/console # runlevels == ignored # action == one of sysinit, respawn, askfirst, wait, and once # process == program to run
# Startup the system null::sysinit:/bin/mount -o remount,rw / null::sysinit:/bin/mount -t proc proc /proc null::sysinit:/bin/mount -a null::sysinit:/bin/hostname -F /etc/hostname null::sysinit:/sbin/ifconfig lo 127.0.0.1 up null::sysinit:/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo # now run any rc scripts ::sysinit:/etc/init.d/rcS
# Set up a couple of getty's #tty1::respawn:/sbin/getty 38400 tty1 #tty2::respawn:/sbin/getty 38400 tty2
# Put a getty on the serial port # ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 ttyS0::respawn:/bin/ash
# Logging junk null::sysinit:/bin/touch /var/log/messages null::respawn:/sbin/syslogd -n -m 0 null::respawn:/sbin/klogd -n tty3::respawn:/usr/bin/tail -f /var/log/messages
# Stuff to do for the 3-finger salute ::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting null::shutdown:/usr/bin/killall klogd null::shutdown:/usr/bin/killall syslogd null::shutdown:/bin/umount -a -r null::shutdown:/sbin/swapoff -a в строках: Код # ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 ttyS0::respawn:/bin/ash Пробовал и первую и вторую (предложенную здесь)... во второй один раз ошибся, система даже не отругалась...
|
|
|
|
|
Mar 13 2008, 06:43
|
Частый гость
 
Группа: Свой
Сообщений: 168
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 423

|
Цитата(MTh @ Mar 13 2008, 04:52)  Работать так и не хочет.... все в том же состоянии как и было... Господа, у кого есть рабочее откомпиленное ядро для AT91SAM9260? киньте если не жалко.  Есть то есть, и не жалко ни грамма  , только вот что в ядре нужно ? А то вот напрмер: http://rapidshare.com/files/98402351/uImage.html - это рабочий вариант ядра для вот этого проекта http://electronix.ru/forum/index.php?showtopic=42507
|
|
|
|
|
Mar 13 2008, 08:38
|

Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 28-02-06
Из: Иркутск
Пользователь №: 14 771

|
Э-э-э... а можно в другое место или на почту? Рапида закрыта...  Может подскажете чем собирали (crosscompiler)? И из чего... если был какой-то мануал, может линк есть? В ядре нужно: Ethernet USB Host+ communication device + storage device Com (все) + RS485 NAND Flash RTC (DS1682) I2C DataFlash
|
|
|
|
|
Mar 13 2008, 08:45
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(MTh @ Mar 12 2008, 11:19)  Вот содержимое: Код cat inittab
# /etc/inittab # # Copyright (C) 2001 Erik Andersen <andersen@codepoet.org> # # Note: BusyBox init doesn't support runlevels. The runlevels field is # completely ignored by BusyBox init. If you want runlevels, use # sysvinit. # # Format for each entry: <id>:<runlevels>:<action>:<process> # # id == tty to run on, or empty for /dev/console # runlevels == ignored # action == one of sysinit, respawn, askfirst, wait, and once # process == program to run
# Startup the system null::sysinit:/bin/mount -o remount,rw / null::sysinit:/bin/mount -t proc proc /proc null::sysinit:/bin/mount -a null::sysinit:/bin/hostname -F /etc/hostname null::sysinit:/sbin/ifconfig lo 127.0.0.1 up null::sysinit:/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo Это лучше переместить в один из rc scripts, который будет вызываться из /etc/init.d/rcS Цитата Код # now run any rc scripts ::sysinit:/etc/init.d/rcS
# Set up a couple of getty's #tty1::respawn:/sbin/getty 38400 tty1 #tty2::respawn:/sbin/getty 38400 tty2
# Put a getty on the serial port # ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 ttyS0::respawn:/bin/ash Попробуйте так: Код ttyS0::askfirst:/bin/sh Шелл - busybox? Если да - то убедитесь, что шелл по умолчанию в busybox сконфигурирован и есть соответствующий симлинк (/bin/sh -> /bin/ash) Цитата Код # Logging junk null::sysinit:/bin/touch /var/log/messages null::respawn:/sbin/syslogd -n -m 0 null::respawn:/sbin/klogd -n tty3::respawn:/usr/bin/tail -f /var/log/messages
# Stuff to do for the 3-finger salute ::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting null::shutdown:/usr/bin/killall klogd null::shutdown:/usr/bin/killall syslogd null::shutdown:/bin/umount -a -r null::shutdown:/sbin/swapoff -a в строках: Код # ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 ttyS0::respawn:/bin/ash Пробовал и первую и вторую (предложенную здесь)... во второй один раз ошибся, система даже не отругалась... А как выглядит командная строкой ядра? UARTы имеют имена ttyS* или ttyAT* ? Если Вы видите на UART вывод сообщений ядра при загрузке, а судя по первому посту - Вы их видите, то ищите причину в конфигурации rootfs. Это может быть или скрипт, или настроечный файл, или сам busybox. Его лучше всего собрать статически, тогда он точно будет запускаться и Вы сможете увидеть его сообщения. И дайте полный лог загрузочных сообщений ядра. Убедитесь, что на rootfs есть /linuxrc. А лучше укажите init=/bin/init, или на крайний случай init=/bin/sh
Сообщение отредактировал amw - Mar 13 2008, 08:53
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Mar 13 2008, 09:26
|

Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 28-02-06
Из: Иркутск
Пользователь №: 14 771

|
Код AT91Bootstrap loading from 0x8400... >AT45DB642D detected >Loading from Dataflash[0x00008400] to SDRAM[0x23F00000] ....... >Loading complete, [0x00032000] bytes >Start application at [0x23F00000]
U-Boot 1.2.0 (Feb 21 2008 - 16:29:37)
DRAM: 64 MB NAND: No NAND device found!!! No NAND device found!!! 0 MiB DataFlash:AT45DB642 Nb pages: 8192 Page Size: 1056 Size= 8650752 bytes Logical address: 0xC0000000 Area 0: C0000000 to C0004144 (RO) bootstrap Area 1: C0004200 to C00083FF Environment Area 2: C0008400 to C0041FFF (RO) U-BOOT 1.20 Area 3: C0042000 to C02FFFFF KERNEL Area 4: C0300000 to C0800000 FS In: serial Out: serial Err: serial DM9161A PHY Detected No link MAC: error during RMII initialization Hit any key to stop autoboot: 0 ## Booting image at 21600000 ... Image Name: Linux-2.6.23.1 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1498432 Bytes = 1.4 MB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK OK
Starting kernel ...
Uncompressing Linux........................................................................... ....................... done, booting the kernel. Linux version 2.6.23.1 (root@skb_p4) (gcc version 4.2.1) #1 Thu Feb 28 10:29:48 IRKT 2008 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 Machine: Atmel AT91SAM9260-EK Memory policy: ECC disabled, Data cache writeback Clocks: CPU 198 MHz, master 99 MHz, main 18.432 MHz CPU0: D VIVT write-back cache CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets Built 1 zonelists in Zone order. Total pages: 16256 Kernel command line: mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw AT91: 96 gpio irqs in 3 banks PID hash table entries: 256 (order: 8, 1024 bytes) Console: colour dummy device 80x30 console [ttyS0] enabled Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar ... MAX_LOCKDEP_SUBCLASSES: 8 ... MAX_LOCK_DEPTH: 30 ... MAX_LOCKDEP_KEYS: 2048 ... CLASSHASH_SIZE: 1024 ... MAX_LOCKDEP_ENTRIES: 8192 ... MAX_LOCKDEP_CHAINS: 16384 ... CHAINHASH_SIZE: 8192 memory used by lock dependency info: 1024 kB per task-struct memory footprint: 1920 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: 56576KB available (2748K code, 2396K data, 116K init) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok NET: Registered protocol family 16 Generic PHY: Registered new driver SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 2048 (order: 4, 73728 bytes) TCP bind hash table entries: 2048 (order: 4, 73728 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd Freeing initrd memory: 3072K JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) 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 0xfffb0000 (irq = 6) is a ATMEL_SERIAL atmel_usart.2: ttyS2 at MMIO 0xfffb4000 (irq = 7) is a ATMEL_SERIAL RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize loop: module loaded Davicom DM9161E: Registered new driver Davicom DM9161A: Registered new driver Davicom DM9131: Registered new driver ICPlus IP175C: Registered new driver MACB_mii_bus: probed eth0: Atmel MACB at 0xfffc4000 irq 21 (00:00:00:00:00:00) eth0: attached PHY driver [Davicom DM9161A] (mii_bus:phy_addr=ffffffff:00, irq=-1) No NAND device found!!! 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 20, io mem 0x00500000 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected drivers/usb/host/r8a66597-hcd.c: driver r8a66597_hcd, 29 May 2007 Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. udc: at91_udc version 3 May 2006 mice: PS/2 mouse device common for all mice i2c /dev entries driver at91_i2c at91_i2c: AT91 i2c bus driver. usbcore: registered new interface driver usbhid drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver Advanced Linux Sound Architecture Driver Version 1.0.14 (Fri Jul 20 09:12:58 2007 UTC). ALSA device list: No soundcards found. TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 Installing 9P2000 support RAMDISK: cramfs filesystem found at block 0 RAMDISK: Loading 2912KiB [1 disk] into ram disk... done. VFS: Mounted root (cramfs filesystem) readonly. Freeing init memory: 116K
|
|
|
|
|
Mar 13 2008, 09:48
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата Kernel command line: mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw То есть в качестве init у Вас используется либо /sbin/init, либо /bin/init. Он слинкован статически? Покажите карту памяти. Цитата Этта ... Вы бы printenv из u-boot бы привели... Телепатия мне подсказывает, что у Вас переменные не настроены. Да, не помешало бы.
Сообщение отредактировал amw - Mar 13 2008, 09:49
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Mar 14 2008, 00:53
|

Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 28-02-06
Из: Иркутск
Пользователь №: 14 771

|
Переменные окружения: Код ARM M7 BOOT> printenv baudrate=115200 ethaddr=04:05:fe:ed:00:18 ipaddr=XX.XX.XX.XX gatewayip=XX.XX.XX.XX netmask=255.255.255.0 hostname=at91sam9260_arm_test bootcmd=cp.b 0xc0042000 0x21600000 0x1fffff; cp.b 0xc0300000 0x21100000 0x3fffff; bootm 0x21600000 bootdelay=1 serverip=10.10.10.11 stdin=serial stdout=serial stderr=serial
Environment size: 488/8188 bytes Карта памяти: Код DataFlash:AT45DB642 Nb pages: 8192 Page Size: 1056 Size= 8650752 bytes Logical address: 0xC0000000 Area 0: C0000000 to C0004144 (RO) bootstrap Area 1: C0004200 to C00083FF Environment Area 2: C0008400 to C0041FFF (RO) U-BOOT 1.20 Area 3: C0042000 to C02FFFFF KERNEL Area 4: C0300000 to C0800000 FS init слинкован НЕ статически Сейчас пытаюсь собрать все еще раз с нуля так сказать... Если есть какие-то предложения, очень прошу написать )) Про то что busybox должен быть статический я уже понял.
Сообщение отредактировал MTh - Mar 14 2008, 01:50
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|