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

 
 
> linux 2.6 для IXP420
fido_max
сообщение Feb 20 2008, 09:01
Сообщение #1





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



Может кто-нибудь посоветовать что и где почитать, чтобы собрать ядро linux для Intel XScale IXP420?
Собирал для AT91RM9200 по инструкции от heavy-online все просто и понятно оказалось. А тут как быть?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
Doka
сообщение Feb 20 2008, 19:59
Сообщение #2


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



посмотрите эту тему:
Хочу собрать линух для PowerPC


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
fido_max
сообщение Feb 21 2008, 06:02
Сообщение #3





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



Интересного много, но ничего применительно к АРМ/XScale я там не нашел. Хотелось бы какой-нибудь более-менее подробный мануал по этому вопросу.

З.Ы. Ногами просьба не пинать, т.к. в этом вопросе новичок.
Go to the top of the page
 
+Quote Post
S_agent
сообщение Feb 21 2008, 09:26
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-10-05
Из: Ukraine, Kiev
Пользователь №: 9 300



Качаете buildroot
распаковываете,
конфигурируете:
make menuconfig
Target Architecture (armeb)
Target Architecture Variant (xscale)
Kernel -->
выбираете ядро
копилите:
make
В процессе комиляции будет скачан необходимый софт в исходниках и откомпилен
В результате будет компилятор(./build_armeb/staging_dir/usr/bin) под Ваш процессор, ядро, и корневая ФС
Go to the top of the page
 
+Quote Post
Doka
сообщение Feb 21 2008, 12:08
Сообщение #5


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



fido_max
там описаны общие принципы - возъмите тулчейн под свою архитектуру и следуйте им


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
amw
сообщение Feb 21 2008, 15:27
Сообщение #6


Знающий
****

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



Цитата(fido_max @ Feb 20 2008, 11:01) *
Может кто-нибудь посоветовать что и где почитать, чтобы собрать ядро linux для Intel XScale IXP420?
Собирал для AT91RM9200 по инструкции от heavy-online все просто и понятно оказалось. А тут как быть?

Не извращайтесь.
Берите crosstools здесь http://kegel.com/crosstool/, читайте доку, благо она короткая, собирайте toolchain. Вероятно Вам нужен big-endian. Конфиги и скрипты для примера прилагаю. Подправте под себя.
После сборки получите полную сборку binutils, gcc, g++, glibc.
Потом собираете ядро поновее.
Потом можете вернуться к heavy-online и накидать нужные файлы на rootfs.
Мой вариант расчитан на работу с Intel AccessLibrary.
Сейчас в последних ядрах есть собственная поддержка NPE, нужен только микрокод от Интела.
Вроде работает, но сильно не копал.
Прикрепленные файлы
Прикрепленный файл  xscale.tar.gz ( 6.06 килобайт ) Кол-во скачиваний: 37
 


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





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



Перечитав много всего. Скурив до фильтра инструкцию от heavy-online пришел вот к чему:
Код
+Ethernet eth0: MAC address ce:00:01:02:f4:bc
IP: 192.168.1.61, Default server: 192.168.1.2

RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version W469 V1I3 Tecon - built 15:36:31, Jan 31 2007

Platform: Tecon t-mezon (XScale)
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.

