Исследование U-Boot коммутатора QTECH QSW-3750-28TX-AC


Опубликовано 16.01.2020 16:57 | Автор: Admin

В данной статье рассматривается:
Если все пропало и коммутатор QSW-3750 не загрузился, то можно заглянуть сюда. Запуск нужной прошивки вручную. Восстановление коммутатора QSW-3750 до заводских настроек.

У меня проблем не было, но представим, что случились.

Чтоб попасть в u-boot, надо при начальной загрузке коммутатора, когда появиться соответствующее приглашение нажать любую клавишу.

Версия нашего загрузчика

u-boot> version

U-Boot 2012.10 (Nov 12 2018 - 15:51:08)VerNo=1.0.0.5
arm-linux-gcc (Broadcom Linux v3.6d) 4.7.2
GNU ld (Broadcom Linux v3.6d) 2.21.1

И так, посмотрим на переменные и скрипт загрузчика.

u-boot> env print
active=stk1
backup=stk2
baudrate=9600
board_id=465279.002
boardname=qsw
bootargs=console=ttyS0,9600n8 maxcpus=1 mem=496M root=/dev/ram rw envaddr=0x1e080000 mtdparts=spi1.0:512k(boot),256k(env),256k(vpd),3072k(reserved),29696k(stk1),29696k(stk2),2048k(config)
bootcmd=if test $active = stk1; then sf probe; sf read 0x61000000 0x00400000 0x01D00000;validate;if test $? -eq 0; then bootm 0x61000088;else echo STK1 validation failed.Booting STK2;sf read 0x61000000 0x02100000 0x01D00000;validate;if test $? -eq 0; then setenv active stk2; setenv backup stk1; save; bootm 0x61000088; fi;fi;else; sf probe; sf read 0x61000000 0x02100000 0x01D00000;validate;if test $? -eq 0; then bootm 0x61000088;else echo STK2 validation failed.Booting STK1;sf read 0x61000000 0x00400000 0x01D00000;validate;if test $? -eq 0; then setenv active stk1; setenv backup stk2; save; bootm 0x61000088; fi;fi;fi;
bootdelay=3
bootfile=uImage
ethact=bcmiproc_eth-0
fpboot=setenv bootargs ${bootargs}
loadaddr=0x61000000
stderr=serial
stdin=serial
stdout=serial
ver=U-Boot 2012.10 (Nov 12 2018 - 15:51:08)VerNo=1.0.0.5

Environment size: 1122/262140 bytes

По данному скрипту загрузка/восстановление выглядит таким образом (грубо):

Если активная прошивка stk1 Мы считываем из флешь памяти и проверяем активную прошивку, если проверку прошли то загружаем ее, если не прошли, считываем и проверяем бэкапную прошивку, если все хорошо, то меняем переменную определяющую, какая прошивка активная и сохраняем изменения, производим загрузку по адресу бэкапной прошивки. И на оборот, если активной стоит stk2


Запуск нужной прошивки коммутатора QSW-3750 вручную через u-boot

!детектируем установленную флешь память
u-boot> sf probe
spi_flash.c: Detected MX25L51245G with sector size 64 KiB, total 64 MiB
!считываем в память прошивку stk1 с флэшки
u-boot> sf read 0x61000000 0x00400000 0x01D00000;
!или считать в память прошивку stk2
u-boot>sf read 0x61000000 0x02100000 0x01D00000;
!запускаем процесс загрузки
u-boot> bootm 0x61000088;


Смена активной прошивки коммутатора QSW-3750 вручную через u-boot

Меняем значения переменных загрузчика

u-boot>setenv active stk1;
u-boot>setenv backup stk2;
!обязательно сохраняем значение переменных
u-boot>save;


Сброс всех настроек коммутатора QSW-3750 до заводских через u-boot

Будет утрачена вся конфигурация коммутатора!

#детектируем установленную флешь память
u-boot> sf probe
spi_flash.c: Detected MX25L51245G with sector size 64 KiB, total 64 MiB
!Очищаем область памяти на флешь где храниться конфигурация коммутатора: 0x000003e00000-0x000004000000 : "config"
u-boot> sf erase 0x000003e00000 0x200000;
!перегружаемся
u-boot>reset;

Были попытки выдернуть конфигурационный файл, но ... данные файлы шифрованные.


Работа с TFTP коммутатора QSW-3750 из u-boot

Вот так примерно это должно выглядеть настройка u-boot для работы с TFTP из u-boot

!IP самого коммутатора
u-boot> setenv ipaddr 192.168.0.10
!маска сети
u-boot> setenv netmask 255.255.255.0
!адрес TFTP сервера
u-boot> setenv serverip 192.168.0.100
!шлюз
u-boot> setenv gatewayip 192.168.0.1

Далее делаем ping и получаем

ERROR: Ethernet external port not connected
at bcmiproc_eth.c:124/bcmiproc_eth_open()

решение пока не найдено. Т.е. через u-boot мы не можем обновить прошивку коммутатора, если вы испортите оба имеющихся образа, то пиши пропало. Есть возможность загрузки данных через консоль, но пока руки не дошли.


Метки
Коммутатор QTECH QSW Firmware u-boot

Комментариев: 0

 177 |


Добавить комментарий:
Отправить