אתחול (חברה המתמחה בלינוקס למערכות משובצות), הודיע על כך לפני כמה ימים השקת snagboot, שנועד לשחזר ולהבזק מכשירים משובצים שהפסיקו לאתחל, למשל, עקב פגיעה בקושחה.
snagboot זה נולד בגלל שרוב הפלטפורמות המשובצות מספקות ממשקי USB או UART לשחזור והעברת תמונות אתחול במקרה של פגיעה בקושחה, אבל ממשקים אלה כן ספציפי לכל פלטפורמה ודורשים שימוש בכלי עזר לשחזור הקשורים למוצרי יצרן בודדים.
כדי לטפל בבעיה זו, Bootlin שמחה לשחרר היום כלי שחזור ועדכון חדש, הנקרא Snagboot, אשר נועד להוות תחליף גנרי, קוד פתוח, לכלים הספציפיים לספק שהוזכרו לעיל.
לגבי Snagboot
Snagboot פועל כאנלוגי של כלי עזר מיוחדים, בעיקר בעלים, כדי לשחזר ולעדכן מכשירים, כגון STM32CubeProgrammer, SAM-BA ISP, UUU ו-sunxi-fel.
snagboot מיועד לעבוד עם מגוון רחב של לוחות והתקנים משובצים, מה שמבטל את הצורך של מפתחי מערכות משובצות ללמוד את היתרונות והחסרונות של שימוש בכלי עזר שונים.
לדוגמה, הגרסה הראשונה של 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 מבלי לשנות את תוכן הזיכרון הקבוע.
- הבזק- מקיים אינטראקציה עם U-Boot פועל כדי להבהב תמונת מערכת לזיכרון לא נדיף באמצעות DFU (עדכון קושחה של התקן), UMS (אחסון המוני USB) או Fastboot.
למעוניינים לדעת יותר על זהאנא דע שהקוד של Snagboot כתוב ב-Python והוא בקוד פתוח תחת רישיון GPLv2.
כיצד להתקין Snagboot על לינוקס?
למי שמעוניין להיות מסוגל להתקין את Snagboot במערכת שלהם, הם צריכים לדעת זאת אתה יכול לעשות את זה די בקלות. הם צריכים להתקין רק את התלות הדרושים כדי לא להיתקל בבעיות מאוחר יותר.
הראשון הוא libhidapi שניתן להתקין באופן הבא (בהתאם להפצה שלך). הם רק צריכים לפתוח מסוף ובו הם הולכים להקליד:
דביאן / אובונטו
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 של ה-SoCs היעד:
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
אחרון חביב, למי שמעדיף לבצע קומפילציה בעצמו, פשוט הפעל את הדברים הבאים:
שיבוט git https://github.com/bootlin/snagboot.git
cd snagboot
./install.sh
לגבי המדריכים והוראות השימוש, תוכל לעיין בכל המידע הזה ב- הקישור הבא.