RAM: 0x00000000-0x02000000, [0x0001cc68-0x00fd1000] available
FLASH: base 0x50000000, size 0x01000000, 128 blocks of 0x00020000 bytes each.
== Executing boot script in 5.000 seconds - enter ^C to abort
RedBoot> mount -t jffs2 -f linux
<4>Empty flash at 0x0000fffc ends at 0x00010000
<5>CLEANMARKER node found at 0x00010000, not first node in block (0x00000000)
<4>Empty flash at 0x0002fffc ends at 0x00030000
<5>CLEANMARKER node found at 0x00030000, not first node in block (0x00020000)
<4>Empty flash at 0x0004fffc ends at 0x00050000
<5>CLEANMARKER node found at 0x00050000, not first node in block (0x00040000)
<4>Empty flash at 0x0006fffc ends at 0x00070000
<5>CLEANMARKER node found at 0x00070000, not first node in block (0x00060000)
<5>CLEANMARKER node found at 0x00090000, not first node in block (0x00080000)
<5>CLEANMARKER node found at 0x000b0000, not first node in block (0x000a0000)
<5>CLEANMARKER node found at 0x000d0000, not first node in block (0x000c0000)
<5>CLEANMARKER node found at 0x000f0000, not first node in block (0x000e0000)
<5>CLEANMARKER node found at 0x00110000, not first node in block (0x00100000)
<5>CLEANMARKER node found at 0x00130000, not first node in block (0x00120000)
<5>CLEANMARKER node found at 0x00150000, not first node in block (0x00140000)
<5>CLEANMARKER node found at 0x00170000, not first node in block (0x00160000)
<4>Empty flash at 0x0018ff6c ends at 0x00190000
<5>CLEANMARKER node found at 0x00190000, not first node in block (0x00180000)
<4>Empty flash at 0x001afffc ends at 0x001b0000
<5>CLEANMARKER node found at 0x001b0000, not first node in block (0x001a0000)
<5>CLEANMARKER node found at 0x001d0000, not first node in block (0x001c0000)
<4>Empty flash at 0x001effa8 ends at 0x001f0000
<5>CLEANMARKER node found at 0x001f0000, not first node in block (0x001e0000)
<4>Empty flash at 0x0020fffc ends at 0x00210000
<5>CLEANMARKER node found at 0x00210000, not first node in block (0x00200000)
<4>Empty flash at 0x0022fffc ends at 0x00230000
<5>CLEANMARKER node found at 0x00230000, not first node in block (0x00220000)
<4>Empty flash at 0x0024fffc ends at 0x00250000
<5>CLEANMARKER node found at 0x00250000, not first node in block (0x00240000)
<4>Empty flash at 0x0026fffc ends at 0x00270000
<5>CLEANMARKER node found at 0x00270000, not first node in block (0x00260000)
<4>Empty flash at 0x0028ffb0 ends at 0x00290000
<5>CLEANMARKER node found at 0x00290000, not first node in block (0x00280000)
<4>Empty flash at 0x002afffc ends at 0x002b0000
<5>CLEANMARKER node found at 0x002b0000, not first node in block (0x002a0000)
<4>Empty flash at 0x002cfffc ends at 0x002d0000
<5>CLEANMARKER node found at 0x002d0000, not first node in block (0x002c0000)
<5>CLEANMARKER node found at 0x002f0000, not first node in block (0x002e0000)
<4>Empty flash at 0x0030fffc ends at 0x00310000
<5>CLEANMARKER node found at 0x00310000, not first node in block (0x00300000)
<4>Empty flash at 0x0032fffc ends at 0x00330000
<5>CLEANMARKER node found at 0x00330000, not first node in block (0x00320000)
<4>Empty flash at 0x0034fffc ends at 0x00350000
<5>CLEANMARKER node found at 0x00350000, not first node in block (0x00340000)
<4>Empty flash at 0x0036fffc ends at 0x00370000
<5>CLEANMARKER node found at 0x00370000, not first node in block (0x00360000)
<4>Empty flash at 0x0038fffc ends at 0x00390000
<5>CLEANMARKER node found at 0x00390000, not first node in block (0x00380000)
<4>Empty flash at 0x003afffc ends at 0x003b0000
<5>CLEANMARKER node found at 0x003b0000, not first node in block (0x003a0000)
<4>Empty flash at 0x003cfffc ends at 0x003d0000
<5>CLEANMARKER node found at 0x003d0000, not first node in block (0x003c0000)
<4>Empty flash at 0x003efffc ends at 0x003f0000
<5>CLEANMARKER node found at 0x003f0000, not first node in block (0x003e0000)
<4>Empty flash at 0x0040fffc ends at 0x00410000
<5>CLEANMARKER node found at 0x00410000, not first node in block (0x00400000)
<4>Empty flash at 0x0042fffc ends at 0x00430000
<5>CLEANMARKER node found at 0x00430000, not first node in block (0x00420000)
<4>Empty flash at 0x0044fffc ends at 0x00450000
<5>CLEANMARKER node found at 0x00450000, not first node in block (0x00440000)
<4>Empty flash at 0x0046fffc ends at 0x00470000
<5>CLEANMARKER node found at 0x00470000, not first node in block (0x00460000)
<4>Empty flash at 0x0048ff50 ends at 0x00490000
<5>CLEANMARKER node found at 0x00490000, not first node in block (0x00480000)
<4>Empty flash at 0x004afffc ends at 0x004b0000
<5>CLEANMARKER node found at 0x004b0000, not first node in block (0x004a0000)
<5>CLEANMARKER node found at 0x004d0000, not first node in block (0x004c0000)
<4>Empty flash at 0x004efffc ends at 0x004f0000
<5>CLEANMARKER node found at 0x004f0000, not first node in block (0x004e0000)
<4>Empty flash at 0x0050ff74 ends at 0x00510000
<5>CLEANMARKER node found at 0x00510000, not first node in block (0x00500000)
RedBoot> load -r -b %{FREEMEMLO} -m file /boot/vmlinuz
Raw file loaded 0x0001d000-0x0017ac57, assumed entry at 0x0001d000
RedBoot> exec -c "console=ttyS0,115200 root=/dev/mtdblock1 rootfstype=jffs2 ro init=/sbin/init"
Using base address 0x0001d000 and length 0x0015dc58
Uncompressing Linux...........................................................................
................... done, booting the kernel.
Linux version 2.6.24.2t-mezon-ntk (maximus@SigizmunD-L) (gcc version 3.4.6) #14 Tue Mar 11 09:31:21 MSK 2008
CPU: XScale-IXP42x Family [690541f2] revision 2 (ARMv5TE), cr=000039ff
Machine: t-mezon
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT undefined 5 cache
CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
Kernel command line: console=ttyS0,115200 root=/dev/mtdblock1 rootfstype=jffs2 ro init=/sbin/init
PID hash table entries: 128 (order: 7, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 32MB = 32MB total
Memory: 29480KB available (2632K code, 199K data, 132K init)
SLUB: Genslabs=11, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 64 bytes
NET: Registered protocol family 16
IXP4xx: Using 16MiB expansion bus window size
Sangoma WANPIPE Router v1.1 (c) 1995-2000 Sangoma Technologies Inc.
NET: Registered protocol family 8
NET: Registered protocol family 20
NET: Registered protocol family 2
Time: OSTS clocksource has been installed.
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) В© 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
Serial: 8250/16550 driver $Revision: 1.90 $ 6 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xc8000000 (irq = 15) is a XScale
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0xc8001000 (irq = 13) is a XScale
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
loop: module loaded
ipddp.c:v0.01 8/28/97 Bradford W. Johnson <johns393@maroon.tc.umn.edu>
ipddp0: Appletalk-IP Encap. mode by Bradford W. Johnson <johns393@maroon.tc.umn.edu>
HDLC support module revision 1.21
Cronyx Ltd, Synchronous PPP and CISCO HDLC (c) 1994
Linux port (c) 1998 Building Number Three Ltd & Jan "Yenya" Kasprzak.
DLCI driver v0.35, 4 Jan 1997, mike.mclagan@linux.org.
IXP4XX-Flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
IXP4XX-Flash.0: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Searching for RedBoot partition table in IXP4XX-Flash.0 at offset 0xfe0000
4 RedBoot partitions found on MTD device IXP4XX-Flash.0
Creating 4 MTD partitions on "IXP4XX-Flash.0":
Master size is 0x01000000
0x00000000-0x00060000 : "RedBoot"
0x00060000-0x00fc0000 : "linux"
0x00fe0000-0x00fff000 : "FIS directory"
mtd: partition "FIS directory" doesn't end on an erase block -- force read-only
0x00fff000-0x01000000 : "RedBoot config"
mtd: partition "RedBoot config" doesn't start on an erase block boundary -- force read-only
i2c /dev entries driver
IXP4xx Watchdog Timer: heartbeat 60 sec
pktgen v2.69: Packet Generator for packet performance testing.
u32 classifier
    Actions configured
