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

מאת ‎Brandon Lewis

באדיבות ‎DigiKey's North American Editors

טכנולוגיית קוד פתוח מציגה בפני מפתחי מערכות אלקטרוניות נתיב להפחתת עלויות, זמן הגעה מהיר יותר לשוק והארכת מחזורי חיי המוצר על ידי הסרת מחסומים קנייניים ועידוד שיתוף פעולה. כיום, הזדמנויות קוד פתוח משתרעות על פני כל המערכות, החל ממערכות הפעלה ועד לחומרה של מחשבי לוח יחיד (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 משובץ.

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

ממדי הפלטפורמה הקומפקטית הם 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 רכיבי לוגיקה ומשאבים משלו, המאפשרים לו לפעול באופן עצמאי מליבות העיבוד העיקריות.

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

עם מספר אפשרויות אתחול מאובטח, מאפייני אבטחת החומרה המשולבת של 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‏ של BeagleBoard.org‏איור 3: למרות גודלו הקטן, ה-BeagleV-Fire‏ של BeagleBoard.org‏ מציע מספר נקודות-חיבור פיזיות עבור ממשק יישומים ישיר. (מקור התמונה: 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 מציגה תצורה לדוגמה:

Copy
header:
  version: 19
 
repos:
  openembedded-core:
    url: git://git.openembedded.org/openembedded-core.git
    # yocto-5.0.15
    commit: 6988157ad983978ffd6b12bcefedd4deaffdbbd1
    layers:
      meta:
 
  bitbake:
    url: git://git.openembedded.org/bitbake.git
    # yocto-5.0.15
    commit: 8dcf084522b9c66a6639b5f117f554fde9b6b45a
    layers:
      bitbake: disabled
 
  meta-yocto:
    url: git://git.yoctoproject.org/git/meta-yocto.git
    # yocto-5.0.15
    commit: 9bb6e6e8b016a0c9dfe290369a6ed91ef4020535
    layers:
      meta-poky:
      meta-yocto-bsp:
 
  meta-mchp:
    url: https://github.com/linux4microchip/meta-mchp.git
    branch: scarthgap
    path: layers/third-party/meta-mchp
    layers:
      meta-mchp-common:
      meta-mchp-polarfire-soc/meta-mchp-polarfire-soc-bsp:
      meta-mchp-polarfire-soc/meta-mchp-polarfire-soc-community:
 
machine: beaglev-fire
 
 
local_conf_header:
  Users: |
    EXTRA_IMAGE_FEATURES = "allow-empty-password empty-root-password \
allow-root-login"

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

הרצת "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 מספק נקודת התחלה מצוינת עבור אימוץ קוד פתוח, ומגביר את הגמישות ואורך החיים של מערכות קצה חכמות.

סיכום

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

DigiKey logo

מיאון אחריות: דעות, אמונות ונקודות מבט המובעות על ידי מחברים שונים ו/או משתתפי פורום באתר אינטרנט זה לא בהכרח משקפות את הדעות, האמונות ונקודות המבט של חברת DigiKey או את המדיניות הרשמית של חברת DigiKey.

אודות כותב זה

Image of Brandon Lewis

Brandon Lewis

Brandon Lewis has been a technical writer and editor for over 15 years, serving as editor-in-chief at various electronics engineering trade publications. Brandon’s areas of focus include microcontrollers, multicore embedded processors, embedded Linux and real-time operating systems, industrial communications protocols, single-board computers and computer on modules, and other aspects of real-time computing. He is an accomplished podcaster, YouTuber, event moderator, conference chair, and product reviewer.

אודות מוציא לאור זה

DigiKey's North American Editors