כיצד להתגבר על מכשולי פיתוח Linux במערכות מוגבלות-משאבים

טכנולוגיית קוד פתוח מציגה בפני מפתחי מערכות אלקטרוניות נתיב להפחתת עלויות, זמן הגעה מהיר יותר לשוק והארכת מחזורי חיי המוצר על ידי הסרת מחסומים קנייניים ועידוד שיתוף פעולה. כיום, הזדמנויות קוד פתוח משתרעות על פני כל המערכות, החל ממערכות הפעלה ועד לחומרה של מחשבי לוח יחיד (SBC) וקניין רוחני של מוליכים-למחצה.

עם זאת, נותרו דרישות חישוביות-על, סיכוני אבטחה ואתגרי שיהוי (Latency‏) דטרמיניסטי בהרצת Linuxעל התקנים מוגבלי-משאבים, כגון מערכות IoT תעשייתיות (IIoT) ומערכות רובוטיקה.

אמר זה סוקר בקצרה את האתגרים העומדים בפני המתכננים בעת פריסת Linux במערכות מוגבלות-משאבים. לאחר מכן הוא מציג את ה-SBC‏ BeagleV-Fire‏ של BeagleBoard.org‏ בשילוב עם Linux‏, ומתאר כיצד ניתן למקסם גמישות תכנון עתידית. כלולה גם הדגמה של כיצד להשתמש בחבילות תמיכה ללוחות (BSP) בקוד פתוח של Microchip Technology‏ עבור בניית תצורת Linux ראשונית.

האתגרים של פיתוח קוד-פתוח במערכות משובצות

האימוץ טכנולוגיות קוד-פתוח בפיתוח משובץ הוא מבוסס היטב. גם תכנון חומרה וגם שילוב תוכנה מואצים על ידי נכסים מוכנים-לשימוש המיוצרים על ידי אקוסיסטם רחב של יצרנים ומהנדסים אינדיבידואליים. במיוחד, הגמישות של Linux הפכה אותה לפתרון תוכנה מוביל עבור מערכות הדורשות רשתות, מסגרות-עבודה ליישומים ברמה גבוהה ושילוב של בינה מלאכותית (AI).

עם זאת, פריסת Linux על התקנים יותר מוגבלי-משאבים מציג שיקולים נוספים:

■ דרישות חישוביות: יחידות מיקרו-בקר (MCU) מסורתיות מתקשות לעמוד בדרישות הזיכרון והאחסון אפילו של Linux מינימלי. ככל שהמפתחים מוסיפים שירותי תמיכה ביישומים, תת-מערכות ומסגרות-עבודה של מרחב-משתמש (USF), תת-מערכות אלו צורכות יותר משאבים, מה שהופך את חבילות התוכנה המגושמות לבלתי-ישימות.

■ שיהוי (Latency‏): יישומים מדויקים כמו רובוטיקה ואוטומציה תעשייתית דורשים תזמון צפוי עבור תיאום מערכות ובטיחות תפעולית. בעוד שמאפיין PREEMPT_RT של ליבת Linux משפרת את הדטרמיניזם, מערכות הפעלה ייעודיות בזמן-אמת (RTOS) מציעות שיהוי ותקורה נמוכים יותר עבור חומרה מוגבלת-משאבים.

■ אבטחה: מערכות משובצות הפרוסות בסביבות ציבוריות נמצאות בסיכון לגישה בלתי-מורשית, ההופכת לקריטיים אמצעי אבטחה סטנדרטיים כגון אתחול מאובטח, חסינות מפני השחתה, וחומרתRoot of Trust‏ (RoT‏). בנוסף, תקנות כמו חוק Cyber Resilience Act‏ (CRA) של ה-EU‏ מחייבות מוצרים עם אלמנטים דיגיטליים להיות מאובטחים-מהתכנון.

■ צריכת הספק: התקני קצה פועלים לעתים קרובות בסביבות מרוחקות עם משאבי הספקת-כוח מוגבלים. נצילות אנרגטית גבוהה יותר יכולה להאריך את חיי הסוללה או לאפשר פעולה באמצעות מקורות אנרגיה מהסביבה. בדומה, נצילות הספק גבוהה יותר יכולה לפשט את הניהול התרמי ולשפר את הביצועים לוואט, תוך תמיכה בעיבוד קצה מתקדם.

■ ניהול מחזור חיים: ה-CRA דורש תמיכה בהתקנים דיגיטליים למשך חמש שנים לפחות, אם כי פריסות תעשייתיות רבות דורשות זמינות מוצר של 10 עד 15 שנים. לכן, כדי להבטיח תמיכה עקבית בליבת Linux, המפתחים חייבים לתכנן עבור שדרוג וזמינות חומרה.

