реклама на сайте
подробности

 
 
5 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Linux для AT91SAM9260, Проблемы с ядром
Bladerunner
сообщение Feb 29 2008, 02:07
Сообщение #1


Участник
*

Группа: 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 и тд
Go to the top of the page
 
+Quote Post
amw
сообщение Feb 29 2008, 08:33
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
Bladerunner
сообщение Feb 29 2008, 10:03
Сообщение #3


Участник
*

Группа: 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 (ядро откомпилено с дебаг )
Go to the top of the page
 
+Quote Post
amw
сообщение Feb 29 2008, 10:14
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
Bladerunner
сообщение Mar 4 2008, 01:07
Сообщение #5


Участник
*

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



Цитата(amw @ Feb 29 2008, 13:14) *
А покажите-ка /etc/inittab.
Может init настраивается не на ту консоль? У Вас консоле на последовательном порту?
Попробуйте так:
Код
ttyS0:respawn:/bin/sh

Не помню точно, гляньте в документации busybox точное количество двоеточий и их порядок.


непонятно то что я беру фс от демаLinux, тот который идет на сд с китом , он тоже никак не хочет запускать init
Go to the top of the page
 
+Quote Post
andron86
сообщение Mar 6 2008, 07:11
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Цитата(amw @ Feb 29 2008, 11:14) *
А покажите-ка /etc/inittab.
Может init настраивается не на ту консоль? У Вас консоле на последовательном порту?
Попробуйте так:
Код
ttyS0:respawn:/bin/sh

Не помню точно, гляньте в документации busybox точное количество двоеточий и их порядок.


Могу только подтвердить. У меня была такая проблемка, консоль на другой порт перестраивалась. глянь /etc/inittab, в общем, полазь в /etc/
Go to the top of the page
 
+Quote Post
MTh
сообщение Mar 12 2008, 09:19
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 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

Пробовал и первую и вторую (предложенную здесь)... во второй один раз ошибся, система даже не отругалась...
Go to the top of the page
 
+Quote Post
MTh
сообщение Mar 13 2008, 01:52
Сообщение #8


Местный
***

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



Работать так и не хочет.... все в том же состоянии как и было...
Господа, у кого есть рабочее откомпиленное ядро для AT91SAM9260? киньте если не жалко. smile.gif

Сообщение отредактировал MTh - Mar 13 2008, 02:17
Go to the top of the page
 
+Quote Post
slava2005
сообщение Mar 13 2008, 06:43
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 423



Цитата(MTh @ Mar 13 2008, 04:52) *
Работать так и не хочет.... все в том же состоянии как и было...
Господа, у кого есть рабочее откомпиленное ядро для AT91SAM9260? киньте если не жалко. smile.gif


Есть то есть, и не жалко ни грамма smile.gif, только вот что в ядре нужно ?

А то вот напрмер: http://rapidshare.com/files/98402351/uImage.html - это рабочий вариант ядра для вот этого проекта http://electronix.ru/forum/index.php?showtopic=42507
Go to the top of the page
 
+Quote Post
MTh
сообщение Mar 13 2008, 08:38
Сообщение #10


Местный
***

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



Э-э-э... а можно в другое место или на почту? Рапида закрыта... sad.gif

Может подскажете чем собирали (crosscompiler)? И из чего... если был какой-то мануал, может линк есть?

В ядре нужно:
Ethernet
USB Host+ communication device + storage device
Com (все) + RS485
NAND Flash
RTC (DS1682)
I2C
DataFlash
Go to the top of the page
 
+Quote Post
amw
сообщение Mar 13 2008, 08:45
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
MTh
сообщение Mar 13 2008, 09:26
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
slava2005
сообщение Mar 13 2008, 09:37
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 423



Этта ... Вы бы printenv из u-boot бы привели... Телепатия мне подсказывает, что у Вас переменные не настроены.
Go to the top of the page
 
+Quote Post
amw
сообщение Mar 13 2008, 09:48
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
MTh
сообщение Mar 14 2008, 00:53
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post

5 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 23:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.0152 секунд с 7
ELECTRONIX ©2004-2016