ЗАО «ЗЭО»
Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: BaRaGoZ от 25 Декабря, 2009, 17:52:41
-
Добрый день, меня зовут Вячеслав!
Столкнулся с проблемой: хочу поставить на плату Тион Про2 линукс, поставил сначала образ загрузчика u-boot(взял с вашего сайта), все встало отлично, затем пытаюсь из приведенного на вашем сайте скрипта(refl-linux) сделать образ(urefl-linux), для продолжения установки линукса, так вот под линуксом командой make (находясь в дирректории с refl-linux и остальными 3мя файлами скриптов), которая использует приведенный вами makefile, создаю все образы, командой mkimage -l urefl-linux проверяю образ, вот распечатка:
/////////////////////////////////////////////////////////////////////////
0;baragoz@debian: /home/scriptsbaragoz@debian:/home/scripts$ mkimage -l urefl-linux
Image Name: Re-flash Linux script for EP93xx
Created: Fri Dec 25 20:16:16 2009
Image Type: ARM Linux Script (uncompressed)
Data Size: 872 Bytes = 0.85 kB = 0.00 MB
Load Address: 0x00000000
Entry Point: 0x00000000
Contents:
Image 0: 864 Bytes = 0 kB = 0 MB
///////////////////////////////////////////////////////////////////////////
Затем закачиваю этот образ на тион про2 через tftpboot 0x0 ipserver:urefl-linux
вызываю команду iminfo 0x0, он говорит, что образ неверный, в чем может быть причина...
Заранее спасибо!
-
Приложите к сообщению этот образ.
-
Здравствуйте, прикладываю образ...
-
На всякий случай изначальный скрипт еще... Изменил только одну строчку, в сравнении с изначальным скриптом:
setenv bootargs 'console=ttyAM0,57600n8 root=/dev/mtdblock2 rootfstype=jffs2 video=ep93xxfb:vout=1,vmode=18'
-
Ваш скрипт у меня работает, выполните тест памяти (mtest) и приведите лог с
включением команд tftpboot и iminfo.
$ tftpboot 0x0 10.42.42.199:urefl-linux_prob
TFTP from server 10.42.42.199; our IP address is 10.42.42.201
Filename 'urefl-linux_prob'
Load address: 0x0
Loading: |
done
Bytes transferred = 936 (3a8 hex)
$ iminfo 0x0
## Checking Image at 00000000 ...
Legacy image found
Image Name: Re-flash Linux script for EP93xx
Image Type: ARM Linux Script (uncompressed)
Data Size: 872 Bytes = 0.9 kB
Load Address: 00000000
Entry Point: 00000000
Contents:
Image 0: 864 Bytes = 0.8 kB
Verifying Checksum ... OK
$ autoscr 0x0
## Executing script at 00000000
-
здравствуйте, запустил mtest, подождал 41 итерацию, тестирование так и не завершилось... вот лог:
U-Boot 1.3.3-svn602 (Jun 17 2009 - 17:59:21)
CPU: Cirrus Logic EP9315 rev. E2
DRAM: 64 MB
Flash: 64 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
$ mtest
Testing 00000000 ... 01ffffff:
Iteration: 41
///////////////////////////////////////////////////////////////
Затем попробовал загрузить и проверить urefl-linux, все прошло нормально, на удивление, единственное отличие с прошлыми попытками: отключил разьем с SD картой...
Потом столкнулся со следующей проблемой: запускаю команду run reflash, но после этого загрузка операциооной систекмы не происходит, вот лог run reflash и последующей попытки загрузки:
$ run reflash
Re-flashing...
Un-Protect Flash Bank # 1
................................................................................
................................................................................
................................................................................
................... done
TFTP from server 192.168.0.254; our IP address is 192.168.0.253
Filename 'uImage_linux'
Load address: 0x0
Loading: /
done
Bytes transferred = 1764972 (1aee6c hex)
Bad address format
Copy to Flash... Flash not Erased
TFTP from server 192.168.0.254; our IP address is 192.168.0.253
Filename 'disk'
Load address: 0x0
Loading: /
done
Bytes transferred = 10564753 (a13491 hex)
Bad address format
Copy to Flash... Flash not Erased
Saving Environment to Flash...
. done
Un-Protected 1 sectors
Erasing Flash...
. done
Erased 1 sectors
Writing to Flash... done
. done
Protected 1 sectors
Re-flash done
$
U-Boot 1.3.3-svn602 (Jun 17 2009 - 17:59:21)
CPU: Cirrus Logic EP9315 rev. E2
DRAM: 64 MB
Flash: 64 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
Copy ramdisk to RAM...
Wrong Image Format for bootm command
ERROR: can't get kernel image!
$
////////////////////////////////////////////////////////////////////////////
Я так понимаю, что bad address format сообщение не совсем "здоровое", если не сложно, подскажите что делать далее...
-
> подождал 41 итерацию, тестирование так и не завершилось
Можно считать, что оно завершилось после пары итераций.
> единственное отличие с прошлыми попытками: отключил разьем с SD картой...
Если опять соединить, то симптомы повторяются?
> Bad address format ... Flash not Erased
Видими проблема при стирании, попробуйте стереть область для образа ядра командами:
protect off all
erase 60080000 +1764972
-
Если опять соединить, то симптомы повторяются?
Да симптомы повторились, НО ТОЛЬКО С ЭТОЙ карточкой, с другой все нормально+эта карта работала в винде, после установки ОС, с картой тоже все загружается!
Видими проблема при стирании, попробуйте стереть область для образа ядра...
Проделал эту операцию, сообщение не убралось Bad address format ... Flash not Erased, но ОС встала!
Теперь борюсь с тач скрином(не работает) и USB, флешку хочу примонтировать, а она похоже даже в /dev не появляется...
-
> сообщение не убралось Bad address format ... Flash not Erased, но ОС встала!
Это очень плохо, так как вы записываете поверх не стёртого блока и результат получите отличный от оригинала.
> Да симптомы повторились, НО ТОЛЬКО С ЭТОЙ карточкой,
Покажите лог с карточкой.
> Теперь борюсь с тач скрином(не работает) и USB, флешку хочу примонтировать, а она похоже даже в /dev не появляется...
Если вы записали uramdisk_bb1.8.2_opie.gz, то для ts см. http://www.zao-zeo.ru/dokuwiki/doku.php/linux#сенсорный_экран
USB (как и остальные устройства в /dev не "появляются" (так как именно в этой КФС нет udev или аналога), а создаются командой mknod (по сообщениям ядра, sysfs, /proc/devices).
-
>Это очень плохо, так как вы записываете поверх не стёртого блока и результат получите отличный от оригинала.
Может стоит попробовать вообще флешку полностью стереть? И все заново сделать? Если да, то подскажите как это сделать.
>Ну лог с карточкой небольшой, закачиваю образ как обычно, закачка проходит в 0х0, а потом:
$ iminfo 0x0
## Checking Image at 00000000 ...
Unknown image format!
С флешкой разобрался, примонтировал, спасибо... А насчет тача видимо таже ситуация что и тут:
http://www.zao-zeo.ru/forum/index.php?topic=126.0, во всяком случае хочу попробовать все советы из топика применить! Да и не так это важно для меня, я вообще линукс ставлю, чтобы попробовать "поиграться" с GPIO и др. перефирией, под виндой не получилось, а драйвер писать не хотелось... Еще раз спасибо за ответы.
-
Оказывается карта стояла на блокировке!!! Снял блокировку и все стало нормально!!! Не знаю как это связано, но факт есть факт...Видимо что то из разряда "поплясать с бубном"...
-
> Может стоит попробовать вообще флешку полностью стереть? И все заново сделать?
У вас следующее выполняется без сообщений об ошибках?
protect off all
erase 60080000 +1764972
После чего в 60080000 должны быть 0xff (команда md).
-
Добрый день, сделал как вы говорили, вот лог:
//////////////////////////////////////////////////////////////
$ protect off all
Un-Protect Flash Bank # 1
................................................................................
................................................................................
................................................................................
................... done
$ erase 60080000 +1764972
................................................................................
.............. done
Erased 94 sectors
$ md
Usage:
md - memory display
$ md 60080
60080000: ffffffff ffffffff ffffffff ffffffff ................
60080010: ffffffff ffffffff ffffffff ffffffff ................
60080020: ffffffff ffffffff ffffffff ffffffff ................
60080030: ffffffff ffffffff ffffffff ffffffff ................
60080040: ffffffff ffffffff ffffffff ffffffff ................
60080050: ffffffff ffffffff ffffffff ffffffff ................
60080060: ffffffff ffffffff ffffffff ffffffff ................
60080070: ffffffff ffffffff ffffffff ffffffff .....
60080080: ffffffff ffffffff ffffffff ffffffff ................
60080090: ffffffff ffffffff ffffffff ffffffff ................
600800a0: ffffffff ffffffff ffffffff ffffffff ................
600800b0: ffffffff ffffffff ffffffff ffffffff ................
600800c0: ffffffff ffffffff ffffffff ffffffff ................
600800d0: ffffffff ffffffff ffffffff ffffffff ................
600800e0: ffffffff ffffffff ffffffff ffffffff ................
600800f0: ffffffff ffffffff ffffffff ffffffff .....
$ run reflash
Re-flashing...
Un-Protect Flash Bank # 1
................................................................................
................................................................................
................................................................................
................... done
TFTP from server 192.168.0.254; our IP address is 192.168.0.253
Filename 'uImage_linux'
Load address: 0x0
Loading: |
done
Bytes transferred = 1764972 (1aee6c hex)
Bad address format
Copy to Flash.
TFTP from server 192.168.0.254; our IP address is 192.168.0.253
Filename 'disk'
Load address: 0x0
Loading: |
done
Bytes transferred = 10564753 (a13491 hex)
Bad address format
Copy to Flash... done
Legacy Image at 60080000:
Image Name: Linux 2.6.20.21
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1764908 Bytes = 1.7 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
Legacy Image at 60300000:
Image Name: Ramdisk with OPIE
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 10564689 Bytes = 10.1 MB
Load Address: 00800000
Entry Point: 00800000
Verifying Checksum ... OK
Saving Environment to Flash...
. done
Un-Protected 1 sectors
Erasing Flash...
. done
Erased 1 sectors
Writing to Flash... done
. done
Protected 1 sectors
Re-flash done
$
//////////////////////////////////////////////////////////////////////////////////
-
Покажите ещё вывод printenv и вывод version в U-Boot.
При сообщении "Bad address format" стирание в erase не выполняется (в скрипте), но вручную -- всё нормально стирается.
Скорее всего или первый, или второй аргументы не могут быть распознаны как шестнадцатеричные числа.
-
Логи printenv и version:
$ printenv
bootdelay=1h tables co
baudrate=57600lished 2048 bi
ethaddr=0E:00:00:EA:18:F0
bootfile="uImage"reno registered
mtdparts=mtdparts=flash:512k(u-boot)ro,2560k(kernel)ro,-(fs)no cpio magic); looks like an initrd
partition=nor0,2
kern_fladdr=60080000
Freeing initrd mem
rd_fladdr=60300000
kern_flash=tftpboot ${fileaddr} ${kern_file}; erase ${kern_fladdr} +${filesize};
cp.b ${fileaddr} ${kern_fladdr} ${filesize}
rd_flash=tftpboot ${fileaddr} ${rd_file}; erase ${rd_fladdr} +${filesize}; cp.b
${fileaddr} ${rd_fladdr} ${filesize}; setenv rd_size ${filesize}
bootcmd=echo Copy ramdisk to RAM...; cp.b ${rd_fladdr} ${rd_addr} ${rd_size}; bo
otm ${kern_fladdr} ${rd_addr}
reflash=echo Re-flashing...; protect off all; run kern_flash; run rd_flash; imls
; saveenv; echo Re-flash done
kern_file=uImage_linux
rd_file=disk
bootargs=console=ttyAM0,57600n8 root=/dev/ram0 video=ep93xxfb:vout=1,vmode=18
filesize=A13491
fileaddr=0
gatewayip=10.42.42.1
netmask=255.255.255.0
ipaddr=192.168.0.253
serverip=192.168.0.254
rd_size=A13491
Environment size: 945/262140 bytes
$ version
U-Boot 1.3.3-svn602 (Jun 17 2009 - 17:59:21)
$
-
"Bad address format" возникает потому, что в вашем файле скрипта используется DOS-овское разделение линий. Поэтому переменная kern_fladdr (и другие) имеет мусор в конце и не распознаётся как шестнадцатеричное число.
Если в U-Boot перезадать переменную
setenv kern_fladdr 60080000
то первого сообщения "Bad address format" не будет.
Используйте редактор поддерживающий Unix-разделение линий или преобразователь.
-
Проверил, все работает, спасибо за ответ!