ЗАО «ЗЭО»

Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: BaRaGoZ от 25 Декабря, 2009, 17:52:41

Название: Неверный образ скрипта в 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, он говорит, что образ неверный, в чем может быть причина...
 
                                                         Заранее спасибо!
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: asv от 25 Декабря, 2009, 19:05:35
Приложите к сообщению этот образ.
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: BaRaGoZ от 26 Декабря, 2009, 11:21:23
Здравствуйте, прикладываю образ...
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: BaRaGoZ от 26 Декабря, 2009, 11:23:21
На всякий случай изначальный скрипт еще... Изменил только одну строчку, в сравнении с изначальным скриптом:
setenv bootargs 'console=ttyAM0,57600n8 root=/dev/mtdblock2 rootfstype=jffs2 video=ep93xxfb:vout=1,vmode=18'
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: asv от 28 Декабря, 2009, 11:48:23
Ваш скрипт у меня работает, выполните тест памяти (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
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: BaRaGoZ от 28 Декабря, 2009, 13:46:23
здравствуйте, запустил 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 сообщение не совсем "здоровое", если не сложно, подскажите что делать далее...
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: asv от 28 Декабря, 2009, 14:20:59
> подождал 41 итерацию, тестирование так и не завершилось

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


> единственное отличие с прошлыми попытками: отключил разьем с SD картой...

Если опять соединить, то симптомы повторяются?


> Bad address format ... Flash not Erased

Видими проблема при стирании, попробуйте стереть область для образа ядра командами:
protect off all
erase 60080000 +1764972


Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: BaRaGoZ от 28 Декабря, 2009, 16:24:50

Если опять соединить, то симптомы повторяются?

Да симптомы повторились, НО ТОЛЬКО С ЭТОЙ карточкой, с другой все нормально+эта карта работала в винде, после установки ОС, с картой тоже все загружается!


Видими проблема при стирании, попробуйте стереть область для образа ядра...
Проделал эту операцию, сообщение не убралось Bad address format ... Flash not Erased, но ОС встала!

Теперь борюсь с тач скрином(не работает) и USB, флешку хочу примонтировать, а она похоже даже в /dev не появляется...
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: asv от 28 Декабря, 2009, 17:22:55
> сообщение не убралось 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).
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: BaRaGoZ от 28 Декабря, 2009, 17:44:15
>Это очень плохо, так как вы записываете поверх не стёртого блока и результат получите отличный от оригинала.
Может стоит попробовать вообще флешку полностью стереть? И все заново сделать? Если да, то подскажите как это сделать.
>Ну лог с карточкой небольшой, закачиваю образ как обычно, закачка проходит в 0х0, а потом:
$ iminfo 0x0

## Checking Image at 00000000 ...
Unknown image format!

С флешкой разобрался, примонтировал, спасибо... А насчет тача видимо таже ситуация что и тут:
http://www.zao-zeo.ru/forum/index.php?topic=126.0, во всяком случае хочу попробовать все советы из топика применить! Да и не так это важно для меня, я вообще линукс ставлю, чтобы попробовать "поиграться" с GPIO и др. перефирией, под виндой не получилось, а драйвер писать не хотелось... Еще раз спасибо за ответы.
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: BaRaGoZ от 28 Декабря, 2009, 17:46:03
Оказывается карта стояла на блокировке!!! Снял блокировку и все стало нормально!!! Не знаю как это связано, но факт есть факт...Видимо что то из разряда "поплясать с бубном"...
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: asv от 28 Декабря, 2009, 18:22:02
> Может стоит попробовать вообще флешку полностью стереть? И все заново сделать?

У вас следующее выполняется без сообщений об ошибках?
protect off all
erase 60080000 +1764972

После чего в 60080000 должны быть 0xff (команда md).
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: BaRaGoZ от 29 Декабря, 2009, 11:39:44
Добрый день, сделал как вы говорили, вот лог:
//////////////////////////////////////////////////////////////
$ 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
$
//////////////////////////////////////////////////////////////////////////////////
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: asv от 29 Декабря, 2009, 12:56:03
Покажите ещё вывод printenv и вывод version в U-Boot.
При сообщении "Bad address format" стирание в erase не выполняется (в скрипте), но вручную -- всё нормально стирается.
Скорее всего или первый, или второй аргументы не могут быть распознаны как шестнадцатеричные числа.
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: BaRaGoZ от 29 Декабря, 2009, 14:01:01
Логи 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)
$
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: asv от 29 Декабря, 2009, 14:41:14
"Bad address format" возникает потому, что в вашем файле скрипта используется DOS-овское разделение линий. Поэтому переменная kern_fladdr (и другие) имеет мусор в конце и не распознаётся как шестнадцатеричное число.

Если в U-Boot перезадать переменную
setenv kern_fladdr 60080000
то первого сообщения "Bad address format" не будет.

Используйте редактор поддерживающий Unix-разделение линий или преобразователь.
Название: Re: Неверный образ скрипта в u-boot(проверен в линуксе)
Отправлено: BaRaGoZ от 29 Декабря, 2009, 14:51:56
Проверил, все работает, спасибо за ответ!