บูตลิน (บริษัทที่เชี่ยวชาญด้าน Linux สำหรับระบบสมองกลฝังตัว) ทำให้เป็นที่รู้จัก หลายวันก่อน เปิดตัว snagbootออกแบบมาเพื่อกู้คืนและแฟลชอุปกรณ์ฝังตัวที่หยุดการบูท เช่น เนื่องจากเฟิร์มแวร์เสียหาย
รองเท้าบูต เกิดขึ้นเนื่องจากแพลตฟอร์มฝังตัวส่วนใหญ่มีอินเทอร์เฟซ USB หรือ UART สำหรับการกู้คืนและถ่ายโอนอิมเมจสำหรับบูตในกรณีที่เฟิร์มแวร์เสียหาย แต่อินเทอร์เฟซเหล่านี้คือ เฉพาะสำหรับแต่ละแพลตฟอร์ม และต้องใช้ยูทิลิตี้การกู้คืนที่เกี่ยวข้องกับผลิตภัณฑ์ของผู้ผลิตแต่ละราย
เพื่อแก้ไขปัญหานี้ Bootlin ยินดีที่จะเปิดตัวเครื่องมือการกู้คืนและอัปเดตใหม่ในวันนี้ ซึ่งเรียกว่า Snagboot ซึ่งตั้งใจให้เป็นโอเพ่นซอร์สทั่วไปแทนเครื่องมือเฉพาะของผู้จำหน่ายที่กล่าวถึงข้างต้น
เกี่ยวกับ Snaboot
Snagboot ทำหน้าที่เป็นอะนาล็อกของยูทิลิตี้พิเศษ, ส่วนใหญ่เป็นเจ้าของ, เพื่อกู้คืนและอัปเดตอุปกรณ์เช่น STM32CubeProgrammer, SAM-BA ISP, UUU และ sunxi-fel
รองเท้าบูต ได้รับการออกแบบมาเพื่อทำงานร่วมกับบอร์ดและอุปกรณ์ฝังตัวที่หลากหลายซึ่งขจัดความจำเป็นสำหรับผู้พัฒนาระบบฝังตัวในการเรียนรู้ข้อมูลเชิงลึกของการใช้ยูทิลิตี้ต่างๆ
ตัวอย่างเช่น สามารถใช้ snagboot เวอร์ชันแรกเพื่อกู้คืนอุปกรณ์ที่ใช้ ST STM32MP1, Microchip SAMA5, NXP i.MX6/7/8, Texas Instruments AM335x, Allwinner SUNXI และ Texas Instruments AM62x SoC
มีเครื่องมือบางอย่างที่ใช้ประโยชน์จากฟังก์ชันนี้เพื่อให้กู้คืนและอัปเดตผ่าน USB ได้อย่างรวดเร็ว เช่น STM32CubeProgrammer , SAM-BA หรือ UUU อย่างไรก็ตาม เครื่องมือเหล่านี้เป็นของผู้จำหน่ายทั้งหมด ซึ่งหมายความว่านักพัฒนาที่ทำงานบนแพลตฟอร์มหลายประเภทต้องสลับไปมาระหว่างเครื่องมือต่างๆ และเรียนรู้วิธีใช้แต่ละอย่าง
มีการกล่าวถึงว่า Snagboot มีสองยูทิลิตี้ให้ดาวน์โหลดและอัปเดต:
- งู- ใช้กลไกรหัส ROM เฉพาะของผู้ขายเพื่อเริ่มต้น RAM ภายนอกและเรียกใช้ U-Boot bootloader โดยไม่ต้องเปลี่ยนเนื้อหาของหน่วยความจำถาวร
- อุปสรรค์- โต้ตอบกับ U-Boot ที่ทำงานอยู่เพื่อแฟลชอิมเมจระบบไปยังหน่วยความจำแบบไม่ลบเลือนโดยใช้ DFU (การอัปเดตเฟิร์มแวร์ของอุปกรณ์), UMS (ที่เก็บข้อมูล USB) หรือ Fastboot
สำหรับผู้สนใจ เพื่อทราบข้อมูลเพิ่มเติมโปรดทราบว่าโค้ดของ Snagboot เขียนด้วย Python และเป็นโอเพ่นซอร์สภายใต้ใบอนุญาต GPLv2
จะติดตั้ง Snagboot บน Linux ได้อย่างไร?
สำหรับผู้ที่สนใจจะติดตั้ง Snagboot บนระบบของพวกเขา พวกเขาควรรู้ไว้ คุณสามารถทำได้ค่อนข้างง่าย พวกเขาควรติดตั้งการอ้างอิงที่จำเป็นเท่านั้นเพื่อไม่ให้เกิดปัญหาในภายหลัง
อันแรกคือ libhidapi ซึ่งสามารถติดตั้งได้ดังต่อไปนี้ (ขึ้นอยู่กับการแจกจ่ายของคุณ) พวกเขาเพียงแค่เปิดเทอร์มินัลแล้วพิมพ์:
Debian / Ubuntu
sudo apt install libhidapi-hidraw0
หรือคุณสามารถติดตั้ง:
sudo apt install libhidapi-libusb0
Arch Linux (แม้ว่าจะสามารถติดตั้งได้จาก AUR โปรดดูคำสั่งการติดตั้งด้านล่าง)
sudo pacman -S hidapi
RHEL/เฟดอรา
sudo dnf -y install hidapi
เมื่อเสร็จแล้ว สิ่งที่คุณต้องทำคือติดตั้ง Snagboot ด้วย pip และเพียงแค่พิมพ์คำสั่งต่อไปนี้:
python3 -m pip install --user snagboot
สุดท้าย เราจะต้องเพิ่มกฎ udev เพื่อให้ snagrecover มีสิทธิ์อ่านและเขียนไปยังอุปกรณ์ USB ของ SoC เป้าหมาย:
snagrecover --udev > 80-snagboot.rules
sudo cp 80-snagboot.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
และพร้อมที่จะเริ่มทำงานกับเครื่องมือนี้ ในกรณีของผู้ใช้ Arch Linux ดังที่ได้กล่าวไว้ก่อนหน้านี้ เครื่องมือสามารถติดตั้งได้โดยตรงจาก AUR และสำหรับสิ่งนี้ พวกเขาจะต้องเปิดใช้งานที่เก็บและติดตั้งวิซาร์ด AUR เท่านั้น
คำสั่งในการติดตั้งเครื่องมือคือ:
yay -S snagboot
สุดท้าย แต่ไม่ท้ายสุด สำหรับผู้ที่ต้องการคอมไพล์ด้วยตัวเอง ให้รันดังต่อไปนี้:
โคลนคอมไพล์ https://github.com/bootlin/snagboot.git
cd snagboot
./install.sh
สำหรับคู่มือและคำแนะนำในการใช้งาน คุณสามารถศึกษาข้อมูลทั้งหมดนี้ได้ใน ลิงค์ต่อไป.