GRE over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
arp_tables: (C) 2002 David S. Miller
IPVS: Registered protocols ()
IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
IPVS: ipvs loaded.
IPVS: [rr] scheduler registered.
IPVS: [wrr] scheduler registered.
IPVS: [lc] scheduler registered.
IPVS: [wlc] scheduler registered.
IPVS: [lblc] scheduler registered.
IPVS: [lblcr] scheduler registered.
IPVS: [dh] scheduler registered.
IPVS: [sh] scheduler registered.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Bridge firewalling registered
NET: Registered protocol family 4
NET: Registered protocol family 5
NET: Registered protocol family 9
X.25 for Linux. Version 0.2 for Linux 2.1.15
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
lec.c: Mar 11 2008 09:30:10 initialized
mpc.c: Mar 11 2008 09:30:09 initialized
NET: Registered protocol family 19
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
XScale DSP coprocessor detected.
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Empty flash at 0x0000fffc ends at 0x00010000
CLEANMARKER node found at 0x00010000, not first node in block (0x00000000)
Empty flash at 0x0002fffc ends at 0x00030000
CLEANMARKER node found at 0x00030000, not first node in block (0x00020000)
Empty flash at 0x0004fffc ends at 0x00050000
CLEANMARKER node found at 0x00050000, not first node in block (0x00040000)
Empty flash at 0x0006fffc ends at 0x00070000
CLEANMARKER node found at 0x00070000, not first node in block (0x00060000)
CLEANMARKER node found at 0x00090000, not first node in block (0x00080000)
CLEANMARKER node found at 0x000b0000, not first node in block (0x000a0000)
CLEANMARKER node found at 0x000d0000, not first node in block (0x000c0000)
CLEANMARKER node found at 0x000f0000, not first node in block (0x000e0000)
CLEANMARKER node found at 0x00110000, not first node in block (0x00100000)
CLEANMARKER node found at 0x00130000, not first node in block (0x00120000)
CLEANMARKER node found at 0x00150000, not first node in block (0x00140000)
CLEANMARKER node found at 0x00170000, not first node in block (0x00160000)
Empty flash at 0x0018ff6c ends at 0x00190000
CLEANMARKER node found at 0x00190000, not first node in block (0x00180000)
Empty flash at 0x001afffc ends at 0x001b0000
CLEANMARKER node found at 0x001b0000, not first node in block (0x001a0000)
CLEANMARKER node found at 0x001d0000, not first node in block (0x001c0000)
Empty flash at 0x001effa8 ends at 0x001f0000
CLEANMARKER node found at 0x001f0000, not first node in block (0x001e0000)
Empty flash at 0x0020fffc ends at 0x00210000
CLEANMARKER node found at 0x00210000, not first node in block (0x00200000)
Empty flash at 0x0022fffc ends at 0x00230000
CLEANMARKER node found at 0x00230000, not first node in block (0x00220000)
Empty flash at 0x0024fffc ends at 0x00250000
CLEANMARKER node found at 0x00250000, not first node in block (0x00240000)
Empty flash at 0x0026fffc ends at 0x00270000
CLEANMARKER node found at 0x00270000, not first node in block (0x00260000)
Empty flash at 0x0028ffb0 ends at 0x00290000
CLEANMARKER node found at 0x00290000, not first node in block (0x00280000)
Empty flash at 0x002afffc ends at 0x002b0000
CLEANMARKER node found at 0x002b0000, not first node in block (0x002a0000)
Empty flash at 0x002cfffc ends at 0x002d0000
CLEANMARKER node found at 0x002d0000, not first node in block (0x002c0000)
CLEANMARKER node found at 0x002f0000, not first node in block (0x002e0000)
Empty flash at 0x0030fffc ends at 0x00310000
CLEANMARKER node found at 0x00310000, not first node in block (0x00300000)
Empty flash at 0x0032fffc ends at 0x00330000
CLEANMARKER node found at 0x00330000, not first node in block (0x00320000)
Empty flash at 0x0034fffc ends at 0x00350000
CLEANMARKER node found at 0x00350000, not first node in block (0x00340000)
Empty flash at 0x0036fffc ends at 0x00370000
CLEANMARKER node found at 0x00370000, not first node in block (0x00360000)
Empty flash at 0x0038fffc ends at 0x00390000
CLEANMARKER node found at 0x00390000, not first node in block (0x00380000)
Empty flash at 0x003afffc ends at 0x003b0000
CLEANMARKER node found at 0x003b0000, not first node in block (0x003a0000)
Empty flash at 0x003cfffc ends at 0x003d0000
CLEANMARKER node found at 0x003d0000, not first node in block (0x003c0000)
Empty flash at 0x003efffc ends at 0x003f0000
CLEANMARKER node found at 0x003f0000, not first node in block (0x003e0000)
Empty flash at 0x0040fffc ends at 0x00410000
CLEANMARKER node found at 0x00410000, not first node in block (0x00400000)
Empty flash at 0x0042fffc ends at 0x00430000
CLEANMARKER node found at 0x00430000, not first node in block (0x00420000)
Empty flash at 0x0044fffc ends at 0x00450000
CLEANMARKER node found at 0x00450000, not first node in block (0x00440000)
Empty flash at 0x0046fffc ends at 0x00470000
CLEANMARKER node found at 0x00470000, not first node in block (0x00460000)
Empty flash at 0x0048ff50 ends at 0x00490000
CLEANMARKER node found at 0x00490000, not first node in block (0x00480000)
Empty flash at 0x004afffc ends at 0x004b0000
CLEANMARKER node found at 0x004b0000, not first node in block (0x004a0000)
CLEANMARKER node found at 0x004d0000, not first node in block (0x004c0000)
Empty flash at 0x004efffc ends at 0x004f0000
CLEANMARKER node found at 0x004f0000, not first node in block (0x004e0000)
Empty flash at 0x0050ff74 ends at 0x00510000
CLEANMARKER node found at 0x00510000, not first node in block (0x00500000)
VFS: Mounted root (jffs2 filesystem) readonly.
Freeing init memory: 132K
Failed to execute /sbin/init.  Attempting defaults...
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.


