مسئله تأمین منابع
پس از ساخت تصویر، هر برد جدید باید شخصی سازی شود — با تنظیماتی مانند نام میزبان، کلیدهای SSH، پیکربندی یا ثبت نام در بخش پشتیبان.
انجام این کار به صورت دستی برای ده ها یا حتی صدها واحد Raspberry Pi Compute Module 5 (CM5) اصلا عملی نیست.
اینجاست که rpi-sb-provisioner وارد می شود — یک چارچوب اتوماسیون بوت اول انعطاف پذیر برای دستگاه های Raspberry Pi .
rpi-sb-provisioner چگونه کار می کند
در اولین بوت، سیستم به طور خودکار rpi-sb-provisionerرا اجرا می کند که:
- فایل پیکربندی تأمین را می خواند
- اجرای اسکریپت هایی برای اعمال تنظیمات سیستم
- داده های هویت دستگاه (شماره سریال، مدرک ها، گواهی ها و غیره) را می نویسد
- فرآیند تأمین را به عنوان کامل علامت گذاری می کند
این تضمین می کند که هر دستگاه به طور منحصربه فرد پیکربندی شده و آماده استقرار است — بدون دخالت دستی.
نصب
راهنمای نصب رسمی را دنبال کنید: https://github.com/raspberrypi/rpi-sb-provisioner
پیکربندی
rpi-sb-provisioner شامل یک رابط گرافیکی ساده مبتنی بر مرورگر است.
برای باز کردن آن، فرمان زیر را در یک ترمینال اجرا کنید:
xdg-open http://localhost:3142از اینجا:
۱. منوی تصاویر را باز کنید و فایل .img خود را (که با استفاده از rpi-image-genساخته شده است) آپلود کنید.
۲. منوی Options را باز کنید تا پارامترهای provisioning مانند خانواده دستگاه هدف یا تصویر پایه مورد استفاده را پیکربندی کنید.
۳. پیکربندی حاصل در /etc/rpi-sb-provisioner/config ذخیره می شود و ممکن است به این شکل باشد:
CUSTOMER_KEY_FILE_PEM=
CUSTOMER_KEY_PKCS11_NAME=
GOLD_MASTER_OS_FILE=/srv/rpi-sb-provisioner/images/deb12-arm64-ix-base.img
PROVISIONING_STYLE=naked
RPI_DEVICE_BOOTLOADER_CONFIG_FILE=/srv/rpi-sb-provisioner/bootloader_config_files/bootloader-gpio17.naked
RPI_DEVICE_EEPROM_WP_SET=
RPI_DEVICE_FAMILY=5
RPI_DEVICE_FIRMWARE_FILE=/lib/firmware/raspberrypi/bootloader-2712/latest/pieeprom-2025-10-17.bin
RPI_DEVICE_LOCK_JTAG=
RPI_DEVICE_RETRIEVE_KEYPAIR=
RPI_DEVICE_STORAGE_CIPHER=aes-xts-plain64
RPI_DEVICE_STORAGE_TYPE=emmc
RPI_SB_PROVISIONER_MANUFACTURING_DB=/srv/rpi-sb-provisioner/manufacturing.db
RPI_SB_WORKDIR=کاربرد
۱. برای مثال، هنگام استفاده از Raspberry Pi Compute Module 5رسمی، جامپر J2 را طوری تنظیم کنید که eMMC بوت را غیرفعال کند.
۲. CM5 را از طریق USB به میزبان تأمین کننده وصل کنید. فرآیند تأمین به صورت خودکار آغاز می شود.
۳. پس از اتمام provisioning، جامپر را بردارید و یک منبع تغذیه وصل کنید — دستگاه اکنون از eMMC بوت می شود.
مزایا
- پذیرش کاملا خودکار دستگاه ها
- پیکربندی یکسان در تمام واحدها
- یکپارچه سازی آسان با سیستم های تولیدی یا APIهای بک اند
- قابل تکرار — بدون تغییرات دستی یا ناسازگاری بین دستگاه ها
گسترش فرآیند
جریان کاری تأمین می تواند به موارد زیر گسترش یابد:
- فراخوانی های API برای ثبت دستگاه ها با سرویس های بک اند
- تولید گواهی برای بوت امن یا رمزنگاری
- اعتبارسنجی سخت افزاری یا تست های عملکردی قبل از فعال سازی
با rpi-sb-provisioner، تأمین به مرحله ای یکپارچه در مسیر ساخت و استقرار شما تبدیل می شود — نه یک فکر ثانویه.
مقالات این مجموعه
- <a href="https://www.interelectronix.com/index%2Ephp/fa/sakht-yk-linux-amadh-twlyd-bray-raspberry-pi-compute-module-5.html" title="Building a Production-Ready لینوکس برای Raspberry Pi Compute Module 5«>ساخت یک Linux آماده تولید برای Raspberry Pi Compute Module 5
- از سیستم عامل استاندارد تا پلتفرم تولید
- <a href="https://www.interelectronix.com/index%2Ephp/fa/sfarshy-sazy-raspberry-pi-os-ba-rpi-image-gen.html" title="Customizing سیستم عامل Raspberry Pi با rpi-image-gen«>سفارشی سازی Raspberry Pi OS با rpi-image-gen
- پایداری سیستم — طراحی چیدمان سیستم فایل ریشه A/B
- Provisioning — خودکارسازی اولین بوت با rpi-sb-provisioner
- OTA و چرخه عمر — به روزرسانی های نرم افزاری با SWUpdate
منابع
- rpi-image-gen: https://github.com/raspberrypi/rpi-image-gen
- rpi-sb-provisioner: https://github.com/raspberrypi/rpi-sb-provisioner
- SWUpdate: https://github.com/sbabic/swupdate
- swugenerator: https://github.com/sbabic/swugenerator