Архив метки: wi-fi

Linux и RTL8811CU

Приехал ко мне из Китая вот такой USB-адаптер на чипе RTL8811CU. Так как я заранее посмотрел, что драйвера для него под Linux есть, плюс умело заборол проблемы с предыдущим чипом от Realtek, больших проблем с его подключением не ждал.

Скачал дровишки отсюда https://github.com/whitebatman2/rtl8821CU, начал компилять, первый раз make ругнулся на файл rtl8821CU/os_dep/linux/rtw_android.c

ошибка: в макрос «access_ok» передано 3 аргументов, но используется только 2
if (!access_ok(VERIFY_READ, priv_cmd.buf, priv_cmd.total_len)) {
^
/home/alex/rtl8821CU/os_dep/linux/rtw_android.c:629:7: ошибка: «access_ok» не описан (первое использование в этой функции)
if (!access_ok(VERIFY_READ, priv_cmd.buf, priv_cmd.total_len)) {
^~~~~

Поэтому я её просто закомментил, раз access_ok не описан. И да, в С коммент строки - //, а не #.

Следующая ошибка была в файле rtl8821CU/os_dep/linux/ioctl_cfg80211.c

ошибка: implicit declaration of function «get_monotonic_boottime»; did you mean «getboottime»? [-Werror=implicit-function-declaration]
get_monotonic_boottime(&ts);
^~~~~~
getboottime

Здесь сам компилятор подсказывает, что get_monotonic_boottime нужно заменить на getboottime.

На этом всё, дальше компиляция проходит без проблем, модуль собрался и работает с ядром 5.0.11

Установка Wi-FI адаптера Mercusys MW300UM на чипе RTL8192EU

Предыстория — после 9 лет работы полетела встроенная сетевая карта на материнской плате. Печально. Нужно покупать новую и всё такое. Тут я вспомнил, что где-то у меня припасена сетевая карта, которую я покупал ещё 10 лет назад. Начал рыться в закромах, и вот она. Сдул с неё многолетнюю пыль, прочитал название — Dlink DFE-520.

Ок, попробуем. Воткнул, включил поддержку в ядре, карточка завелась. Но есть две не совсем приятные вещи — 1 — карта после выхода из сна не подхватывается, какие-то проблемы или с модулем или с самой картой. Ну и скорость. После гигабитной карты чувствуется задержка даже при переключении дорожек в плеере.

Поэтому посетила мысль — а не купить ли Wi-FI адаптер? Открыл свой любимый магазин электроники, начал выбирать. Выбор пал на Mercusys MW300UM, невысокая цена (гигабитная сетевая карта от DEXP стоит столько же, но почитав о чипе, который на ней стоит, перехотел брать), скорость в 300 Мб/с, и высокая мощность передатчика, плюс беспроводное соединение. Почитал про чип — RTL8192EU, в линуксе должен работать, даже судя по комментариям к адаптеру. Отправился в магазин, нашёл адаптер (осталось 2 коробочки), жадно схватил одну и метнулся на кассу. Заплатив бабло и получив чек (кстати, гарантия 3 года), на второй передаче понёсся домой.

Придя домой, предвкушал, что сейчас по быстрому воткну адаптер, ну максимум подключу модуль к ядру и всё будет кошерно. Но самое интересное было ещё впереди.

Итак, воткнув адаптер в комп, запустил lsusb, дабы глянуть, что же известно про этот адаптер. А собственно всего ничего, lsusb выдал вот это:

Bus 002 Device 005: ID 2c4e:0100

Ну ок, мы пойдём другим путём — полезем в гугль. Итак, гугл сообщает, что есть несколько вариантов — собрать модуль из ядра, либо скачать с гитхаба, собрать и присовокупить к ядру.

Конечно, проще собрать модуль самого ядра. Полез в ядро, подключил модуль RTL8XXXU и RTL8XXXU_UNTESTED. Собрал ядро, перезагрузился. Ничего. Модуль не загрузился. Сделал это вручную — всё равно тишина, устройство wlan0 не появилось. Dmesg конечно сыпет сообщениями, что типа устройство подключено, производитель такой-то и всё прочее, но это как-то не помогает обеспечить работу устройства.

Ну ладно, хорошо. Соберём и поставим сторонний модуль. На выбор есть 4 (на самом деле больше):

https://github.com/Mange/rtl8192eu-linux-driver
https://github.com/masterzorag/RTL8192EU-linux
https://github.com/jeremyb31/rtl8192eu-linux-driver
https://github.com/ZeeRooo/RTL8192EU

В общем общем после всех плясок выяснилось одно — в коде модуля нет нашего идентификатора устройства (2c4e:0100), поэтому, даже когда модуль загружался, он не работал с адаптером. Что нужно сделать, чтобы всё было прекрасно? Добавить строчку в исходники. Покажу на примере ядра — в моём случае это 5.0.3 и модуля, который я взял с https://github.com/ZeeRooo/RTL8192EU. И да, в некоторых репозиториях, например jeremyb31 и Mange есть возможность поставить модуль через DKMS, что актуально для пользователей Debian-подобных дистрибутивов.

Но хочу сказать сразу, после добавления в ядро идентификатора, устройство wlan0 появилось, ближайшие сети нашлись, но вот подключиться не получилось. В dmesg сыпались ошибки "rtl8192eu_rx_iqk_path_b: Path B RX IQK failed!" и невозможности аутентификации. Там же была почта, на которую просили написать про работу модуля, что я собственно и сделал, ждём ответа (если он вообще будет).

Итак, модуль ядра. Открываем файл (уже в каталоге с ядром, например /usr/src/linux) drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c и ищем в самом конце такие строчки, (должно быть заглавие #ifdef CONFIG_RTL8192E):

{USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0107, 0xff, 0xff, 0xff), .driver_info = (unsigned long)&rtl8192eu_fops},

0x2357, 0x0107 — это и есть идентификатор устройства. Добавляем туда такую строчку

{USB_DEVICE_AND_INTERFACE_INFO(0x2c4e, 0x0100, 0xff, 0xff, 0xff), .driver_info = (unsigned long)&rtl8192eu_fops},

0x2c4e, 0x0100 — это мы взяли из вывода lsusb.

Сохраняем файл, не забываем включить модуль rtl8xxxu и rtl8xxxu_untested и собираем ядро, теперь адаптер будет автоматом подхватываться ядром.

Сейчас соберём сторонний модуль ядра. Я бы рекомендовал качать с https://github.com/ZeeRooo/RTL8192EU, т. к. судя по логам он активно поддерживается.

$ git clone https://github.com/ZeeRooo/RTL8192EU.git

$ cd RTL8192EU

Редактируем файл os_dep/linux/usb_intf.c, в нём так же ищем строчки типа {USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0107, 0xff, 0xff, 0xff), .driver_info = (unsigned long)&rtl8192eu_fops}, под заглавием #ifdef CONFIG_RTL8192E, только здесь они практически в самом начале файла.

Добавляем туда нашу строку:

{USB_DEVICE_AND_INTERFACE_INFO(0x2c4e, 0x0100, 0xff, 0xff, 0xff), .driver_info = (unsigned long)&rtl8192eu_fops},

Ну и дальше

$ make

# make install

Модуль будет называться 8192eu.

После установки модуля, для его загрузки нужно выполнить modprobe 8192eu, или вытащить и вставить адаптер.

И да, если используется сторонний модуль, ядерный модуль (rtl8xxxu) должен быть выгружен и наоборот.

Пока адаптер работает нормально, не глючит, дальше видно будет. Будем посмотреть, будут ли допиливать поддержку в ядре.

Wi-Fi, установка Gentoo и прочее

Давненько не писал сюда, хотя поводов хватало - всякое было с моей любимой генточкой. сейчас, пока сижу на больничном, можно и написать всякое, ибо делать совсем нечего.
Итак, 1-ое - на ноуте переехал с freeBSD на Gentoo. вроде все нормально, кроме одного - при входе в админку сайта, после ввода логина\пароля, апач просто напросто сегфолтится и залогинится не получается. На ноуте я был авторизован, поэтому в админку мог попасть спокойно, все работало, за исключения логина.
Потом удачно навернулся блок питания на ноуте, поэтому пришлось забрать блок питания со старого бука, пока пользуюсь им, соответственно поэтому сайт в ауте.
при переезде была одна особенность -  ядро на установочном диске Gentoo было старое, 2.6.18 или 19, и вот, после chroot'a и обновления coreutils до 8.8, перестали собираться программы, ругался touch, что не может создать файл. Сначала нашел на форуме такое решение - вытягивание и пересборка из исходников около 30 системных утилит. Поискал дальше - оказалось, что можно всего-то откатить coreutils на предыдущую версию - 8.5. После этого обновил ядро и coreutils - все нормально работает.
Теперь решил заняться Wi-Fi'ем на ноуте. Теперь его стали часто дергать в другую комнату, а у него появилась еще одна болячка - при выдергивании шнура он отключается. Причем, когда втыкаешь шнур обратно - загорается индикатор зарядки батареи. Ну а при каждом отключении, нужно заного настраивать подключение к Wi-Fi-сети. Скрипт /etc/init.d/net.wlan0 требует wpa_supplicant. Ставим его (причем сеть без шифрования). В /etc/wpa_supplicant/wpa_supplicant.conf достаточно добавить

network={
ssid="essid_name"
key_mgmt=NONE
}

а остальные параметры должны быть прописаны в /etc/conf.d/net.
И еще, чтобы не перезаписывался /etc/resolv.conf (без клиента dhcp) нужно в /etc/conf.d/net добавить такое
dns_servers_wlan0=("ip адрес DNS")
Вот как-то так.

(EE) intel(0): No kernel modesetting driver detected и 3945ABG Wi-Fi

Сидел я сидел, читал в интернете всякое, вдруг хоп – черный экран, на консоль переключиться нельзя. Перезагрузился, при запуске X-ов пишется в логи такое:

(EE) intel(0): No kernel modesetting driver detected.

(II) UnloadModule: "intel"
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found

Решение такое – включить KMS для драйвера Intel, находится в Device Drivers -> Graphics support -> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support  -> Intel 830M, 845G, 852GM, 855GM, 865G  -> i915 driver -> Enable modesetting on intel by default.

Перезагрузился, все нормлаьно, только теперь по команде

iwconfig waln0 essid  <essid_name>

начало сыпать, что аргумент не поддерживается и все такое. Хотя при помощи команды

iw wlan0 connect <essid_name>

нормлаьно подключается. И тут я вспомнил ,что при обновлении ядра делал

make oldconfig

и проскакивало что-то про "cfg80211 wireless extensions compatibility", тогда я просто похлопал глазами, прочитал описание (видать плохо читал) и отказался от этой опции. Пересобрал ядро, все заработало, сама опция находится по такому адресу  -  Networking support -> Wireless -> cfg80211 – wireless configuration API -> cfg80211 wireless extensions compatibility.

Wi-FI

Есть у меня чудо-роутер Asus WL-530gV2. При большом числе соединений или у провайдера какие-то косяки, в общем роутер перезагружается. И соответственно обрывается беспроводная связь на ноутбуке. Нашел костыль для всего этого.

Создаем файл wirelesstest в каталоге /usr/bin с таким содержимым:

#!/bin/bash
# FILENAME: /usr/bin/wirelesstest
# note the backticks in the next line
if ! `ping -c3 192.168.1.1 >/dev/null 2>&1` ; then
iwconfig wlan0 essid alex # присовокупление к сети с названием alex
# можно также прописать, чтобы
# рестартовалась все соединение
# в этом случае, нужно убрать
# iwconfig wlan0 essid alex
# и заменить на
# /etc/init.d/networking restart
fi
exit 0

192.168.1.1 – это адрес моего роутера, у вас он может быть другим.

Далее, меняем владельца и группу для файла:

chown root:root /usr/bin/wirelesstest

Делаем файл исполняемым:

chmod +x /usr/bin/wirelesstest

Запускаем cron:

/etc/init.d/cron start # или /etc/init.d/vixie-cron start, как у меня в Gentoo.

Добавляем запись в крон (для vixie-cron это делать не нужно, просто открыть файл текстовымм редактором и добавить строчку ниже этой команды):

crontab -e

Чтобы скрипт запускался каждые 5 минут, просто добавляем эту строчку:

5 * * * * root /usr/bin/wirelesstest

Чтобы крон автоматически загружался при запуске системы, делаем: (это команда для gentoo, для debian она похожая, но точно не скажу, ищите сами.

rc-update add cron default # у меня установлен vixie-cron, так что я делаю так: rc-update add vixie-cron default

Вот как-то так.

Debian Etch на ноутбуке Toshiba Satellite A100

Установка драйвера для Bluetooth и настройка соединения через GPRS
Установка драйверов для Intel PRO/Wireless 3945ABG
Установка встроенного модема

Сначала нужно скачать с сайта программу ScanModem

Распаковываем его

$ gunzip scanModem.gz

запускаем

$ sh ./scanModem

Создастся каталог Modem. Просматриваем в этом каталоге файл
ModemData.txt. Вот часть этого файла:

………..
For candidate card in slot 00:1b.0, firmware information and bootup diagnostics are:
PCI slo PCI ID SubsystemID Name
—– —– —– ——-
00:1b.0 8086:27d8 1179:ff10 Audio device: Intel Corporation 82801G

Modem interrupt assignment and sharing:
58: 269928 0 IO-APIC-level HDA Intel
— Bootup diagnostics for card in PCI slot 00:1b.0 —-
ACPI: PCI Interrupt 0000:00:1b.0[A] – > GSI 22 (level, low) – > IRQ 58
PCI: Setting latency timer of device 0000:00:1b.0 to 64
………….

Packages needed for support of Advanced Linux Sound Architecture (ALSA) support should be installed: alsa-base and alsa-utilities!!

Нужно чтобы были установленны пакеты alsa-base и alsa-utilities

=== Finished firmware and bootup diagnostics, next deducing cogent software. ===
Predictive diagnostics for card in bus 00:1b.0:
Modem chipset detected on
CLASS=»Class 0403: 8086:27d8»
NAME=»Audio device: Intel Corporation 82801G "
PCIDEV=8086:27d8
SUBSYS=1179:ff10
IRQ=58
HDA=8086:27d8
SOFT=8086:27d8.HDA
CodecArchived=11c13026
ArchivedChip=0x11c13026
IDENT=slmodemd

For candidate modem in: 00:1b.0
Class 0403: 8086:27d8 Audio device: Intel Corporation 82801G
Primary PCI_id 8086:27d8
Subsystem PCI_id 1179:ff10
Softmodem codec or chipset from diagnostics:
from Archives: 0x11c13026, residing on a HDA Subsystem with support by slmodemd and driver snd-hda-intel

Support type needed or chipset: slmodemd

Здесь прямо говорится, какой драйвер нам нужен — slmodemd

Download from http://linmodems.technion.ac.il/packages/smartlink/&nbsp;
the package SLMODEMD.gcc4.1.tar.gz having a compiled slmodemd. Unpack under Linux with:
$ tar zxf SLMODEMD.gcc4.1.tar.gz
and read instructions therein. But briefly, the modem is setup with command:
slmodemd —c YOUR_COUNTRY —alsa hw:0,1_or_hw:0,6
reporting dynamic creation of ports:
/dev/ttySL0 — > /dev/pts/N , with N some number
Read Smartlink.txt and Modem/YourSystem.txt for follow through guidance.

Далее надо перейти по данной ссылке и скачать (в моем случае)
SLMODEMD.gcc4.1.tar.gz

далее распаковываем его

$ tar zxf SLMODEMD.gcc4.1.tar.gz

А вот далее проблему я не решил — при запуске ругается:

./slmodemd: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2,4′ not found (required by ./slmodemd).

Требуется libc версии 2,4, а в Etch стоит 2.3.6. Лично у меня только
GPRS, поэтому обновлять Etch до Lenny мне проблемно. А у кого есть
возможность обновиться, дерзайте, дальше все по инструкции.

slmodemd —c YOUR_COUNTRY —alsa hw:0,1_or_hw:0,6

все должно запуститься с полпинка. Если сразу не работает, перебираем hw:0,1 до hw:0,6.
Вместо YOUR_COUNTRY — RUSSIA или Russia.

/dev/ttySL0 — > /dev/pts/N, with N some number
Read Smartlink.txt and Modem/YourSystem.txt for follow through guidance.

Далее создаем порты. Соответственно читаем Smartlink.txt и Modem/YourSystem.txt

Установка драйверов для Intel PRO/Wireless 3945ABG

Для Etch. Пользователем Lenny и Sid — после UPD. 

Добавляем в /etc/apt/sources.list следующую строку

deb http://ftp.ru.debian.org/debian/ etch main contrib non-free

далее

# aptitude update
# aptitude install ipw3945-modules-’uname —r’ firmware-ipw3945 ipw3945d

потом перезагрузка и должен появится интерфейс eth1 при выводе команды

# ifconfig —a.

Далее настраивать его придется вам самим, у меня нет Wi-Fi устройств
чтобы хоть как-то протестировать подключение.

UPD: прошел год от опубликования этой статьи и за это время у меня наконец появился нормальный интернет и Wi-Fi роутер. Я  допишу про настройку беспроводной карты, правда уже для Debian Sid, но отличия минимальны.

За прошедший год, автор модуля ipw3945 забросил его. Теперь желательно пользоваться iwlwifi. Для Etch — все также можно пользоваться ipwl3945. Для установки iwlwifi нужно ядро 2.26.24 и выше. Новый stable релиз — Lenny подходит, у него, если не ошибаюсь, ядро 2.26.25. У iwlwifi беспроводные карточки обозначаются не как ethX, а как wlanX, где Х — номер интерфейса.

Установка модуля:

#aptitude install firmware-iwlwifi

Загружаем его:

#modprobe iwl3945

Не забудте включить Wi-Fi переключателем на самом ноутбуке.

Поиск точек доступа выполняется с помощью команды

#iwlist wlan0 scanning

Если все в порядке, то должнo появиться примерно следующее:

wlan0 Scan completed :
Cell 01 — Address: 00:1E:8C:A4:8D:AB
ESSID:«Здесь пишется  Essid беспроводной точки доступа»
Mode:Master
Channel:1
Frequency:2,412 GHz (Channel 1)
Quality=94/100 Signal level=-35 dBm Noise level=-127 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5,5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=000000146354717e

Можно сразу вписать необходимые настройки в /etc/network/interfaces (хотя можно и через KNetworkManager):

auto wlan0 —
allow-hotplug wlan0
iface wlan0 inet static — задаем статический адрес для wlan0
address92.168.1.4
netmask 255.255.255.0 — маска сети
network 192.168.1.0
broadcast 192.168.1.255 — широковещательный адрес
gateway 192.168.1.1 — шлюз
dns-nameservers 192.168.1.1 — адреса DNS серверов
wireless-essid alex — задаем Essid точки доступа, к которой следует подключаться
wireless-channel 1 — номер канала, который был указан в выводе iwlist wlan0 scanning

После этого

# /etc/init.d/networking restart

У меня не настроено шифрование, т.к. даже в соседней комнате сигнал достаточно низкий и вероятность, что кто-то из соседей сможет словить сигнал точки доступа предельно мала + доступ через wi-fi к точке доступа ограничен по mac адресу.

На форумах я встречал сообщения, что iwlwifi работает не совсем стабильно и из-за этого люди продолжали пользоваться ipw3945. Касательно себя — у меня ноутбук работает без перезагрузок неделями. Да, бывает, что связь отваливается, но это исключительно из-за того, что у самого провайдера происходит обрыв на линии, а после восстановления сигнала, ноутбук автоматически к сети не цепляется. И еще, бывает такое, что глючить начинает сама точка доступа, после многократного пропадания\появления связи с провайдером — через iwlist wlan0 scanning беспроводная точка видна, но подключится к ней нельзя, хотя и лампочка беспроводной связи на роутере горит. Я думал, что это и есть глюки этого драйвера, но оказалось, что надо просто выключить\включить роутер и тогда ноутбук с ней спокйно соединяется.

Установка драйвера для Bluetooth и настройка соединения через GPRS

Ядро должно быть собрано примерно со следующей конфигурацией

Configuration for 2,6 kernels
Networking —- >
< * > Bluetooth subsystem support — >
— Bluetooth subsystem support
< M > L2CAP protocol support
< M > SCO links support
< M > RFCOMM protocol support
[*] RFCOMM TTY support
< M > BNEP protocol support
[*] Multicast filter support
[*] Protocol filter support
< M > HIDP protocol support
Bluetooth device drivers — >
< M > HCI USB driver
[*] SCO (voice) support
< M > HCI UART driver
[*] UART (H4) protocol support
[*] BCSP protocol support
[*] Transmit CRC with every BCSP packet
< M > HCI BCM203x USB driver
< M > HCI BPA10x USB driver
< M > HCI BlueFRITZ! USB driver
(The four drivers below are for PCMCIA Bluetooth devices and will only
show up if you have also selected PCMCIA support in your kernel.)
< M > HCI DTL1 (PC Card) driver
< M > HCI BT3C (PC Card) driver
< M > HCI BlueCard (PC Card) driver
< M > HCI UART (PC Card) device driver
(The driver below is intended for HCI Emulation software.)
< M > HCI VHCI (Virtual HCI device) driver
(Move back three levels to Device Drives and then check if USB is
enabled. This is required if you use a Bluetooth dongle, which are mostly USB
based.)
USB support — >
< * > Support for Host-side USB
— USB Host Controller Drivers
< M > EHCI HCD (USB 2,0) support
[ ] Full speed ISO transactions (EXPERIMENTAL)
[ ] Root Hub Transaction Translators (EXPERIMENTAL)
< * > OHCI HCD support
< * > UHCI HCD (most Intel and VIA) support
< > SL811HS HCD support

Также нужно установить несколько пакетов для работы с bluetooth и
дозвона до провайдера.

# aptitude install ppp wvdial bluetooth bluez-hcidump

Для работы Bluetooth нужно установить модуль omnibook
также насколько я знаю, он подходит и для ноутбуков фирмы HP.

Для Debian и Ubuntu можно загрузить пакет отсюда
Я собирал модуль из исходников. Скачать исходники можно по этому адресу

Распаковываем

$ tar xvzf omnibook-2.20070211.tar.gz
$ cd omnibook-2,20070211
# make; make install

Для загрузки модуля выполняем следующую команду

# modprobe omnibook ectype=X

Где Х — это число, которое нужно посмотреть здесь
На странице представлен список ноутбуков, надо выбрать приближенный к своему.
Например, у меня Satellite A100. В списке наиболее близкий — Satellite A105 и его ectype — 14.

# modprobe omnibook ectype=14

Должны появится в /proc/omnibook/ файлы bluetooth и led. Без добавления
ectype=Х там будут только 2 файла — dmi и version. В зависимости от
того, что у вас за модель ноутбука, могут быть и еще какие-либо файлы,
но в данном случае нам нужен только bluetooth. По умолчанию bluetooth
адаптер выключен. Для его включения нужно отправить единицу в файл
bluetooth

# echo 1 > /proc/omnibook/bluetooth

После этого можно проверить работу так :

# cat /proc/omnibook/bluetooth

Должно появится сообщение

Bluetooth adapter is present and enabled.

Ищем другие устройства

$ hcitool scan
Scanning…
00:19:63:DA:0F:A5 W810i

$ sdptool browse

Далее оставлена только та часть, которая необходима для настройки
соединения через bluetooth

Service Name: Dial-up Networking
Service RecHandle: 0×10002
Service Class ID List:
«Dialup Networking» (0×1103)
«Generic Networking» (0×1201)
Protocol Descriptor List:
«L2CAP» (0×0100)
«RFCOMM» (0×0003)
Channel: 2
Profile Descriptor List:
«Dialup Networking» (0×1103)
Version: 0x0100Service Name: Dial-up Networking
Service RecHandle: 0×10002
Service Class ID List:
«Dialup Networking» (0×1103)
«Generic Networking» (0×1201)
Protocol Descriptor List:
«L2CAP» (0×0100)
«RFCOMM» (0×0003)
Channel: 2
Profile Descriptor List:
«Dialup Networking» (0×1103)
Version: 0×0100

Нужно подредактировать файлы hcid.conf и rfcomm.conf которые лежат в
/etc/bluetooth

hcid.conf

#
# HCI daemon configuration file.
#

# HCId options
options {
# Automatically initialize new devices
autoinit yes;

# Security Manager mode
# none — Security manager disabled
# auto — Use local PIN for incoming connections
# user — Always ask user for a PIN
#
security auto;

# Pairing mode
# none – Pairing disabled
# multi — Allow pairing with already paired devices
# once – Pair once and deny successive attempts
pairing multi;

# Default PIN code for incoming connections
passkey «0000»;
}

# Default settings for HCI devices
device {
# Local device name
# %d — device id
# %h — host name
name "%h-%d»;

# Local device class
class 0×100;

# Default packet type
#pkt_type DH1,DM1,HV1;

# Inquiry and Page scan
iscan enable; pscan enable;

# Default link mode
# none – no specific policy
# accept — always accept incoming connections
# master — become master on incoming connections,
# deny role switch on outgoing connections
lm accept;

# Default link policy
# none – no specific policy
# rswitch — allow role switch
# hold – allow hold mode
# sniff – allow sniff mode
# park – allow park mode
lp rswitch,hold,sniff,park;
}

Лично я поменял только пин-код для доступа к устройству

rfcomm.conf

#
# RFCOMM configuration file.
#

rfcomm1 {
# Automatically bind the device at startup
bind yes;

# Bluetooth address of the device
device 00:19:63:DA:0F:A5;

# RFCOMM channel for the connection
channel 2;

# Description of the connection
comment «w810»;
}

rfcomm1 — это имя устройства, которое создасться. Можно указать rfcomm от 0 до 9.

device 00:19:63:DA:0F:A5 — Mac-адрес устройства, берется из вывода

hcitool scan

channel 2; – берется из вывода sdptool browse секции Dial-up Networking

Protocol Descriptor List:
«L2CAP» (0×0100)
«RFCOMM» (0×0003)
Channel: 2

Далее, можно засунуть модуль omnibook в автозагрузку. Для этого
открываем файл /etc/modules и прописываем туда

omnibook ectype=ваш_номер_ectype

Для автозагрузки программ для работы с bluetooth в файле
/etc/default/bluetooth меняем BLUETOOTH_ENABLED=0 на BLUETOOTH_ENABLED=1

Далее, перезапускаем службы bluetooth

# /etc/init.d/bluetooth restart

Открываем файл /etc/wvdial.conf и редактируем

[Dialer Defaults]
Modem = /dev/rfcomm1
Init1 = ATZ
Init2 = AT+CGDCONT=1,«IP»,«internet.beeline.ru»
Baud = 921600
Phone = *99***1#
Username = beeline
Password = beeline

Modem = /dev/rfcomm1

здесь указываем то устройство, что в файле /etc/bluetooth/rfcomm.conf

Для абнентов МТС меняется только строка инициализации на
AT+CGDCONT=1,«IP»,«internet.mts.ru» (хотя эту строку инициализации можно
вообще не писать — у меня работало и без нее), логин и пароль — mts.

И еще — необходимо создать файл host.conf — по умолчанию он не создался (у меня).

# touch /etc/host.conf

Дозваниваемся

alex:/home/alex# wvdial

– > WvDial: Internet dialer version 1,56
– > Cannot get information for serial port.
– > Initializing modem.
– > Sending: ATZ
ATZ
OK
– > Sending: AT+CGDCONT=1,«IP»,«internet.beeline.ru»
AT+CGDCONT=1,«IP»,«internet.beeline.ru»
OK
– > Modem initialized.
– > Sending: ATDT*99***1#
– > Waiting for carrier.
ATDT*99***1#
CONNECT
~[7f]}#@!}!}!} }9}#}%B#}%}(}"}’}"}»}&} } } } }%}&Ag[02]Q}O~
– > Carrier detected. Waiting for prompt.
~[7f]}#@!}!}»} }9}#}%B#}%}(}"}’}"}»}&} } } } }%}&Ag[02]Q1»~
– > PPP negotiation detected.
– > Starting pppd at Tue May 6 05:30:00 2008
– > Pid of pppd: 3292
– > Using interface ppp0
– > pppd: HH[10][06][06][08]@
– > [06][08]
– > pppd: HH[10][06][06][08]@
– > [06][08]
– > pppd: HH[10][06][06][08]@
– > [06][08]
– > pppd: HH[10][06][06][08]@
– > [06][08]
– > pppd: HH[10][06][06][08]@
– > [06][08]
– > local IP address 10.0.97.242
– > pppd: HH[10][06][06][08]@
– > [06][08]
– > remote IP address 217.118.88.114
– > pppd: HH[10][06][06][08]@
– > [06][08]
– > primary DNS address 217.118.66.243
– > pppd: HH[10][06][06][08]@
– > [06][08]
– > secondary DNS address 193.232.88.17
– > pppd: HH[10][06][06][08]@
– > [06][08]

Все, соединение установлено.