כדי להתגבר על אתגרים אלה, המפתחים יכולים להיעזר במשאבים נוספים מאקוסיסטם של Linuxבקוד פתוח ובמערכות משובצות, ולמנף את צירופי החומרה-תוכנה היעילים של Linux עבור יישומי קצה המתפתחים במהירות.

יישום Linux באמצעות SBCs פתוחים ו-RISC-V

בעוד שחבילות Linux לשימוש כללי מספקות נתיב מהיר למוכנות ליישומים, הן כוללות לעתים קרובות חבילות ושירותים שאינם נדרשים לפרויקט נתון. לעומת זאת, פרויקט Yocto‏, המופעל על ידי OpenEmbedded‏, מאפשר למפתחים לבנות חבילת Linux‏ התפורה עבור מקרי שימוש ספציפיים. זה מבטל מאפיינים לא הכרחיים, ומאפשר לחבילות קלות-משקל לפעול על חומרה מוגבלת-משאבים תוך שמירה על יכולות מתקדמות, כגון ראייה ממוחשבת המונעת על ידי בינה מלאכותית או תחזוקה חזויה באמצעות כלים סטנדרטיים.

בנוסף, פרויקט Yocto מעניק למפתחים:

■ בניית מבנים ניתנים-לשחזור עבור תחזוקה ארוכת-טווח

■ תצורת Kernel‏ מותאמת-במיוחד עבור שיפור ביצועים, אבטחה ותגובתיות

■ שילוב שכבות ספציפי-ללוח כדי להבטיח תאימות חומרה-תוכנה ולקצר את זמן הפיתוח

אינטגרציה פשוטה עם מנגנוני עדכון דרך-האוויר (OTA‏) כגון SWUpdate, RAUC ו-Mender מסייעת למפתחים גם לשפר באופן קבוע את ביצועי המכשיר והאבטחה לאורך מחזורי חיים ארוכים של המוצר. כתוצאה מכך, פרויקט Yocto הוא כעת סטנדרט עבור מערכות Linux משובצות.

בדומה, SBCs‏ בקוד פתוח משמשים זה מכבר להאצת פיתוח יישומי Linux, ומספקים פלטפורמת ייחוס מוכנה לשימוש המשלבת משאבי עיבוד, זיכרון, אחסון ו-I/O‏ בגורם-צורה עצמאי. בעזרת SBCs פתוחים המפתחים יכולים לבנות אב-טיפוס מערכת במהירות, לתקף את חבילת התוכנה שלהם ולאחר מכן לעבור לחומרה מותאמת-במיוחד עם מינימום עיבוד-חוזר.

ארכיטקטורת סט פקודות (ISA) בסטנדרט-פתוח RISC-V לוקחת את זה צעד קדימה בכך שהיא מאפשרת למתכנני מערכות ליצור פלטפורמות עיבוד מותאמות-במיוחד ללא דמי רישוי יקרים. בעזרת RISC-V, המתכננים יכולים לבחור אילו חלקים מסט הפקודות לכלול ואף להרחיב אותם כדי לענות על מקרי השימוש הספציפיים שלהם. מאחר שהתכנים המקוריים נוצרו עם Berkeley Software Distribution‏ (BSD‏), הנגזרות יכולות להיות פתוחות וחופשיות או סגורות וקנייניות.

עבור המפתחים, פרויקט Yocto, SBCs פתוחים ו-RISC-V מפחיתים את התלות במפות דרכים של ספק יחיד, ומגדילים את גמישות התכנון לטווח ארוך. יתר על כן, התמיכה הגוברת ב-RISC-V בLinux במעלה-הזרם וחברות פלטינה של RISC-V בפרויקט Yocto מדגישות את העניין של קהילת Linux משובץ.

RISC-V SBC עם ביצועים עיליים עבור אינטגרציית Linux קומפקטית

פלטפורמת SBC‏ BeagleV-Fire‏ בקוד פתוח של BeagleBoard.org (איור 1) מציעה פלטפורמה קומפקטית עתירת I/O‏ כדי להתמודד עם אתגרים אלה. בעזרת מערכת-על-שבב (SoC‏) FPGA‏ PolarFire‏ של Microchip‏, היא מעניקה פעולה חסכונית בהספק, מאפייני אבטחה בחומרה, ואשכול CPU‏ RISC-V קוהרנטי התומך ביישומי Linux המריצים עומסי עבודה בזמן-אמת. המפתחים יכולים להשתמש ב-SBC כדי לבנות אבות-טיפוס של בקרי רובוטיקה, שערים תעשייתיים, מאיצי AI‏ קצה ופלטפורמות I/O‏ מותאמות-במיוחד המבוססות על Linux משובץ.