Что блин с этим инитом делать? Всю голову сломал. Я так понимаю тут busybox имеется ввиду? Я его как только не собирал, штук 5 разных версий перепробовал. Что делать? В чем грабли?
Go to the top of the page
 
+Quote Post
amw
сообщение Mar 18 2008, 09:21
Сообщение #8


Знающий
****

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



Цитата(fido_max @ Mar 18 2008, 07:33) *
CLEANMARKER node found at 0x00010000, not first node in block (0x00000000)
Empty flash at 0x0002fffc ends at 0x00030000
...
Что блин с этим инитом делать? Всю голову сломал. Я так понимаю тут busybox имеется ввиду? Я его как только не собирал, штук 5 разных версий перепробовал. Что делать? В чем грабли?

bb-offtopic.gif Блин делать не надо smile.gif
В первую очередь: А JFFS создана правильно? При прошивке ее образа во Flash учтен endian (byteswap). Добейтесь монтирования JFFS без ошибок. Не важно что на ней, хоть пустая.

Потом: Там есть /sbin/init? Еще смотрите тут, возможно у Вас может быть проблема с динамическими библиотеками. http://electronix.ru/forum/index.php?showt...=43994&st=0


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





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



Цитата(amw @ Mar 18 2008, 12:21) *
bb-offtopic.gif Блин делать не надо smile.gif
В первую очередь: А JFFS создана правильно? При прошивке ее образа во Flash учтен endian (byteswap).

