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

 
 
5 страниц V  « < 3 4 5  
Reply to this topicStart new topic
> Linux для AT91SAM9260, Проблемы с ядром
starterkit
сообщение Apr 11 2008, 11:04
Сообщение #61


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

Группа: Участник
Сообщений: 131
Регистрация: 30-12-06
Пользователь №: 24 021



Попробуйте залить по адресу 21100000 несжатый образ корневухи и статануть ядро.


--------------------
Покупайте наших слонов!!!
Go to the top of the page
 
+Quote Post
igrok213
сообщение Apr 11 2008, 11:21
Сообщение #62





Группа: Новичок
Сообщений: 14
Регистрация: 12-03-08
Пользователь №: 35 839



Цитата(amw @ Apr 11 2008, 14:53) *
Распишите пожалуйста назначение адресов.
По какому адресу ядро, корневуха, сколько ОЗУ всего и размеры ядра и корневухи.


Значит так:
с такими параметрами грузится ядро с флеша и корень, что там сейчас лежит:
Цитата
bootcmd=cp.b 0xD0030000 0x21500000 0x0011FD70; cp.b 0xD0300000 0x21100000 0x00400000; bootm 0x21500000


Далее я выполняю:
Цитата
tftp 0х31100000 /tftpboot/fsImage

где fsImage получено при помощи mkimage:
Цитата
.../u-boot/mkimage-u-boot/mkimage -A arm -O linux -C gzip -T ramdisk -a 0x20288000 -d /tftpboot/rootfs.arm.ext2.gz /tftpboot/fsImage


После этого ставлю переменные вот так:
Цитата
setenv bootcmd 'cp.b 0xD0030000 0x20000000 0x0011FD70; bootm 0x20000000 0x31100000'

Чтобы ядро скопировалось из 0xD0030000 (флеш) в 0x20000000 (память). Далее bootm 0x20000000 0x31100000, чтобы ядро загрузилось и подхватило корневую ФС.

После чего запускаю boot и вижу:
Цитата
U-Boot> boot
## Booting image at 20000000 ...
Image Name: linux-2.6.22.19
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1178928 Bytes = 1.1 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
OK
## Loading Ramdisk Image at 31100000 ...
Bad Magic Number


Корень нормально работает на большой машине. Вернее работал до применения mkimage.
Соотвественно размеры ядра - 0x0011FD70
Размеры fsImage, т.е. пожатого корня, после использования mkimage - 2330317
Всего памяти - 64Мб.
Go to the top of the page
 
+Quote Post
starterkit
сообщение Apr 11 2008, 11:35
Сообщение #63


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

Группа: Участник
Сообщений: 131
Регистрация: 30-12-06
Пользователь №: 24 021



Чего то я не понимаю, ядро ищет корневуху по 21100000 (из предыдущего лога), а Вы ее распаковываете с помощью u-boot по адресу 0x20288000 ...
Возьмите rootfs.arm.ext2.gz (!!!без обработкти mkimage!!!) (а лучше просто rootfs.arm.ext2) и положите по адресу 21100000, после загрузите ядро (пусть по 20400000) и запустите bootm 20400000

Сообщение отредактировал starterkit - Apr 11 2008, 11:36


--------------------
Покупайте наших слонов!!!
Go to the top of the page
 
+Quote Post
igrok213
сообщение Apr 11 2008, 11:58
Сообщение #64





Группа: Новичок
Сообщений: 14
Регистрация: 12-03-08
Пользователь №: 35 839



Цитата(starterkit @ Apr 11 2008, 15:35) *
Чего то я не понимаю, ядро ищет корневуху по 21100000 (из предыдущего лога), а Вы ее распаковываете с помощью u-boot по адресу 0x20288000 ...
Возьмите rootfs.arm.ext2.gz (!!!без обработкти mkimage!!!) (а лучше просто rootfs.arm.ext2) и положите по адресу 21100000, после загрузите ядро (пусть по 20400000) и запустите bootm 20400000

сделал. получил:
Цитата
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 108K
EXT2-fs error (device ram0): ext2_check_page: bad entry in directory #80: rec_len is smaller than minimal - offset=0, inode=0, rec_len=0, name_len=0
Warning: unable to open an initial console.
EXT2-fs error (device ram0): ext2_check_page: bad entry in directory #217: rec_len is smaller than minimal - offset=0, inode=0, rec_len=0, name_len=0
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
usb0: full speed config #1: 100 mA, Ethernet Gadget, using CDC Ethernet
Go to the top of the page
 
