ProHoster > وبلاگ > اداره > Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (یا روتر رزبری با کلاه آبی)
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (یا روتر رزبری با کلاه آبی)
مقاله Raspberry Pi + CentOS = Wi-Fi Hotspot (یا روتر رزبری با کلاه قرمزی) من در مورد راهی برای تبدیل Raspberry به یک نقطه دسترسی بی سیم با استفاده از سیستم عامل CentOS صحبت کردم. با مونتاژ روتر خانگی خود بر اساس این نقاشی، من خلاقیت خود را ارضا کردم و برای یک عنصر حیاتی از زیرساخت دنج خود آرامش خاطر بیشتری دریافت کردم. با این حال، احساس ناقص بودن راه حل و کمال گرایی درونی مرا آزار می دهد: «نتیجه ناقص کار حق وجود ندارد». این فکر که "به ایده آل می توان و باید دست یافت" من را برای یک دقیقه رها نکرد.
و سپس یک روز، در یکی از انجمن های موضوعی، به بحثی در مورد عمق بیت سیستم عامل های موجود برای Raspberry (aarch64 در مقابل armhfp) برخوردم: که در اصل سیستم عامل 64 بیتی می تواند بر روی Raspberry نسخه 3 مناسب باشد و کار کند. ++؟
CentOS محبوب من برای معماری ARM از "Userland" عجله ای برای تغییر به آخرین نسخه هسته و تبدیل شدن به 64 بیتی نداشت. و مخزن EPEL که از کجا بدون امضای دیجیتال وصل شده بود، در خواب بی قرار من کابوس بود...
در این مقاله در مورد روش نصب صحبت خواهم کرد فدورا (aarch64) بر Raspberry Pi 3 مدل B + в حداقل عملکرد اضافی. من به طور خلاصه در مورد ویژگی های افزایش یک نقطه دسترسی Wi-Fi که در نتیجه عملیات آزمایشی پیکربندی قبلی من شناسایی شده است صحبت خواهم کرد. CentOS 7.
0. آنچه شما نیاز دارید
همه چیز همان است که در مقاله قبلی ذکر شده است:
Raspberry Pi 3 Model B+;
microSD >= 4 گیگابایت (بعداً می توانید سیستم را به درایو 2 گیگابایتی "انتقال" کنید).
ایستگاه کاری با لینوکس و کارت خوان microSD.
اتصال شبکه سیمی بین Raspberry و یک ایستگاه کاری لینوکس (در این مورد، هیچ مانیتور و صفحه کلید اضافی برای راه اندازی نیاز نخواهد بود)، دسترسی به اینترنت از هر دو دستگاه.
مهارت پیشرفته در لینوکس (دانستن و نترسیدن: جدا, dd и mkfs).
مشابه تکرار شونده LFS-با ساخت لینوکس خود، از تصویر توزیع فدورا استفاده می شود و سپس بر اساس آن، یک سیستم حداقلی ایجاد می شود (بدون "کامپایل از منبع").
اکنون می توانید "رزبری" را از microSD دانلود کرده و از طریق شبکه به آن متصل شوید.
شروع سرد حدود یک دقیقه و نیم طول می کشد. TTX سیستم پس از بارگذاری:
rpm -qa | wc -l
444
2. مونتاژ یک سیستم حداقلی
متأسفانه، "توزیع حداقل" از سوی توسعه دهندگان به نظر می رسد که در مصرف منابع بسیار کم است. تصویر سیستم را می توان حتی کوچکتر کرد.
برای انجام این کار، باید اسکریپت را روی Malinka اجرا کنید:
#!/bin/bash
. /etc/os-release
P=$(mktemp --directory $(pwd)/$ID-$VERSION_ID.XXX)
dnf --installroot=$P --releasever=$VERSION_ID --setopt=install_weak_deps=false
--assumeyes install
bcm283x-firmware
dnf
grub2-efi-aa64
kernel
openssh-server
shim-aa64
for f in /boot/efi/EFI/fedora/grub.cfg
/boot/efi/EFI/fedora/grubenv
/boot/efi/rpi3-u-boot.bin
/etc/default/grub
/etc/fstab
do
cp -fv $f $P$f
done
rm -fv $P/dev/*
rm -rfv $P/var/cache/dnf
echo "--------------------------------------------------------------------------------"
du -hs $P
پس از اجرای اسکریپت، یک زیر شاخه در دایرکتوری فعلی ایجاد می شود ($P) با محتویات ریشه نسخه جدید حداقل سیستم عامل. می توانید Raspberry را خاموش کنید و microSD را به ایستگاه کاری لینوکس برگردانید.
3. نصب یک سیستم حداقل
نصب به کپی کردن حداقل فایل های "تصویر" سیستم عامل (که در مرحله قبل به دست آمد) بر روی یک microSD مخصوص آماده شده در دایرکتوری های مناسب خلاصه می شود.
یک کارت 2 گیگابایتی و دو پارتیشن روی آن کافی است:
/ boot / efi - EFI+FAT32، بوت، 100 مگابایت؛
/ (ریشه) - EXT4، تمام فضای باقی مانده.
پس از تهیه microSD و کپی کردن فایل ها در آن، باید:
تعمیر بوت سیستم عامل؛
شبکه را روشن کنید؛
پیکربندی دسترسی از طریق ssh.
رفع بوت جایگزینی UUID بخشهای موجود در فایلها است:
دسترسی ابرکاربر از طریق ssh مشابه مرحله 1 پیکربندی شده است.
پس از انجام همه کارها با دقت و بدون خطا، می توانید microSD را به "رزبری" منتقل کنید و با یک سیستم عامل 64 بیتی در یک نسخه حداقلی اضافی شروع به کار کنید.
این یک آرشیو حاوی دو فایل خواهد بود: اسکریپت نصب و TGZ با فایل های سیستم عامل. آرشیو باید در یک ایستگاه کاری لینوکس باز شود، یک microSD وارد کنید (یک کارت 2 گیگابایتی کافی است) و اسکریپت را با یک پارامتر - نام دستگاه اجرا کنید:
./install /dev/mmcblk0
مراقب باشید!
بدون هیچ هشداری، دستگاه فرمت شده و سیستم عامل روی آن نصب می شود.
پس از اجرای بدون خطا اسکریپت، کارت را می توان دوباره به "تمشک" مرتب کرد و از آن استفاده کرد: گرفتن از طریق dhcp، رمز عبور - "1".
سیستم از تمام شناسه ها و کلیدها پاک می شود، به همین دلیل است که هر نصب جدید منحصر به فرد است.
یک بار دیگر تکرار می کنم، سیستم - حداقل! بنابراین، نگران نباشید: DNF در دسترس است، برای کارکرد آن باید درست را "اختراع" کنید. /etc/resolv.conf.
شروع سرد Raspberry حدود 40 ثانیه طول می کشد. TTX سیستم پس از بارگذاری:
rpm -qa | wc -l
191
5. وای فای
من کمی در مورد ویژگی های پیاده سازی نقطه دسترسی Wi-Fi صحبت خواهم کرد. برای جزئیات، می توانید به قبلی من مراجعه کنید مقاله.
EPEL دیگر مورد نیاز نیست - همه بسته ها در مخازن رسمی موجود هستند.
احتمالاً ارزش تسلیم شدن را دارد dnsmasqاز آنجایی که فدورا، برخلاف CentOS، دارای یک سیستم شبکه نسبتاً جدید است که دارای سرورهای DHCP/DNS داخلی معمولی است. اما واقعیت این است که در توسعه دهندگان RHEL8 از پشتیبانی پشته شبکه با چیزی غیر از NM خودداری کرد، اعتماد به آینده روشن پروژه را القا نمی کند (شرورها). خلاصه امتحانش نکردم
علاوه بر این، درایورهای فعلی آداپتور Wi-Fi داخلی را نمی توان از توزیع Raspbian "دزدید"، بلکه مستقیماً از آن دانلود کرد. گیتهاب.
این همان چیزی است که فایل های سیستم عامل Broadcom در Raspberry من به نظر می رسد (به صورت شماتیک):
با توجه به تعداد و نام رابط ها. اکنون من قویاً به همه توصیه می کنم که به "خدمات" سوئیچ های نرم افزاری متوسل نشوند مگر اینکه کاملاً ضروری باشد (پل) که بار قابل توجهی را به پشته شبکه وارد می کند و مسیریابی را کاهش می دهد. اگر قصد ندارید چندین آداپتور بی سیم داشته باشید، باید فقط از رابط های فیزیکی استفاده کنید. من دو وای فای دارم، بنابراین فقط آنها را در یک پل نرم افزاری ترکیب می کنم (اگرچه با نگاه متفاوت به تنظیمات hostapd می توانید بدون این کار انجام دهید).
و من عاشق تغییر نام رابط ها هستم.
برای انجام این کار در فدورا باید یک پیوند نمادین ایجاد کنید:
/etc/systemd/network/99-default.link -> /dev/null
و پس از آن می توان نام های معنی دار را بدون جست و خیز گذاشت اودف، اما فقط با استفاده از systemd-networkd.
به عنوان مثال، این چیزی است که آداپتورهای شبکه در روتر من نامیده می شوند:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
3: lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
4: int: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan state UP group default qlen 1000
5: ext: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master lan state UP group default qlen 1000
INT - توکار، EXT - آداپتورهای Wi-Fi خارجی (USB) مونتاژ شده در یک "پل" شبکه;
رنگ پریده - آداپتور اترنت که اینترنت به آن متصل است.
متوجه شدید؟ fq_codel - یک چیز واقعا جالب. همراه با یک هسته لینوکس جدید، آنها معجزات واقعی را در محدوده بی سیم انجام می دهند: یک "دانلود تورنت" شدید منجر به کاهش ناگهانی سرعت در بین همسایگان نخواهد شد. حتی یک تلویزیون IP خانگی که "از طریق هوا" با یک کانال بارگذاری شده کار می کند "از هم نمی پاشد" و به هیچ وجه "لکنت" نمی کند!
فایل سرویس Daemon دستخوش تغییرات جزئی شده است hostapd.
اکنون به این شکل به نظر می رسد (با استفاده از مثال یک آداپتور داخلی):
[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=network.target
BindsTo=sys-subsystem-net-devices-int.device
[Service]
Type=forking
PIDFile=/run/hostapd-int.pid
#ExecStartPre=/usr/sbin/iw dev int set power_save off
ExecStart=/usr/sbin/hostapd /path/to/hostapd-int.conf -P /run/hostapd-int.pid -B
[Install]
RequiredBy=sys-subsystem-net-devices-int.device
(اتصال به اینترنت - 100 مگابیت بر ثانیه)
و در نهایت، یک پرسش متداول کوچک.
6 سوالات متداول
6.1 چرا یک روتر Wi-Fi در Raspberry بسازید؟
یکی می تواند به سادگی پاسخ دهد، مانند "آزمایش و همه اینها جالب است."
اما در واقع به نظر من موضوع کاملاً جدی است. در عصر اینترنت "خونین"، خرید یک روتر در فروشگاه و گروگان ماندن سازنده آن چشم انداز بسیار بدی است. بسیاری از مردم از قبل میدانند که نشستن با CVE یا درب پشتی داخلی امکانپذیر نیست.
البته، می توانید از طرف علاقه مندان به سیستم عامل WRT مهاجرت کنید. احتمالاً اعتماد بیشتری به آنها وجود دارد، اما اگر نمی خواهید به آنها وابسته باشید، فقط از محصول خود استفاده کنید. در حالت ایده آل، یک کامپیوتر تمام عیار به طوری که همه چیز در جهان می تواند بر روی آن پیاده سازی شود. البته از نظر مسیریابی.
بنابراین، انتخاب یک "تمشک" یک حرکت صرفا اقتصادی است: یک کامپیوتر واقعی و در عین حال ارزان. اگرچه، شاید نیز - با "دوگانه" آنها در داخل.
6.2 اما Raspberry یک "روتر کم" است: کند و با یک پورت اترنت!
به عنوان یک روتر Wi-Fi خانگی، Raspberry برای من رضایت بخش است. قبلاً در مورد سرعت هوا در بالا صحبت کردم. و فقط یک اترنت وجود دارد، خوب، در یک محصول مشابه از اپل تقریباً یکسان است!
اما جدی، البته من بیشتر می خواهم. و با وجود این واقعیت که در خانه من همه دستگاه ها به صورت بی سیم متصل هستند، گاهی اوقات هنوز یک اتصال مسی لازم است. برای چنین مواردی، من یک "مرکز تلفن همراه" در انبار دارم:
دستگاه - چیزی شبیه به این
6.3 اگر این یک روتر است، در مورد "تنظیم" TCP/IP چیزی گفته نشده است، زیرا این مهم است!
علاوه بر تنظیم پشته شبکه (tcp_fastopen، YeAH، و غیره)، این مقاله و مقاله قبلی سایر نکات ظریف، به ویژه، فرآیند آماده سازی microSD را برای استفاده بهینه پوشش نمی دهند (اگرچه نصب کننده سعی می کند کارت حافظه را در قالب فرمت کند. یک راه دشوار). روند بهبود بی پایان است، فقط باید به موقع متوقف شوید.
6.4 چرا فدورا؟
برای اینکه دوست دارم! فدورا یک سیستم "جریان اصلی" برای گیک ها است که این مقاله در واقع برای آنها در نظر گرفته شده است. در زمان نگارش، شاید تنها سیستم عاملی که برای Raspberry در نسخه 64 بیتی به طور رسمی توسط کارکنان قابل توجهی از توسعه دهندگان پشتیبانی می شود (که من نمی توانم منتظر بمانم). هسته 5.6).
6.5 آیا بلوتوث کار می کند؟ ویدیو/صدا/GPIO چطور است؟
نمی دانم. مقاله در مورد نصب حداقل سیستم و استفاده بعدی از آن به عنوان روتر Wi-Fi است.
6.6 چرا همه مقالههای مربوط به CentOS/Fedora/RedHat با غیرفعال کردن SELinux شروع میشوند؟
از آنجایی که سیستم حداقل است، حتی فایروال یا ابزارهای کمکی برای تنظیم آن ندارد. هرکسی که به آن نیاز دارد میتواند هر آنچه را که نیاز دارد را نیز نصب کند.
6.7 سیستم قابل استفاده نیست، رمز عبور قابل تغییر نیست - بدون passwd. نه پینگ نه هیچی!
وجود دارد DNF. یا این گزینه نصب برای شما مناسب نیست - از کیت توزیع توسعه دهندگان استفاده کنید.