endian правильно. больше ничего не указывал при создании фс. Хотя возможно надо было явно указать размер erase блока (но какой именно - хз).

RedBoot ее монтирует и с нее же грузит ядро. Т.е. это наводит на мысль, что фс рабочая.

Цитата(amw @ Mar 18 2008, 12:21) *
Добейтесь монтирования JFFS без ошибок. Не важно что на ней, хоть пустая.


Я б рад. Но как? :-)

Цитата(amw @ Mar 18 2008, 12:21) *
Там есть /sbin/init? Еще смотрите тут, возможно у Вас может быть проблема с динамическими библиотеками. http://electronix.ru/forum/index.php?showt...=43994&st=0

Есть и /sbin/init и просто /init ...
Спасибо, посомтрю. Про библиотеки мысля тоже такая есть. BusyBox собирал с динамической линковкой, т.к. со статической в gLibc отказался он собираться.
Go to the top of the page
 
+Quote Post
amw
сообщение Mar 18 2008, 11:32
Сообщение #10


Знающий
****

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



Цитата(fido_max @ Mar 18 2008, 13:07) *
endian правильно. больше ничего не указывал при создании фс. Хотя возможно надо было явно указать размер erase блока (но какой именно - хз).

Не уверен. EXTBUS имеет несколько режимов работы, с переставлением полуслов и без оного.
Может быть, что RedBoot и Linux используют разные режими.
При прошивании во флаш (чем шьете?) нужно делать перестановку полуслов (полуслово = 2 байта).