+Quote Post
starterkit
сообщение Apr 11 2008, 12:24
Сообщение #65


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

Группа: Участник
Сообщений: 131
Регистрация: 30-12-06
Пользователь №: 24 021



Вот, видно что то не то с самой корневой, попробуйте "полечить" образ подмонтировав его на хосте.
Ради эксперимента, вот мой образ корневой системы ...

Еще, у Вас размер памяти под initrd выдан 3М, а копируете все 4M, размер самой корневой ФС должен быть меньше выделяемой области ...
Прикрепленные файлы
Прикрепленный файл  rootfs.rar ( 1.62 мегабайт ) Кол-во скачиваний: 73
 


--------------------
Покупайте наших слонов!!!
Go to the top of the page
 
+Quote Post
igrok213
сообщение Apr 11 2008, 12:34
Сообщение #66





Группа: Новичок
Сообщений: 14
Регистрация: 12-03-08
Пользователь №: 35 839



Цитата(starterkit @ Apr 11 2008, 16:24) *
Вот, видно что то не то с самой корневой, попробуйте "полечить" образ подмонтировав его на хосте.
Ради эксперимента, вот мой образ корневой системы ...

Еще, у Вас размер памяти под initrd выдан 3М, а копируете все 4M, размер самой корневой ФС должен быть меньше выделяемой области ...

Спасибо. Сейчас покажу что получилось:
Цитата
tftp 21100000 /tftpboot/rootfs
setenv bootcmd 'cp.b 0xD0030000 20400000 0x0011FD70; bootm 20400000'
boot

Копирую ваш корень в память по адресу:21100000, далее запускаю своё ядро из 20400000.
получаю:
Цитата
U-Boot> boot
## Booting image at 20400000 ...
Image Name: linux-2.6.22.19
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1178928 Bytes = 1.1 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux...........................................................................
. done, booting the kernel.
Linux version 2.6.22.19 (roman@miracle) (gcc version 4.2.3 (Debian 4.2.3-3)) #2 Mon Apr 7 21:38:07 MSD 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. 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
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: 59392KB available (2112K code, 210K data, 108K 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: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 3072K
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (SUMMARY) \0xc2\0xa9 2001-2006 Red Hat, Inc.
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
dm9000 Ethernet Driver
macb macb: detected PHY at address 0 (ID 0181:b8a0)
eth0: Atmel MACB at 0xfffc4000 irq 21 (3e:36:65:ba:6f:be)
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
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
udc: at91_udc version 3 May 2006
ether gadget: using random self ethernet address
ether gadget: using random host ethernet address
usb0: Ethernet Gadget, version: May Day 2005
usb0: using at91_udc, OUT ep2 IN ep1 STATUS ep4
usb0: MAC 2a:64:48:da:ce:a0
usb0: HOST MAC fa:42:8d:96:9c:ac
usb0: RNDIS ready
\0x00mice: PS/2 moususbcore: 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 (Thu May 31 09:03:25 2007 UTC).
mmc0: card claims to support voltages below the defined range. These will be ignored.
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
RAMDISK: Compressed image found at block 0
usb0: full speed config #1: 100 mA, Ethernet Gadget, using CDC Ethernet
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 108K

после этого всё виснет.

Получается что я ядро криво собрал? sad.gif
Go to the top of the page
 
+Quote Post
starterkit
сообщение Apr 11 2008, 12:40
Сообщение #67


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

Группа: Участник
Сообщений: 131
Регистрация: 30-12-06
Пользователь №: 24 021



Странно конечно, что мой бузибокс весит Вашу систему ...
Попробуйте подмонтировать на хосте мой rootfs и замените бузибокс (если чонечно Ваш init на него ссылается), так же проследите за тем чтоб Ваш бузибокс был собран статически ну или в противном случае прийдется и либы в коневуху ложить.

Сообщение отредактировал starterkit - Apr 11 2008, 12:41


--------------------
Покупайте наших слонов!!!
Go to the top of the page
 
+Quote Post
igrok213
сообщение Apr 11 2008, 12:53
Сообщение #68





Группа: Новичок
Сообщений: 14
Регистрация: 12-03-08
Пользователь №: 35 839



Цитата(starterkit @ Apr 11 2008, 16:40) *
Странно конечно, что мой бузибокс весит Вашу систему ...
Попробуйте подмонтировать на хосте мой rootfs и замените бузибокс (если чонечно Ваш init на него ссылается), так же проследите за тем чтоб Ваш бузибокс был собран статически ну или в противном случае прийдется и либы в коневуху ложить.

А можно про init поподробнее? Я свой корень собирал при помощи это штуки: http://buildroot.uclibc.org/
Go to the top of the page
 
+Quote Post
starterkit
сообщение Apr 11 2008, 14:12
Сообщение #69


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

Группа: Участник
Сообщений: 131
Регистрация: 30-12-06
Пользователь №: 24 021



init это первое приложение запускаемое системой при старте, как правило, во встраиваемых системах используется busybox - одно приложение включающее в себя целую тучу утилит, init может быть однтим из апплетов busybox, подмонтируйте Вашу корневуху и посмотрите что из себя представляет init, если это ссылка на /bin/busybox, попробуйте скопировать Ваш бузибокс в мою корневуху. Так же обратите внимание на то что лкжит в /lib Вашей корневухи.


--------------------
Покупайте наших слонов!!!
Go to the top of the page
 
+Quote Post
MTh
сообщение Apr 11 2008, 16:28
Сообщение #70


Местный
***

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



Цитата(igrok213 @ Apr 11 2008, 14:02) *
Спасибо за подсказку. Действительно до этого образ корневухи я не обрабатывал. Но даже после обработки оно пишет:

Что ещё может быть? sad.gif


Накладываются образа... BAD Magic Number - плохое "магическое" число - признак того что образ поврежден. ))

