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 printfperintah:
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
pada dasarnya shell printfperintah dengan \xescape sequence yang printfdiinterpretasikan. Pada perangkat yang saya lakukan:
device $ cat > firmware.sh
kemudian menggunakan minicomfile 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 printfskrip:
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
Diperiksa menggunakan BusyBox md5sumbahwa firmware.binchecksum pada perangkat cocok dengan gambar firmware asli pada host.
PS Sintaks kutipan shell ganda melewati \xkata demi kata karena itu bukan urutan escape yang dikenali; karenanya kita tidak perlu menggandakan backslash.
busybox --helpdanls -l /bindanls -l /usr/bin, tolong.