PS: А зачем такие сложности - загружать ядро из JFFS? Запишите образ ядра в партишн RedBoot-а. А JFFS образ с корневой ФС в другой, такой-же.

Цитата
AM: 0x00000000-0x02000000, [0x0001cc68-0x00fd1000] available
FLASH: base 0x50000000, size 0x01000000, 128 blocks of 0x00020000 bytes each.
== Executing boot script in 5.000 seconds - enter ^C to abort
RedBoot> mount -t jffs2 -f linux
<4>Empty flash at 0x0000fffc ends at 0x00010000
<5>CLEANMARKER node found at 0x00010000, not first node in block (0x00000000)
<4>Empty flash at 0x0002fffc ends at 0x00030000
<5>CLEANMARKER node found at 0x00030000, not first node in block (0x00020000)

Это Вы называете нормально?


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





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



Цитата(amw @ Mar 18 2008, 14:32) *
Может быть, что RedBoot и Linux используют разные режими.
При прошивании во флаш (чем шьете?) нужно делать перестановку полуслов (полуслово = 2 байта).


образ делаю при помощи mkfs.jffs2 -b -r <откуда> -o <куда>

при сборке ядра тоже указывал, что big-endian (была такая опция вроде в MTD).

образ гружу по xmodem'у, а потом fis create...

Цитата(amw @ Mar 18 2008, 14:32) *
PS: А зачем такие сложности - загружать ядро из JFFS? Запишите образ ядра в партишн RedBoot-а. А JFFS образ с корневой ФС в другой, такой-же.


Можно и так конечно, но пока не вижу особой разницы, только что если удобнее станет.

Цитата(amw @ Mar 18 2008, 14:32) *
Это Вы называете нормально?


ХМ. Тогда как это пофиксить?