Распишите что где лежит, какие размеры образов, объем памяти и т.д так трудно сказать что Вы делаете не так.

Второе (уже не имеющее отношения к плохому магическому числу), после того как подмонтировали образ в корне должно быть один (два) файла... В /bin должен быть busybox... и большая часть исполняемых файлов ссылаются на него... Не забывайте также, что образа разворачиваются в памяти wink.gif

Сообщение отредактировал MTh - Apr 11 2008, 16:30
Go to the top of the page
 
+Quote Post
amw
сообщение Apr 11 2008, 19:44
Сообщение #71


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(starterkit @ Apr 11 2008, 17:12) *
init это первое приложение запускаемое системой при старте, как правило, во встраиваемых системах используется busybox - одно приложение включающее в себя целую тучу утилит, init может быть однтим из апплетов busybox, подмонтируйте Вашу корневуху и посмотрите что из себя представляет init, если это ссылка на /bin/busybox, попробуйте скопировать Ваш бузибокс в мою корневуху. Так же обратите внимание на то что лкжит в /lib Вашей корневухи.

Код
Должен быть:
/bin/busybox
/bin/init -> /bin/busybox
/bin/sh -> /bin/busybox
/dev/ram0
/dev/console
/dev/null
/dev/ttyS0
/etc/inittab

Это как минимум.
В /etc/inittab запишите одну строку типа
Код
ttyS0::respawn:/bin/sh

После загрузки должно появиться приглашение shell.
Эир если с самим файлом корнвухи все в порядке и busybox слинкован статически.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
MTh
сообщение Apr 15 2008, 23:19
Сообщение #72


Местный
***

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



Цитата(igrok213 @ Apr 11 2008, 15:53) *
А можно про init поподробнее? Я свой корень собирал при помощи это штуки: http://buildroot.uclibc.org/

buildroot 20080317
gcc 4.2.1
linux 2.6.22.10

Вот полный список всего что есть в дирректории:
Код
binutils-2.18.tar.bz2
busybox-1.9.1.tar.bz2
dbus-1.1.1.tar.gz
fakeroot_1.9.3.tar.gz
gcc-4.2.1.tar.bz2
genext2fs-1.4.tar.gz
gettext-0.16.1.tar.gz
glib-2.15.4.tar.bz2
gmp-4.2.2.tar.bz2
libtool-1.5.24.tar.gz
libusb_0.1.12-9.diff.gz
libusb_0.1.12.orig.tar.gz
libxml2-sources-2.6.29.tar.gz
linux-2.6.22.10.tar.bz2
module-init-tools-3.2.2.tar.bz2
mpfr-2.3.0.patch
mpfr-2.3.0.tar.bz2
nano-1.3.12.tar.gz
ncurses-5.6.tar.gz
openssh-4.6p1.tar.gz
openssl-0.9.7m.tar.gz
pkg-config-0.21.tar.gz
startup-notification-0.9.tar.gz
sysfsutils-2.1.0.tar.gz
sysklogd-1.4.1.tar.gz
sysvinit-2.86.tar.gz
tftp-hpa-0.40.tar.bz2
u-boot-1.2.0-atmel-patch.tar.bz2
u-boot-1.2.0-atmel.tar.bz2
uClibc-0.9.29.tar.bz2
uClibc-locale-030818.tgz
udev-114.tar.bz2
usbutils-0.72.tar.gz
zlib-1.2.3.tar.bz2


