שְׁאֵלָה:
כיצד ניתן לבצע אוטומציה של הגדרת raspi-config raspbian?
8DH
2015-03-22 17:46:48 UTC
view on stackexchange narkive permalink

מצאתי את עצמי מגדיר שוב ושוב את כל ה- pi's שלי עם raspbian באותו אופן כמעט באמצעות raspi-config.

האם יש דרך לחלץ את כל ההגדרות שביצעתי באמצעות raspi- להגדיר לתסריט הפעלה שאוכל להוריד עם wget לכל פי חדש שהגדרתי?

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

זה תלוי באיזו תצורה תרצה לעשות? raspi-config שנה קבצי תצורה שתוכל לשנות בדרך אחרת (/boot/config.txt,/etc/module.conf ...)
זה סקריפט פגז די פשוט של 1000 שורות ב- `/ usr / bin`, אם זה עוזר. אם ברצונך להשבית אותו החל מתמונות חדשות, מחק את `/ etc / init.d / apply_noobs_os_config` ואת הקישור ב-` / etc / rc2.d`.
בדיוק כפי ש- raspi-config מרכז את כל משימות ההתקנה הבסיסיות למקום אחד מבלי לדרוש ממני לדעת איך לבצע כל משימה הייתי רוצה DSL פשוט שיביא לי לציין את כל ההגדרות בקובץ אחד. בערך כמו דוקר.
מדוע לא להשתמש רק ב- docker?
כן למה לא? מהו פתרון העגינה המועדף על rpi?
אתה יכול כנראה ליצור סקריפט שיכול להזריק את העיכובים הנכונים ואת סטוקס המפתח מעל ssh. אם אתה משתמש ב- pi בודד ובכרטיסי SD שונים, עדיין תהיה לה אותה כתובת MAC כך שתוכל להזמין גם IP עבור זה.
אני מניח שלחבר'ה האלה ב- hypriot.com יש את פתרון העגינה שאני מחפש. http://blog.hypriot.com/
חָמֵשׁ תשובות:
Silly Freak
2016-05-27 14:54:40 UTC
view on stackexchange narkive permalink

לפחות בימינו, נראה raspi-config תומך במצב לא אינטראקטיבי:

  cat /boot/cmdline.txt # show cmdline.txtraspi-config nonint do_serial 1 # השבת consolecat סדרתי /boot/cmdline.txt # אשר שינויים raspi-config nonint do_serial 0 # הפעל consolecat סדרתי / boot / cmdline.txt # אשר שינויים  

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

זה נהדר!
אז כשאני מכין כרטיס SD אוכל לשים את התמונה שם, להוסיף את התסריט שלי לתיקיה ואז להפעיל את הסקריפט כאשר ה- pi אתחול.
האם חסרים לי שיפורים נוספים בהליך זה?
זה כל מה שאני מודע אליו - אם יש יותר, זה לא מתועד בצורה גלויה במיוחד. נקלעתי לזה כשחיפשתי את התסריט ולא חיפשתי מידע נוסף לאחר שמצאתי את התכונה הזו.
@8DH האם יש משהו שאתה לא יכול להתמודד עם שיטה זו? (אם זה עדיין רלוונטי עבורך באופן אישי)
Bruno Bronosky
2017-05-11 02:22:51 UTC
view on stackexchange narkive permalink

זה עדיין לא מתועד בשום מקום, אבל הכלי rc_gui (אני מניח שזה יהיה ממשק משתמש גרפי ל- raspi-config אם הייתי מתקין אי פעם את שולחן העבודה המלא) משתמש באפשרויות שורת פקודה ל- raspi-config תסריט bash. תוכלו לראות את רשימת האפשרויות המלאה ב קוד המקור C . עדכון: הרפו הרשמי נעלם משום מה. זהו ה מזלג הפעיל ביותר שיכולתי למצוא.

  / * מחרוזות פקודה * / # להגדיר GET_CAN_EXPAND "sudo raspi-config nonint get_can_expand" #define EXPAND_FS "sudo raspi -config nonint do_expand_rootfs "#define GET_HOSTNAME" sudo raspi-config nonint get_hostname "#define SET_HOSTNAME" sudo raspi-config nonint do_hostname% s "#define GET_BOOT_CLI" sudo raspi-config nonint get_bo "#define SET_BOOT_CLI" sudo raspi-config nonint do_boot_behaviour B1 "#define SET_BOOT_CLIA" sudo raspi-config nonint do_boot_behaviour B2 "#define SET_BOOT_GUI" sudo raspi-config nonint do_o הגדר את GET_BOOT_WAIT "sudo raspi-config nonint get_boot_wait" #define SET_BOOT_WAIT "sudo raspi-config nonint do_boot_wait% d" #define GET_SPLASH "sudo raspi-config nonint get_boot_splash" #das t do_boot_splash% d "#define GET_OVERSCAN" sudo raspi-config nonint get_overscan "#define SET_OVERSCAN" sudo raspi-config nonint do_overscan% d "#define GET_CAMERA" sudo raspi-config nonint get_camera_dit_camera_d % d "#define GET_SSH" sudo raspi-config nonint get_ssh "#define SET_SSH" sudo raspi-config nonint do_ssh% d "#define GET_VNC" sudo raspi-config nonint get_vnc "#define SET_VNC" sudo rasp-do "#define GET_SPI" sudo raspi-config nonint get_spi "
