Прошивка через послідовний порт

Технічні посилання

Процедура прошивки

  • Спочатку запустіть 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/

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/05/30 06:59
  • by vazaz