Исходные данные
Тело: Z6
Прошивка: R60_G_80.33.05R original unlocked
Linux: 2.6.26-gentoo
Настройки на линуксе:
Перед подключением USB кабеля из под рута запустить
смотрим вывод,
udevmonitor will print the received events for:
UDEV the event which udev sends out after rule processing
UEVENT the kernel uevent
UEVENT[1222919713.932586] add /devices/pci0000:00/0000:00:02.2/usb2/2-2 (usb)
UEVENT[1222919713.935620] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0 (usb)
UEVENT[1222919713.936701] add /class/tty/ttyACM0 (tty)
UEVENT[1222919713.937859] add /class/usb_endpoint/usbdev2.15_ep81 (usb_endpoint)
UEVENT[1222919713.937877] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.1 (usb)
UEVENT[1222919713.938988] add /class/usb_endpoint/usbdev2.15_ep86 (usb_endpoint)
UEVENT[1222919713.939006] add /class/usb_endpoint/usbdev2.15_ep02 (usb_endpoint)
UEVENT[1222919713.939016] add /class/usb_device/usbdev2.15 (usb_device)
UEVENT[1222919713.939025] add /class/usb_endpoint/usbdev2.15_ep00 (usb_endpoint)
UDEV [1222919713.948476] add /devices/pci0000:00/0000:00:02.2/usb2/2-2 (usb)
UDEV [1222919713.951484] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.1 (usb)
UDEV [1222919713.973104] add /class/usb_endpoint/usbdev2.15_ep86 (usb_endpoint)
UDEV [1222919713.973799] add /class/usb_endpoint/usbdev2.15_ep02 (usb_endpoint)
UDEV [1222919714.041774] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0 (usb)
UDEV [1222919714.042651] add /class/tty/ttyACM0 (tty)
UDEV [1222919714.071656] add /class/usb_endpoint/usbdev2.15_ep81 (usb_endpoint)
UDEV [1222919714.092331] add /class/usb_endpoint/usbdev2.15_ep00 (usb_endpoint)
UDEV [1222919714.100161] add /class/usb_device/usbdev2.15 (usb_device)
Oстанавливаем программу по Control+C
Note: Данный вывод обозначает распознование модема и создания устройства /dev/ttyACM0
Для удобства обращения прописываем правила udev для создание /dev/modem и задаем разрешение на пользование модемом группе uucp
Создаем файлик /etc/udev/udev.rules/99-local.rules
с содержимым в виде
# Create symlink for a USB modem
KERNEL=="ttyACM0", SYMLINK+="modem", GROUP="uucp"
Заставляем udev обновить правила командой
Проверяем наличие себя любимого в группе uucp командой
для добавления себя выполняем команду (sudo) usermod -aG uucp <имя_пользователя>
Результат: При соединении компьютера и телефона по USB кабелю создается устройство /dev/modem которым могут воспользоватся пользователи из группы uucp
Перед подключением USB кабеля из под рута запустить
смотрим вывод,
Вывод показывает разпознование двух блочных устройств (файловых систем самого телефона и карточки) к которым можно обратится по адресу /dev/sdb и /dev/sdc и присоединить их к файловой системе компьютера командой
sudo mount -t vfat /dev/sdb /mnt/sdb
sudo mount -t vfat /dev/sdc /mnt/sdc
что бы побродить по файловой системе телефона.
Note: В udev.rules так же можно создать правила для автомонтирования
используйте команду lshal |grep Motorola для выявления уникального storage.serial.
Результат: При соединении компьютера и телефона по USB кабелю создаются два устройство /dev/sdb и /dev/sdc которые являются файловыми системами Z6 (Внутренняя память телефона и флэш карточка).
Теперь можно собирать модуль ZAURUS отдельно (повторяем пересборку при каждом обновлении ядра)
apt-get install linux-source build-essential
cd /usr/src
tar xvf linux-source-2.6.24.tar.bz2
cd linux-source-2.6.24
cp /boot/config-`uname -r` .config
echo 'CONFIG_USB_NET_ZAURUS=m' > .config
make drivers/net/usb/zaurus.ko
cp drivers/net/usb/zaurus.ko /lib/modules/`uname -r`/kernel/drivers/net/usb
depmod -a
Для Gentoo можно пересобрать ядро или обновить модули
cd /usr/src/linux && make menuconfig
необходимо отметить сборку модуля по адресу
Symbol: USB_NET_ZAURUS [=m]
│ Prompt: Sharp Zaurus (stock ROMs) and compatible
│ Defined at drivers/net/usb/Kconfig:312
│ Depends on: NETDEVICES && USB && NET && USB_USBNET
│ Location:
│ -> Device Drivers
│ --> Network device support (NETDEVICES [=y])
│ ---> USB Network Adapters
│ ----> Multi-purpose USB Networking Framework (USB_USBN[=m])
│ Selects: USB_NET_CDCETHER && CRC32
и дальше по официальному руководству сборки ядра если свежее ядро или просто обновляем модули
make modules && make modules_install
Подргужаем необходимые модули
У меня автоматом подгрузило cdc_ether и usbnet
На этом этапе перевод телефона в режим usbnet cо звуковым оформление должен проходить безболезненно.
или тоже самое (modem это линк на ttyACM0)
Редактируем /etc/network/interfaces, добавив:
Берём (и если хотите - компилируем) motousbnet
Активируем интерфейс usb0:
Автоматизацию можно провести с использованием udev.rules (TODO)
Смотреть сообщение#4 от Abram
TODO:
Указать все необходимые настройки в ядре для модема, флэшки и usbnet
Написать автоматизацию через udev.rules
Добавить установку flash-tools возможно с написанием ebuild и deb
REVISIONS LOG:
2008-10-06:
+Подключения в режиме Memory Card
+Подклюдение в режиме USBNET
Сообщение отредактировал Dmitri - 7.10.2008, 3:37
Тело: Z6
Прошивка: R60_G_80.33.05R original unlocked
Linux: 2.6.26-gentoo
Режим: Modem
Настройки на линуксе:
Перед подключением USB кабеля из под рута запустить
Код
udevadm monitor
смотрим вывод,
CODE
udevmonitor will print the received events for:
UDEV the event which udev sends out after rule processing
UEVENT the kernel uevent
UEVENT[1222919713.932586] add /devices/pci0000:00/0000:00:02.2/usb2/2-2 (usb)
UEVENT[1222919713.935620] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0 (usb)
UEVENT[1222919713.936701] add /class/tty/ttyACM0 (tty)
UEVENT[1222919713.937859] add /class/usb_endpoint/usbdev2.15_ep81 (usb_endpoint)
UEVENT[1222919713.937877] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.1 (usb)
UEVENT[1222919713.938988] add /class/usb_endpoint/usbdev2.15_ep86 (usb_endpoint)
UEVENT[1222919713.939006] add /class/usb_endpoint/usbdev2.15_ep02 (usb_endpoint)
UEVENT[1222919713.939016] add /class/usb_device/usbdev2.15 (usb_device)
UEVENT[1222919713.939025] add /class/usb_endpoint/usbdev2.15_ep00 (usb_endpoint)
UDEV [1222919713.948476] add /devices/pci0000:00/0000:00:02.2/usb2/2-2 (usb)
UDEV [1222919713.951484] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.1 (usb)
UDEV [1222919713.973104] add /class/usb_endpoint/usbdev2.15_ep86 (usb_endpoint)
UDEV [1222919713.973799] add /class/usb_endpoint/usbdev2.15_ep02 (usb_endpoint)
UDEV [1222919714.041774] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0 (usb)
UDEV [1222919714.042651] add /class/tty/ttyACM0 (tty)
UDEV [1222919714.071656] add /class/usb_endpoint/usbdev2.15_ep81 (usb_endpoint)
UDEV [1222919714.092331] add /class/usb_endpoint/usbdev2.15_ep00 (usb_endpoint)
UDEV [1222919714.100161] add /class/usb_device/usbdev2.15 (usb_device)
Oстанавливаем программу по Control+C
Note: Данный вывод обозначает распознование модема и создания устройства /dev/ttyACM0
Для удобства обращения прописываем правила udev для создание /dev/modem и задаем разрешение на пользование модемом группе uucp
Создаем файлик /etc/udev/udev.rules/99-local.rules
с содержимым в виде
Код
# Create symlink for a USB modem
KERNEL=="ttyACM0", SYMLINK+="modem", GROUP="uucp"
Заставляем udev обновить правила командой
Код
udevadm control --reload_rules
Проверяем наличие себя любимого в группе uucp командой
Код
groups
для добавления себя выполняем команду (sudo) usermod -aG uucp <имя_пользователя>
Результат: При соединении компьютера и телефона по USB кабелю создается устройство /dev/modem которым могут воспользоватся пользователи из группы uucp
Режим: Memory Card
Перед подключением USB кабеля из под рута запустить
Код
udevadm monitor
смотрим вывод,
CODE
udevmonitor will print the received events for:
UDEV the event which udev sends out after rule processing
UEVENT the kernel uevent
UEVENT[1223345438.841908] add /devices/pci0000:00/0000:00:02.2/usb2/2-2 (usb)
UEVENT[1223345438.844387] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0 (usb)
UEVENT[1223345438.844696] add /class/scsi_host/host2 (scsi_host)
UEVENT[1223345438.846361] add /class/usb_endpoint/usbdev2.5_ep02 (usb_endpoint)
UEVENT[1223345438.846381] add /class/usb_endpoint/usbdev2.5_ep86 (usb_endpoint)
UEVENT[1223345438.846391] add /class/usb_device/usbdev2.5 (usb_device)
UEVENT[1223345438.846401] add /class/usb_endpoint/usbdev2.5_ep00 (usb_endpoint)
UDEV [1223345438.875324] add /devices/pci0000:00/0000:00:02.2/usb2/2-2 (usb)
UDEV [1223345438.950541] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0 (usb)
UDEV [1223345438.951698] add /class/scsi_host/host2 (scsi_host)
UDEV [1223345438.974814] add /class/usb_endpoint/usbdev2.5_ep02 (usb_endpoint)
UDEV [1223345438.975338] add /class/usb_endpoint/usbdev2.5_ep86 (usb_endpoint)
UDEV [1223345439.005444] add /class/usb_device/usbdev2.5 (usb_device)
UDEV [1223345439.007228] add /class/usb_endpoint/usbdev2.5_ep00 (usb_endpoint)
UEVENT[1223345443.846830] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:0 (scsi)
UEVENT[1223345443.846868] add /class/scsi_disk/2:0:0:0 (scsi_disk)
UEVENT[1223345443.848359] add /block/sdb (block)
UEVENT[1223345443.848395] add /class/bdi/8:16 (bdi)
UEVENT[1223345443.848405] add /class/scsi_device/2:0:0:0 (scsi_device)
UEVENT[1223345443.848414] add /class/scsi_generic/sg1 (scsi_generic)
UEVENT[1223345443.848423] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:1 (scsi)
UEVENT[1223345443.848483] add /class/scsi_disk/2:0:0:1 (scsi_disk)
UEVENT[1223345443.849769] add /block/sdc (block)
UEVENT[1223345443.849806] add /class/bdi/8:32 (bdi)
UEVENT[1223345443.849815] add /class/scsi_device/2:0:0:1 (scsi_device)
UEVENT[1223345443.849824] add /class/scsi_generic/sg2 (scsi_generic)
UDEV [1223345443.854326] add /class/bdi/8:16 (bdi)
UDEV [1223345443.854749] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:0 (scsi)
UDEV [1223345443.862991] add /class/scsi_disk/2:0:0:0 (scsi_disk)
UDEV [1223345443.869162] add /class/scsi_device/2:0:0:0 (scsi_device)
UDEV [1223345443.874769] add /class/scsi_generic/sg1 (scsi_generic)
UDEV [1223345443.887672] add /class/bdi/8:32 (bdi)
UDEV [1223345443.894541] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:1 (scsi)
UDEV [1223345443.895981] add /class/scsi_disk/2:0:0:1 (scsi_disk)
UDEV [1223345443.918298] add /class/scsi_device/2:0:0:1 (scsi_device)
UDEV [1223345443.924580] add /class/scsi_generic/sg2 (scsi_generic)
UDEV [1223345443.932210] add /block/sdb (block)
UDEV [1223345443.939715] add /block/sdc (block)
UEVENT[1223345448.020411] change /block/sdb (block)
UEVENT[1223345448.029408] change /block/sdc (block)
UEVENT[1223345448.051292] change /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:1 (scsi)
UDEV [1223345448.051859] change /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:1 (scsi)
UDEV [1223345448.065163] change /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:0 (scsi)
UDEV [1223345448.181120] change /block/sdb (block)
UDEV [1223345448.231764] change /block/sdc (block)
UDEV the event which udev sends out after rule processing
UEVENT the kernel uevent
UEVENT[1223345438.841908] add /devices/pci0000:00/0000:00:02.2/usb2/2-2 (usb)
UEVENT[1223345438.844387] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0 (usb)
UEVENT[1223345438.844696] add /class/scsi_host/host2 (scsi_host)
UEVENT[1223345438.846361] add /class/usb_endpoint/usbdev2.5_ep02 (usb_endpoint)
UEVENT[1223345438.846381] add /class/usb_endpoint/usbdev2.5_ep86 (usb_endpoint)
UEVENT[1223345438.846391] add /class/usb_device/usbdev2.5 (usb_device)
UEVENT[1223345438.846401] add /class/usb_endpoint/usbdev2.5_ep00 (usb_endpoint)
UDEV [1223345438.875324] add /devices/pci0000:00/0000:00:02.2/usb2/2-2 (usb)
UDEV [1223345438.950541] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0 (usb)
UDEV [1223345438.951698] add /class/scsi_host/host2 (scsi_host)
UDEV [1223345438.974814] add /class/usb_endpoint/usbdev2.5_ep02 (usb_endpoint)
UDEV [1223345438.975338] add /class/usb_endpoint/usbdev2.5_ep86 (usb_endpoint)
UDEV [1223345439.005444] add /class/usb_device/usbdev2.5 (usb_device)
UDEV [1223345439.007228] add /class/usb_endpoint/usbdev2.5_ep00 (usb_endpoint)
UEVENT[1223345443.846830] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:0 (scsi)
UEVENT[1223345443.846868] add /class/scsi_disk/2:0:0:0 (scsi_disk)
UEVENT[1223345443.848359] add /block/sdb (block)
UEVENT[1223345443.848395] add /class/bdi/8:16 (bdi)
UEVENT[1223345443.848405] add /class/scsi_device/2:0:0:0 (scsi_device)
UEVENT[1223345443.848414] add /class/scsi_generic/sg1 (scsi_generic)
UEVENT[1223345443.848423] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:1 (scsi)
UEVENT[1223345443.848483] add /class/scsi_disk/2:0:0:1 (scsi_disk)
UEVENT[1223345443.849769] add /block/sdc (block)
UEVENT[1223345443.849806] add /class/bdi/8:32 (bdi)
UEVENT[1223345443.849815] add /class/scsi_device/2:0:0:1 (scsi_device)
UEVENT[1223345443.849824] add /class/scsi_generic/sg2 (scsi_generic)
UDEV [1223345443.854326] add /class/bdi/8:16 (bdi)
UDEV [1223345443.854749] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:0 (scsi)
UDEV [1223345443.862991] add /class/scsi_disk/2:0:0:0 (scsi_disk)
UDEV [1223345443.869162] add /class/scsi_device/2:0:0:0 (scsi_device)
UDEV [1223345443.874769] add /class/scsi_generic/sg1 (scsi_generic)
UDEV [1223345443.887672] add /class/bdi/8:32 (bdi)
UDEV [1223345443.894541] add /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:1 (scsi)
UDEV [1223345443.895981] add /class/scsi_disk/2:0:0:1 (scsi_disk)
UDEV [1223345443.918298] add /class/scsi_device/2:0:0:1 (scsi_device)
UDEV [1223345443.924580] add /class/scsi_generic/sg2 (scsi_generic)
UDEV [1223345443.932210] add /block/sdb (block)
UDEV [1223345443.939715] add /block/sdc (block)
UEVENT[1223345448.020411] change /block/sdb (block)
UEVENT[1223345448.029408] change /block/sdc (block)
UEVENT[1223345448.051292] change /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:1 (scsi)
UDEV [1223345448.051859] change /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:1 (scsi)
UDEV [1223345448.065163] change /devices/pci0000:00/0000:00:02.2/usb2/2-2/2-2:1.0/host2/target2:0:0/2:0:0:0 (scsi)
UDEV [1223345448.181120] change /block/sdb (block)
UDEV [1223345448.231764] change /block/sdc (block)
Вывод показывает разпознование двух блочных устройств (файловых систем самого телефона и карточки) к которым можно обратится по адресу /dev/sdb и /dev/sdc и присоединить их к файловой системе компьютера командой
sudo mount -t vfat /dev/sdb /mnt/sdb
sudo mount -t vfat /dev/sdc /mnt/sdc
что бы побродить по файловой системе телефона.
Note: В udev.rules так же можно создать правила для автомонтирования
используйте команду lshal |grep Motorola для выявления уникального storage.serial.
Результат: При соединении компьютера и телефона по USB кабелю создаются два устройство /dev/sdb и /dev/sdc которые являются файловыми системами Z6 (Внутренняя память телефона и флэш карточка).
Режим: USB Net
Теперь можно собирать модуль ZAURUS отдельно (повторяем пересборку при каждом обновлении ядра)
Код
apt-get install linux-source build-essential
cd /usr/src
tar xvf linux-source-2.6.24.tar.bz2
cd linux-source-2.6.24
cp /boot/config-`uname -r` .config
echo 'CONFIG_USB_NET_ZAURUS=m' > .config
make drivers/net/usb/zaurus.ko
cp drivers/net/usb/zaurus.ko /lib/modules/`uname -r`/kernel/drivers/net/usb
depmod -a
Для Gentoo можно пересобрать ядро или обновить модули
cd /usr/src/linux && make menuconfig
необходимо отметить сборку модуля по адресу
Symbol: USB_NET_ZAURUS [=m]
│ Prompt: Sharp Zaurus (stock ROMs) and compatible
│ Defined at drivers/net/usb/Kconfig:312
│ Depends on: NETDEVICES && USB && NET && USB_USBNET
│ Location:
│ -> Device Drivers
│ --> Network device support (NETDEVICES [=y])
│ ---> USB Network Adapters
│ ----> Multi-purpose USB Networking Framework (USB_USBN[=m])
│ Selects: USB_NET_CDCETHER && CRC32
и дальше по официальному руководству сборки ядра если свежее ядро или просто обновляем модули
make modules && make modules_install
Подргужаем необходимые модули
Код
modprobe zaurus
У меня автоматом подгрузило cdc_ether и usbnet
На этом этапе перевод телефона в режим usbnet cо звуковым оформление должен проходить безболезненно.
Код
echo "AT+mode=8" > /dev/ttyACM0
или тоже самое (modem это линк на ttyACM0)
Код
echo "AT+mode=8" > /dev/modem
Редактируем /etc/network/interfaces, добавив:
Код
allow-hotplug usb0
mapping hotplug
script grep
map usb0
iface usb0 inet static
address 192.168.16.1
netmask 255.255.255.252
pre-up "/etc/network/motousbnet" # тут нужно написать путь до бинарника motousbnet
auto usb0
mapping hotplug
script grep
map usb0
iface usb0 inet static
address 192.168.16.1
netmask 255.255.255.252
pre-up "/etc/network/motousbnet" # тут нужно написать путь до бинарника motousbnet
auto usb0
Берём (и если хотите - компилируем) motousbnet
Активируем интерфейс usb0:
Код
ifdown usb0 && ifup usb0
Автоматизацию можно провести с использованием udev.rules (TODO)
Смотреть сообщение#4 от Abram
TODO:
Указать все необходимые настройки в ядре для модема, флэшки и usbnet
Написать автоматизацию через udev.rules
Добавить установку flash-tools возможно с написанием ebuild и deb
REVISIONS LOG:
2008-10-06:
+Подключения в режиме Memory Card
+Подклюдение в режиме USBNET
Сообщение отредактировал Dmitri - 7.10.2008, 3:37