- Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (или малиновый роутер в синей шляпе)
- 0. Что понадобится
- 1. Установка оригинального дистрибутива
- 2. Сборка минимальной системы
- 3. Установка минимальной системы
- 4. Готовая система
- 5. Wi-Fi
- 6. FAQ
- 6.1 Зачем делать Wi-Fi роутер на Raspberry?
- 6.2 Но ведь Raspberry – «недороутер»: медленный и с одним Ethernet портом!
- 6.3 Если это роутер, то ничего не сказано о «тюнинге» TCP/IP, ведь это важно!
- 6.4 Почему Fedora?
- 6.5 А Bluetooth работает? Как там видео/звук/GPIO?
- 6.6 Почему все статьи про CentOS/Fedora/RedHat начинаются с отключения SELinux?
- 6.7 Системой невозможно пользоваться, нельзя изменить пароль — нет passwd. Нет ping-а, нет ничего!
- 6.8 А где же SWAP? Жить без него не могу!
- 6.9 Хотелось бы скачать сразу готовый образ с настроенной точкой доступа Wi-Fi!
- install Fedora on a Raspberry Pi 3
- Contribute at Fedora Linux 35 Upgrade, Virt, Cloud, IoT, and CoreOS test days
- MAKE MORE with Inkscape – Stroke Fonts
- Announcing the release of Fedora Linux 35 Beta
- get hardware
- download Fedora Minimal
- copy to the micro-SD card
- set up Fedora
- update software
- things to play with
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (или малиновый роутер в синей шляпе)
В статье Raspberry Pi + CentOS = Wi-Fi Hotspot (или малиновый роутер в красной шляпе) я рассказал о способе превращения «малинки» в беспроводную точку доступа при помощи операционной системы CentOS. Собрав по такому чертежу мой домашний роутер, я удовлетворил свое творческое эго и получил заряд спокойствия за критически важный элемент моей уютной инфраструктуры. Однако ощущение незаконченности решения и внутренний перфекционизм не давали покоя: «несовершенный результат работы не имеет права на существование». Мысль о том, «что идеал может и должен быть достигнут» не покидала меня ни на минуту.
И вот однажды на одном из тематических форумов я натолкнулся на обсуждение разрядности существующих операционных систем для «малинки» (aarch64 vs armhfp): какие 64-битные ОС в принципе могут влезть и заработать на Raspberry версии 3++?
Моя любимая CentOS для архитектуры ARM от «Userland» не спешила переходить на ядро последней версии и превращаться в 64-битную. А репозиторий EPEL, подключенный Бог весть откуда без цифровой подписи, являлся кошмаром в мой неспокойный сон…
Выступая адептом RPM-based дистрибутивов, я с удивлением обнаружил, что в обсуждениях ОС для «малинки» абсолютно забытой оказалась Fedora! И это при том, что ее релиз
с 28-ой версии официально поддерживает Raspberry Pi 3B+ в 64-битном исполнении!
В этой статье я расскажу о способе установки Fedora (aarch64) на Raspberry Pi 3 Model B+ в экстра минимальном исполнении. Кратко остановлюсь на особенностях поднятия Wi-Fi точки доступа, выявленных в результате опытной эксплуатации моей предыдущей конфигурации на CentOS 7.
0. Что понадобится
Все тоже самое, что перечислено в предыдущей статье:
- Raspberry Pi 3 Model B+;
- microSD >= 4GB (в последствии можно «перенести» систему на 2GB накопитель);
- Рабочая станция с Linux и картридером microSD;
- Проводная сетевая связанность «малинки» и рабочей станции с Linux (в этом случае не понадобятся дополнительные монитор и клавиатура для настройки), доступ в Интернет с обоих устройств;
- Продвинутый скилл в Linux (знать и не бояться: parted, dd и mkfs).
Подобно итеративной LFS-сборке собственного Linux, будет использован дистрибутивный образ Fedora, а потом на его основе — создана минимальная система (без «компиляции из исходников»).
1. Установка оригинального дистрибутива
После его записи на microSD и перед началом использования нужно:
- Расширить «корень» файловой системы (3-ий раздел, ext4)
Удалить Мастера первоначальной настройки:
Разрешить доступ по ssh:
Вот теперь можно загрузить «малинку» с microSD и подключиться к ней по сети.
Холодный старт занимает около полутора минут. ТТХ системы после загрузки:
2. Сборка минимальной системы
К сожалению, «минимальный дистрибутив» от разработчиков оказывается далеко не самым скромным в потреблении ресурсов. Образ системы можно сделать еще меньше.
Для этого на «малинке» нужно выполнить скрипт:
После отработки скрипта в текущем каталоге будет создан подкаталог ($P) с содержимым корня новой минимальной редакции ОС. Можно выключить «малинку» и вернуть microSD в рабочую станцию Linux.
3. Установка минимальной системы
Установка сводится к копированию файлов минимального «образа» ОС (полученного на предыдущем шаге) на специально подготовленную microSD в соответствующие каталоги.
Достаточно 2GB карточки и двух разделов на ней:
- /boot/efi — EFI+FAT32, загрузочный, 100MB;
- / (корень) — EXT4, все оставшееся место.
После подготовки microSD и копирования на нее файлов, нужно:
- починить загрузку ОС;
- включить сеть;
- настроить доступ по ssh.
Починка загрузки заключается в замене UUID разделов в файлах:
и параметра saved_entry= в последнем файле
можно найти старые значения, а текущие (актуальные) — в выводе команды:
После замены, следует также поправить содержимое fstab на microSD, чтобы точки монтирования соответствовали новым UUID разделов.
Сетевой работоспособности при первом включении «малинки» можно добиться небольшим «костылем» — создать ссылку (схематично):
После успешной загрузки — привести в порядок запуск systemd-networkd:
Доступ суперпользователю по ssh настраивается аналогично п.1.
Сделав все аккуратно и без ошибок, можно переставлять microSD в «малинку» и начинать работать с 64-битной ОС в экстра минимальном исполнении.
4. Готовая система
«Образ» готовой системы, созданный по приведенной выше инструкции. .
Холодный старт «малинки» занимает около 40 секунд. ТТХ системы после загрузки:
5. Wi-Fi
Немного остановлюсь на особенностях реализации Wi-Fi точки доступа. За конкретикой можно обратиться к моей предыдущей статье.
EPEL теперь не понадобится — все пакеты содержатся в официальных репозиториях.
Наверное, стоило бы отказаться от dnsmasq, так как в Fedora, в отличии от CentOS, — достаточно свежий systemd-networkd, в котором — нормальные встроенные DHCP/DNS серверы. Но факт того, что в RHEL8 разработчики отказались от поддержки сетевого стека чем-либо кроме NM, не вселяет уверенности в светлом будущем проекта (негодяи). Короче, не пробовал.
Далее, актуальные драйверы встроенного Wi-Fi адаптера можно не «воровать» из дистрибутива Raspbian, а качать напрямую с github.
Вот так выглядят на моей «малинке» файлы прошивки Broadcom (схематично):
Без них не получится 5GHz/AC.
По поводу количества и названий интерфейсов. Теперь я уже всем настоятельно рекомендую без особой нужды не прибегать к «услугам» программных свичей (bridge), которые привносят значительную нагрузку в сетевой стек и угнетают маршрутизацию. Если не планируется несколько беспроводных адаптеров, то использовать следует исключительно физические интерфейсы. У меня — два Wi-Fi, поэтому только их я объединяю в программный мост (хотя можно обойтись и без этого, по другому взглянув на настройку hostapd).
А переименовывать интерфейсы я люблю.
Для этого в Fedora нужно создать символическую ссылку:
и тогда давать осмысленные названия можно будет, не ковыряясь в udev, а только средствами systemd-networkd.
Вот так, например, называются сетевые адаптеры в моем роутере:
- int — встроенный, ext — внешний (USB) Wi-Fi адаптеры, собранные в «бридж» lan;
- wan — Ethernet адаптер, в который подключен Интернет.
Заметили? fq_codel — действительно зачетная штука. Вместе со свежим ядром Linux творят настоящие чудеса в беспроводном диапазоне: лютый «торент-качек» не приведет к внезапной деградации скорости у соседей. Даже работающее «по воздуху» домашнее IP-TV при нагруженном канале не «распадается» и не «заикается» от слова вообще!
Претерпел небольшие изменения сервисный файл демона hostapd.
Выглядит теперь он так (на примере встроенного адаптера):
И «волшебный» hostapd-int.conf для работы в 5GHz/AC:
Немного «фотошопа», сделанного с моего «Ericsson A1018s»:
И в заключении небольшой FAQ.
6. FAQ
6.1 Зачем делать Wi-Fi роутер на Raspberry?
Можно было бы ответить просто, мол «интересно попробовать и все такое».
Но на самом деле, как мне кажется, тема достаточно серьезная. В эпоху «кровопролитного» Интернета покупать роутер в магазине и оставаться заложником его производителя — весьма унылая перспектива. Сидеть с CVE- или вшитым бэкдором уже многие понимают, что нельзя.
Разумеется, можно мигрировать на WRT-прошивки от энтузиастов. Доверия к ним, наверное, больше, но если не хочется зависеть и от них, то только — собственное изделие. В идеале – полноценный компьютер для возможности реализации на нем всего на свете. В плане роутинга, разумеется.
Поэтому, выбор «малинки» — чисто экономический ход: настоящий компьютер и при этом — недорогой. Хотя, возможно тоже — со своими «двоянами» внутри.
6.2 Но ведь Raspberry – «недороутер»: медленный и с одним Ethernet портом!
Как домашний Wi-Fi роутер, «малинка» меня устраивает более чем. Про скорость «по воздуху» я уже рассказал выше. А всего один Ethernet, ну так в аналогичном продукте от Apple примерно точно также!
А если серьезно, то конечно хотелось бы побольше. И несмотря на то, что в моем хозяйстве все устройства подключены без проводов, иногда все-таки требуется медное соединение. Для таких случаев у меня припасен «мобильный хаб»:
6.3 Если это роутер, то ничего не сказано о «тюнинге» TCP/IP, ведь это важно!
Помимо настройки сетевого стека (tcp_fastopen, YeAH и т.п.), в этой и предыдущей статье не раскрыты другие нюансы, в частности, процесс подготовки microSD для оптимального использования (правда инсталлятор пытается отформатировать карту памяти хитрым способом). Процесс совершенствования – бесконечен, нужно только вовремя остановиться.
6.4 Почему Fedora?
Потому что мне нравится! Fedora — «мейнстрим» — система гиков, для которых, собственно, и предназначена эта статья. На момент написания, пожалуй, единственная ОС, которая для Raspberry в 64-битном исполнении официально поддерживается весомым штатом разработчиков (от которых никак не дождусь ядра 5.6).
6.5 А Bluetooth работает? Как там видео/звук/GPIO?
Не знаю. Статья – про минимальную установку системы и ее последующее использование в качестве Wi-Fi роутера.
6.6 Почему все статьи про CentOS/Fedora/RedHat начинаются с отключения SELinux?
Потому что система – минимальна, в ней нет даже файрвола и утилит по его настройке. Кому потребуется – могут установить дополнительно все что необходимо.
6.7 Системой невозможно пользоваться, нельзя изменить пароль — нет passwd. Нет ping-а, нет ничего!
Есть DNF. Или этот вариант установки не для вас – воспользуйтесь дистрибутивом от разработчиков.
6.8 А где же SWAP? Жить без него не могу!
Правда? Ну, хорошо:
6.9 Хотелось бы скачать сразу готовый образ с настроенной точкой доступа Wi-Fi!
Для подготовки инсталлятора «для всех» потребуется некоторое количество времени и усилий. Если (вдруг!) кому-то это действительно покажется интересным и необходимым – пишите, что-нибудь придумаем.
На этом — закончу.
Желаю всем безопасного серфинга и максимального контроля над инфраструктурой!
Источник
install Fedora on a Raspberry Pi 3
Contribute at Fedora Linux 35 Upgrade, Virt, Cloud, IoT, and CoreOS test days
MAKE MORE with Inkscape – Stroke Fonts
Announcing the release of Fedora Linux 35 Beta
Fire up a Raspberry Pi with Fedora.
The Raspberry Pi Foundation has produced quite a few models over the years. This procedure was tested on third generation Pis – a Model B v1.2, and a Model B+ (the older 2 and the new 4 weren’t tested). These are the credit-card size Pis that have been around a few years.
get hardware
You do need a few hardware items, including the Pi. You don’t need any HaT (Hardware Attached on Top) boards or USB antennas. If you have used your Pi in the past, you probably have all these items.
- current network. Perhaps this is your home lab.
- ethernet cable. This connects the current network to the Raspberry Pi
- Raspberry Pi 3, model B or B+.
- power supply
- micro-SD card, 8GB or larger.
- keyboard and video monitor.
The keyboard and video monitor together make up the local console. It’s possible – though complicated – to get by without a console, such as setting up an automated install then connecting over the network. A local console makes it easy to answer the configuration questions during Fedora’s first boot. Also, a mistake during AP configuration may break the network, locking out remote users.
download Fedora Minimal
The Fedora Minimal image, one of Fedora’s alt downloads, has all the core packages and network packages required (well, nearly – check out dnsmasq below). The image contains a ready-made file system, with over 400 packages already installed. This minimal image does not include popular packages like a development environment, Internet service or desktop. These types of software aren’t required for this work, and may well use too much memory if you install them.
The Fedora Minimal raw image fits on a small SD card and runs in less than 1 GB of memory (these old Pis have 1GB RAM).
The name of the downloaded file is something like Fedora-Minimal-32-1.6.aarch64.raw.xz. The file is compressed and is about 700MB in size. When the file is uncompressed, it’s 5GB. It’s an ext4 file system that’s mostly empty – about 1GB is used and 4GB is empty. All that empty space is the reason the compressed download is so much smaller than the uncompressed raw image.
copy to the micro-SD card
- Copy the image to a micro-SD card.
This can be a more complex than it sounds, and a painful experience. Finding a good micro-SD card takes work. Then there’s the challenge of physically attaching the card to your computer.Perhaps your laptop has a full SD card slot and you need a card adapter, or perhaps you need a USB adapter. Then, when it comes to copying, the OS may either help or get in your way. You may have luck with Fedora Media Writer, or with these Linux commands.
set up Fedora
- Connect the Pi, power cable, network cable and micro-SD card.
- Hit the power.
- See the colored box as the graphics chip powers up.
- Wait for the anaconda installer to start.
- Answer anaconda’s setup questions.
Initial configuration of the OS takes a few minutes – a couple minutes waiting for boot-up, and a couple to fill out the spokes of anaconda’s text-based installer. In the examples below, the user is named nick and is an administrator (a member of the wheel group).
Congratulations! Your Fedora Pi is up and operational.
update software
- Update packages with `dnf update`.
- Reboot the machine with `systemctl reboot`.
Over the years, a lot of people have put a lot of work into making the Raspberry Pi devices work. Use the latest software to make sure you get the benefit of their hard work. If you skip this step, you may find some things just don’t work.
The update downloads and installs about a hundred packages. Since the storage is a micro-SD card, writing new software is a slow process. This is what using computing storage felt like in the 1990s.
things to play with
There are a few other things that can be set up at this point, if you want to play around. It’s all optional. Try things like this.
- Replace the localhost hostname with the command `sudo hostnamectl set-hostname raspi`.
- Find the IP address with `ip addr`.
- Try an SSH login, or even set up key-based login with `ssh-copy-id`.
- Power down with `systemctl poweroff`.
Источник