--- title: Phần mềm để nạp firmware OpenWrt trong chế độ recovery date: 2023-02-20 22:22:49.370392 UTC --- Gần đây mình lại có duyên đụng vào OpenWrt và router wifi. Mình phải nạp firmware OpenWrt cho một số router đã bị bricked (HĐH bị liệt, không chạy). Vì đã bị bricked nên chỉ có thể nạp trong chế độ recovery, qua cổng serial. Nay mình liệt kê một số phần mềm để dùng cho việc này. ### Truy cập qua cổng serial Để truy cập qua cổng serial, mình dùng [PySerial](https://github.com/pyserial/pyserial) thông qua lệnh sau: ```console $ pyserial-miniterm /dev/ttyUSB0 115200 ``` Cách đây 10 năm, mình dùng GTKTerm, CuteCom, nhưng các phần mềm này lâu không cập nhật, giao diện cũ kĩ, nên không muốn dùng nữa. Còn với `pyserial-miniterm` thì đây là ứng dụng dòng lệnh, nó hòa quyện với Terminal luôn, nên cảm giác như là đang dùng SSH, dễ chịu, quen thuộc. ![miniterm](https://quan-images.b-cdn.net/blogs/imgur/2026/cFVFQ3k.png) Để cài PySerial thì trên Ubuntu/Debian, dùng lệnh: ```console $ sudo apt install python3-serial ``` Lệnh `pyserial-miniterm` thực ra là lệnh tắt, do đội ngũ bảo trì Debian/Ubuntu tạo thêm. Trên các HĐH Linux khác, lệnh này có thể không tồn tại, khi đó bạn nên dùng lệnh gốc: ```console $ python3 -m serial.tools.miniterm /dev/ttyUSB0 115200 ``` ### TFTP server Mình dùng [atftp](https://sourceforge.net/projects/atftp/), thông qua lệnh sau: ```console $ sudo atftpd --daemon --no-fork --logfile - . ``` Nó sẽ chạy một TFTP server, dùng thư mục hiện tại làm nơi cung cấp file cho việc download. Lưu ý, khi cài gói `atftpd` trong Debian/Ubuntu, nó sẽ đi kèm một service và chiếm cổng 69, khiến bạn không thể dùng lệnh phía trên. Bạn nên vô hiệu hóa service này bằng lệnh: ```console $ sudo systemctl disable --now atftpd.socket ```