GSM модем Samsung SGH-Z810 в Ubuntu

  у розділі Технічні теми 

Samsung SGH-Z810Трапилась мені нагола налаштувати USB-модем Samsung SGH-Z810 для роботи під Uuntu (8.10) та оператором Jeans (Гіпер.net).

Справа в тому що модем, за замовчуванням, не підтримується Ubuntu. Правильніше так - пристрій, як модем, підтримується, але стандартно він перебуває у режимі usb-накопичувача, пропонуючи Вам встановити драйвери для Windows які дозволять переключати пристрій у режим модему.

Linux теж мав би прекрасно працювати з такими пристроями, емулюючи їх як модеми на віртуальному COM-порті. От тільки треба модем переключити у правильний режим.

На щастя це вміє робити програмка USB_ModeSwitch. Перелік пристроїв що нею підтримуються не надто великий, але серед них був і мій Samsung SGH-Z810.

Встановлення USB_ModeSwitch

Завантажуємо архів з сторінки проекту (на час написання це usb_modeswitch-0.9.6.tar.bz2). Окремо можна завантажити конфігураційний файл (usb_modeswitch.conf). Для роботи програми в системі повинна бути встановлена libusb, в Ubuntu 8.10 проблем не було.

Розпакуйте завантажений архів. В ньому, серед іншого, розташований .sh-файл для компіляції програми, але в мене вона, з ходу, компілювати відмовилась. Це виявилось не проблемою бо в тому ж архіві лежить і вже скомпільований бінарник. Тому просто перепишіть файл usb_modeswitch в директорію звідки її зручно буде запускати (я переписав в /usr/bin/).

Файл налаштувань usb_modeswitch.conf перепишіть у /etc/. Потім відредагуйте його розкоментувавши потрібну ділянку, або просто створіть новий файл з такими даними:

# Samsung SGH-Z810 USB (with microSD card)
#
# After switching the usb-storage binds to the microSD card
#
# Contributor: A Friend

DefaultVendor=  0x05c6
DefaultProduct= 0x1000

TargetVendor=   0x04e8
TargetProduct=  0x6601

MessageEndpoint=0x05
MessageContent="55534243123456780000000000000616000000000000000000000000000000"

Ось і майже все. Перевіримо?

