Сперва удостоверяемся в том, что карточка определяется:
lspci -v
Вывод должен быть примерно таковым:
... 01:0b.0 Ethernet controller: Atheros Communications Inc. Atheros AR5001X+ Wireless Network Adapter (rev 01) Subsystem: D-Link System Inc Device 3a73 Flags: bus master, medium devsel, latency 168, IRQ 10 Memory at fc9f0000 (32-bit, non-prefetchable) [size=64K] Capabilities:Kernel driver in use: ath5k Kernel modules: ath5k ...
Как видно, для нашей карты используется драйвер ath5k.
Для нормальной работы необходимо обновить ядро до более нового (в стандартной поставке ядро 2.6.28). Штатными средствами это сделать не удаётся — поэтому будем качать и ставить пакеты с новым ядром. Ядра лежат вот тут: http://kernel.ubuntu.com/~kernel-ppa/mainline/.
Качаем пакеты с ядром:
wget -c http://kernel.ubuntu.com/%7Ekernel-ppa/mainline/v2.6.30.5/linux-headers-2.6.30-02063005-generic_2.6.30-02063005_i386.deb wget -c http://kernel.ubuntu.com/%7Ekernel-ppa/mainline/v2.6.30.5/linux-headers-2.6.30-02063005_2.6.30-02063005_all.deb wget -c http://kernel.ubuntu.com/%7Ekernel-ppa/mainline/v2.6.30.5/linux-image-2.6.30-02063005-generic_2.6.30-02063005_i386.deb wget -c http://kernel.ubuntu.com/%7Ekernel-ppa/mainline/v2.6.30.5/linux-source-2.6.30_2.6.30-02063005_all.deb
Последнее качать не обязательно, это исходники ядра.
Устанавливаем:
sudo dpkg -i *.deb
Перезагружаемся.
Теперь нам необходимы свежие версии драйверов на wi-fi. Для этого идём на сайт http://linuxwireless.org. Как гласит вот эта страничка: http://linuxwireless.org/en/users/Drivers — ath5k драйвер не поддерживает работу в режиме AP в стандартной комплектации. Но это поправимо накладыванием патча на исходники ath5k.Для этого сначала скачаем исходные коды драйверов отсюда http://linuxwireless.org/en/users/Download. Нас интересует сборка под 2.6.30 ядро поэтому:
wget http://www.orbit-lab.org/kernel/compat-wireless-2.6-stable/v2.6.30/compat-wireless-2.6.30.tar.bz2
Далее распаковываем всё это хозяйство:
tar jxvf compat-wireless-2.6.30.tar.bz2
Теперь редактируем исходники (не нужно пугаться — тут всё очень просто). В файлике
compat-wireless-2.6.30/drivers/net/wireless/ath5/base.c
ищем вот такое место: hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC) | BIT(NL80211_IFTYPE_MESH_POINT);
И приводим его вот к такому виду, добавив стоку "
BIT(NL80211_IFTYPE_AP) |
": hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC) | BIT(NL80211_IFTYPE_AP) | BIT(NL80211_IFTYPE_MESH_POINT);
Далее собираем и устанавливаем:
make sudo make install sudo make unload
Для точности эксперимента ребутаемся, хотя это и не критично вроде =).
Далее нам необходимо установить hostapd. Я рекомендую ставить самую последнюю версию:
wget -c http://mirror.yandex.ru/ubuntu/pool/universe/h/hostapd/hostapd_0.6.9-3_i386.deb
Теперь приступим к его настройке. Копируем старый конфиг:
sudo mv /etc/hostapd/hostapd.conf /etc/hostapd/original-hostapd.conf
И пишем в новый:
sudoedit /etc/hostapd/hostapd.conf
вот это:
interface=wlan0 driver=nl80211 #Ваше названи точки доступа ssid=MySuperAP country_code=RU hw_mode=g channel=1 macaddr_acl=0 wpa=3 wpa_key_mgmt=WPA-PSK #Ваш пароль wpa_passphrase=MySuperPass123 wpa_pairwise=TKIP CCMP
Далее:
sudoedit /etc/default/hostapd RUN_DAEMON="yes" DAEMON_CONF="/etc/hostapd/hostapd.conf"
Теперь приступаем к общим настройкам сети.
Разрешаем форвардинг трафика:
sudoedit /etc/sysctl.conf
и расскоментируем строку:
net.ipv4.ip_forward=1
Редактируем интерфейсы:
sudoedit /etc/network/interfaces #Обратная петля auto lo iface lo inet loopback #Интерфейс на который приходит интернет к примеру от модема auto eth0 iface eth1 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 #Наш wi-fi интерфейс auto wlan0 iface wlan0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.1 pre-up iptables-restore /etc/iptables.rules
Создаём файлик правил iptables:
sudoedit /etc/iptables.rules
пишем в него правило для маскарадинга:
# Generated by iptables-save *nat :PREROUTING ACCEPT [4430:389020] :POSTROUTING ACCEPT [24:2723] :OUTPUT ACCEPT [28:3602] -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE COMMIT
Ставим и настраиваем dhcp сервер:
sudo aptitude install dhcp3-server sudoedit /etc/dhcp3/dhcpd.conf
Примерно так должен выглядеть конфиг:
ddns-update-style none; option domain-name "MySuperNet"; option domain-name-servers IPS_OF_DNS_SERVERS; default-lease-time 42300; max-lease-time 84600; log-facility local7; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; option routers 192.168.0.1; }
Далее в файле:
sudoedit /etc/default/dhcp3-server
Указываем наш интерфейс для раздачи
INTERFACES="wlan0"
Теперь с чистой совестью и распирающей гордостью можем перезагружать наш роутер и наслаждаться wi-fi интернетом и сэкономленными деньгами на покупке железного роутера.
З.Ы. Для отлова неполадок hostapd логи смотрим вот тут:
tail -f /var/log/daemon.log
Полезные ссылки
1. Всё о драйвере ath5k: http://madwifi-project.org/wiki/About/ath5k;
2. Подробнее про hostapd читаем тут: http://hostap.epitest.fi/hostapd/ либо оригинальный конфиг;
3. Сайт посвящённый wi-fi драйверам: http://linuxwireless.org;
4. Два howto, которые помогли в написании этого творения: http://forum.ubuntu.ru/index.php?topic=61834 и http://forum.ubuntu.ru/index.php?topic=62844.
Комментариев нет:
Отправить комментарий