কীভাবে একজন রাস্পবিয়ান রাস্পি-কনফিগারেশন সেটআপটি স্বয়ংক্রিয় করতে পারে?


17

আমি বারবার রসপি-কনফিগারেশন ব্যবহার করে আমার পিসিকে রাসপবিয়ানের সাথে বার বার সেট আপ করতে পেয়েছি।

আমি নির্ধারিত স্ক্রিপ্টে রাস্পি-কনফিগারেশন ব্যবহার করে যে সমস্ত সেটিংস তৈরি করেছি তা যে আমি সেট করে রেখেছি প্রতিটি নতুন পাইতে উইজেট দিয়ে ডাউনলোড করতে পারি?

একই প্রভাব সহ একটি অনুরূপ সমাধানও প্রশংসা করা হবে। আমি অনুমান করি যে আমি আরপিআই ডকার বাস্তবায়নগুলির মধ্যে একটি চেষ্টা করতে পারি তবে আমি জানি না যে স্টাফটি কীভাবে রক্তপাতের প্রবণতা।


1
এটি নির্ভর করে আপনি কোন কনফিগারেশনটি করতে চান? আপনি অন্য কোনও উপায়ে (/boot/config.txt,/etc/module.conf ...) ব্যবহার করে সংশোধন করতে পারবেন এমন কনফিগারেশন ফাইলগুলিতে raspi-config পরিবর্তন করুন
এমপ্রোমনেট

1
এটি যদি খুব সহজ 1000 লাইন শেল স্ক্রিপ্ট হয় /usr/binতবে যদি তা সাহায্য করে। আপনি যদি তাজা চিত্রগুলি দিয়ে শুরু করে এটি অক্ষম করতে চান তবে মুছুন /etc/init.d/apply_noobs_os_configএবং লিঙ্কটি /etc/rc2.d
স্বর্ণলোকস

ঠিক যেমন রাস্পি-কনফিগারেশন সমস্ত বেসিক সেটআপ টাস্কগুলিকে এক জায়গায় কেন্দ্রীভূত করে আমাকে প্রতিটি টাস্ক কীভাবে করতে হয় তা জানতে না করে আমি একটি সাধারণ ডিএসএল চাই যা আমাকে একটি ফাইলে সমস্ত সেটিংস নির্দিষ্ট করে দেয়। মত ডকার।
8DH

শুধু ডকার ব্যবহার করবেন না কেন?
টিম হল্ট

হ্যাঁ, কেন না? আরপিআইয়ের জন্য পছন্দের ডকার সমাধান কী?
ডিএইচ

উত্তর:


20

কমপক্ষে আজকাল, raspi-configনিরবচ্ছিন্ন মোড সমর্থন করে বলে মনে হচ্ছে:

cat /boot/cmdline.txt            # show original cmdline.txt
raspi-config nonint do_serial 1  # disable serial console
cat /boot/cmdline.txt            # confirm changes
raspi-config nonint do_serial 0  # enable serial console
cat /boot/cmdline.txt            # confirm changes

এটির সাহায্যে আপনি সেটআপ স্ক্রিপ্টগুলি লিখতে পারেন যা ইন্টারেক্টিভ কমান্ডের মাধ্যমে আপনি যা কিছু করতে পারেন তা করতে পারেন এবং এটি ঠিক একই জিনিসগুলি করবে। যদিও আপনাকে স্ক্রিপ্টের উত্স থেকে প্রাসঙ্গিক কমান্ড এবং তাদের ব্যবহার সন্ধান করতে হবে।


1
দারুণ!
ডিএইচ

সুতরাং যখন আমি একটি এসডি কার্ড প্রস্তুত করি তখন আমি ছবিটি সেখানে রাখতে পারি, আমার স্ক্রিপ্টটি ফোল্ডারে যুক্ত করতে এবং তারপরে পাইটি বুট করার পরে স্ক্রিপ্টটি চালাতে পারি।
ডিএইচ

আমি অনুপস্থিত এই পদ্ধতিতে অন্য কোন উন্নতি আছে?
ডিএইচ

