Cubieboard A10 как роутер и точка WiFi hotspot

в 13:45, , рубрики: cubieboard, hostapd, роутер, метки: , ,

Доброе время суток Хабра народ, я хотел бы показать реализацию роутера и точки WIFI доступа на базе miniPC Cubieboard A10. На данную тематику довольно много мануалов как на Хабре так и на просторах интернета но полностью рабочей инструкции так и не удалось отыскать.

Что имеется:

Роутер: старый добрый Dlink — Dir 300 с последней прошивкой, верой и правдой долгое время он мне прослужил, заменой его стало то что в доме всё больше появлялось устройств которые поддерживали стандарт WIFI 802.11 n, а у него с этим проблемы, при полной настройке он выдавал скорость 75 Мбит/c это было связанно с 1 антенной.

На его замену был приобретён Cubieboard A10 также в ходе мероприятий были преабретены два WIFi USB модуля TP-LINK721N и TP-LINK722N.

Приступим к установке:

На чистый Cubieboar устанавливаем в NAND память Cubian(это OS на базе Debian для этого miniPC). Я думаю тут не каких непонятностей не должно возникнуть так как на github есть очень хороший мануал, с помощью него и ставил, единственное что у меня возникла трудность в том что он всё равно загружался только с карты памяти, я решил это с помощью правки файла /boot/uEnv.txt, в нём вторая строка была переписана примерно так

root=/dev/nandb rootwait

Загружаемся уже с NAND памяти, и настраиваем сеть, в многих мануалах есть способ с помощью моста, но мне этот способ подошёл когда в моей цепочке для тест был роутер, то есть интернет--Dir-300--Cubieboar--PC, если из этой цепочки убрать Dir-300 и делать с помощью моста то cubieboard не мог пинговать основной шлюз моего провайдера, и я решил данную проблему с помощью NAT

мой файл /etc/network/interfaces имеет следующий виде:

# the loopback interface
auto lo
iface lo inet loopback

# Карта провайдера 
auto eth0
iface eth0 inet static
address 178.210.208.39 
netmask 255.255.255.128 
gateway 178.210.208.1
dns-nameservers 178.210.192.2
pre-up ifconfig eth0 down hw ether 02:c3:0b:82:c1:cb

auto wlan2 #wifi карта
iface wlan2 inet static
address 192.168.0.1
netmask 255.255.255.0

Хотел бы обратить внимание на эту строку

pre-up ifconfig eth0 down hw ether 02:c3:0b:82:c1:cb

В Cubiane стоит рендомный MAC адрес (не знаю зачем) но мой провайдер использует привязку по MAC адресу и по этому собственно перед включением карты он устанавливает мой мак адрес.

После этого мы перезагружаем сеть

 sudo /etc/init.d/networking restart

Также нужно добавить dns адреса

sudo nano /etc/resolv.conf

и водим ваши dns адреса по типу

nameserver ip dns сервера
nameserver ip dns сервера

Настройка NAT:

Записываем правило iptables в автозагрузку для POSTROUTING.

sudo nano /etc/rc.local

И вписываем

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Так же в фале

sudo nano /etc/sysctl.conf

раскомментим строку

net.ipv4.ip_forward=1

После этого пробуем пропинговать что либо

ping google.com

если проходят пинги очень хорошо.

На данном этапе мы имеем Cubieboard с интернетом далее будем реализовывать WIFI hotspot с помощью hostapd

Устанавливаем hostapd

Можно устанавливать из репозиториев но там очень старая версия она и не стабильна, и плохо поддерживает 802.11n по этому предлагаю скомпилировать:

git clone git://w1.fi/srv/git/hostap.git

перед компиляцией добавим 1 новый параметр в конфиг что бы работало только на 40 Mhz (обеспечит нам 150 Мбит/c)

лично я не умею пользоваться patch по этому копирывал и вставлял руками из баг-трекера

dev.openwrt.org/browser/trunk/package/hostapd/patches/400-noscan.patch?rev=33392

после этого

cd hostap/hostapd
cp defconfig .config
nano .config

Нам нужно добавить строчку

CONFIG_IEEE80211N=y

и можем компилировать

sudo make

после компиляции добавим конфиг файл

nano conf

вот мой файл

interface=wlan2
driver=nl80211
ssid=SupaAP
country_code=RU
hw_mode=g
macaddr_acl=0

auth_algs=1
logger_syslog=-1
logger_syslog_level=3
logger_stdout=-1
logger_stdout_level=2
ignore_broadcast_ssid=0
ieee80211n=1
ht_capab=[HT40-][HT40+][SHORT-GI-40][RX-STBC1][DSSS_CCK-40]
channel=7
wmm_enabled=1
noscan=1

wpa=1
wpa_passphrase=PASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP

после этого пробуем запустить

./hostapd conf

Проверяем на работа способность. Так как у нас нет DHCP сервера настройки нужно ввести в ручную, в поле DNS я ставил DNS моего провайдера, после этих манипуляций у меня появился интернет, и я сразу же стал тестировать скорость, и был очень огорчён.

Показатели скорости были мягко говоря не очень, причём с долей магии, по WIFI скорость загрузки была примерно 1.2 Мбит/c где Dir-300 загружал 3.5 Мбит/c, я грешил на USB WIFI адаптеры мол правы были умные люди как на форме так и на хабре скептически относящиеся к данного рода затеям, но на прямую попробовав скачать wget был ошарашен, скорость не превышала 300 кбит/c, как минимум это было странно. Данная проблема была в ядне самого Cubian-a я, я заменил ядро на ядро так называемого Романа (https://romanrm.net/a10) и скорость возрастала до 6.9 Мбит/c через wget, и до 4-5 Мбит/c по WIFI что хоть немного меня взбодрило.

Выводы:

Cubieboard ни имеет смыла реализовывать как роутер и Wifi точку доступа, большого прироста к скорости она не даёт, да и за такие деньги можно было купить средний роутер куда по шустрее. Но в данной работе я преследовал не эти цели и мотивы, целью было поработать с nix подобной системой и консолью чего с лихвой мне хватило, далее кубик будет и далее использоваться как роутер у меня, на нем сейчас пока крутиться nginx + apache для теста своих веб приложений и так далее.

Автор: izac

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js