IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [680]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [357]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [171]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1340
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2013 » Октябрь » 23 » MarsBoard. Debian. Роутер. HOWTO
    07:58
    MarsBoard. Debian. Роутер. HOWTO

    MarsBoard. Debian. Роутер. HOWTO



    Доброго времени суток, сообщество! Я уже писал по поводу замечательной платы на чипе Allwinner A10 — MarsBoard. Тот пост был чем-то вроде «Getting Started», этот же будет посвящён целиком и полностью превращению этого чуда враждебной техники в полноценную точку доступа WiFi и роутер по совместительству. Для создания точки мне поможет сборка Debian Server (кстати, ядро мы тоже будем собирать:)) и USB-адаптер TP-Link TL7200ND. Тип соединения с провайдером — PPPoE. Заинтересовались? Добро пожаловать под кат.

    Вместо предисловия


    Если честно, как только мне пришла в голову такая идея, я даже и не думал, что придётся встретиться с таким количеством подводных камней. Ну на то он наверное и Linux… К слову, все манипуляции в статье будут производиться с помощью компьютера под управлением ОС Ubuntu и кардридера для SD-карточки. И сразу советую выполнить sudo su в том сеансе терминала, из под которого будем производить все действия.

    Система


    Для своих опытов я таки решил отказаться от того приносящего тапочки в постель бульдозера, который предлагает нам офсайт. Удалось найти готовую сборку Debian Server, но пришлось пошаманить с ядром. Но об этом позже. По сути, установка сводится к записи образа на 2(или больше)GB SDCard и установке bootloader'a (с офсайта платы).

    Итак, поехали. Подключаем SDCard к компьютеру и командой fdisk -l узнаём имя устройства карточки. У меня /dev/sdc. Далее устройство карточки в статье буду обозначать как sdX. Вместо X подставляете свою букву.
    Качаем всё необходимое. Систему (рассмотрю действия со сборкой 2013-Sep-20 10:32:33), uboot.bin, sunxi-spl.bin.
    Далее:
    1. Переходим в папку со скачанными файлами
    2. Пишем систему на карту:
      bzip2 -dc a10-debian-server-2gb.2013-09-20.img.bz2 > /dev/sdX
      
    3. Пишем bootloader:
      dd if=spl/sunxi-spl.bin of=/dev/sdX bs=1024 seek=8 
      dd if=u-boot.bin of=/dev/sdX bs=1024 seek=32
      

    Систему поставили, отлично, идём дальше.

    Начало танцев — драйвера


    Собственно, с этого и началась вся эпопея запинок о те самые подводные камни. Оказалось, что драйверов для чипов Ralink, на коем работает на адаптер, существует 2 типа — «старые» и «новые». Старые драйвера ставятся автоматом через apt-get и работают «из коробки», но работают только в Managed-режиме, т.е. адаптер может только подключаться к уже существующей точке, но не может сам эту точку создать. Для создания точки требуется перевести адаптер в режим Master, а для этого нужны те самые «новые» драйвера. Только вот эти новые крутые дровишки надо… собирать. Ну что, собирать так собирать.

    Идём сюда: www.ralinktech.com/support.php?s=2 и скачиваем RT2870_Firmware_V22. Распаковываем и пишем в /lib/firmware в файловую систему на SDcard.
    Далее качаем compat-wireless: www.orbit-lab.org/kernel/compat-wireless-2.6/. Это собственно то, что нам нужно скомпилировать.

    Но не всё так просто. Так как я ещё только разбираюсь с Linux, я очень удивился, когда обнаружил, что для компиляции драйверов мне понадобятся исходники моего текущего ядра. И ещё более удивился, когда не нашёл их в системе. Благо автор сборки любезно предоставил конфигурацию ядра, там используемого. Её мы и возьмём, чтобы собрать исходники. Итак, немного отвлечёмся от драйверов и посозерцаем пересборку ядра.

    Ядро


    Как я уже сказал, для сборки дров нам нужны исходники ядра, а для сборки специфичных исходников нам нужны… универсальные исходники linux-sunxi. Также нам нужно будет немного поправить конфигурацию, чтобы вынести встроенные в ядро версии драйверов в модули. Так мы их сможем заменить на compat-wireless.

    Первым делом, ставим на компьютер всё необходимое:
    apt-get install git build-essential fakeroot kernel-package u-boot-tools zlib1g-dev libncurses5-dev
    

    И добавляем этот репозиторий в файл /etc/apt/sources.list:
    deb http://www.emdebian.org/debian/ unstable main
    

    Далее обновляем apt и ставим кросс-компилятор:
    apt-get update
    apt-get install emdebian-archive-keyring
    apt-get install gcc-4.7-arm-linux-gnueabihf
    ln -sf `which arm-linux-gnueabihf-gcc-4.7 ` /usr/local/bin/arm-linux-gnueabihf-gcc
    

    Далее нам необходимо скачать с гитхаба исходный код ядра. Клонируем репозиторий себе, переходим в папку с исходниками и переключаемся на версию 3.4:
    git clone https://github.com/linux-sunxi/linux-sunxi linux-sunxi
    cd linux-sunxi
    git checkout sunxi-3.4
    

    Дальше качаем базовый файл конфигурации ядра, переименовываем в .config и кладём в корневую папку исходников. Теперь немного конфигурации. Нам нужно выставить всё, что связано с «80211» в режим модуля. Для этого выполняем:
    ARCH=arm make menuconfig
    

    Этой командой собирается псевдографическая утилита конфигурации ядра. Выбираем в ней Networking, потом Wireless. Выбираем следующие строки одна за одной и нажимаем клавишу M на клавиатуре:
    cfg80211 - wireless configuration API
    Common routines for IEEE802.11 drivers
    Generic IEEE 802.11 Networking Stack (mac80211)
    

    В итоге должна быть примерно такая картина:

    Далее жмём Exit и ещё раз Exit. Попадаем в главное меню, проматываем вниз и жмём Save an Alternate Configuration File. Подтверждаем и выходим из утилиты.
    Всё, ядро мы настроили, теперь можно собирать. Выполняем следующие команды:
    export ARCH=arm
    export DEB_HOST_ARCH=armhf
    export CONCURRENCY_LEVEL=`grep -m1 cpu\ cores /proc/cpuinfo | cut -d : -f 2`
    fakeroot make-kpkg --arch arm --cross-compile arm-linux-gnueabihf- --initrd --append-to-version=-mykernel kernel_image kernel_headers
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- EXTRAVERSION=-mykernel uImage
    cp arch/arm/boot/uImage ../uImage
    

    В итоге после компиляции в каталоге уровнем выше будут лежать 3 файла: пакет с ядром, пакет с исходниками и uImage. Флешку с образом ещё не отключили? Идём туда, заливаем все 3 файла куда-нибудь в корень root. Далее вставляем флешку в плату, с помощью SSH ставим пакеты ядра и исходников. Отключаем, втыкаем обратно в комп. Далее идём в раздел с ядром (там лежат файлы script.bin, uImage и т.д.) и копируем туда с заменой новый uImage из корня второго раздела. Загружаемся с новым ядром и опять же в SSH-терминале прописываем команды:
    ln -s /usr/src/linux-headers-$(uname -r) /lib/modules/$(uname -r)/source
    ln -s /usr/src/linux-headers-$(uname -r) /lib/modules/$(uname -r)/build
    

    Всё, теперь система готова к компиляции драйверов.

    Продолжаем собирать драйвера


    Переходим в папку к распакованному compat-wireless (помните скачивали?). Выполняем:
    ./scripts/driver-select rt2x00
    make
    make install
    

    Далее нужно записать в блэклист «старые» драйвера. Дописываем в файл /etc/modprobe.d/blacklist.conf следующие строки:
    blacklist rt2870sta
    blacklist rt5370sta
    

    Перегружаемся.

    Настройка самого роутера


    Итак, пришло время установить всё, что нужно для раздачи интернета и организации локальной сети. В качестве DHCP-сервера я выбрал dnsmasq, точкой доступа будет управлять hostapd, а соединение с провайдером будет обеспечено утилитой pppoeconf. Я не буду здесь рассматривать настройку firewall с помощью Iptables, так как информации по этому делу достаточно много в интернете, а покажу лишь базовый проброс. Он нам жизненно необходим. Итак, погнали.
    Соединяемся опять же по SSH и ставим всё, что нужно:
    apt-get install hostapd dnsmasq pppoeconf
    


    1. Настраиваем hostapd

    hostapd — утилита для создания и управление программной точкой доступа WiFi. Имеет 2 места, из которых можно её настроить.
    Первое — /etc/default/hostapd. Настройка автозапуска. Заменяем всю писанину там на следующие строчки:
    RUN_DAEMON = yes
    DAEMON_CONF="/etc/hostapd/hostapd.conf"

    Второе место — /etc/hostapd/hostapd.conf. Основные настройки. Настроить тут можно достаточно много параметров, но я лишь приведу свою конфигурацию и объясню, что и зачем я туда вписал:
    # интерфейс, на котором висит адаптер:
     interface=wlan0
    # имя драйвера адаптера:
     driver=nl80211
    # имя точки доступа:
     ssid=MyAP
    # код страны, влияет на список доступных мощностей и частот:
     country_code=RU
    # стандарт передачи:
     hw_mode=g
    # канал, на котором будет висеть точка:
     channel=8
    # это всё нужно для корректной настройки защиты:
     macaddr_acl=0
     auth_algs=1
     wpa=2
     wpa_key_mgmt=WPA-PSK
     wpa_pairwise=TKIP 
     rsn_pairwise=CCMP
    # пароль к точке:
     wpa_passphrase=superpass
    


    2. Настройка dnsmasq

    dnsmasq — DHCP-DNS-TFTP-сервер с интуитивно понятным файлом конфигурации и рядом печенек. У него тоже есть файл конфигурации в /etc/default/, но мы его трогать не будем, ибо ничего интересного там нет. Займёмся основным конфигом — /etc/dnsmasq.conf. Как и с hostapd, я покажу и расскажу про свой вариант конфигурации:
    # интерфейс, который НАДО слушать:
     interface=wlan0
    # интерфейс, который НИ В КОЕМ СЛУЧАЕ НЕ НАДО слушать (это наше окно в сеть, о нём чуть позже):
     except-interface=ppp0
    # улучшалки производительности:
     bind-interfaces
     cache-size=1000
     domain-needed
     bogus-priv
    # конкретно эта улучшалка делает наш сервер главным в локальной сети:
     dhcp-authoritative
    # макс. кол-во доступных для аренды адресов:
     dhcp-lease-max=100
    # диапазон раздачи адресов (c, по, время аренды):
     dhcp-range=192.168.1.5,192.168.1.100,12h
    


    3. Настройка интерфейсов
    Следующим шагом будет настройка интерфейсов, так как их конфигурация нужна для правильной настройки PPPoE-соединения. Как известно, интерфейсы настраиваются в файле /etc/network/interfaces. Приводим его к такому виду:
    # локальная петля, не интересует:
     auto lo
     iface lo inet loopback
    
    # эзернет, оставляем автоконфигурацию:
     auto eth0
     iface eth0 inet dhcp
    
    # интерфейс адаптера:
     auto wlan0
     iface wlan0 inet static
     # адрес самого роутера в локалке:
     address 192.168.1.1
     # маска подсети:
     netmask 255.255.255.0
     # широковещательный адрес:
     broadcast 192.168.1.255
    


    4. Настройка PPPoE

    Утилита pppoeconf предоставляет псевдографический интерфейс для полуавтоматического конфигурирования соединения с провайдером. Делается это путём набора одноимённой команды в терминале:
    pppoeconf
    

    Далее там всё интуитивно понятно, после успешной конфигурации в файл настройки сетевых интерфейсов добавится примерно такая запись:
    auto ppp0
    iface ppp0 inet ppp
    pre-up /sbin/ifconfig eth0 up
    provider dsl-provider
    


    5. Базовый проброс

    Последним шагом будет настройка проброса пакетов из локальной сети во внешнюю и обратно (маскарадинг)
    Выполняем следующее для установки этого самого MASQUERADE и автозагрузки конфигурации в iptables при запуске системы:
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    iptables -A FORWARD -o eth0 -j ACCEPT
    iptables -A FORWARD -o ppp0 -j ACCEPT
    iptables-save > /etc/wifi-iptables.conf
    echo'#!/bin/sh' > /etc/network/if-up.d/iptables 
    echo'iptables-restore < /etc/wifi-iptables.conf' >> /etc/network/if-up.d/iptables 
    chmod +x /etc/network/if-up.d/iptables
    

    Перезагружаемся…

    Вместо заключения


    Фуууххх, ну вот вроде и всё. Устали? Зато теперь у нас есть рабочий роутер на базе довольно шустрой платы, да ещё и с таким хорошим адаптером. По моим тестам, пинг в онлайн-играх не превышает 15-25ms, а за 2 недели аптайма вся система заглючила один раз, что вылечилось передёргиванием питания.
    Кстати, о питании. Выяснилось, что для стабильной работы устройства вместе с адаптером требуется блок питания, расчитанный на мощность как минимум в 1000mA. Обратите внимание, импульсные зарядники от нокий не подходят! Не ведитесь на совпадение штекеров!

    Напоследок, хочу выразить благодарность:
    • Интернет-магазину DONT.RU за обеспечение необходимым железом
    • Человеку с ником RM и его замечательному ресурсу

    P.S.: буду очень признателен за конструктивную критику, но подчеркну, что пеной здесь плеваться совершенно не обязательно. Если вы знаете, как сократить кол-во шагов или сделать что-то лучше, поделитесь, я буду обновлять статью.
    Категория: mini computers и не только... | Просмотров: 839 | Добавил: laptop | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024