1
এটাই আমি সচেতন - এটি যদি আরও থাকে তবে এটি খুব দৃশ্যমান নথিভুক্ত নয়। স্ক্রিপ্টটি দেখার সময় আমি এতে হোঁচট খেয়েছি, এবং এই বৈশিষ্ট্যটি খুঁজে পাওয়ার পরে আমি আরও তথ্যের সন্ধান করিনি।
সিলি ফ্রিক

1
@ 8DH এমন কি এমন কিছু আছে যা আপনি এই পদ্ধতিতে পরিচালনা করতে পারবেন না? (যদি এটি ব্যক্তিগতভাবে এখনও আপনার কাছে প্রাসঙ্গিক হয়)
সিলি ফ্রিক

17

এটি এখনও কোথাও নথিভুক্ত করা হয়নি, তবে rc_gui সরঞ্জাম (আমি ধরে নিচ্ছি এটি যদি আমি কখনই পূর্ণ ডেস্কটপ ইনস্টল করতে পারি তবে এটি রাস্পি-কনফিগারেশনের একটি গ্রাফিক্যাল ইউজার ইন্টারফেস হবে) রাস্পি-কনফিগারেশ বাশ স্ক্রিপ্টে কমান্ড লাইন বিকল্পগুলি ব্যবহার করে। আপনি সি উত্স কোডে বিকল্পগুলির সম্পূর্ণ তালিকা দেখতে পাবেন । আপডেট: সরকারী রেপো কোনও কারণে অদৃশ্য হয়ে গেছে। এটি সন্ধান করা সবচেয়ে সক্রিয় কাঁটাচামচ

/* Command strings */
#define 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_boot_cli"
#define GET_AUTOLOGIN   "sudo raspi-config nonint get_autologin"
#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_boot_behaviour B3"
#define SET_BOOT_GUIA   "sudo raspi-config nonint do_boot_behaviour B4"
#define 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"
#define SET_SPLASH      "sudo raspi-config nonint 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"
#define SET_CAMERA      "sudo raspi-config nonint do_camera %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 raspi-config nonint do_vnc %d"
#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 raspi-config nonint get_serial"
#define 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 nonint do_onewire %d"
#define GET_RGPIO       "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-config nonint get_config_var arm_freq /boot/config.txt"
#define 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 raspi-config nonint get_config_var gpu_mem_256 /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 gpu_mem_1024 /boot/config.txt"
#define SET_GPU_MEM     "sudo raspi-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 hdmi_mode /boot/config.txt"
#define SET_HDMI_GP_MOD "sudo raspi-config 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\" ; echo \"%s\" ; echo \"%s\") | passwd"

আপডেট: আমি লক্ষ্য করেছি যে লোকেল বা কীবোর্ড সেটিংস সম্পর্কে কিছুই নেই। সুতরাং, এটি আমাকে পরামর্শ দেয় যে আমাদের অবশ্যই উত্সটি পরীক্ষা করতে হবে raspi-config। ভাগ্যক্রমে কীভাবে স্ক্রিপ্টটি nonintকার্যকরভাবে ব্যবহার করতে হয় সে সম্পর্কে ধারণা পেতে আমাদের কাছে উপরে প্রচুর উদাহরণ রয়েছে। সুতরাং, মাথাছাড়াভাবে এই সমস্যাটি সমাধান করার জন্য আমার যা করা দরকার তা হ'ল:

locale=en_US.UTF-8
layout=us
sudo raspi-config nonint do_change_locale $locale
sudo raspi-config nonint do_configure_keyboard $layout

ভেরিয়েবলগুলি হ'ল মানগুলি যা আমি অভিশাপের UI থেকে পছন্দ করেছিলাম। লোকেল বিকল্পগুলি ফাইলের প্রথম ক্ষেত্র /usr/share/i18n/SUPPORTED। কীবোর্ড বিন্যাস বিকল্পগুলি ডিরেক্টরিগুলির নাম /usr/share/X11/xkb/symbols/। মার্কিন যুক্তরাষ্ট্রে থাকায়, আমি en_US.UTF-8এবং ব্যবহার করি us। YMMV