З.Ы. собрал busybox статически - ситуация не изменилась. :-(
Go to the top of the page
 
+Quote Post
S_agent
сообщение Mar 18 2008, 13:30
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-10-05
Из: Ukraine, Kiev
Пользователь №: 9 300



Цитата
образ делаю при помощи mkfs.jffs2 -b -r <откуда> -o <куда>

не забудьте добавить параметр erase block size , если это intel strata flash, то -e 0x0020000
и -v чтобы поглядеть вывод
mkfs.jffs2
Цитата
Можно и так конечно, но пока не вижу особой разницы, только что если удобнее станет.

всеже так проще и удобнее, к тому же если нужно будет проапгрейдить ядро или рутфс,
то разделив партиции по-отдельности Вы всегда сможете это сделать для каждого
из элементов. + возможно в будущем захотите избавиться от рутфс на jffs, перенеся его
на рамдиск.
вот пример разделов:
Код
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0x50000000  0x50000000  0x00080000  0x00000000
kernel            0x50080000  0x01600000  0x00160000  0x01600000
rootfs            0x501E0000  0x01000000  0x00E00000  0x00000000
FIS directory     0x50FE0000  0x50FE0000  0x0001F000  0x00000000
RedBoot config    0x50FFF000  0x50FFF000  0x00001000  0x00000000


По поводу init-a сделайте следующее:

создайте в корневом каталоге файл linuxrc с правами 755 и с содержимым:
Код
#!/bin/sh
echo  ***** Hello *****

а в параметрах ядра укажите
Код
init=/linuxrc

если отработает после монтирования ядром рутфс, то проблем в бизибоксе.
но, учитывая что и редбут и ядро ругается одинаково на фс, то причина всетаки в некоректно сформированом образе jffs



всетаки, скорее всего, у Вас неправильный параметр для mkfs.jffs2 "erase block size" для Вашей флеши. и значение по-умолчанию не соответствует реальному.
Go to the top of the page
 
+Quote Post
amw
сообщение Mar 18 2008, 15:04
Сообщение #13


Знающий
****

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



Цитата(S_agent @ Mar 18 2008, 15:30) *
не забудьте добавить параметр erase block size , если это intel strata flash, то -e 0x0020000
и -v чтобы поглядеть вывод
mkfs.jffs2

всеже так проще и удобнее, к тому же если нужно будет проапгрейдить ядро или рутфс,
то разделив партиции по-отдельности Вы всегда сможете это сделать для каждого
из элементов. + возможно в будущем захотите избавиться от рутфс на jffs, перенеся его
на рамдиск.

+1


Цитата(fido_max @ Mar 18 2008, 14:01) *
образ делаю при помощи mkfs.jffs2 -b -r <откуда> -o <куда>

Я как-то писал мануал для заказчика. Может поможет.
Прикрепленные файлы
Прикрепленный файл  rootfs.pdf.zip ( 187.62 килобайт ) Кол-во скачиваний: 211
 


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





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



Алелуйя! файловая система монтируется теперь без ошибок. Init запустился, запустились даже загрузочные скрипты, но /bin/sh ругается, что не может открыть /dev/tty1 :-( что теперь?

З.Ы. проблема с busybox была из-за неправильно собранных библиотек. Отсюда вопрос: glilbc используется при сборке кернела или он сдругими библиотеками собирается? Просто не совсем пока понимаю, почему ядро работало, а busybox нет.
Go to the top of the page
 
+Quote Post
S_agent
сообщение Mar 21 2008, 07:35
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-10-05
Из: Ukraine, Kiev
Пользователь №: 9 300



Цитата(fido_max @ Mar 21 2008, 08:47) *
Алелуйя! файловая система монтируется теперь без ошибок. Init запустился, запустились даже загрузочные скрипты, но /bin/sh ругается, что не может открыть /dev/tty1 :-( что теперь?

/dev/tty[x] это виртуальные консоли, и скорее всего Вам они не нужны, по-этому просто отключите их поддержку в ядре - Device Drivers->Character devices->Virtual terminal

Цитата
З.Ы. проблема с busybox была из-за неправильно собранных библиотек. Отсюда вопрос: glilbc используется при сборке кернела или он сдругими библиотеками собирается? Просто не совсем пока понимаю, почему ядро работало, а busybox нет.

кернел собирается glilbc, причем статически
а busybox как glilbc, так и uClibc. главное внимательно следить что бы в /lib лежали те библиотеки, с которыми был собран рутфс

з.ы. с jffs разобрались? :
Код
<4>Empty flash at 0x0000fffc ends at 0x00010000
<5>CLEANMARKER node found at 0x00010000, not first node in block (0x00000000)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 19:25
Рейтинг@Mail.ru


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