ProHoster > Blog > administration > Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (ou routeur framboise avec un chapeau bleu)
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (ou routeur framboise avec un chapeau bleu)
L'article Raspberry Pi + CentOS = Wi-Fi Hotspot (ou routeur Raspberry avec un chapeau rouge) J'ai parlé d'un moyen de transformer un Raspberry en point d'accès sans fil à l'aide du système d'exploitation CentOS. En assemblant mon routeur domestique selon ce dessin, j'ai satisfait mon ego créatif et reçu un regain de tranquillité d'esprit pour un élément essentiel de mon infrastructure confortable. Cependant, le sentiment d'incomplétude de la solution et de perfectionnisme interne me hantait : « un résultat imparfait du travail n'a pas le droit d'exister ». L'idée que « l'idéal peut et doit être atteint » ne m'a pas quitté une minute.
Et puis un jour, sur l'un des forums thématiques, je suis tombé sur une discussion sur la profondeur de bits des systèmes d'exploitation existants pour Raspberry (aarch64 vs armhfp) : quel système d'exploitation 64 bits peut, en principe, s'adapter et fonctionner sur Raspberry version 3 ++ ?
Mon bien-aimé CentOS pour l'architecture ARM de "Userland" n'était pas pressé de passer à la dernière version du noyau et de passer au 64 bits. Et le référentiel EPEL, connecté depuis Dieu sait où sans signature numérique, était un cauchemar dans mon sommeil agité...
Dans cet article, je parlerai de la méthode d'installation Fedora (aarch64) sur Raspberry Pi 3 Modèle B + в performances très minimes. Je m'attarderai brièvement sur les fonctionnalités de surélévation d'un point d'accès Wi-Fi, identifiées à la suite d'un essai de fonctionnement de ma configuration précédente sur 7 CentOS.
0. Ce dont vous aurez besoin
Tout est identique à celui indiqué dans l'article précédent :
Framboise Pi 3 modèle B+ ;
microSD >= 4 Go (plus tard, vous pourrez « transférer » le système sur un lecteur de 2 Go) ;
Poste de travail avec Linux et lecteur de carte microSD ;
Connectivité réseau filaire entre le Raspberry et un poste de travail Linux (dans ce cas, aucun moniteur ni clavier supplémentaire ne sera nécessaire pour la configuration), accès Internet depuis les deux appareils ;
Compétence avancée en Linux (pour connaître et ne pas avoir peur : séparé, dd и mkfs).
Semblable à itératif LFS-en construisant votre propre Linux, l'image de la distribution Fedora sera utilisée, puis sur cette base un système minimal sera créé (sans « compiler à partir des sources »).
Vous pouvez maintenant télécharger le « framboise » depuis la microSD et vous y connecter via le réseau.
Un démarrage à froid prend environ une minute et demie. TTX du système après chargement :
rpm -qa | wc -l
444
2. Assembler un système minimal
Malheureusement, la « distribution minimale » des développeurs s'avère loin d'être la plus modeste en termes de consommation de ressources. L'image système peut être encore plus petite.
Pour ce faire, vous devez exécuter le script sur 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
Après avoir exécuté le script, un sous-répertoire sera créé dans le répertoire courant ($P) avec le contenu de la racine de la nouvelle édition minimale du système d'exploitation. Vous pouvez éteindre le Raspberry et remettre la microSD sur le poste de travail Linux.
3. Installation d'un système minimal
L'installation se résume à copier les fichiers « image » minimaux du système d'exploitation (obtenus à l'étape précédente) sur une microSD spécialement préparée dans les répertoires appropriés.
Une carte de 2 Go et deux partitions dessus suffisent :
/ boot / efi - EFI+FAT32, démarrage, 100 Mo ;
/ (racine) - EXT4, tout l'espace restant.
Après avoir préparé la microSD et y avoir copié les fichiers, vous devez :
réparer le démarrage du système d'exploitation ;
allumez le réseau ;
configurer l'accès via ssh.
Le correctif de démarrage consiste à remplacer l'UUID des sections dans les fichiers :
vous pouvez trouver les anciennes valeurs et les valeurs actuelles (à jour) dans la sortie de la commande :
blkid | grep mmcblk | sort
Après le remplacement, vous devez également corriger le contenu fstab sur microSD afin que les points de montage correspondent aux nouveaux UUID de partition.
La fonctionnalité réseau lorsque vous allumez le Raspberry pour la première fois peut être obtenue avec une petite « béquille » - créez un lien (schématiquement) :
L'accès superutilisateur via ssh est configuré de la même manière qu'à l'étape 1.
Après avoir tout fait avec soin et sans erreur, vous pouvez déplacer la microSD vers la « framboise » et commencer à travailler avec un système d'exploitation 64 bits dans une version extra minimale.
4. Système prêt
L'« image » du système fini, créée selon les instructions ci-dessus, peut être téléchargée à partir du lien : Fedora-Tiny-31-5.5.7-200.aarch64
Il s'agira d'une archive contenant deux fichiers : le script d'installation et TGZ avec les fichiers du système d'exploitation. L'archive doit être décompressée sur un poste de travail Linux, insérer une microSD (une carte de 2 Go suffit) et exécuter le script avec un paramètre - le nom de l'appareil :
./install /dev/mmcblk0
Soyez prudent!
Sans aucun avertissement, l'appareil sera formaté et le système d'exploitation y sera installé.
Après une exécution sans erreur du script, la carte peut être réorganisée en « framboise » et utilisée : capture via DHCP, mot de passe - « 1 ».
Le système est débarrassé de tous les identifiants et clés, c'est pourquoi chaque nouvelle installation est unique.
Je le répète encore une fois, le système - minimal! Ne vous inquiétez donc pas : le DNF est disponible, pour que cela fonctionne il faudra « inventer » le bon / Etc / resolv.conf.
Le démarrage à froid du Raspberry prend environ 40 secondes. TTX du système après chargement :
rpm -qa | wc -l
191
5. Wifi
Je m'attarderai un peu sur les fonctionnalités de mise en œuvre d'un point d'accès Wi-Fi. Pour plus de détails, vous pouvez vous référer à mon précédent article.
EPEL n'est plus nécessaire - tous les packages sont contenus dans les référentiels officiels.
Cela vaudrait probablement la peine d'abandonner dnsmasq, puisque Fedora, contrairement à CentOS, dispose d'un systemd-networkd assez récent, qui possède des serveurs DHCP/DNS intégrés normaux. Mais le fait est que dans RHEL8, les développeurs refusé de prendre en charge la pile réseau avec autre chose que NM, n'inspire pas confiance dans l'avenir radieux du projet (canailles). Bref, je ne l'ai pas essayé.
De plus, les pilotes actuels de l'adaptateur Wi-Fi intégré ne peuvent pas être « volés » dans la distribution Raspbian, mais téléchargés directement depuis github.
Voici à quoi ressemblent les fichiers du firmware Broadcom sur mon Raspberry (schématiquement) :
Concernant le nombre et les noms des interfaces. Maintenant, je recommande fortement à tout le monde de ne pas recourir aux « services » de commutateurs logiciels sauf en cas d'absolue nécessité (pont), qui introduisent une charge importante dans la pile réseau et diminuent le routage. Si vous ne prévoyez pas d'avoir plusieurs adaptateurs sans fil, vous devez utiliser uniquement des interfaces physiques. J'ai deux Wi-Fi, donc je les combine uniquement dans un pont logiciel (bien que vous puissiez vous en passer en regardant différemment la configuration de hostapd).
Et j'adore renommer les interfaces.
Pour ce faire dans Fedora, vous devez créer un lien symbolique :
/etc/systemd/network/99-default.link -> /dev/null
et puis il sera possible de donner des noms significatifs sans fouiller udev, mais uniquement en utilisant systemd-networkd.
Par exemple, voici comment s'appellent les cartes réseau de mon routeur :
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 - intégré, poste — des adaptateurs Wi-Fi externes (USB) assemblés en « pont » lan;
blême — Adaptateur Ethernet auquel Internet est connecté.
As-tu remarqué? fq_codel - une chose vraiment cool. Associés à un nouveau noyau Linux, ils font de véritables miracles dans le domaine du sans fil : un « téléchargement torrent » féroce n'entraînera pas une dégradation soudaine de la vitesse chez les voisins. Même un téléviseur IP domestique fonctionnant « en direct » avec une chaîne chargée ne « se brise » pas et ne « bégaie » pas du tout !
Le fichier du service démon a subi des modifications mineures hébergeur.
Cela ressemble maintenant à ceci (en utilisant l'exemple d'un adaptateur intégré) :
[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
Et le hostapd-int.conf « magique » pour travailler en 5GHz/AC :
Un petit photoshop réalisé à partir de mon Ericsson A1018 :
(Connexion Internet - 100 Mbit/s)
Et enfin, une petite FAQ.
6. FAQ
6.1 Pourquoi faire un routeur Wi-Fi sur Raspberry ?
On pourrait répondre simplement, du genre « c’est intéressant d’essayer et tout ça ».
Mais en fait, il me semble que le sujet est assez sérieux. À l'ère de l'Internet « sanglant », acheter un routeur dans un magasin et rester l'otage de son fabricant est une perspective très sombre. Beaucoup de gens comprennent déjà qu’il n’est pas possible de s’asseoir avec un CVE ou une porte dérobée intégrée.
Bien entendu, vous pouvez migrer vers le firmware WRT auprès des passionnés. On leur fait probablement plus confiance, mais si vous ne voulez pas dépendre d’eux, utilisez simplement votre propre produit. Idéalement, un ordinateur à part entière pour que tout dans le monde puisse y être réalisé. En termes de routage, bien sûr.
Choisir une « framboise » est donc une démarche purement économique : un vrai ordinateur et en même temps peu coûteux. Mais peut-être aussi - avec leurs «doubles» à l'intérieur.
6.2 Mais Raspberry est un « routeur bas » : lent et avec un seul port Ethernet !
En tant que routeur Wi-Fi domestique, le Raspberry est pour moi plus que satisfaisant. J'ai déjà parlé de la vitesse de l'air ci-dessus. Et il n'y a qu'un seul Ethernet, eh bien, dans un produit similaire d'Apple c'est à peu près pareil !
Mais sérieusement, bien sûr, j’en voudrais plus. Et même si dans ma maison tous les appareils sont connectés sans fil, une connexion en cuivre est parfois nécessaire. Pour de tels cas, j'ai un « hub mobile » en stock :
appareil - quelque chose comme ça
6.3 S'il s'agit d'un routeur, rien n'est dit sur le « réglage » de TCP/IP, car c'est important !
En plus de la configuration de la pile réseau (tcp_fastopen, YeAH, etc.), cet article et l'article précédent ne couvrent pas d'autres nuances, notamment le processus de préparation de la microSD pour une utilisation optimale (bien que l'installateur essaie de formater la carte mémoire dans une manière délicate). Le processus d'amélioration est sans fin, il suffit de s'arrêter à temps.
6.4 Pourquoi Fedora ?
Parce que j'aime! Fedora est un système « grand public » destiné aux geeks, à qui cet article est en réalité destiné. Au moment de la rédaction de cet article, c'est peut-être le seul système d'exploitation qui pour Raspberry en version 64 bits est officiellement pris en charge par une équipe importante de développeurs (dont j'ai hâte noyau 5.6).
6.5 Le Bluetooth fonctionne-t-il ? Comment est la vidéo/son/GPIO ?
Je ne sais pas. L'article concerne l'installation minimale du système et son utilisation ultérieure comme routeur Wi-Fi.
6.6 Pourquoi tous les articles sur CentOS/Fedora/RedHat commencent-ils par la désactivation de SELinux ?
Le système étant minime, il ne dispose même pas de pare-feu ni d’utilitaires pour le configurer. Quiconque en a besoin peut installer en plus tout ce dont il a besoin.
6.7 Le système ne peut pas être utilisé, le mot de passe ne peut pas être modifié - pas de mot de passe. Pas de ping, non rien !
Il est DNF. Ou cette option d'installation n'est pas pour vous - utilisez le kit de distribution des développeurs.
6.8 Où se trouve SWAP ? Je ne peux pas vivre sans lui !
6.9 Je souhaite télécharger immédiatement une image prête à l'emploi avec un point d'accès Wi-Fi configuré !
Préparer un programme d'installation « pour tout le monde » demandera du temps et des efforts. Si (tout d’un coup !) quelqu’un trouve cela vraiment intéressant et nécessaire, écrivez-nous et nous trouverons une solution.
Je vais terminer avec ça.
Je souhaite à tous une navigation en toute sécurité et un contrôle maximum sur l'infrastructure !