суббота, 9 февраля 2013 г.

Настройка wi-fi точки доступа в Debian.

Хочу сразу предупредить не использую никакие network-manager'ы ибо не тру :).

Определяем модель устройства:
Для usb затычек:
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 003 Device 003: ID 04f3:0103 Elan Microelectronics Corp.
Bus 006 Device 002: ID 7392:7711 Edimax Technology Co., Ltd EW-7711UTn nLite Wireless Adapter [Ralink RT2870]
Для PCI устройств использовать:
# lspci
В моем случае модель это EW-7711UTn на основе чипа Ralink RT2870 и установка сводиться к:
# aptitude install firmware-ralink
Для других устройств нужно пойти на http://wiki.debian.org/WiFi
найти свое устройство в списке и почитать руководство по установке драйвера.
После чего установить пакет wireless-tools:
# aptitude update
# aptitude install wireless-tools
Затем в /etc/network/interfaces прописываем наш интерфейс:
auto wlan0
iface wlan0 inet static
      address 192.168.1.1
      netmask 255.255.255.0
Перезапускаем сеть:
# /etc/init.d/networking stop
# /etc/init.d/networking start
или
# service networking restart
После чего проверить поднялся ли интерфейс:
# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 80:1f:02:42:2e:d5  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::821f:2ff:fe42:2ed5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3670828 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1959115 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1163320151 (1.0 GiB)  TX bytes:180098936 (171.7 MiB)
Затем установить hostapd:
# aptitude install hostapd
В файл /etc/hostapd/hostapd.conf (если такого файла нет нужно его создать):
interface=wlan0
ssid=MyAP
country_code=RU
hw_mode=g
channel=8
macaddr_acl=0
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_passphrase=123123123
wpa_pairwise=TKIP 
rsn_pairwise=CCMP
Где interface      - имя интерфейса у нас wlan0.
    ssid           - имя точки доступа.
    country_code   - код страны (RU,UA,US и тд.).
    wpa_passphrase - пароль точки доступа.
все остальное это настройки шифрования и режимов подключения.
Если будут проблемы с качеством сигнала попробуйте поменять channel
на какой-нибудь другой.

Как раздать интернет.
Есть много способов я использую iptables + isc-dhcp-server.
Можно также посмотреть в сторону dnsmasq.
Устанавливаем dhcp сервер:
# aptitude install isc-dhcp-server
в самый конец /etc/dhcp/dhcpd.conf дописать:
subnet 192.168.1.0 netmask 255.255.255.0
{
 range 192.168.1.3 192.168.1.254;
 option domain-name-servers 8.8.8.8;
 option routers 192.168.1.1;
 
}
Где:
   subnet 192.168.1.0 netmask 255.255.255.0; - определение подсети в которой компьютеры будут получать 
                                               ip в нашем случае для wlan0 с ip 192.168.1.1 подсеть 
                                               будет 192.168.1.0 .
   range 192.168.1.3 192.168.1.254;          - диапазон адресов которые будут выдаваться dhcp сервером.
   option domain-name-servers 8.8.8.8;       - адрес DNS-сервера который будет выдаваться
                                               подключающемуся компьютеру.
   option routers 192.168.1.1;               - ip точки доступа (wlan0).
Перезапускаем dhcp-сервер:
# service isc-dhcp-server restart
Последний штрих настройка форвардинга и NAT
Разрешаем форвардинг:
# sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
Настраиваем iptables:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables -A FORWARD -o eth0 -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 
Где:
    eth0 - имя вашего основного сетевого интерфейса. В основном eth0, но может и отличаться.

Вот вроде бы всё.


пятница, 8 февраля 2013 г.

ACL887 и Debian Wheezy


Все началось с того, что я купил себе новый компьютер.
Естественно, что я сразу поставил на него свежий Debian, но вот засада звука нет вообще.

В загрузочных логах я увидел следующие записи:
Fri Feb  8 05:45:52 2013: [....] Setting up ALSA...amixer: Mixer hw:1 load error: Invalid argument
Fri Feb  8 05:45:53 2013: amixer: Mixer hw:1 load error: Invalid argument
Fri Feb  8 05:45:53 2013: amixer: Mixer hw:1 load error: Invalid argument
Проблема показалась мне не значительной, на тот момент. Я подумал, что все сведеться к редактированию ~/.asoundrc,
но не тут то было.

Alsamixer работал не коррекно показывал две HDMI карты.

Редактирование ~/.asoundrc и /etc/modprobe.d/alsa-base.conf не помогло.
Я потратил дня два на поиск решения.

В итоге я выкачал исходники отсюда

Вместе с исходниками есть pdf-руководство по установке сиго драйвера.
Ничего сложного когда знаешь куда копать. Правда :)?

P.S. Для сторонников использования checkinstall (коим я тоже являюсь).
Скорее всего у вас не получиться установить собранный checkinstall'ом пакет.
Поскольку в системе уже присутствуют установленные snd-* модули и они являються частью пакета linux-image-$(uname -r).

UPDATE:
В Debian jessie я просто установил Pulse audio и настроил стандартным способом.