Після того, як накрився старий 3g модем, вирішив придбати собі модем TechFaith Jet, думаю варто поділитися з одним із способів завести його під лінуксом.
З огляду на, що старий модем працював з ходу, то у цього чуда-девайса виявилися деякі особливості. Наприклад як це працює в виндовс під який він і був створений.- Спочатку девайс визначається як CDROM де зберігаються драйвера і підключає флеш карту (в модемі є слот під microSD).
- Потім з CDROM -а автоматом запускається програма автозапуску, яка встановлює сервіс і драйвера.
- Якщо сервіс встановлений був раніше, то установка не відбувається і сервіс відключає CDROM + flash і підключає знову flash + модем. Запускає фірмову програму для роботи з модемом.
По-цьому на відміну від тієї ж Ubuntu CDROM не підключений. ну і фіг з ним) в логах я знайшов все що мені потрібно:
dmesg писал (а): [632.425404] scsi 7: 0: 0: 1: CD-ROM Qualcomm MMC Storage 2.31 PQ: 0 ANSI: 2
[632.485403] sd 7: 0: 0: 0: [sdb] Attached SCSI removable disk
[632.485403] sd 7: 0: 0: 0: Attached scsi generic sg1 type 0
[633.737420] sr0: scsi3-mmc drive: 0x / 0x caddy
[633.737420] sr 7: 0: 0: 1: Attached scsi CD-ROM sr0
[633.737420] sr 7: 0: 0: 1: Attached scsi generic sg2 type 5
[633.968937] sr0: CDROM (ioctl) error, command: Get configuration 46 00 00 00 00 00 00 00 20 00
[633.968948] sr: Sense Key. No Sense [current]
[633.968952] sr: Add. Sense: No additional sense information
Як видно з логу CDROM визначився як пристрій sr0, але підключитися не зміг. З цього я просто з консолі отмонтировать привід:
bash писал (а): # eject / dev / sr0
(В Ubuntu 10.04 можна просто зайти в Nautilus і отмонтировать привід)
Тепер якщо заглянемо в lsusb побачимо, що пристрій переключилася в потрібний нам режим:
lsusb писал (а): Bus 007 Device 001: ID 1d6b: 0001 Linux Foundation 1.1 root
.
Bus 001 Device 005: ID1d09. 4316TechFaith Wireless Technology Limited
.
Bus 001 Device 001: ID 1d6b: 0001 Linux Foundation 1.1 root hub
Але для повної радості потрібно, що б з'явилося в системі пристрій модема. Виходячи з інформації вище модулями ядра, для цього виконавши від рута команду:
bash писал (а): # sudo modprobe usbserial vendor = 0x1D09 product = 0x4316
Заглянемо в логи, що б переконатися, що все розпізналося вірно:
dmesg | grep ttyUSB писал (а): [698.726108] usb 1-2: generic converter now attached to ttyUSB0
[698.743606] usb 1-2: generic converter now attached to ttyUSB1
[698.744490] usb 1-2: generic converter now attached to ttyUSB2
От і відмінно. Далі можна через wvdialconf згенерувати конфиг, підставити логін / паролі і підключитися до інтернету використовую як модем пристрій / dev / ttyUSB0.
Ось мій приклад wvdial.conf
cat /etc/wvdial.conf писал (а): [Dialer Defaults]
Auto Reconnect = false
Baud = 460800
Carrier Check = no
Country = Ukraine
Dial Command = ATM1L3DT
ISDN = false
Idle Seconds = 180
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0 = 0 C1 D2 + FCLASS = 0
Modem = / dev / ttyUSB0
Modem Name = JET_EVDO
Modem Type = USB Modem
Username = ЛОГІН
Password = ПАРОЛЬ
Phone = # НОМЕР
Stupid Mode = true
# Не забуваємо підставити свій логін / пароль, номер дозвону
Для любителів GUI нагадую про фронтенд до wvdial - QtWvDialer
Все це звичайно добре, але кожен раз повторювати процедуру з приводом і довантажувати модуль не цікаво. По-цьому трохи завзятості і гугла допомогло знайти цікавий і простий спосіб змінити спосіб модему без всяких usb_modeswitch. Полягає він в написанні правила для udev. Нагадую, що при первинному підключенні модем розпізнається як привід, а lsusb повертає 05c6 1000 Qualcomm, Inc.
Виходячи з цього треба написати правило для udev. Та легко! Створюємо файл наприклад 99-techfaith-jet.rules в каталозі cat /lib/udev/rules.d/
bash писал (а): zen @ debian:
$ Sudo - s
root @ debian:
# Echo "ACTION ==" add ", ATTRS ==" 05c6 ", ATTRS ==" 1000 ", RUN + =" / usr / local / sbin / techfaith_driver.sh ""> /lib/udev/rules.d/ 99-techfaith-jet.rules
Як видно по рядках вище udev чекатиме пристрої з vendor_id і product_id 05c6: 1000 і при виявленні такого запустить скрипт /usr/local/sbin/techfaith_driver.sh. Далі його код:
bash писал (а): root @ debian:
# Cat /usr/local/sbin/techfaith_driver.sh
#! / Bin / bash
DEV = / dev / disk / by-id
dfile = `ls $ DEV | grep usb-Qualcomm`
for i in $ dfile
do
eject $ DEV / $ i
done
modprobe usbserial vendor = 0x1D09 product = 0x4316
exit 0;
root @ debian:
Не забуваємо зробити скрипт виконуваним:
bash писал (а): root @ debian:
# Chmod + x /usr/local/sbin/techfaith_driver.sh
Ось і все, тепер модем при підключенні буде автоматом відключати CDROM і включати режим модему
бог створив працю і мавпу
щоб вийшов чоловік
а ось пінгвіна він не чіпав
той відразу вийшов добре
Повернутись до початку