|
linux 2.6 для IXP420 |
|
|
|
Feb 20 2008, 09:01
|
Группа: Участник
Сообщений: 12
Регистрация: 20-02-08
Пользователь №: 35 207

|
Может кто-нибудь посоветовать что и где почитать, чтобы собрать ядро linux для Intel XScale IXP420? Собирал для AT91RM9200 по инструкции от heavy-online все просто и понятно оказалось. А тут как быть?
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Feb 21 2008, 06:02
|
Группа: Участник
Сообщений: 12
Регистрация: 20-02-08
Пользователь №: 35 207

|
Интересного много, но ничего применительно к АРМ/XScale я там не нашел. Хотелось бы какой-нибудь более-менее подробный мануал по этому вопросу.
З.Ы. Ногами просьба не пинать, т.к. в этом вопросе новичок.
|
|
|
|
|
Feb 21 2008, 09:26
|

Местный
  
Группа: Свой
Сообщений: 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) под Ваш процессор, ядро, и корневая ФС
|
|
|
|
|
Feb 21 2008, 15:27
|
Знающий
   
Группа: Свой
Сообщений: 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, нужен только микрокод от Интела. Вроде работает, но сильно не копал.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Mar 18 2008, 05:33
|
Группа: Участник
Сообщений: 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 разных версий перепробовал. Что делать? В чем грабли?
|
|
|
|
|
Mar 18 2008, 09:21
|
Знающий
   
Группа: Свой
Сообщений: 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 разных версий перепробовал. Что делать? В чем грабли?  Блин делать не надо В первую очередь: А JFFS создана правильно? При прошивке ее образа во Flash учтен endian (byteswap). Добейтесь монтирования JFFS без ошибок. Не важно что на ней, хоть пустая. Потом: Там есть /sbin/init? Еще смотрите тут, возможно у Вас может быть проблема с динамическими библиотеками. http://electronix.ru/forum/index.php?showt...=43994&st=0
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Mar 18 2008, 11:07
|
Группа: Участник
Сообщений: 12
Регистрация: 20-02-08
Пользователь №: 35 207

|
Цитата(amw @ Mar 18 2008, 12:21)   Блин делать не надо В первую очередь: А 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 отказался он собираться.
|
|
|
|
|
Mar 18 2008, 11:32
|
Знающий
   
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Mar 18 2008, 12:01
|
Группа: Участник
Сообщений: 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 статически - ситуация не изменилась. :-(
|
|
|
|
|
Mar 18 2008, 13:30
|

Местный
  
Группа: Свой
Сообщений: 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" для Вашей флеши. и значение по-умолчанию не соответствует реальному.
|
|
|
|
|
Mar 18 2008, 15:04
|
Знающий
   
Группа: Свой
Сообщений: 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 <куда> Я как-то писал мануал для заказчика. Может поможет.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Mar 21 2008, 06:47
|
Группа: Участник
Сообщений: 12
Регистрация: 20-02-08
Пользователь №: 35 207

|
Алелуйя! файловая система монтируется теперь без ошибок. Init запустился, запустились даже загрузочные скрипты, но /bin/sh ругается, что не может открыть /dev/tty1 :-( что теперь?
З.Ы. проблема с busybox была из-за неправильно собранных библиотек. Отсюда вопрос: glilbc используется при сборке кернела или он сдругими библиотеками собирается? Просто не совсем пока понимаю, почему ядро работало, а busybox нет.
|
|
|
|
|
Mar 21 2008, 07:35
|

Местный
  
Группа: Свой
Сообщений: 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)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|