Нигде не нашел данной информации, поэтому, прогулявшись по граблям и будучи посланным поддержкой длинка .... в СЦ... как всегда, в общем, восстановил коммутатор сам.. И хочу поделиться информацией.. Ибо далеко не все имеют возможность покатать коммутатор до СЦ. Особенно когда стоимость этого путешествия вместе с услугами СЦ превышает стоимость самого коммутатора.
Итак, имеем кирпич, который выдает в консоль:
Код:
Model_Name: DGS-1210-28/ME
Hit any key to stop autoboot: 0
Uncompressing Kernel Image ... OK
Loading Runtime Image ......
Starting kernel ...
И на этом все..
Прерываем его загрузку во время обратного отсчета. Коммутатор просит пароль.. Обычно это admin, если в коммутаторе никто до этого не покопался.
Попадаем в командную строку U-Boot:
Код:
DGS-1210-28/ME> help
? - alias for 'help'
base - print or set address offset
bootm - boot application image from memory
bootp - boot image via network using BOOTP/TFTP protocol
chpart - change active partition
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
dhcp - boot image via network using DHCP/TFTP protocol
echo - echo args to console
env - environment handling commands
exit - exit script
false - do nothing, unsuccessfully
go - start application at address 'addr'
help - print command description/usage
itest - return true/false on integer compare
license - print GPL license text
loop - infinite loop on address range
md - memory display
mdc - memory display cyclic
mdk - mdk commands:
mii - MII utility commands
mm - memory modify (auto-incrementing address)
mtdparts- define flash/nand partitions
mtest - simple RAM read/write test
mw - memory write (fill)
mwc - memory write cyclic
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv - set environment variables
sf - SPI flash sub-system
showvar - print local hushshell variables
sleep - delay execution for some time
source - run script from memory
test - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
true - do nothing, successfully
version - print monitor, compiler and linker version
отмечаем для себя, что тут есть загрузка с tftp, и смотрим printenv:
Код:
Board_Version=8
Boot_Version=1.00.015
Serial_Number=XXXXXXXXXXXXXX
baudrate=9600
boot_password=admin
bootargs=console=ttyS1,115200n8 maxcpus=1 mem=112M root=/dev/mtdblock3 rw rootfstype=squashfs
bootcmd=bootm 0x1ce80000
bootdelay=3
bootfile=uImage
ethact=mdk_eth-0
ethaddr=XX:XX:XX:XX:XX
fileaddr=0x3000000
filesize=C6EEE0
gatewayip=10.90.90.254
hw_version=A1
ipaddr=10.90.90.90
loadaddr=0x3000000
machid=bb8
mtdids=nand0=nand_iproc.0
netmask=255.0.0.0
stderr=serial
stdin=serial
stdout=serial
ver=U-Boot 2012.10 (Jun 27 2014 - 15:13:11)
Добавляем в переменные ip адрес tftp сервера(setenv serverip xx.xx.xx.xx), сохраняем настройки в SPI ( saveenv), выкладываем на этом сервере файл прошивки, и, либо переименовываем его в uImage, согласно переменной bootfile, на сервере, либо меняем эту переменную на путь/имя файла.hex в коммутаторе. В том коммутаторе что мне попался сработало и то и то.
Загружаем образ в память коммутатора c помощью tftpboot.
Далее самое интересное. Файл загружается, но никакого boot за этим не следует.. Далее нужно заставить коммутатор запустить загруженный образ.
Что и было сделано командой bootm. Образ загрузился в fileaddr=0x3000000 запуск нормально прошел с адреса 0x3000040. - коммутатор загрузился и позволил прошить себя уже штатно.
После загрузки выяснилось, что слетел IMG2, который был загрузочным.