Введение
В прошивке версии 3.x.x для роутеров TELEOFIS серии RTUx68 (RTU968, RTU1068) операционная система обновлена до OpenWrt 21.02, а версия ядра — до 5.4. Это позволяет устанавливать более новые версии пакетов и повышает безопасность системы.
Текущую версию прошивки можно посмотреть в веб-интерфейсе роутера в меню Статус → Обзор. Файлы прошивки опубликованы в репозитории https://github.com/teleofis/TELEOFIS-RTU968/tree/main/Firmware; для обновления потребуется версия 3.X.X S.
Вместе с прошивкой обновляется и загрузчик роутера, поэтому обновить устройство через веб-интерфейс или командную строку операционной системы нельзя. Загрузчик записывается только через TFTP-сервер из консоли U-Boot при подключении к роутеру по интерфейсу RS-232 — именно этот способ и описан далее.
1. Установка TFTP-сервера
Скачайте и установите TFTP-сервер, например Tftpd32/Tftpd64: http://tftpd32.jounin.net/tftpd32_download.html. Окно программы после запуска выглядит так:
Предварительных настроек на этом шаге выполнять не нужно — рабочую папку и сетевой интерфейс вы укажете позже, в разделе 4.
2. Настройка сетевого интерфейса на ПК
По умолчанию роутер RTU968/RTU1068 имеет IP-адрес 192.168.88.1 и при работе с TFTP-сервером обращается к адресу 192.168.88.11. Задайте адрес 192.168.88.11 и маску 255.255.255.0 на том сетевом интерфейсе ПК, к которому роутер подключён Ethernet-кабелем.
3. Подключение роутера
Работа со службой TFTP выполняется в командной строке загрузчика U-Boot, поэтому роутер нужно подключить к ПК двумя кабелями:
- по интерфейсу RS-232 — для доступа к консоли загрузчика (см. статьи Как подключиться к роутеру RTU и Как зайти в загрузчик U-Boot роутера);
- по Ethernet — к интерфейсу ПК, настроенному в разделе 2.
4. Подготовка к обновлению через TFTP
Распакуйте архив с прошивкой и загрузчиком в папку, которая будет использоваться TFTP-сервером. В примере ниже файлы распакованы в папку /Downloads/3.1.4S:
В окне TFTP-сервера в поле Current Directory укажите эту папку, а в поле Server interface выберите интерфейс ПК с адресом 192.168.88.11:
5. Проверка работы TFTP-сервера
Прежде чем стирать память роутера, убедитесь, что загрузчик видит файлы на TFTP-сервере и способен их загружать. Для этого в консоли загрузчика подайте команду tftp root — должен начаться процесс загрузки файла:
=> tftp root
Using FEC0 device
TFTP from server 192.168.88.11; our IP address is 192.168.88.1
Filename 'root'.
Load address: 0x42000000
Loading: *#################################################################
#################################################################
#################################################################
#############################################
1.4 MiB/s
done
Bytes transferred = 24506368 (175f000 hex)
6. Очистка памяти и обновление загрузчика
Очистите память роутера и запишите новый загрузчик. Для этого в консоли загрузчика подайте команду:
nand erase.chip; run update_nand_full
Вывод в консоли должен выглядеть примерно так:
=> nand erase.chip; run update_nand_full
NAND erase.chip: device 0 whole chip
Skipping bad block at 0x00020000
Skipping bad block at 0x00040000
Skipping bad block at 0x00060000
Skipping bad block at 0x01c00000
Skipping bad block at 0x01c20000
Skipping bad block at 0x01c40000
Skipping bad block at 0x01c60000
Erasing at 0xffe0000 -- 100% complete.
OK
Using FEC0 device
TFTP from server 192.168.88.11; our IP address is 192.168.88.1
Filename 'u-boot.nand'.
Load address: 0x42000000
Loading: T #################################################################
#################################################################
#################################################################
####################
313.5 KiB/s
done
Bytes transferred = 3145728 (300000 hex)
Device 0: nand0, sector size 128 KiB
Page size 2048 b
OOB size 64 b
Erase size 131072 b
NAND scrub: device 0 offset 0x0, size 0x300000
Erasing at 0x2e0000 -- 100% complete.
OK
NAND write: 540672 bytes written: OK
NAND write: device 0 offset 0x80000, size 0x280000
2621440 bytes written: OK
Дождитесь окончания записи образа загрузчика. Не выключайте и не перезагружайте роутер до завершения процесса. Если образ по каким-то причинам не загрузился через TFTP, повторите команду run update_nand_full до успешной записи.
После успешной записи подайте команду reset для перезагрузки роутера.
ERROR: Can't get kernel image!. Это ожидаемое поведение: память очищена и операционная система ещё не записана. Войдите в консоль загрузчика (по инструкции из раздела 3) и переходите к следующему шагу.
7. Обновление системы
В консоли обновлённого загрузчика подайте команду, которая запишет прошивку и перезагрузит роутер:
run update_system; reset
В процессе выполнения команды в консоли отображается загрузка файла прошивки с TFTP-сервера:
=> run update_system; reset
Using FEC0 device
TFTP from server 192.168.88.11; our IP address is 192.168.88.1
Filename 'root'.
Load address: 0x42000000
Loading: #################################################################
#################################################################
Дождитесь окончания записи — после этого роутер перезагрузится и загрузит новую операционную систему. Обновление завершено.