תוכן עניינים:

Orange PI HowTo: הידור כלי Sunxi עבור Windows תחת Windows: 14 שלבים (עם תמונות)
Orange PI HowTo: הידור כלי Sunxi עבור Windows תחת Windows: 14 שלבים (עם תמונות)

וִידֵאוֹ: Orange PI HowTo: הידור כלי Sunxi עבור Windows תחת Windows: 14 שלבים (עם תמונות)

וִידֵאוֹ: Orange PI HowTo: הידור כלי Sunxi עבור Windows תחת Windows: 14 שלבים (עם תמונות)
וִידֵאוֹ: Raspberry Pi 4B в корпусе Argon ONE M.2 c SSD диском 128 ГБ, собираем сервер для Home Assistant 2024, נוֹבֶמבֶּר
Anonim
Orange PI HowTo: הידור כלי Sunxi עבור Windows תחת Windows
Orange PI HowTo: הידור כלי Sunxi עבור Windows תחת Windows

דרישות:

אתה תצטרך

  1. מחשב (שולחן עבודה) שבו פועל Windows.
  2. חיבור לאינטרנט.
  3. לוח PI כתום.

האחרון הוא אופציונלי, אבל אני בטוח שכבר יש לך את זה. אחרת לא תקרא את זה להוראה.

