Программист
0,0
рейтинг
11 марта 2014 в 17:45

Администрирование → Cubieboard A10 как роутер и точка WiFi hotspot из песочницы

*nix*
Доброе время суток Хабра народ, я хотел бы показать реализацию роутера и точки 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, то есть интернет--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 новый параметр в файл конфигурации, что бы hostapd работало только на 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



с полным списком значений файла конфигурации и описанием можно ознакомиться на официальном сайте (link)

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

./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
карма
6,0
рейтинг 0,0
Программист
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Администрирование

Комментарии (14)

  • +3
    В Cubiane стоит рендомный MAC адрес (не знаю зачем)...
    За тем, что чип дешевый и энергонезависимой памятью, в которой можно хранить MAC, не обременён, поэтому MAC адрес ему назначается программно каждый раз после перезагрузки. Прописать мак руками — верное решение данной проблемы.
    • –1
      Побывал по мануалу с официального форума Cubian переводить script.bin в fex и вводить руками, после этого переводить снова в bin. Но этот метод так у меня и не заработал. Потому пришлось таким костыльным методом решить данный вопрос.
  • 0
    Я тоже делал точку доступа на основе Cubiboard. Работала нестабильно — через несколько дней зависала. Возможно это было из-за того, что в качестве WAN был установлен Йота-модем 4G.
    Сейчас у меня Raspberry Pi работает раутером + точкой доступа. Хочу купить CubieTruck, там Ethernet гигабитный и встроенный вай-фай.
    • 0
      У моего аптайм неделя, полёт нормальный, только в Cubian были встроенные веб панели которые со временем занимали RAM память, отключил мне удобнее ssh+ftp, пока всё стабильно, буду наблюдать далее. Кубитрек вещь очень хорошая как и из за процессора так и из за 1000 ethernet, а вот встроенный wifi бесполезен в случае если, как у меня например, 1 из ноутбуков очень далеко от источника так как более мощную антенну к нему не подключить.
    • 0
      Прошу прощения, но если хочется именно роутер с возможностью измываться над ним, как угодно, то рискну порекомендовать вот эту свою статью. SoC AR9331 имеет на борту 5 Ethernet интерфейсов и WiFi. В качестве игрушки — исключительно забавная штука.
      • 0
        У таких штук, вроде той что в посте который вы посоветовали, есть один минус — слабый проц и, как правило, отсутствие SATA. Из-за чего полноценный домашний сервер на этом не построить, а хочется чтобы все делала одна железка
        • 0
          Дык, изначально речь шла про роутер, а не про «полноценный домашний сервер».
      • 0
        Частота процессоров примерно одинаковая, то есть у Dir-300 это процессор Ralink RT3050 с частотой 320 МГц, а у SoC AR9331 процессор MIPS 400 МГц, тем более у меня приведён пример самого маленького процессора семейства Cubieboard, если купить Cubieboard A20 с CPU SoC AllWinner A20 ARM® Cortex™-A7 Dual-Core я думаю цифры будут по более оптимистичными.
      • 0
        По денгам выходит стоимость tp-link wr1043nb с чипом от Атероса-Квалкома, но у него три антенны хороших в комплекте. Пины под uart кабель есть, поддержка openwrt тоже. Не очень понял идею с платами от неизвестных производителей.
        • 0
          Чип: Atheros AR9132 400MHz
          RAM: 32MB
          Встроенная флэш-память: 8MB

          Проц весьма слабоват не так ли? да и рам на 32 мб плохо сказывается на тот же торент, а с таким кол флеш памяти даже с альт прошивой не поставишь например тот же веб сервер.

          У меня же с кубиком стоит веб сервер с моим блогом + мини помойка файлов, да и с линуксом куда возможностей по более…
          • 0
            Торент везде относительно неспешно работает, да.
            Веб сервер относительночто нужно к каробочке спокойно пристыковывается винт или флешка на которую описанными методами легко ставится любой дополнительный софт.
            Так что никаких функциональных преимуществ у железа описанного по ссылке выше не вижу. Люди спокойно умудряются упихивать в корпус роутера даже 2,5 ssd.
  • 0
    Какое ядро используешь?

    Тоже использую Cubieboard в подобных целях: роутер, файловый сервер, торрент, DHCP, DNS, VPN на нужные IP для всей сети и даже LAMP, munin.

    В качестве второй сетевухи D-Link DUB-E100. Рекорд аптайма — 3 месяца, за все время использования ни одного зависания, несмотря на эксперименты с mainline ядром. Дистриб — Arch Linux.
    Смысла менять на Cubietruck не вижу — производительности хватает, интернет быстрее 100 мегабит до нашей деревни доберется неизвестно когда.
    • 0
      Использую дистрибутив cubian, с переделками от Романа (в статье ссылка есть). А на usb ethernet драйвера с бубном ставили? Ибо у меня на USB WIFI адаптер Dlink (точно не скажу какой) так и не удалось поставить.
      • 0
        Просто вставил и работает, драйвера на ASIX в конфиге от romanrm включены в ядро.
        На Cubieboard уже более менее есть возможность использовать mainline ядро с патчами, у меня например 3.13.2 хорошо работает. Не поддерживается GPU, Звук, что-то еще по мелочи, но все что надо для обычного домашнего сервера есть.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.