#define SET_SPI "sudo raspi-config nonint do_spi% d" #define GET_I2C "sudo raspi-config nonint get_i2c" #define SET_I2C "sudo raspi-config nonint do_i2c% d" #define GET_SERIAL "sudo rasp-config GET_SERIALHW "sudo raspi-config nonint get_serial_hw" #define SET_SERIAL "sudo raspi-config nonint do_serial% d" #define GET_1WIRE "sudo raspi-config nonint get_onewire" #define SET_1WIRE "sudo raspi-config-Gigef sudo raspi-config nonint get_rgpio "#define SET_RGPIO" sudo raspi-config nonint do_rgpio% d "#define GET_PI_TYPE" sudo raspi-config nonint get_pi_type "#define GET_OVERCLOCK" sudo raspi הגדר SET_OVERCLOCK "sudo raspi-config nonint do_overclock% s" #define GET_GPU_MEM "sudo raspi-config nonint get_config_var gpu_mem /boot/config.txt"#define GET_GPU_MEM_256" sudo ras_con /boot/config.txt"#define GET_GPU_MEM_512 "sudo raspi-config nonint get_config_var gpu_mem_512 /boot/config.txt"#define GET_GPU_MEM_1K" sudo raspi-config nonint get_config_var config nonint do_memory_split% d "#define GET_HDMI_GROUP" sudo raspi-config nonint get_config_var hdmi_group /boot/config.txt"#define GET_HDMI_MODE "sudo raspi-config nonint get_config_var hd__mot_config_var nonint do_resolution% d% d "#define GET_WIFI_CTRY" sudo raspi-config nonint get_wifi_country "#define SET_WIFI_CTRY" sudo raspi-config nonint do_wifi_country% s "#define CHANGE_PASSWD" (echo \ "% הד \ "% s \"; הד \ "% s \") | passwd " 

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

  locale = en_US.UTF-8layout = ussudo raspi-config nonint do_change_locale $ localesudo raspi-config nonint do_configure_keyboard $ layout  

המשתנים הם הערכים שהייתי בוחר ממשק המשתמש של הקללות. אפשרויות המקום הן השדה הראשון בקובץ / usr / share / i18n / SUPPORTED . אפשרויות פריסת המקלדת הן שמות הספריות ב- / usr / share / X11 / xkb / symbols / . בהיותי בארה"ב, אני משתמש ב en_US.UTF-8 ו- us . YMMV

אם אתה מעוניין לבצע אוטומציה של ההתקנה של פטל פטל, עליך לבדוק את הפרויקט [pi-init2] (https://github.com/richardbronosky/pi-init2) שלי ב- github. הוא מספק את התכונה המבוקשת זמן רב של "הפעלת סקריפט על אתחול (ללא ראש)".
יש גם 'sudo raspi-config nonint do_audio% d' לבחירת פלט שמע (0 = אוטומטי, 1 = שקע, 2 = HDMI)
@golimar מאיפה השגת את זה? פרויקט rc_gui המקורי נעלם והמזלג הטוב ביותר שיכולתי למצוא (התשובה עודכנה) אינו כולל את 'do_audio'. אבל זו אכן פונקציה שנמצאת ב- `curl -sL https://github.com/RPi-Distro/raspi-config/raw/master/raspi-config | grep -E '(do | get) _ [a-zA-Z0-9_] + \ (' | מיין | uniq`
כאן: https://gist.github.com/damoclark/ab3d700aafa140efb97e510650d9b1be, אבל הפקודה שלך נהדרת למצוא את כולם, תודה
Dmitry Grigoryev
2019-07-12 11:38:26 UTC
view on stackexchange narkive permalink
כל מה שעושה raspi-config הוא לערוך כמה קבצי תצורה, שאותם תוכלו לערוך באמצעות סקריפט. עיין במדריך sed כדי לראות כיצד ניתן לבצע ביעילות עריכות כאלה.

אם יש לך הרבה שינויים להחיל בצורה זו, אשקול להגדיר תמונת RPi נקייה. באופן הרצוי, הבדל מערכת הקבצים השלמה שלה * מול תמונת וניל, ואז החל את השינויים באמצעות תיקון כאשר אתה צריך להגדיר התקנה חדשה.

לבסוף, תסתכל על כלים כגון וכו 'שומר - אלה נועדו במיוחד כדי לתפעל שינויים בתצורה ומסוגלים לעקוב אחר שינויים עדינים ש diff פשוט יחסר להם כהרשאות. שימו לב שבניגוד לשמו, etckeeper אינו מוגבל ל / etc , למשל. מריץ etckeeper -d / boot init; etckeeper -d / boot commit יבצע גיבוי של הקבצים ב- /boot.

(*) כנראה שזה לא ברור, אז כדי לנקות את כל אי ההבנות, אני מתכוון שכדאי להריץ משהו כמו diff -r / etc / mnt / vanilla_root / etc > etc.diff ו- diff -r / boot / mnt / vanilla_boot > boot.diff , לא diff my.img vanilla.img .

joan
2015-03-22 20:04:51 UTC
view on stackexchange narkive permalink

השתמש ב- dd (או דומה) להעתקת תמונת ה- Pi העובדת למחשב האישי שלך.

השתמש ב- dd (או דומה) להעתקת התמונה המועתקת מהמחשב שלך ל- Pi שלך.

אדם dd

כן, יש כמובן דרך התמונה אבל אז אצטרך לשמור על התמונה עם עדכונים ודברים. (אלא אם כן יש לכך פיתרון אלגנטי ...)
@8DH, ההצעה שלך להוריד הגדרות ואז העלאה פירושה גם שאתה צריך לשמור על "תמונה" עם עדכונים.
ON5MF Jurgen
2019-07-12 10:27:08 UTC
view on stackexchange narkive permalink

יש לי כרטיס SD אחד 100% שהוגדר לרצונות שלי שאשמור כבסיס לכל ההתקנות החדשות.

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



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...