ממדי הפלטפורמה הקומפקטית הם 86.38 מ"מ × 54.61 מ"מ × 18.8 מ"מ והיא בנויה סביב ה-SoC‏ PolarFire‏ MPFS025T-FCVG484E‏ היעיל-אנרגטית. הוא כולל ארכיטקטורה קוהרנטית רבת-ליבות עם ארבע ליבות יישומים RV64GC‏ עבור הרצת Linux וליבת מנטר RV64IMAC‏ עבור ניהול פונקציות רמה-נמוכה.

כדי למקסם את הביצועים ולהבטיח דיוק נתונים על פני ליבות, ה-PolarFire SoC מספק L2 Cache‏משותף, תת-מערכת זיכרון קוהרנטית ובקר זיכרון DDR משולב לתמיכה ב-2 גיגה-בייט (Gbytes) של זיכרון LPDDR4 מובנה. יישומים מורכבים נתמכים גם על ידי אחסון eMMC‏ Gbyte‏ 16‏ של ה-BeagleV-Fire‏, וזיכרון Flash‏ SPI Flash‏ של 128 מגה-ביט (Mbit‏).

לצד תת-מערכת המעבד RISC-V, ה-PolarFire SoC משלב מארג FPGA (איור 2) המאפשר למפתחים לבנות מסלולי עיבוד דטרמיניסטיים עבור יישומי זמן-אמת עם שיהוי-קצר ולממש האצת חומרה מותאמת-במיוחד עבור צינורות-עיבוד היסקי AI‏. כחלק מהמערכת השלמה, מארג זה מכיל 23,000 רכיבי לוגיקה ומשאבים משלו, המאפשרים לו לפעול באופן עצמאי מליבות העיבוד העיקריות.

עם מספר אפשרויות אתחול מאובטח, מאפייני אבטחת החומרה המשולבת של PolarFire SoC מאפשרים למפתחים ליישם מודל אבטחה מפורט, ההופך אותו לפלטפורמה שימושית עבור עמידה בדרישות אבטחת סייבר מודרניות. מאפיינים אלה כוללים:

■ Root-of-Trust‏ חומרה שלא-ניתן-להשתקה באמצעות Physically Unclonable Function‏ (PUF‏)

■ אחסון מפתחות מאובטח עם תכנות חד-פעמי (OTP) או אחסון מאובטח לא-נדיף באמצעות Unique Device Secrets‏ (UDS‏) ובקרת גישת מפתח עם אכיפה-בחומרה

■ מודול נגד-השחתה

מעבר לכך, ה-BeagleV-Fire מציע מספר נקודות-חיבור פיזיות משולבות עבור בניית מערכת מוכנה-ליישום שבה ניתן לאמת ולבדוק חבילות Linux‏ מותאמות-במיוחד (איור 3‏). אלו כוללות נקודת-חיבור Gigabit Ethernet‏ RJ45‏, נקודת-חיבור USB Type-C‏ עבור הספקת-כוח וחיבוריות, סוקט M.2 Key E‏, שני פסי-פינים Cape‏ תואמי BeagleBone‏ עם 46 פינים עבור הרחבת אקוסיסטם גדולה יותר, וממשק טורי מצלמה (CSI‏) עבור אינטגרציה ישירה. חתימת-שטח JTAG TAG-CONNECT‏ מסופקת עבור ניפוי-באגים, וה-BeagleV-Fire‏ תומך גם בהרחבה תואמת-SYZYGY‏ עבור רכיבים היקפיים מוכווני-FPGA‏.

איור BeagleV-Fire :1 של B eagleBoard.org מציג פלטפורמת SBC קומפקטית עבור אינטגרציית טכנולוגיות קוד-פתוח בהתקנים משובצים. מקור התמונה: BeagleBoard.org

כיצד לבנות תצורת Linux ראשונית על ה-SBC של BeagleV-Fire

בעת בניית חבילת Linux קלת-משקל עבור BeagleV-Fire, המפתחים חייבים תחילה להשיג שכבת BSP מתאימה של פרויקט Yocto‏. זה יתן את תצורת U-Boot‏, תצורת ברירת-המחדל של Linux Kernel, עצי התקנים לתמיכה בלוח והגדרות תמיכה ברכיבים היקפיים. מאגר GitHub‏ תומך בכל ערכות ההערכה של PolarFire SoC, כולל ה-BeagleV-Fire.

לאחר התקנת כל הנדרש עבור פרויקט Yocto, השכבות הבאות מספקות את הבסיס לבנייה ויהיה צורך לשכפל אותן:

■ bitbake‏

■ ליבת meta-openembedded‏

■ meta-yocto‏ (עבור חבילת ייחוס Poky‏)

■ meta-mchp-common‏

■ meta-mchp-polarfire-soc/meta-mchp-polarfire-soc-bsp‏

■ meta-mchp-polarfire-soc/meta-mchp-polarfire-soc-community‏

■ שכבות נוספות לפי הנדרש עבור הפרויקט

