Цель – подключить к дримбоксу Bluetooth-адаптер и заставить его работатьПредварительно скачиваем себе
архив с необходимыми файлами.!!! (Все файлы и настройки любезно предоставлены enigma с форума
http://dream.altmaster.net)
1. Выключаем тюнер из сети 220 и подключаем имеющийся в наличии USB Bluetooth-адаптер в свободный USB-разъем на задней панели дримбокса или в USB переходник-удлинитель.
2. Включаем дримбокс, дожидаемся его загрузки, открываем ФТП (DCC, Total Comander) и копируем 8 файлов из архива в папку /tmp тюнера:
libbluetooth2_3.4-r0_mipsel.ipk
libusb_0.1.12-r0_mipsel.ipk
kernel-module-hidp_2.6.12-r13_dm800.ipk
kernel-module-hci-usb_2.6.12-r12_dm800.ipk
kernel-module-l2cap_2.6.12-r12_dm800.ipk
kernel-module-bluetooth_2.6.12-r12_dm800.ipk
kernel-module-rfcomm_2.6.12-r12_dm800.ipk
bluez-utils_3.4-r0_mipsel.ipk
3. Устанавливаем необходимые пакеты и библиотеки. В телнете даем следующие команды именно в таком порядке:
ipkg install /tmp/libbluetooth2_3.4-r0_mipsel.ipk
ipkg install /tmp/libusb_0.1.12-r0_mipsel.ipk
ipkg install /tmp/kernel-module-hidp_2.6.12-r13_dm800.ipk
ipkg install /tmp/kernel-module-hci-usb_2.6.12-r12_dm800.ipk
ipkg install /tmp/kernel-module-l2cap_2.6.12-r12_dm800.ipk
ipkg install /tmp/kernel-module-bluetooth_2.6.12-r12_dm800.ipk
ipkg install /tmp/kernel-module-rfcomm_2.6.12-r12_dm800.ipk
ipkg install /tmp/bluez-utils_3.4-r0_mipsel.ipk
Внимание!!!
Для имиджа Gemini 4.2 необходимо установить дополнительно еще один файл перед установкой пакета bluez-utils_3.4-r0_mipsel.ipk
4. Открываем на редактирование файл /etc/init.d/bootup и добавляем туда следующие строчки для автозагрузки данных модулей.
modprobe hidp
modprobe hci_usb
modprobe l2cap
modprobe rfcomm
modprobe Bluetooth
5. Сохраняем измененный файл и перезагружаем ресивер командой reboot через телнет либо используя пульт ДУ. В случае удачной перезагрузки проверяем, загружены ли нужные нам модули командой lsmod
6. Протестируем работу нашего USB Bluetooth адаптера. В телнете даем команду hciconfig и получаем список bluetooth-устройств (в моем случае это был hci0).
root@dm800:~# hciconfig
hci0: Type: USB
BD Address: 00:11:67:C2:A2:C2 ACL MTU: 1021:4 SCO MTU: 48:10
UP RUNNING PSCAN
RX bytes:395 acl:0 sco:0 events:17 errors:0
TX bytes:317 acl:0 sco:0 commands:17 errors:0
7. Отсканируем окружающую среду на предмет наличия активных Bluetooth-устройств. Разумеется, надо включить блютуз в телефоне и положить его не очень далеко. В телнете даем команду hcitool scan
Через несколько секунд получим результат сканирования:
root@dm800:~# hcitool scan
Scanning ...
00:21:9E:49:BD:94 K800i ........:@:-P
00:0D:41:1E:16:B9 Benq-Siemens E71
Нижнее устройство – это мой Benq-Siemens E71 с адресом 00:0D:41:1E:16:B9 – запомним этот адрес - он нам еще понадобится!!!, а верхний телефон – это телефон соседа снизу
8. Теперь подправим два файлика в папке /etc/bluetooth/ (образцы есть в архиве!)
hcid.conf
rfcomm.conf
Точнее, файл hcid.conf можно просто скопировать из архива в дримбокс.
В этом файле можно задать пароль (пин-код) для доступа к блютусу телефона
# Default PIN code for incoming connections
passkey "0000";
и название блютуса дримбокса (под таким именем его будет отображать телефон в списке блютус-устройств)
# Local device name
# %d - device id
# %h - host name
name "Dreambox DM8000HD";
rfcomm.conf тоже можно скопировать с архива, но в нем необходимо прописать блютус-адрес нашего телефона, который мы получили при сканировании, а так же номер канала (которому соответствует служба Dial-up Networking). Это нужно для того, чтобы каждый раз при запуске Bluetooth происходила автоматическая привязка к Bluetooth-порту нашего мобильного телефона (т.е. к rfcomm0).
#
# RFCOMM configuration file.
#
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device 00:0D:41:1E:16:B9;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Benq-Siemens E71";
}
По выбору номера канала я напишу позже.
По идее ему должна соответствовать служба DUN (Dial-up Networking) телефона. Это надо для использования блютуса для доступа в интерент по GPRS. Как это можно проверить? Даем команду телнета
sdptool browse 00:0D:41:1E:16:B9
где 00:0D:41:1E:16:B9 – это адрес блютуса телефона.
Будет вывод примерно такого вида:
Browsing 00:0D:41:1E:16:B9...
Service Name: Dial-up Networking
Service RecHandle: 0x10000
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
…
Здесь мы видим, что служба DUN Dial-up Networking висит на первом канале.
Инфу по каналам мне надо еще уточнить. Напишу позже.
9. Перегружаем дримбокс чтобы наши изменения вступили в силу.
Проверяем, правильно ли работает канал, даем команду телнета rfcomm
root@dm800:~# rfcomm
rfcomm0: 00:0D:41:1E:16:B9 channel 1 clean
Видим, что первый канал свободен.
В принципе все. На этом подключение Bluetooth-адаптера можно считать законченным.
Подключение мобильного телефона для работы с GPRS через BluetoothСначала выполняем описанное здесь.
Теперь надо изменить файлик /etc/ppp/peers/gprs-siem
Дописываем строчки для блютус-девайса:
# Here is for USB Bluetooth-adapter
/dev/bluetooth/rfcomm/0
Строчки для USB-кабеля закрываем значком #
# Here is for USB serial cable
#/dev/usb/tts/0
Предварительно на телефоне надо провести поиск новых блютус-устройств. Затем в списке устройств для устройства-дримбокса установить опцию "Автоподключение без подтверждения" или сделать его доверенным, тогда телефон не будет спрашивать пароля при каждом соединении.
Теперь пытаемся подключится к интернету. Запускаем скрипт gprs_start.
Если телефон запросит пароль, надо его ввести (0000). При этом скрипт может завершится с ошибкой. В этом случае выполняем то, что написано выше, т.е. ищем новые устройства и делаем его доверенным.
После этого опять запускаем скрипт gprs_start.