Tôi vừa tải lên tệp chương trình cơ sở ~ 7 Kb lên hệ thống nhúng Linux dựa trên BusyBox qua cổng nối tiếp.
Không có mạng, không có tiện ích chuyển tập tin; không sử dụng Base64 hoặc bất cứ thứ gì hữu ích từ xa trên thiết bị.
Trên máy chủ lưu trữ, tôi đã mã hóa phần sụn một cách tầm thường thành định dạng sau; một loại kết xuất hex bao gồm các chữ vỏ kết hợp với printfcác lệnh:
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
về cơ bản printfcác lệnh shell với \xcác chuỗi thoát mà printfdiễn giải. Trên thiết bị tôi đã làm:
device $ cat > firmware.sh
sau đó sử dụng minicomtệp ASCII send ( Ctrl-AS) để gửi tệp này đến máy chủ. Tôi chỉ có thể sử dụng bản sao và dán, vì lượng dữ liệu nhỏ.
Sau đó, đánh dấu thực thi và chạy printftập lệnh:
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
Đã kiểm tra bằng BusyBox md5sumrằng firmware.bintổng kiểm tra trên thiết bị khớp với hình ảnh phần sụn gốc trên máy chủ.
PS Cú pháp trích dẫn kép shell chuyển qua \xnguyên văn vì nó không phải là một chuỗi thoát được công nhận; do đó chúng ta không phải tăng gấp đôi dấu gạch chéo ngược.
busybox --helpvàls -l /binvàls -l /usr/bin, xin vui lòng.