Saya baru saja mengunggah ~ 7 Kb file firmware ke sistem embedded Linux berbasis BusyBox melalui port serial.
Tidak ada jaringan, tidak ada utilitas transfer file; tidak ada utilitas Base64 atau apa pun yang jauh berguna di perangkat.
Di host, saya dengan sepele mengodekan firmware ke dalam format berikut; sejenis hex-dump yang terdiri dari shell literal yang dikombinasikan dengan printf
perintah:
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
pada dasarnya shell printf
perintah dengan \x
escape sequence yang printf
diinterpretasikan. Pada perangkat yang saya lakukan:
device $ cat > firmware.sh
kemudian menggunakan minicom
file ASCII send ( Ctrl-AS) untuk mengirim file ini ke host. Saya bisa saja menggunakan salin dan tempel, karena jumlah datanya kecil.
Kemudian, tandai dieksekusi dan jalankan printf
skrip:
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
Diperiksa menggunakan BusyBox md5sum
bahwa firmware.bin
checksum pada perangkat cocok dengan gambar firmware asli pada host.
PS Sintaks kutipan shell ganda melewati \x
kata demi kata karena itu bukan urutan escape yang dikenali; karenanya kita tidak perlu menggandakan backslash.
busybox --help
danls -l /bin
danls -l /usr/bin
, tolong.