Там есть пара фатальных ошибок в buildroot'e... потому есть дока по сборке (см аттач)... в ней только самое необходимое... и конфиги )) Для того что делали мы... И еще один момент, почитайте доки в buildroot'e - помогает во многом. ))

Большинство форумчан кто собирает линукс для АРМа, как я понял, не пользуются buildroot'ами... Там вроде все не сложнее, но я не пробовал...
Прикрепленные файлы
Прикрепленный файл  buildroot_assembly.tar.gz ( 51.24 килобайт ) Кол-во скачиваний: 47
 
Go to the top of the page
 
+Quote Post
igrok213
сообщение Apr 17 2008, 09:32
Сообщение #73





Группа: Новичок
Сообщений: 14
Регистрация: 12-03-08
Пользователь №: 35 839



Цитата(amw @ Apr 11 2008, 23:44) *
Код
Должен быть:
/bin/busybox
/bin/init -> /bin/busybox
/bin/sh -> /bin/busybox
/dev/ram0
/dev/console
/dev/null
/dev/ttyS0
/etc/inittab

Это как минимум.
В /etc/inittab запишите одну строку типа
Код
ttyS0::respawn:/bin/sh

После загрузки должно появиться приглашение shell.
Эир если с самим файлом корнвухи все в порядке и busybox слинкован статически.

у меня не получилось с такими настройками завести корневуху.
Есть подозрение что она криво собирается buildroot`ом.


Цитата(MTh @ Apr 16 2008, 03:19) *
buildroot 20080317
gcc 4.2.1
linux 2.6.22.10

Вот полный список всего что есть в дирректории:
Код
binutils-2.18.tar.bz2
busybox-1.9.1.tar.bz2
dbus-1.1.1.tar.gz
fakeroot_1.9.3.tar.gz
gcc-4.2.1.tar.bz2
genext2fs-1.4.tar.gz
gettext-0.16.1.tar.gz
glib-2.15.4.tar.bz2
gmp-4.2.2.tar.bz2
libtool-1.5.24.tar.gz
libusb_0.1.12-9.diff.gz
libusb_0.1.12.orig.tar.gz
libxml2-sources-2.6.29.tar.gz
linux-2.6.22.10.tar.bz2
module-init-tools-3.2.2.tar.bz2
mpfr-2.3.0.patch
mpfr-2.3.0.tar.bz2
nano-1.3.12.tar.gz
ncurses-5.6.tar.gz
openssh-4.6p1.tar.gz
openssl-0.9.7m.tar.gz
pkg-config-0.21.tar.gz
startup-notification-0.9.tar.gz
sysfsutils-2.1.0.tar.gz
sysklogd-1.4.1.tar.gz
sysvinit-2.86.tar.gz
tftp-hpa-0.40.tar.bz2
u-boot-1.2.0-atmel-patch.tar.bz2
u-boot-1.2.0-atmel.tar.bz2
uClibc-0.9.29.tar.bz2
uClibc-locale-030818.tgz
udev-114.tar.bz2
usbutils-0.72.tar.gz
zlib-1.2.3.tar.bz2


Там есть пара фатальных ошибок в buildroot'e... потому есть дока по сборке (см аттач)... в ней только самое необходимое... и конфиги )) Для того что делали мы... И еще один момент, почитайте доки в buildroot'e - помогает во многом. ))

Большинство форумчан кто собирает линукс для АРМа, как я понял, не пользуются buildroot'ами... Там вроде все не сложнее, но я не пробовал...


я добился чтобы у меня всё собиралось. Но есть подозрения что собранная ФС, некорректна для запуска билдрутом. sad.gif

Цитата(starterkit @ Apr 11 2008, 16:24) *
Вот, видно что то не то с самой корневой, попробуйте "полечить" образ подмонтировав его на хосте.
Ради эксперимента, вот мой образ корневой системы ...

Еще, у Вас размер памяти под initrd выдан 3М, а копируете все 4M, размер самой корневой ФС должен быть меньше выделяемой области ...

получилось запустить вашу ФС, огромное спасибо!!! Такой вопрос: а чем она была собрана? smile.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 15:44
Рейтинг@Mail.ru


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