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 printf
các lệnh:
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
về cơ bản printf
các lệnh shell với \x
các chuỗi thoát mà printf
diễn giải. Trên thiết bị tôi đã làm:
device $ cat > firmware.sh
sau đó sử dụng minicom
tệ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 printf
tập lệnh:
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
Đã kiểm tra bằng BusyBox md5sum
rằng firmware.bin
tổ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 \x
nguyê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 --help
vàls -l /bin
vàls -l /usr/bin
, xin vui lòng.