Нийтлэл
Тэгээд нэг өдөр сэдэвчилсэн форумын нэг дээр би Raspberry-д зориулсан одоо байгаа үйлдлийн системүүдийн битийн гүний (aarch64 vs armhfp) тухай хэлэлцүүлэгтэй таарлаа: аль 64 битийн үйлдлийн систем нь зарчмын хувьд Raspberry 3 хувилбар дээр таарч, ажиллах боломжтой. ++?
"Userland"-ийн ARM архитектурт зориулсан миний хайртай CentOS нь цөмийн хамгийн сүүлийн хувилбар руу шилжиж, 64 битийн хувилбар руу шилжих гэж яарсангүй. Мөн дижитал гарын үсэггүйгээр хаанаас нь холбосон EPEL репозитор миний тайван бус нойронд хар дарсан зүүд болж байв...
RPM-д суурилсан түгээлтийн баримтлагчийн хувьд би Raspberry-д зориулсан үйлдлийн системийг хэлэлцүүлгийн үеэр бүрэн мартсанд гайхсан. Федора! Энэ нь хэдийгээр гарсан ч гэсэн
Энэ нийтлэлд би суулгах аргын талаар ярих болно Федора (aarch64) тухай Raspberry Pi 3 Загвар B + в нэмэлт хамгийн бага гүйцэтгэл. Би өмнөх тохиргооны туршилтын ажиллагааны үр дүнд тодорхойлсон Wi-Fi хандалтын цэгийг нэмэгдүүлэх онцлогуудын талаар товчхон ярих болно.
0. Танд хэрэгтэй зүйл
Бүх зүйл өмнөх нийтлэлд дурдсантай ижил байна:
- Raspberry Pi 3 загвар B+;
- microSD >= 4GB (дараа нь та системийг 2ГБ диск рүү "шилжүүлж" болно);
- Линукс болон microSD карт уншигчтай ажлын станц;
- Raspberry болон Linux ажлын станцын хооронд утастай сүлжээний холболт (энэ тохиолдолд тохируулахад нэмэлт дэлгэц, гар хэрэггүй болно), хоёр төхөөрөмжөөс интернетэд нэвтрэх;
- Линуксийн ахисан түвшний ур чадвар (мэдэх, айхгүй байх:
салсан ,dd иmkfs ).
Давталттай төстэй
1. Анхны түгээлтийн суурилуулалт
Интернет дэх системийн түүхий зургийн координатууд:
Үүнийг microSD дээр бичээд ашиглахаасаа өмнө дараах зүйлсийг хийх шаардлагатай:
- Файлын системийн "үндэс"-ийг өргөжүүлэх (3-р хуваалт, ext4)
parted /dev/mmcblk0 resizepart 3 100% e2fsck -f /dev/mmcblk0p3; resize2fs /dev/mmcblk0p3; e2fsck -f /dev/mmcblk0p3 for i in 1 2 3; do mkdir -p /mnt/$i; mount /dev/mmcblk0p$i /mnt/$i; done
- SELinux-г идэвхгүй болгох
echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
- Анхны тохиргооны хөтөчийг устгана уу:
find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
- ssh-ээр хандахыг зөвшөөрөх:
mkdir -p /mnt/3/root/.ssh cp -fv ~/.ssh/id_rsa.pub /mnt/3/root/.ssh/authorized_keys sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/g' /mnt/3/etc/ssh/sshd_config
Одоо та "бөөрөлзгөнө" -ийг microSD-ээс татаж аваад сүлжээгээр холбогдож болно.
Хүйтэн эхлэхэд нэг минут хагасын хугацаа шаардагдана. Ачаалсны дараа системийн TTX:
rpm -qa | wc -l
444
2. Хамгийн бага системийг угсрах
Харамсалтай нь, хөгжүүлэгчдийн "хамгийн бага хуваарилалт" нь нөөцийн хэрэглээний хамгийн даруухан биш юм. Системийн дүрсийг бүр жижигрүүлж болно.
Үүнийг хийхийн тулд та скриптийг Малинка дээр ажиллуулах хэрэгтэй.
#!/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) OS-ийн шинэ хувилбарын үндсэн агуулгатай. Та Raspberry-г унтрааж, microSD-г Линуксийн ажлын станц руу буцааж өгч болно.
3. Хамгийн бага системийг суурилуулах
Суулгац нь хамгийн бага үйлдлийн системийн "зураг" файлуудыг (өмнөх алхамд авсан) тусгайлан бэлтгэсэн microSD диск рүү зохих лавлах руу хуулах хүртэл хийгддэг.
2 ГБ карт ба хоёр хуваалт хангалттай.
- / boot / efi - EFI+FAT32, ачаалах, 100MB;
- / (үндэс) - EXT4, үлдсэн бүх зай.
MicroSD-г бэлтгэж, түүнд файл хуулж авсны дараа та дараахь зүйлийг хийх хэрэгтэй.
- үйлдлийн системийн ачааллыг засах;
- сүлжээг асаах;
- ssh-ээр дамжуулан хандалтыг тохируулах.
Ачаалах засвар нь файл дахь хэсгүүдийн UUID-г солих явдал юм:
microSD:/boot/efi/EFI/fedora/grub.cfg
microSD:/boot/efi/EFI/fedora/grubenv
ба параметр хадгалсан_оруулга= сүүлчийн файлд
Файлд:
microSD:/etc/fstab
Та командын гаралтаас хуучин утгууд болон одоогийн (шинэчилсэн) утгуудыг олох боломжтой:
blkid | grep mmcblk | sort
Орлуулсны дараа та агуулгыг засах хэрэгтэй fstab холбох цэгүүд нь шинэ UUID хуваалтуудтай тохирч байхаар microSD дээр суулгана.
Raspberry-г анх асаахад сүлжээний функцийг жижиг "таяг" ашиглан хийж болно - холбоос үүсгэ (схемийн хувьд):
ln -s /usr/lib/systemd/system/systemd-networkd.service
microSD:/etc/systemd/system/multi-user.target.wants
болон файл:
mkdir -p microSD:/etc/systemd/network
cat > microSD:/etc/systemd/network/dhcp.network << EOF
[Match]
Name=*
[Network]
DHCP=ipv4
EOF
Амжилттай татаж авсны дараа эхлүүлэх хэсгийг цэгцлээрэй
systemctl disable systemd-networkd
systemctl enable systemd-networkd
ssh-ээр дамжуулан супер хэрэглэгчийн хандалтыг 1-р алхамтай адил тохируулсан.
Бүх зүйлийг анхааралтай, алдаагүй хийсний дараа та microSD-г "бөөрөлзгөнө" руу шилжүүлж, 64 битийн үйлдлийн системтэй нэмэлт хамгийн бага хувилбараар ажиллаж эхлэх боломжтой.
4. Бэлэн систем
Дээрх зааврын дагуу бүтээгдсэн бэлэн системийн "дүрсийг" дараах холбоосоос татаж авах боломжтой.
Энэ нь суулгах скрипт болон үйлдлийн системтэй TGZ гэсэн хоёр файл агуулсан архив байх болно. Архивыг Линуксийн ажлын станц дээр задалж, microSD (2 ГБ карт хангалттай) оруулж, төхөөрөмжийн нэр гэсэн параметр бүхий скриптийг ажиллуулна уу.
./install /dev/mmcblk0
Анхаар!
Ямар ч анхааруулгагүйгээр төхөөрөмжийг форматлаж, үйлдлийн системийг суулгана.
Скриптийг алдаагүй ажиллуулсны дараа картыг "бөөрөлзгөнө" болгон дахин байрлуулж, ашиглаж болно: dhcp-ээр барих, нууц үг - "1".
Систем нь бүх ID болон түлхүүрээс цэвэрлэгддэг тул шинэ суулгац бүр өвөрмөц байдаг.
Би дахин нэг удаа давтан хэлэхэд систем - хамгийн бага! Тиймээс бүү ай: DNF байгаа тул үүнийг ажиллуулахын тулд та зөвийг нь "зохион бүтээх" хэрэгтэй болно.
Raspberry-ийн хүйтэн эхлэхэд 40 секунд зарцуулдаг. Ачаалсны дараа системийн TTX:
rpm -qa | wc -l
191
5. WiFi
Би Wi-Fi хандалтын цэгийг хэрэгжүүлэх онцлогуудын талаар бага зэрэг ярих болно. Тодорхой мэдээлэл авахын тулд та миний өмнөх нийтлэлээс лавлаж болно
EPEL шаардлагагүй болсон - бүх багцууд нь албан ёсны репозиторуудад байдаг.
Энэ нь бууж өгөх нь зүйтэй болов уу
Цаашилбал, суурилуулсан Wi-Fi адаптерийн одоогийн драйверуудыг Raspbian түгээлтээс "хулгайлах" боломжгүй, харин шууд татаж авах боломжтой.
Broadcom програмын файлууд миний Raspberry дээр иймэрхүү харагдаж байна (схемийн хувьд):
ls /usr/lib/firmware/brcm | grep 43455
[612775] brcmfmac43455-sdio.bin
[14828] brcmfmac43455-sdio.clm_blob
[symlink] brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt -> brcmfmac43455-sdio.txt
[2099] brcmfmac43455-sdio.txt
Тэдгээргүйгээр та 5GHz/AC авахгүй.
Интерфейсийн тоо, нэрсийн тухайд. Одоо би хүн бүрт онцын шаардлагагүй бол програм хангамжийн шилжүүлэгчийн "үйлчилгээ" рүү хандахгүй байхыг хатуу зөвлөж байна (
Мөн би интерфейсийн нэрийг өөрчлөх дуртай.
Fedora дээр үүнийг хийхийн тулд та бэлгэдлийн холбоос үүсгэх хэрэгтэй:
/etc/systemd/network/99-default.link -> /dev/null
тэгээд тонгочилгүй утга учиртай нэр өгөх боломжтой болно
Жишээлбэл, миний чиглүүлэгч дээрх сүлжээний адаптеруудыг ингэж нэрлэдэг:
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 - "гүүр" болгон угсарсан гадаад (USB) Wi-Fi адаптерууд лан;
- wan — Интернэт холбогдсон Ethernet адаптер.
Та анзаарсан уу?
Демон үйлчилгээний файлд бага зэрэг өөрчлөлт орсон
Энэ нь одоо иймэрхүү харагдаж байна (суулгасан адаптерийн жишээг ашиглан):
[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
Мөн 5GHz/AC дээр ажиллах "шидэт" hostapd-int.conf:
ssid=rpi
wpa_passphrase=FedoRullezZ
# 5180 MHz [36] (20.0 dBm)
# 5200 MHz [40] (20.0 dBm)
# 5220 MHz [44] (20.0 dBm)
# 5240 MHz [48] (20.0 dBm)
# 5745 MHz [149] (20.0 dBm)
# 5765 MHz [153] (20.0 dBm)
# 5785 MHz [157] (20.0 dBm)
# 5805 MHz [161] (20.0 dBm)
# 5825 MHz [165] (20.0 dBm)
channel=36
#channel=149
# channel+6
# http://blog.fraggod.net/2017/04/27/wifi-hostapd-configuration-for-80211ac-networks.html
vht_oper_centr_freq_seg0_idx=42
#vht_oper_centr_freq_seg0_idx=155
country_code=US
interface=int
bridge=lan
driver=nl80211
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
macaddr_acl=0
hw_mode=a
wmm_enabled=1
# N
ieee80211n=1
require_ht=1
ht_capab=[HT40+][SHORT-GI-40][SHORT-GI-20]
# AC
ieee80211ac=1
ieee80211d=0
ieee80211h=0
vht_oper_chwidth=1
require_vht=1
vht_capab=[SHORT-GI-80]
Миний Ericsson A1018-с хийсэн бяцхан фотошоп:
(Интернет холболт - 100Мбит/сек)
Эцэст нь, жижиг түгээмэл асуултууд.
6 дугаартай. Асуулт
6.1 Яагаад Raspberry дээр Wi-Fi чиглүүлэгч хийх хэрэгтэй вэ?
"Оролдоод үзэхэд сонирхолтой, энэ бүхэн" гэх мэт энгийн хариултыг өгч болно.
Гэхдээ үнэндээ энэ сэдэв нэлээд ноцтой юм шиг санагдаж байна. "Цуст" интернетийн эрин үед дэлгүүрт чиглүүлэгч худалдаж аваад үйлдвэрлэгчийн барьцаанд үлдэх нь маш гунигтай ирээдүй юм. Олон хүмүүс CVE эсвэл суурилуулсан арын хаалгатай суух боломжгүй гэдгийг аль хэдийн ойлгосон.
Мэдээжийн хэрэг, та сонирхогчдоос WRT програм хангамж руу шилжиж болно. Тэдэнд итгэх итгэл илүү байгаа байх, гэхдээ та тэднээс хамааралтай байхыг хүсэхгүй байгаа бол зөвхөн өөрийнхөө бүтээгдэхүүнийг ашигла. Хамгийн тохиромжтой нь дэлхийн бүх зүйлийг үүн дээр хэрэгжүүлэх бүрэн хэмжээний компьютер юм. Маршрутын хувьд мэдээжийн хэрэг.
Тиймээс "бөөрөлзгөнө" сонгох нь цэвэр эдийн засгийн алхам юм: жинхэнэ компьютер, тэр үед хямдхан. Хэдийгээр дотор нь "давхар" -тай байж магадгүй юм.
6.2 Гэхдээ Raspberry бол "бага чиглүүлэгч" юм: удаан бөгөөд нэг Ethernet порттой!
Гэрийн Wi-Fi чиглүүлэгчийн хувьд Raspberry нь миний хувьд сэтгэл хангалуун байдаг. Би дээр агаарын хурдны талаар аль хэдийн ярьсан. Зөвхөн нэг Ethernet байдаг, Apple-ийн ижил төстэй бүтээгдэхүүнд бараг ижил байдаг!
Гэхдээ нухацтай хэлэхэд би илүү ихийг хүсч байна. Миний гэрт бүх төхөөрөмжүүд утасгүй холбогдсон байдаг ч заримдаа зэс холболт шаардлагатай хэвээр байна. Ийм тохиолдолд надад "хөдөлгөөнт төв" байгаа:
төхөөрөмж - үүнтэй төстэй зүйл
6.3 Хэрэв энэ нь чиглүүлэгч бол TCP/IP-г "тохируулах" талаар юу ч хэлээгүй, учир нь энэ нь чухал юм!
Сүлжээний стекийг (tcp_fastopen, YeAH гэх мэт) тохируулахаас гадна энэ болон өмнөх нийтлэл нь бусад нарийн ширийн зүйлийг, ялангуяа microSD-г оновчтой ашиглахад бэлтгэх үйл явцыг тусгаагүй (хэдийгээр суулгагч санах ойн картыг форматлахыг оролддог ч гэсэн). төвөгтэй арга). Сайжруулах үйл явц эцэс төгсгөлгүй, та зөвхөн цаг тухайд нь зогсоох хэрэгтэй.
6.4 Яагаад Fedora гэж?
Учир нь би дуртай! Fedora бол энэ нийтлэлд зориулагдсан "үндсэн" систем юм. Үүнийг бичиж байх үед Raspberry-ийн 64 битийн хувилбарт зориулсан цорын ганц үйлдлийн систем нь хөгжүүлэгчдийн томоохон ажилтнууд (би тэсэн ядан хүлээж байна) албан ёсоор дэмжигдсэн байж магадгүй юм.
6.5 Bluetooth ажилладаг уу? Видео/дуу/GPIO ямар байна?
Мэдэхгүй ээ. Уг нийтлэл нь системийн хамгийн бага суурилуулалт, дараа нь Wi-Fi чиглүүлэгч болгон ашиглах тухай юм.
6.6 Яагаад CentOS/Fedora/RedHat-ийн тухай бүх нийтлэлүүд SELinux-ийг идэвхгүй болгохоор эхэлдэг вэ?
Систем нь хамгийн бага хэмжээтэй тул түүнийг тохируулах галт хана, хэрэгсэл ч байхгүй. Хэрэгтэй хүн бүр өөрт хэрэгтэй бүх зүйлийг нэмж суулгаж болно.
6.7 Системийг ашиглах боломжгүй, нууц үгийг өөрчлөх боломжгүй - passwd байхгүй. Пинг байхгүй, юу ч байхгүй!
Байдаг
6.8 SWAP хаана байдаг вэ? Би түүнгүйгээр амьдарч чадахгүй!
Энэ үнэн үү? За тэгэхээр:
fallocate -l 1G /swap
chmod -v 0600 /swap
mkswap -f /swap
swapon -v /swap
grep "/swap" /etc/fstab || echo "/swap swap swap defaults 0 0" >> /etc/fstab
6.9 Би тохируулсан Wi-Fi хандалтын цэг бүхий бэлэн зургийг нэн даруй татаж авахыг хүсч байна!
"Бүх бүрт" суулгагч бэлтгэх нь бага зэрэг цаг хугацаа, хүчин чармайлт шаарддаг. Хэрэв (гэнэт!) хэн нэгэнд үүнийг үнэхээр сонирхолтой, хэрэгтэй гэж үзвэл бидэнд бичээрэй, бид ямар нэг зүйлийг олох болно.
Би үүгээр дуусгая.
Бүгдэд аюулгүй серфинг хийж, дэд бүтцээ дээд зэргээр хянахыг хүсч байна!
Эх сурвалж: www.habr.com