2
আপনি যদি রাস্পবেরি পিসের সেটআপটি স্বয়ংক্রিয় করতে আগ্রহী হন, আপনার গিথুবটিতে আমার পাই-ইন 2 প্রকল্পটি পরীক্ষা করা উচিত । এটি "বুট-এ একটি স্ক্রিপ্ট চালান (মাথাছাড়াভাবে") এর দীর্ঘ-অনুরোধযোগ্য বৈশিষ্ট্য সরবরাহ করে।
ব্রুনো ব্রোনসকি

এছাড়াও রয়েছে sudo raspi-config nonint do_audio %dঅডিও আউটপুট নির্বাচন (0 = অটো, 1 = জ্যাক, 2 = এবং HDMI) জন্য
golimar

@ গোলিমার আপনি কোথায় পেলেন? মূল আরসি_গুই প্রকল্পটি অদৃশ্য হয়ে গেছে এবং আমি যে সেরা কাঁটা খুঁজে পেতে পারি (উত্তর আপডেট হয়েছে) এর মধ্যে অন্তর্ভুক্ত নেই do_audio। তবে এটি প্রকৃতপক্ষে পাওয়া একটি ফাংশনcurl -sL https://github.com/RPi-Distro/raspi-config/raw/master/raspi-config | grep -E '(do|get)_[a-zA-Z0-9_ ]+\(' | sort | uniq
ব্রুনো ব্রোনোস্কি

এখানে: gist.github.com/damoclark/ab3d700apha140efb97e510650d9b1be , তবে আপনার আদেশটি তাদের সকলকে খুঁজে পেয়ে দুর্দান্ত, ধন্যবাদ
golimar

3

সব raspi-configকিছু হ'ল কয়েকটি কনফিগারেশন ফাইল সম্পাদনা, যা আপনি কোনও স্ক্রিপ্টের সাহায্যেও সম্পাদনা করতে পারেন। sedকীভাবে এডিটগুলি দক্ষতার সাথে করা যায় তা দেখতে ম্যানুয়ালটি পরীক্ষা করে দেখুন।

আপনার যদি এই পদ্ধতিতে প্রয়োগ করতে প্রচুর পরিবর্তন হয় তবে আমি একটি পরিষ্কার আরপিআই ইমেজটি আপনার পছন্দ মতো সেট আপ করার কথা বিবেচনা করব, diffএর সম্পূর্ণ ফাইল সিস্টেম * একটি ভ্যানিলা ইমেজের বিপরীতে, এবং তারপরে patchআপনাকে নতুন সেট আপ করার দরকার পরে পরিবর্তনগুলি প্রয়োগ করব স্থাপন.

অবশেষে, সরঞ্জামগুলির দিকে একবার নজর দিন etckeeper- সেগুলি বিশেষত কনফিগারেশন পরিবর্তনগুলি হস্তক্ষেপ করার জন্য ডিজাইন করা হয়েছে এবং 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


1

ওয়ার্কিং পাই ছবিটি আপনার পিসিতে অনুলিপি করতে ডিডি (বা অনুরূপ) ব্যবহার করুন Use

আপনার পিসি থেকে আপনার পাইতে অনুলিপি করা ছবিটি অনুলিপি করতে ডিডি (বা অনুরূপ) ব্যবহার করুন।

মানুষ ডিডি


হ্যাঁ, অবশ্যই চিত্রের উপায় আছে তবে তারপরে আমার আপডেট এবং স্টাফ সহ চিত্রটি বজায় রাখা দরকার। (যদি না হয় তার জন্য এখানেও মার্জিত সমাধান থাকে ...)
ডিএইচ

3
@ 8 ডিএইচ, আপনার সেটিংস ডাউনলোড করার পরে আপলোড করার পরামর্শ দেওয়ার অর্থ আপনাকে আপডেট সহ একটি "চিত্র" বজায় রাখতে হবে।
টিম হল্ট

0

আমার কাছে 1 টি এসডি কার্ড রয়েছে 100% আমার ইচ্ছাগুলি সেট করে যা আমি সমস্ত নতুন ইনস্টলেশনগুলির ভিত্তি হিসাবে রাখি।

একটি নতুন পাই সেট আপ করার সময় আমি স্ক্র্যাচ থেকে আরম্ভ করার পরিবর্তে কেবলমাত্র সেই এসডি-কার্ডটি ক্লোন করেছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.