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

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

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

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 /dev/ttyUSB0 115200

НЕ ВИКОРИСТОВУЙТЕ ЦІ ЗНАЧЕННЯ БЕЗ ПЕРЕВІРКИ! ВОНИ МОЖУТЬ НЕ ПІДХОДИТИ ДЛЯ ВАШОГО ПРИСТРОЮ!

setenv serverip 192.168.1.234
tftpboot 0x81000000 firm.bin
erase 0xbf020000 +0x7c0000
cp.b 0x81000000 0xbf020000 0x7c0000
bootm 0xbf020000

Поради щодо знаходження потрібного послідовного порту

    ll /sys/class/tty
    ll /sys/class/tty/*/device/driver
 
    chgport
    reg query HKLM\HARDWARE\DEVICEMAP\SERIALCOMM
    mode
    
    ls /dev/{tty,cu}.*
 

Для прикладу повної процедури перегляньте: Журнал прошивки через послідовний порт

Використання Kermit

Можна використовувати протокол Kermit (protocol) для передавання прошивки через послідовний порт. Це займає 15–20 хвилин, але простіше й безпечніше, ніж налаштування TFTP-сервера.

Вимоги:

НЕ ВИКОРИСТОВУЙТЕ ЦІ ЗНАЧЕННЯ БЕЗ ПЕРЕВІРКИ!

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/