כאשר אתה קונה את מחשב הלוח היחיד Orange PI הוא נשאר רק פיסת מתכת מתה עד שתוגדר כראוי. וקובץ התצורה העיקרי שלו: "script.bin" הוא המפתח הראשון שהביא אותו לחיים. קובץ זה ממוקם במחיצת האתחול של כרטיס ה- SD הניתן לאתחול שלך. ולמרבה המזל לנו, ברוב הפצות הלינוקס מהאתר הרשמי (https://www.orangepi.org/downloadresources/) מחיצה זו היא FAT32 וניתן לראות אותה בקלות על ידי כל מחשב Windows. זה אכן מפשט את הדברים, כיוון שעדיין אין דרך אמינה לכתוב למחיצות ext2 של Linux מתחת לחלונות.

למזלנו, קובץ התצורה script.bin כולל פורמט בינארי שאינו ידידותי לחלוטין לעריכה אנושית. צריך איזה כלי תוכנה על מנת לפענח אותו ולהצפין בחזרה לאחר ביצוע השינויים הדרושים. ומערכת כלים כזו אכן קיימת. זהו כלי SUNXI לשמצה. הזבוב במשחה הוא שהיא מיועדת לפעול תחת לינוקס ואנו גם צריכים להחזיק מכונת לינוקס ייעודית רק לשימוש בכלי sunxi, או בכדי למצוא דרך כיצד לאסוף אותם לחלונות.

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

שלב 1: הורד את כלי Sunxi

הורד את כלי Sunxi
הורד את כלי Sunxi
הורד את כלי Sunxi
הורד את כלי Sunxi

קבל את הגרסה העדכנית (או ההכרחית) של קוד המקור sunxi-tools. עבור אל כתובת האתר: https://github.com/linux-sunxi/sunxi-tools/releases ובחר להוריד כארכיון zip.

שלב 2: פרק את קוד המקור

פתח את קוד המקור
פתח את קוד המקור

לאחר השלמת ההורדה, פרקו את קוד המקור לתיקייה שתבחרו. (יתר על כן אני מניח שהתיקיה הזו היא c: / sunxitools \, אז תחליף את הנתיב בנתיב משלך).

שלב 3: הורד קוד:: בלוקים

קוד הורדה:: בלוקים
קוד הורדה:: בלוקים

אם יש לך עותק מותקן של מהדר c ++ תפעולי כלשהו עבור חלונות. ואם אתה יודע כיצד להשתמש בו, תוכל להמשיך ישירות לשלב 3. אחרים צריכים לקבל מהדר c ++ מתאים ופגז (IDE) כדי להשתמש בו בנוחות. הבחירה שלי היא קוד:: בלוקים עבור Windows יחד עם שרשרת כלים מותקנת מראש של MinGW. אתה יכול לקבל את זה מכאן:

הורד והתקן אותו.

שלב 4: בדוק את ה- IDE שלך

בדוק את IDE שלך
בדוק את IDE שלך

כדי לבדוק אם הדברים מסתדרים, הפעל חסימות קוד, לחץ על "צור פרוייקט חדש", בחר "יישום קונסולה", בחר c או c ++, הקלד את כותרת פרוייקט התשלום, שמור את ברירות המחדל ללא שינוי בחלון הבא ולחץ על "סיום ".

שלב 5: השלם את הבדיקה

מבחן מלא
מבחן מלא

לאחר מכן לחץ על משולש ירוק בלוח העליון של ה- IDE או השתמש בנקודת התפריט Build-> Run. אם הדברים התנהלו כשורה אתה אמור לראות הודעה מהאפליקציה "עולם עולם" שנוצר אוטומטית שלך בחלון "DOS" השחור.

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

שלב 6: צור פרויקט חדש

צור פרויקט חדש
צור פרויקט חדש
צור פרויקט חדש
צור פרויקט חדש
צור פרויקט חדש
צור פרויקט חדש
צור פרויקט חדש
צור פרויקט חדש

כעת אמורה להיות לך ערכת כלים מתכנת C/C ++ תפעולית וקודי המקור של sunxi-tools לא ארוזים בתיקייה c: / sunxitools / במחשב שלך. הגיע הזמן להרכיב פרויקט. צור פרויקט חדש ב- IDE שלך. בחר בפרוייקט C רגיל (לא c ++) מסוג "יישום קונסולה".

וודא שאתה יוצר פרויקט בתיקייה c: / sunxitools / ולא במקום אחר. (חסימות קוד EG נוטות ליצור תיקיית משנה עם אותו שם כמו לפרויקט. אז אם שמת את הפרויקט שלך, אמור "בדוק" ונסה למקם אותו ב- c: / sunxitools \, אתה עלול לסיים שהפרויקט נעלם ל- c: / sunxitools / test / אם אינך מספיק קשוב.) כלי Sunxi מכילים מספר כלי עזר, אך לצורךנו נצטרך רק אחד: כלי השירות שנקרא "fexc".

שלב 7: הוסף קבצים לפרויקט

הוסף קבצים לפרויקט
הוסף קבצים לפרויקט

כלי השירות "fexc" אחראי להמרת script.bin לפורמט טקסט ולהמרה אחורית לבינארית. חשוב שתהליך ההפעלה של כלי השירות הזה יקבל את השם "fexc.exe", אז טוב אם קראת לפרויקט שלך בשם "fexc". עם זאת תוכל להשתמש בכל שם אחר של הפרויקט, מכיוון שתמיד תוכל לשנות את שם ההפעלה לאחר האוסף, או שתוכל לבחור "פרויקט-> מאפיינים" מתפריט הנפתח העליון ובחלון המופיע לחץ על הכרטיסייה "בנה מטרות", וערוך את השדה "פלט שם קובץ" כדי לעקוף את שם ההפעלה.

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

  • fexc.c
  • script.c
  • script_bin.c
  • script_fex.c
  • script_uboot.c

ושבעה קבצי כותרות:

  • list.h (העבר אותו מטופס c: / sunxitools / include / תיקייה לתיקייה c: / sunxitools / תיקייה)
  • fexc.h
  • script.h
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • version.h

הקפד להוציא את main.c שנוצר אוטומטית מהפרויקט, מכיוון של- fxc.c יש כבר את הפונקציה "int main". (זכור שלכל תוכנית צריכה להיות רק פונקציה עיקרית אחת?).

כל קבצי קוד המקור הדרושים כבר נמצאים בתיקיית המשנה, אליה פרקת את קוד המקור. קבצי הכותרת ראויים לזוג מילים, היכן ניתן להשיג אותן. "list.h" - הוא בדרך כלל בתיקיית המשנה "כולל" של ערכת קוד המקור שלא ארוז. "version.h" - פשוט צור אותו בעצמך. שים שם מחרוזת כמו:

#define גרסה "Win32"

לאחר מכן שמור וסגור את הקובץ. (אתה יכול לקשט אותו עם #define's ו- #ifdef's אם תרצה.)

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

שלב 8: הקפד על Gcc עקוב אחר תקן השפה ISO ISO 1999

האם Gcc עקוב אחר תקן השפה ISO C 1999
האם Gcc עקוב אחר תקן השפה ISO C 1999

על מנת שהמהדר לא יתלונן סגנון התכנות החופשי מדי הגדר את הסטנדרט "с99" של האוסף. בחסימות קוד נכנסים לתפריט "פרויקט -> אפשרויות בנייה" וב"הגדרות מהדר -> דגלי מהדר "סמן את תיבת הסימון" האם gcc בצע את תקן שפת ISO C 1999 ". או שאתה יכול פשוט להוסיף "-std = c99" למחרוזת האפשרויות של המהדר שלך. עכשיו, אם אתה מנסה להרכיב את הפרויקט, טונות של טעויות צריכות להתחיל ואתה אחד לאחד עם התלות החסרה.

שלב 9: מצא את התלות החסרה

מצא את התלות החסרה
מצא את התלות החסרה

התלות החסרה היא קובץ "mman.h" - הכותרת של איזה סוג של מנהל זיכרון לינוקס. ל- Windows C מקורי אין קובץ כזה, אך למרבה המזל יש יציאת Windows שלו. עבור אל https://github.com/witwall/mman-win32 עבור Windows. הורד את תמונת המצב של מאגר git.

שלב 10: פרק את ה- Mman

פרק את ה- Mman
פרק את ה- Mman

פרק את קבצי mman.c ו- mman.h, הנח אותם בתיקייה c: / sunxitools \.

שלב 11: והוסף אותם לפרויקט

והוסף אותם לפרויקט
והוסף אותם לפרויקט

שלב 12: הנתיב הנכון

הנתיב הנכון
הנתיב הנכון

ובקובץ "fex.c" שורת raplece:

#לִכלוֹל

אל ה

#כלול "mman.h"

בשלב זה המהדר שלך לא אמור להתלונן על שום דבר ותקבל את ההמתנה הארוכה fexc.exe כפלט. אל תהיה מאושר מוקדם מדי. השירות עדיין לא מתפקד במלואו. אתה יכול להבטיח זאת על ידי פענוח קובץ script.bin חוקי כלשהו לתוך טופס הטקסט - script.fex ובהמשך הצפנת קובץ script.fex חזרה לתוך script.bin. תוכל לציין כי גודל script.bin שהתקבל שונה במקצת מגודל script.bin המקורי. ואם תנסה לפענח את התוצאה שוב היא תיכשל. אף ה- PI של Orange לא יעבוד עם script.bin זה. כדי לקבל את השירות הפונקציונלי עלינו לפרוק פצצת קוד, שמישהו הכניס לקוד המקור של sunxi-tools. זה יהיה השלב הבא שלנו.

שלב 13: גירוש שדים

גירוש שדים
גירוש שדים

כדי לפרוק את פצצת הקוד פתח את קובץ הקוד fexc.c ומצא שם מחרוזת טקסט של התוכן הבא:

אחרת אם ((out = open (שם קובץ, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {

פשוט החלף אותו במחרוזת הבאה:

אחרת אם ((out = open (שם קובץ, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {

אם לא הספרות הרעות "666" במחרוזת הראשונה הייתי חושב שהמקודד פשוט שכח להשתמש בדגל O_BINARY. אבל מספר החיה אכן מבהיר את כוונותיו בצורה שקופה. קח בחשבון, כמה זה גאוני: בשל ההבדל העדין באופן עיבוד הקבצים ב- Windows ובלינוקס אין לפצצה השפעה כאשר הכלי מורכב ומשתמש תחת Linux. אבל זה הורס הכל כאשר השירות משמש תחת Windows.

לאחר פירוק הנשק, תוכל סוף סוף לאסוף ולשתמש בבטחה בכלי השירות fexc במחשב השולחני של Windows.

שלב 14: הערות

הערות
הערות

1) כדי להשתמש בנוחות ב- fxc, עליך לקבל שני קבצי אצווה:

bin2fex.bat - ו- - fex2bin.bat.

אתה יכול להשיג אותם מאיזה build fexc.exe חינמי עבור Windows, או שתוכל להקליד אותם בעצמך:

  • bin2fex.bat צריך להכיל "fexc -I bin -O fex script.bin script.fex"
  • fex2bin.bat צריך להכיל "fexc -O bin -I fex script.fex script.bin"

2) אם קשה למצוא את מנהל ה- mman עבור Windows אפשר להימנע מהשימוש בו בכלל. עם זאת נדרשת עריכה רבה יותר של קובץ fexc.c ודורשת לפחות ידע כלשהו ב- c. למען השכנוע שלך, אני משתף את קוד המקור העריך של ה- fexc מ- sunxi-tools v1.4 ללא תלות ב- mman.h יחד עם קובץ פרוייקט codeblocks ועם script.bin לדוגמא מ- Pi כתום. אתה יכול להוריד fexc_nomman.zip

3) ייתכן שבגרסאות הנגרמות של כלי sunxi הם יוסיפו עוד תלות. אל תהסס למצוא אותם דרך האינטרנט ולהוסיף אותם לפרויקט האוסף שלך.

5) לבסוף הנה הגירסה המורכבת מראש של fexc.exe עבור Win32:

fexc_nomman.zip

אם אתה עצלן מספיק אל תהסס להשתמש ב- ver. עם זאת היזהר שזה לא יתעדכן אם/כאשר הגרסאות החדשות יותר של SunxiTools/Windows יהיו זמינות. אז עדיף ללמוד כיצד לאסוף אותם מאשר להיות תלוי באיזה מבנה בינארי קבוע, אני מניח.

4) ה- "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner" וכו '… הם סימני המסחר של בעליהם בהתאמה.

5) אם המהדר מתלונן על לא למצוא פונקציות mman, כמו:

הפניה לא מוגדרת ל '_ imp_mmap'

שים לב שאוהבי קהילת הפיתוח של mman הגדירו ששכחו שניתן לקבץ את הקוד לא רק כספריית dll. זה יכול להיות גם ספרייה סטטית או קוד עצמאי כמו שיש לנו כאן. כדי לתקן את הבעיה ערוך את קובץ "mman.h" כדלקמן:

א) מצא את המיתרים:

#if מוגדר (MMAN_LIBRARY)

#define MMANSHARED_EXPORT _declspec (dllexport) #else #define MMANSHARED_EXPORT _declspec (dllimport) #endif

ב) הוסף את המחרוזת

#הגדר MMANSHARED_EXPORT

ממש מתחת למחרוזות שנמצאו בשלב הקודם

מוּמלָץ: