ProHoster > Blog > Administración > Raspberry Pi + Fedora (aarch64) = punto de acceso Wi-Fi (ou enrutador de framboesa cun sombreiro azul)
Raspberry Pi + Fedora (aarch64) = punto de acceso Wi-Fi (ou enrutador de framboesa cun sombreiro azul)
O artigo Raspberry Pi + CentOS = Wi-Fi Hotspot (ou enrutador de framboesa cun sombreiro vermello) Falei sobre unha forma de converter unha Raspberry nun punto de acceso sen fíos usando o sistema operativo CentOS. Ao montar o meu enrutador doméstico segundo este debuxo, satisfei o meu ego creativo e recibín un impulso de tranquilidade para un elemento crítico da miña acolledora infraestrutura. Porén, a sensación de incompletitude da solución e o perfeccionismo interno perseguíame: "un resultado imperfecto do traballo non ten dereito a existir". O pensamento de que “o ideal pódese e debe acadar” non me deixou nin un minuto.
E entón un día, nun dos foros temáticos, atopeime cunha discusión sobre a profundidade de bits dos sistemas operativos existentes para Raspberry (aarch64 vs armhfp): que SO de 64 bits pode, en principio, encaixar e funcionar na versión 3 de Raspberry. ++?
O meu querido CentOS para a arquitectura ARM de "Userland" non tiña présa por cambiar á última versión do núcleo e converterse en 64 bits. E o repositorio EPEL, conectado dende Deus sabe onde sen sinatura dixital, foi un pesadelo no meu sono inquieto...
Neste artigo falarei sobre o método de instalación Fedora (aarch64) en Raspberry Pi 3 Modelo B + в rendemento mínimo extra. Deterareime brevemente nas funcións de aumentar un punto de acceso Wi-Fi, identificadas como resultado da operación de proba da miña configuración anterior en CentOS 7.
0. O que necesitarás
Todo é o mesmo que o enumerado no artigo anterior:
Raspberry Pi 3 Modelo B+;
microSD >= 4 GB (máis tarde podes "transferir" o sistema a unha unidade de 2 GB);
Estación de traballo con Linux e lector de tarxetas microSD;
Conectividade de rede por cable entre a Raspberry e unha estación de traballo Linux (neste caso, non será necesario ningún monitor e teclado adicional para a configuración), acceso a Internet desde ambos os dispositivos;
Habilidade avanzada en Linux (para saber e non ter medo: separouse, dd и mkfs).
Similar ao iterativo LFS-construíndo o teu propio Linux, empregarase a imaxe de distribución de Fedora e, en base a ela, crearase un sistema mínimo (sen "compilar desde a fonte").
Agora podes descargar a "framboesa" da microSD e conectarte a ela a través da rede.
Un arranque en frío leva aproximadamente un minuto e medio. TTX do sistema despois da carga:
rpm -qa | wc -l
444
2. Montaxe dun sistema mínimo
Desafortunadamente, a "distribución mínima" dos desenvolvedores resulta estar lonxe de ser a máis modesta no consumo de recursos. A imaxe do sistema pódese facer aínda máis pequena.
Para iso, cómpre executar o script en 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
Despois de executar o script, crearase un subdirectorio no directorio actual ($P) co contido da raíz da nova edición mínima do SO. Podes apagar o Raspberry e devolver a microSD á estación de traballo Linux.
3. Instalación dun sistema mínimo
A instalación redúcese a copiar os ficheiros mínimos de "imaxe" do SO (obtidos no paso anterior) nunha microSD especialmente preparada nos directorios axeitados.
Unha tarxeta de 2 GB e dúas particións nel son suficientes:
/ boot / efi - EFI+FAT32, arranque, 100 MB;
/ (raíz) - EXT4, todo o espazo restante.
Despois de preparar a microSD e copiar ficheiros nela, cómpre:
corrixir o arranque do sistema operativo;
conectar a rede;
configurar o acceso a través de ssh.
A corrección de arranque consiste en substituír o UUID das seccións dos ficheiros:
O acceso de superusuario a través de ssh está configurado de forma similar ao paso 1.
Despois de facer todo con coidado e sen erros, pode mover a microSD á "framboesa" e comezar a traballar cun sistema operativo de 64 bits nunha versión mínima adicional.
4. Sistema listo
A "imaxe" do sistema acabado, creada segundo as instrucións anteriores, pódese descargar na ligazón: Fedora-Tiny-31-5.5.7-200.aarch64
Este será un arquivo que contén dous ficheiros: o script de instalación e TGZ con ficheiros do sistema operativo. O arquivo debe ser desempaquetado nunha estación de traballo Linux, inserir unha microSD (unha tarxeta de 2 GB é suficiente) e executar o script cun parámetro: o nome do dispositivo:
./install /dev/mmcblk0
Teña coidado!
Sen ningún aviso, o dispositivo formatearase e instalarase o sistema operativo nel.
Despois da execución sen erros do script, a tarxeta pódese reorganizar na "framboesa" e usala: catch via dhcp, contrasinal - "1".
O sistema está borrado de todos os ID e claves, polo que cada nova instalación é única.
Repito unha vez máis, o sistema - mínimo! Polo tanto, non te alarmes: DNF está dispoñible, para que funcione terás que "inventar" o correcto /etc/resolv.conf.
O arranque en frío da Raspberry leva uns 40 segundos. TTX do sistema despois da carga:
rpm -qa | wc -l
191
5. Wifi
Deterareime un pouco nas funcións de implementación dun punto de acceso Wi-Fi. Para máis detalles, podes consultar o meu anterior Artigo.
EPEL xa non é necesario: todos os paquetes están contidos nos repositorios oficiais.
Probablemente pagaría a pena renunciar dnsmasq, xa que Fedora, a diferenza de CentOS, ten un systemd-networkd bastante recente, que ten servidores DHCP/DNS normais incorporados. Pero o feito é que nos desenvolvedores RHEL8 negouse a admitir a pila de rede con outra cousa que non sexa NM, non inspira confianza no brillante futuro do proxecto (canallóns). En resumo, non o probei.
Ademais, os controladores actuais para o adaptador Wi-Fi integrado non se poden "roubar" da distribución Raspbian, senón que se poden descargar directamente desde GitHub.
Este é o aspecto dos ficheiros de firmware de Broadcom no meu Raspberry (esquemáticamente):
En canto ao número e nomes das interfaces. Agora recoméndolles encarecidamente a todos que non recorran aos "servizos" dos interruptores de software a menos que sexa absolutamente necesario (ponte), que introducen cargas significativas na pila de rede e reducen o enrutamento. Se non pensas ter varios adaptadores sen fíos, deberías usar só interfaces físicas. Teño dúas wifi, polo que só as combino nunha ponte de software (aínda que podes prescindir diso mirando a configuración de hostapd de forma diferente).
E encántame cambiar o nome das interfaces.
Para facelo en Fedora cómpre crear unha ligazón simbólica:
/etc/systemd/network/99-default.link -> /dev/null
e entón será posible dar nomes significativos sen andar udev, pero só usando systemd-networkd.
Por exemplo, así se chaman os adaptadores de rede do meu enrutador:
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 - incorporado, ext - adaptadores Wi-Fi externos (USB) ensamblados nunha "ponte" lan;
wan — Adaptador Ethernet ao que está conectada a Internet.
Notaches? código_fq - unha cousa moi chula. Xunto cun novo núcleo de Linux, fan verdadeiros milagres na gama sen fíos: unha "descarga de torrentes" feroz non levará a unha súbita degradación da velocidade entre os veciños. Mesmo un IP-TV doméstico que funciona "por aire" cunha canle cargada non "se rompe" e non "tartamudea" en absoluto.
O ficheiro de servizo daemon sufriu pequenos cambios hostapd.
Agora ten o seguinte aspecto (usando o exemplo dun adaptador incorporado):
[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
E o "máxico" hostapd-int.conf para traballar en 5GHz/AC:
Un pequeno photoshop feito co meu Ericsson A1018s:
(Conexión a Internet - 100 Mbit/s)
E por último, unha pequena preguntas frecuentes.
6. FAQ
6.1 Por que facer un enrutador Wi-Fi en Raspberry?
Poderíase responder simplemente, como "é interesante probar e todo iso".
Pero, de feito, paréceme que o tema é bastante serio. Na era da Internet "sanguenta", mercar un enrutador nunha tenda e permanecer como refén do seu fabricante é unha perspectiva moi triste. Moitas persoas xa entenden que non é posible sentarse cun CVE ou unha porta traseira integrada.
Por suposto, podes migrar ao firmware WRT dos entusiastas. Probablemente haxa máis confianza neles, pero se non queres depender deles, usa o teu propio produto. O ideal é un ordenador completo para que todo o mundo se poida implementar nel. En canto ao enrutamento, claro.
Polo tanto, escoller unha "framboesa" é un movemento puramente económico: un ordenador real e, ao mesmo tempo, barato. Aínda que, quizais tamén - cos seus "dobres" dentro.
6.2 Pero Raspberry é un "router baixo": lento e cun porto Ethernet!
Como enrutador wifi doméstico, o Raspberry é máis que satisfactorio para min. Xa falei da velocidade do aire arriba. E só hai unha Ethernet, ben, nun produto similar de Apple é case o mesmo!
Pero en serio, claro que me gustaría máis. E a pesar de que na miña casa todos os dispositivos están conectados sen fíos, ás veces aínda se require unha conexión de cobre. Para tales casos, teño un "concentrador móbil" en stock:
dispositivo - algo así
6.3 Se este é un enrutador, non se di nada sobre "axustar" TCP/IP, porque isto é importante.
Ademais de configurar a pila de rede (tcp_fastopen, YeAH, etc.), este e o artigo anterior non abarcan outros matices, en particular, o proceso de preparación da microSD para un uso óptimo (aínda que o instalador tenta formatear a tarxeta de memoria en un xeito complicado). O proceso de mellora é infinito, só tes que parar a tempo.
6.4 Por que Fedora?
Porque me gusta! Fedora é un sistema "mainstream" para frikis, para os que este artigo está realmente destinado. No momento de escribir este artigo, quizais o único sistema operativo que para Raspberry en versión de 64 bits estea admitido oficialmente por un importante equipo de desenvolvedores (dos que non podo esperar núcleo 5.6).
6.5 Funciona o Bluetooth? Como está o vídeo/son/GPIO?
Non sei. O artigo trata sobre a instalación mínima do sistema e o seu posterior uso como enrutador Wi-Fi.
6.6 Por que todos os artigos sobre CentOS/Fedora/RedHat comezan coa desactivación de SELinux?
Debido a que o sistema é mínimo, nin sequera ten un firewall ou utilidades para configuralo. Calquera persoa que o necesite pode instalar adicionalmente todo o que necesite.
6.7 Non se pode usar o sistema, non se pode cambiar o contrasinal, sen contrasinal. Sen ping, sen nada!
Ten DNF. Ou esta opción de instalación non é para ti: usa o kit de distribución dos desenvolvedores.
6.9 Gustaríame descargar inmediatamente unha imaxe preparada cun punto de acceso Wi-Fi configurado.
Preparar un instalador "para todos" requirirá tempo e esforzo. Se (de súpeto!) alguén lle parece interesante e necesario isto, escríbenos e sairemos algo.
Rematarei con isto.
Desexo a todos navegando seguro e o máximo control sobre a infraestrutura!