לאחר סיום פעולה זו, ניתן לבנות תמונה מינימלית באמצעות המטרה של MACHINE = "beaglev-fire"‏ וקובץ תצורה kas‏. רשימה 1 מציגה תצורה לדוגמה.

הרצת "kas build core-image-minimal" תיצור לאחר מכן את כל אובייקטי הבנייה הנדרשים לאתחול ה-BeagleV-Fire לתוך מעטה פשוט, כולל הקבצים הבינאריים של U-Boot ותמונת FIT המכילה את ליבת Linux והמודולים, עץ ההתקן ואת שורש מערכת הקבצים.

לאחר בניית תמונת Linux מינימלית עבור BeagleV-Fire באמצעות פרויקט Yocto, ניתן לבצע את ההליכים הסטנדרטיים כדי ליצור תמונה מותאמת-במיוחד ולתפור את הבנייה לדרישות המדויקות של הפרויקט. במערכות רובוטיקה ותעשייתיות, לדוגמה, Linux משמשת לעתים קרובות לצד RTOS מסורתי יותר, כגון FreeRTOS או Zephyr, כדי לאפשר עיבוד מתקדם לצד פעולות קריטיות-בזמן. פונקציונליות זו נתמכת היטב על ידי PolarFire SoC של BeagleV-Fire, אשר ניתן להגדיר עבור הרצת מספר מערכות הפעלה או יישומי Bare Metal בו-זמנית.

בהתחשב בכך שהתקנים משובצים רבים דורשים חיי פעולה של 10 שנים או יותר, הצירוף של RISC-V ISA פתוח, Linux ושחזור מבוסס-Yocto מאפשר לפלטפורמות מבוססות-PolarFire SoC להסתגל לאיומי אבטחה מתפתחים ולדרישות יישומים חדשות באמצעות עדכונים מקומיים או OTA שוטפים. בדרך זו, ה-BeagleV-Fire SBC מספק נקודת התחלה מצוינת עבור אימוץ קוד פתוח, ומגביר את הגמישות ואורך החיים של מערכות קצה חכמות.

איור 2: משפחת PolarFire S oC של Microchip משלבת מספר ליבות עיבוד RISC-V עם מארג FPGA ורסאטילי עבור עומסי עבודה דטרמיניסטיים. מקור התמונה: Microchip Technology

איור 3: למרות גודלו הקטן, ה- BeagleV-Fire של B eagleBoard.org מציע מספר נקודות- חיבור פיזיות עבור ממשק יישומים ישיר. מקור התמונה: BeagleBoard.org

רשימה 1: מוצג קובץ תצורה לדוגמה שיוצר את כל פריטי הבנייה הנדרשים לאתחול BeagleV-Fire לתוך מעטה פשוט. מקור הרשימה:  Microchip Technology

סיכום

מגבלות חישוביות, דרישות שיהוי (Latency‏) דטרמיניסטי, חשיפה לאבטחה ודרישות מחזור חיים ארוך יכולים להוות אתגרים לגיטימיים בעת הפעלת Linux במערכות משובצות מוגבלות-משאבים. ה-BeagleV-Fire SBC של BeagleBoard.org מספק ארכיטקטורה היברידית המשלבת יכולות RISC-V Linux עם לוגיקה דטרמיניסטית מבוססת-FPGA ומאפיייני אבטחה בחומרה כדי להתגבר על אתגרים אלה. בשילוב עם פרויקט Yocto ושכבות ה-BSP בקוד-פתוח של Microchip, המפתחים יכולים להשתמש בפלטפורמה זו כדי לבנות חבילות Linux עקיבות הממוטבות עבור יישומי רובוטיקה, IIoT ומחשוב קצה עם חיים ארוכים.

על המחבר

רולף הורן הוא מהנדס אפליקציה ב־ DigiKey משנת 2014, במסגרת צוות התמיכה הטכנית באירופה. הוא אחראי למענה על שאלות בתחום הפיתוח וההנדסה מלקוחות באזור EMEA, וכן לכתיבה והגהה של מאמרים ובלוגים בגרמנית עבור פלטפורמות TechForum ו־maker.io של החברה.

לפני כן עבד רולף בכמה חברות בתחום המוליכים למחצה, עם התמחות במערכות משובצות FPGA), מיקרו-בקרים ומעבדים) ליישומים תעשייתיים ורכביים. רולף הוא בוגר הנדסת חשמל ואלקטרוניקה מהאוניברסיטה למדעים יישומיים במינכן, והחל את דרכו כמומחה פתרונות מערכת בחברת הפצת רכיבים.

תחביבים: משפחה וחברים, טיולים עם VW קליפורניה ורכיבה על אופנוע BMW GS 100 משנת 1988.

Rolf Horn, Applications Engineer at DigiKey קרדיט: DigiKey


Rolf Horn, Applications Engineer at DigiKey

תגובות סגורות