Встроміть модем у USB-порт, зачекайте поки система його побачить (він з'явиться як usb-накопичувач) та виконайте в консолі команду:

sudo /usr/bin/usb_modeswitch

(чи де там він в Вас лежить).

Usb_modeswitch знайде доступні пристрої і переключить їх у режим сумісний з модемним! Щоб переконатись що у системі з'явився модем виконайте команду lsusb. В переліку пристроїв повинно з'явитись:

Bus 001 Device 009: ID 04e8:6601 Samsung Electronics Co., Ltd Z100 Mobile Phone

А в пристроях можна буде знайти новий порт: /dev/ttyACM0.

Супер! Модем ожив.

Проте ще залишилось дві проблеми:

  1. Програму потрібно запускати як суперадміністратор (root)

  2. Програму потрібно запускати вручну, щоразу перед використанням модему

Обидві проблеми вирішуються налаштуванням системи так, щоб вона впізнавала наш модем  під час його появи і сама запускала usb_modeswitch.

Для цього створіть новий файл:

sudo gedit /etc/udev/rules.d/45-hotplug.rules

Назва файлу може бути іншою, але номер на початку, на скільки я зрозумів, важливий. В файл /etc/udev/rules.d/45-hotplug.rules впишіть таке:

SUBSYSTEM=="usb", SYSFS{idProduct}=="1000", SYSFS{idVendor}=="05c6", RUN+="/bin/usb_modeswitch"

Перевантажте систему для задіювання цього налаштування чи виконайте

sudo /etc/init.d/udev restart

Тепер, якщо система впізнає нашого виробника (idVendor - Samsung) та пристрій (idProduct - SGH-Z810) його буде автоматично переключено в режим модему. ID інших простроїв можна знайти у відповідних розділах файлу usb_modeswitch.conf.

Налаштування з'єднання з провайдером (Jeans, Гіпер.net)

Після того як в системі вже є наш модем можна ним кудись і підключатись.

Менеджер мережі Ubuntu автоматично "засікає" Z810 після його правильного включення (описаного вище) та пропонує налаштувати під'єднання до Інтернету. Проте в мене чомусь, відразу, не запрацювало, а крім того на комп'ютері де я все це роблю, стандартний менеджер мережевих з'єднань замінено на  Wicd (ньюанси роботи з WiFi на Acer Aspire One).

Тому я використовую альтернативні методи. Спрочатку я протестував роботу можему використовуючи pppconfig. Декілька відповідей про моє підключення і з'єднання встановилось. Проте такий метод не є зручним для користувача, тому я налаштовував gnome-ppp.

Gnome-ppp встановлюється в Ubuntu без проблем, просто з Synaptic чи apt-get.

Після встановлення, в своїй домашній директорії, створіть файл налаштувань PPP:

sudo gedit .wvdial.conf

Та наповніть його таким:

[Dialer Defaults]
Modem = /dev/ttyACM0
ISDN = off
Modem Type = USB Modem
Baud = 460800
Init = ATX3
Init2 = ATZ
Init3 = AT+CGDCONT=1,"IP","hyper.net"
Init4 =
Init5 =
Init6 =
Init7 =
Init8 =
Init9 =
Phone = *99***1#
Phone1 =
Phone2 =
Phone3 =
Phone4 =
Dial Prefix =
Dial Attempts = 1
Dial Command = ATM1L3DT
Ask Password = off
Password = foo
Username = foo
Auto Reconnect = on
Abort on Busy = off
Carrier Check = off
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = on
;Minimize = on
;Dock = on
;Do NOT edit this file by hand!

Останній рядок цікавий, правда? :) Більшість параметрів можна виставити вбезпосередньо в gnome-ppp, але деякі - лише вручну (я інакше не зміг). Збережіть зміни у файлі. Важливі параметри:

Baud = 460800 - в нашому "селі" :) немає покриття 3G, лише GPRS, тому цієї швидкості було достатньо

_Modem = /dev/ttyACM0 _порт модему

Init3 = AT+CGDCONT=1,"IP","hyper.net" - рядок ініціалізації. Змінюється в залежності від провайдера та типу послуг.

Phone = 991#** - номер додзвону

Stupid Mode = on - без нього підключення "задумується" перед остаточним встановленням на 20-30 секунд.

Для того щоб з-під звичайного користувача (не адміна) був доступ до модема і до демона ppp додайте користувача, під яким працюєте, в групи dip та dialout. Якщо Ви не знаєте кманд додавання користувача в певну групу а просто редагуєте файл /etc/group (як я :) ) - не забудьте перевантажитись.

Я вивів значечок gnome-ppp на пенель. Тепер, якщо запхати Z810 в комп'ютер він автоматично переводиться в режим модему. А запуск gnome-pp ініціює підключення до інтернету (триває 1-3 с). Сам значок ховається в зону сповіщень і підблимує собі там.

Усунення несправностей

Якщо будуть проблеми з підключенням модему:

  • перевірте що розкомендували блок про модем в usb_modeswitch.conf

  • запускайте usb_modeswitch вручну та читайте вивід в консолі

  • дочекайтесь щоб модем впізнався системою хоча б як накопичувач перед запуском usb_modeswitch\

Якщо будуть проблеми з "додзвоном"

  • перевірте що користувач занесено до відповідних груп (як описано вище)

  • спробуйте читати логи gnome-ppp (тисніть на кнопку Log)

  • спробуйте запустити від суперадміністратора (sudo gnome-ppp) незабувши скопіювати .wvdial.conf в /root/

Я провів неповних два дні щоб скласти всю картину і отримати Інтернет через це модем, тому сподіваюсь ця інформація стане в нагоді і іншим.

Оновлення (28.04.09)

За достовірними даними, в Ubuntu Desktop 9.04 Jaunty модем Z810 працює відразу "з коробки".


Коментарі