Instalace potřebných balíčků
Nejprve si jako vždy zaktualizujeme všechny balíčky na našem Raspberry Pi.
sudo apt-get update
sudo apt-get upgrade
Následně nainstalujeme potřebné balíčky hostapd, dnsmasq a bridge-utils.
sudo apt-get install hostapd bridge-utils
Jakmile máme balíčky nainstalovány, vypneme jejich služby, abychom je mohli nakonfigurovat.
sudo systemctl stop hostapd
Konfigurace hostapd
Nejprve musíme správně nastavit balíček hostapd. Jeho konfigurační soubor je /etc/hostapd/hostapd.conf. Pomocí vim ho tedy začneme upravovat.
sudo vim /etc/hostapd/hostapd.conf
Vložíme do něho následující konfiguraci.
interface=wlan0
bridge=br0
#driver=nl80211
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
hw_mode=g
channel=7
ssid=JmenoSite
wpa_passphrase=HesloSite
Důležité jsou především poslední dvě řádky. V nich se definuje název (SSID) a heslo pro wi-fi. Obojí se zadává bez uvozovek a v plaintextu (bez jakéhokoliv šifrování).
Další věcí, kterou je možné v tomto souboru nastavit je mód (hw_mode) a kanál (channel) WI-FI.
Módy jsou:
- a = IEEE 802.11a (5 GHz)
- b = IEEE 802.11b (2.4 GHz)
- g = IEEE 802.11g (2.4 GHz)
Pokud máme konfigurační soubor připravený, doplníme ho do /etc/default/hostapd. V tomto souboru odkomentujeme řádku DAEMON_CONF a jako její hodnotu zadáme "/etc/hostapd/hostapd.conf" (tentokráte v uvozovkách).
sudo vim /etc/default/hostapd
Výsledná řádka bude tedy vypadat takto:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Konfigurace dhcpcd
Dalším krokem je editace souboru /etc/dphcpd.conf.
sudo vim /etc/dhcpcd.conf
Do tohoto souboru doplníme dvě řádky. Musí být umístěny v závěru (na konci souboru), ale nad všemi řádky obsahujícími interface!
denyinterfaces eth0
denyinterfaces wlan0
Vytvoření bridge
Nyní vytvoříme bridge, který se bude jmenovat br0. Ten zajistí aby připojená zařízení měla dostupný internet 🙂.
Bridge vytvoříme sérií příkazů
sudo brctl addbr br0
sudo brctl addif br0 eth0
Nyní musíme vytvořit několik souborů, které popíší a nastaví nově vytvořený bridge.
sudo vim /etc/systemd/network/bridge-br0.netdev
Do souboru /etc/systemd/network/bridge-br0.netdev zapíšeme
[NetDev]
Name=br0
Kind=bridge
A ještě další dva soubory
sudo vim /etc/systemd/network/bridge-br0-slave.network
Obsahem souboru /etc/systemd/network/bridge-br0-slave.network bude
[Match]
Name=eth0
[Network]
Bridge=br0
a druhý soubor
sudo vim /etc/systemd/network/bridge-br0.network
s obsahem
[Match]
Name=br0
[Network]
Address=192.168.10.100/24
Gateway=192.168.10.1
DNS=8.8.8.8
Nyní potřebujeme restartovat systemd-networkd
sudo systemctl restart systemd-networkd
Restart 🙂
Nyní je potřeba restartovat Raspberry.
sudo /sbin/reboot
Jakmile znovu nabootuje spustíme všechny potřebné služby
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
sudo systemctl restart systemd-networkd
Nyní by měla být dostupná síť s názvem JmenoSite (nebo nějakým vaším, které jste si nastavili v bodu Konfigurace hostapd).
Zápory tohoto řešení
V driveru nl80211, který používá integrovaná Wi-Fi maliny, není povoleno ACS survey. Není tedy možné používat channel=0 nebo channel=acs_survey pro automatickou detekci vhodného kanálu. Kanál je nutné nastavit napevno.
Závěr
Potřebujete si zlepšit wi-fi signál v nějakém koutě vašeho bytu/domu a máte dostupné Raspberry Pi? Tak je to jasná volba. Proč kupovat další wi-fi router, když s Malinou dosáhnete toho samého 😉.
Je možné využít buď integrovaný wi-fi adaptér nebo si dokoupit jiný. Pokud použijete jiný adaptér, je potřeba aby byl Raspberry Pi kompatibilní.
Zdroje:
https://www.raspberrypi.org
https://thepi.io