Прошивка через послідовний порт
Технічні посилання
- Платформа ar71xx, завантажувач Das U-Boot: TL-WR1043ND
Процедура прошивки
- Спочатку запустіть TFTP-сервер на IP-адресі 192.168.1.234, який роздає файл прошивки OpenWrt з назвою firm.bin:
mkdir -p /tmp/tftp/ cp openwrt-...-factory.bin /tmp/tftp/firm.bin sudo ip addr add 192.168.1.234/24 dev eth0 sudo dnsmasq -d --port=0 --enable-tftp --tftp-root=/tmp/tftp/
- Далі, у іншому терміналі, запустіть серійну консоль (наприклад, `screen` або `minicom`) з параметрами 115200 8N1, без керування потоком:
screen /dev/ttyUSB0 115200
- Потім у U-Boot виконайте наступні команди для отримання файлу з TFTP-сервера та запису його у флеш-пам’ять:
НЕ ВИКОРИСТОВУЙТЕ ЦІ ЗНАЧЕННЯ БЕЗ ПЕРЕВІРКИ! ВОНИ МОЖУТЬ НЕ ПІДХОДИТИ ДЛЯ ВАШОГО ПРИСТРОЮ!
setenv serverip 192.168.1.234 tftpboot 0x81000000 firm.bin erase 0xbf020000 +0x7c0000 cp.b 0x81000000 0xbf020000 0x7c0000 bootm 0xbf020000
Поради щодо знаходження потрібного послідовного порту
- GNU/Linux:
ll /sys/class/tty ll /sys/class/tty/*/device/driver
- Windows:
chgport reg query HKLM\HARDWARE\DEVICEMAP\SERIALCOMM mode
- macOS:
ls /dev/{tty,cu}.*
Для прикладу повної процедури перегляньте: Журнал прошивки через послідовний порт
Використання Kermit
Можна використовувати протокол Kermit (protocol) для передавання прошивки через послідовний порт. Це займає 15–20 хвилин, але простіше й безпечніше, ніж налаштування TFTP-сервера.
Вимоги:
- Програма терміналу (наприклад, `minicom`), налаштована на 115200 8N1, без керування потоком.
- Файл прошивки з назвою `code.bin`
- Kermit-клієнт (у прикладі використовується C-Kermit під Linux)
НЕ ВИКОРИСТОВУЙТЕ ЦІ ЗНАЧЕННЯ БЕЗ ПЕРЕВІРКИ!
erase 0xbf020000 +7c0000 loadb 0x81000000
У C-Kermit введіть:
set line /dev/ttyUSB0 set speed 115200 set carrier-watch off set handshake none set flow-control none robust set file type bin set file name lit set rec pack 1000 set send pack 1000 set window 5 send code.bin
Після завершення передавання (15–20 хв), завершіть прошивку:
cp.b 0x81000000 0xbf020000 0x7c0000 bootm 0xbf020000
Примітка: Передавання через послідовний порт не вирішує проблему “курки та яйця”, якщо порт Ethernet не працює. Але U-Boot підтримує серійне передавання через протокол модема: http://acassis.wordpress.com/2009/10/23/transfering-file-to-u-boot-over-serial/