Точка доступа Wi-Fi.

Настало время научить наш мультисервер раздавать интернет, и по Wi-fi в том числе. Установив соответствующее ПО и правильно его настроив вы сможете превратить любой ПК в полноценный роутер с поддержкой USB-модемов, резервированием каналов по любым линиям, встроенным фаерволлом, функциями беспроводного повторителя и многим многим другим. Это особенно пригодится владельцам старых ноутбуков с разбитыми матрицами, севшими батареями или неисправными клавиатурами. Даже если в вашем ноутбуке уже давно нет жесткого диска - не беда. Словом, если у вас дома есть такой хлам, ремонтировать который бесмыссленно, а выкинуть жалко - вы можете дать такому устройству вторую жизнь. К тому же давно морально устаревший ноутбук (или нетбук) всё ещё даст фору по вычислительным ресурсам любому домашнему роутеру. Это значит, что вы можете быть спокойны за то, что роутер под управлением Tiny Core Linux никогда не перегреется и не зависнет от огромного количества торрентов или просмотра IPTV в HD.

Мне удалось вас убедить? Тогда давайте поговорим о железе. А именно о беспроводном адаптере на вашем ПК. К сожалению в нашей бочке меда есть небольшая ложка дегтя. Не смотря на то, что после обновления до версии 8.0 TCL обзавелся новым ядром 4.8.17, которое помимо всего прочего включает улучшеную работу с беспроводными сетями, работать сразу "прямо из коробки" оно умеет далеко не со всеми современными адаптерами. Если у вас Wi-Fi на чипе Atheros поздравляю, вас эта проблема никоим образом не коснется. Вам достаточно установить драйвера командой:

tce-load -wi atheros-firmware.tcz

С этими драйверами были опробованы четыре адаптера AR5001x, AR5005x, AR5B91 и AR5B95. И все они прекрасно себя чувствовали в системе. Так что с 99% уверенностью можно сказать что и ваш Atheros без проблем подхватится системой.

С USB Wi-Fi на Ralink-е мне так и не удалось разрешить проблему, а вот адаптер на чипе Broadcom (bcm43xx) заработал, но после некоторых "танцев с бубном". (Актуально для версий ниже 8.х. В восьмерке эту проблему решили) Для решения необходимо изначально установить пакет драйверов для Broadcom:

tce-load -wi firmware-broadcom_bcm43xx.tcz

Если вы перезагрузите систему и выведете отчет о процессе инициализации устройств ядром командой:

dmesg

то скорее всего увидите ошибку установки драйвера на ваш Broadcom (err=-11). Ядро в случае неудачи со стандартными драйверами ищет альтернативу в папках /lib/firmware и /usr/local/lib/firmware. Это строго обозначено в шелл-скрипте /lib/udev/firmware.sh. Необходимо скачать драйвера к Broadcom на официальном сайте. В скачанном архиве найти пакетный файл wl_apsta.o с драйверами и скопировать на USB-флеш с системой Tiny Core Linux. Например в папку tce/. Вы помните в каком порядке идет загрузка TCL? Сначала идет инициализация устройств, а потом восстановление из бэкапа. Поэтому, даже если мы просто "положим" файлы драйверов в одну из обозначеных дирректорий они появятся там только после процесса инициализации. Но не до. Для решения этой проблемы было создано замечательное расширение, которое распаковывает файлы драйверов и копирует их в необходимую нам папку ещё до процесса распознавания устройств системой:

tce-load -wi b43-fwcutter.tcz

Заносим команду распаковки драйверов в шелл-скрипт автозапуска:

/opt/bootlocal.sh

mkdir /lib/firmware
b43-fwcutter -w /lib/firmware /mnt/sdb1/tce/wl_apsta.o
...

делаем бэкап и перезагружаемся:

sudo filetool.sh -b
sudo reboot

Чтобы убедиться, что драйвера подошли и wi-fi адаптер распознался системой, можно попробовать включить наш беспроводной интерфейс:

sudo ifconfig wlan0 up

а затем проверить его состояние:

sudo iwconfig

Если в появившемся списке интерфейсов есть wlan0 - значит всё настроено верно, и мы можем следовать дальше.

Для превращения wi-fi адаптера в беспроводную точку доступа существует популярный демон hostapd. Но в репозитории 7.x вы можете не искать. Там его нет. Опять же, к моему великому разочарованию. Зато он есть в репозитории 4.x. Качаем оттуда hostapd.tcz. Буквально недавно эта версия обновилась с нерабочей 0.6.9 до стабильной 1.0. Копируем файл в tce/optional/ и вносим строку hostapd.tcz в список загружаемых расширений tce/onboot.lst. Помимо этого расширения необходимо установить пакет для работы с беспроводными сетями:

tce-load -wi wireless-4.8.17-tinycore.tcz

Для удобства создадим запускающий скрипт для hostapd:

/usr/local/etc/init.d/hostapd

#!/bin/sh

start() {
  if [ ! -e /var/run/hostapd.pid ]; then
   hostapd -P /var/run/hostapd.pid -B /home/conf/hostapd.conf
  fi
}

stop() {
  killall -2 hostapd 2>/dev/null
  if [ -e /var/run/hostapd.pid ]; then
   rm /var/run/hostapd.pid
  fi
}

restart(){
  if pidof hostapd >/dev/null; then
   stop && start
  else
   start
  fi
}

status(){
  if [ -f /var/run/hostapd.pid ]; then
   echo "hostapd daemon is running"
   exit 0
  else
   echo "hostapd daemon is not running"
   exit 1
  fi
}

case $1 in
  start) start;;
  stop) stop;;
  restart) restart;;
  status) status;;
  *) echo "Usage $0 {start|stop|restart|status}"; exit 1
esac

и создадим файл конфигурации /conf/conf/hostapd.conf следующего вида:

/conf/conf/hostapd.conf

interface=wlan0
driver=nl80211
ssid=[имя точки доступа]
hw_mode=g
channel=6
wpa=2
wpa_passphrase=[пароль к точке доступа]

Я привел лишь минимальную базовую конфигурацию, с которой hostapd будет гарантировано работать. Помимо этого, коль у нас устаревшая версия 1.0, она не станет работать с обновленной библиотекой libnl v.3, которая скачивается в качестве зависимости к беспроводным утилитам. К счастью нам не придется ничего подменять или переименовывать, как это было с openssl. Старая и новая версия libnl прекрасно уживаются вместе. Для этого необходимо скачать libnl1.tcz из репозитория 3.x и "установить" уже знакомым нам образом. Теперь вносим все новые файлы в бэкап, и в автозагрузке прописываем:

/opt/bootlocal.sh

...
sudo /usr/local/etc/init.d/hostapd start
...

Делаем бэкап и перезагружаемся. В итоге, если всё сделано верно, дожна появиться беспроводная сеть с именем которую мы задали в /opt/conf/hostapd.conf. Наша беспроводная точка будет работать в устаревшем режиме G (54Мбит/с), даже если ваш адаптер поддерживает N режим. Расширение hostapd.tcz было скомпилировано без поддержки n-режима. Как для меня - это не столь критично. Для различных портативных беспроводных клиентов вроде смартфонов и планшетов вполне достаточно скорости в 20Мбит/с (это реальный потолок для G). А плюс в том, что ваша сборка TCL гарантировано будет раздавать беспроводной интернет как через устаревшие беспроводные адаптеры без поддержки N, так и на клиенты с устаревшим стандартом беспроводной связи, которых пока ещё очень и очень много.

В следующей статье я опишу как с помощью нашей точки доступа начать раздавать интернет.

ранее: "Proxy сервер POLIPO"далее: "DHCP. Раздаем интернет"

Обсуждение темы ещё не открыто. Вы можете быть первым.


Оставить комментарий

Имя:

Сообщение: