КПК (PDA), смартфоны, сотовые телефоны

Материал из MediaWiki
Перейти к навигации Перейти к поиску

[1] - общая информация по поддержке наладонников.

Нужен доброволец для наполнения этого раздела FAQ!

Синхронизация. Как синхронизировать КПК или смартфон с Windows Mobile? Как получить доступ к такому КПК/смартфону?

Доступ к устройству дает SynCE. Графические интерфейсы реализованы для KDE и Gnome.

Если на машине нет KDE или Gnome, можно воспользоваться реализацией под названием PyRapi.

Для синхронизации календарей, почты и прочего есть проект multisync, работающий в паре с SynCE. В данный момент можно синхронизироваться с Evolution и адресной книгой KDE.

На какие КПК можно установить Linux?

Ответить на этот вопрос поможет ресурс [2]. Самые хорошие результаты дают установки Linux на HP iPaq старых версий, например hx4700.

Какие КПК идут сразу с установленным Linux?

Какие смартфоны идут с установленным Linux?

Смартфоны Nokia

Смартфоны Motorola

Список моделей с Linux: A728, A760, A768, A780, A910, A1200, E680, E680i, E680g, E690, Rokr E2, Rokr E6, Rokr E8, Rizr Z6, Razr 2 (v8, v9), i876.

Из них в СНГ продаются A1200e и Razr2.

Linux в этих телефонах используется исключительно для запуска закрытой оболочки, написанной на Qt Embedded.

Информация о телефонах:

  • OpenEZX - сборник информации, портирование драйверов устройств телефонов Motorola в ветку ядра 2.6
  • Раздел форума motofan.ru, посвященный linux-смартфонам
  • Описание модификации linux, установленной в телефоне A1200e с точки зрения линуксоида: ссылка
  • Модифицированная прошивка, с возможностью записи в rootfs (убрана защита на уровне mtd, тип корневой файловой системы сменен с cramfs на jffs2, изменена таблица разделов mtd, плюс стандартные улучшения) - [3]

Какой дистрибутив ставить на PDA

Наиболее динамично развивающимся дистрибутивом на 2008 год является Ångström Linux. Структура взята из debian. В качестве пакетного менеджера используется ipkg. Для построения используется система OpenEmbedded. Есть версия также на i686.

Вторым дистрибутивом можно назвать Familiar Linux.

Какие графические среды существуют под PDA

  • Qtopia - закрытая рабочая среда, разрабатываемой компанией Trolltech для ограниченного набора устройств, и использующая библиотеку Qt. Для PDA hx4700 ее стоимость составляет $50.
  • OPIE - очень красивая и быстрая рабочая среда, написанная на Qt. Является форком закрытой рабочей среды Qtopia. Не использует для вывода графики X Window System, поэтому портировать графические приложения сложнее, чем для GPE. Имеет приличную поддержку PIM и мультимедии.
  • GPE - наиболее популярная среда, использующая для вывода графики X Window System. Написана на библиотеке GTK. Без ложного преувеличения можно назвать данную систему Gnome на PDA, так как существуют порты самых популярных библиотек и приложений этой рабочей среды. Если вы хотите использовать свой PDA как мини-компьютер и органайзер и работать с полнофункциональными приложениями документооборота (например, abiword и gnumeric) - это наиболее подходящая для вас среда.
  • Maemo — базирующаяся на Debian Linux платформа для портативных устройств. Используется в интернет-планшетах Nokia 770, Nokia N800, N810 и коммуникаторе Nokia N900. В основе Maemo лежат компоненты среды Gnome, в том числе графическая библиотека gtk. Б́ольшая часть кода Maemo открыта, и послужила основой для создания Ubuntu Mobile.

Какие загрузчики используются Linux для мобильных устройств

Существует несколько загрузчиков Linux для PDA:

  • LinExec
  • HaRET
  • Garux, для устройств Palm
  • SDG Bootloader. Также существует модифицированная версия загрузчика (автор, если не ошибаюсь, kmeaw), позволяющая грузиться не только с внутренней флешки, но и с CF-карты.
  • bootldr-pxa

Как установить Ångström Linux на PDA

Установка Linux на разных устройствах отличается в ряде моментов, например, при установке загрузчика, вызове сервисного меню устройства и частично бэкапе системы.

Бэкап системы Windows Mobile и установка загрузчика

hx4700 и SDG Bootloader

Для начала нам потребуется карта памяти SD объемом от 128 мегабайт, компьютер с линуксом и кредл. Все, что было на карте, будет удалено!

1. Нажимаем одновременно кнопки Addressbook + iTask + Reset. 2. Вставляем наладонник в кредл. 3. Запускаем minicom с параметром -os. Наше устройство, если все нормально, называется /dev/ttyUSB0 (убедитесь в этом). 4. Копируем образ командой d2s.

Теперь на карточке окажется образ Windows Mobile. Предполагая, что карта является устройством /dev/sda, скинуть образ на рабочий компьютер можно как обычно с помощью команды dd:

dd if=/dev/sda of=windows.img bs=130M count=1

Теперь установим загрузчик.

1. Скачаем загрузчик отсюда - файл будет называться bootldr-1.X.X-hp.rom. 2. Поместим загрузчик на карту:

dd if=bootldr.rom of=/dev/sda 

3. Установим загрузчик на устройство. Для этого вставим карту в наладонник и нажмем Contacts + iTask + Reset.

Установка дистрибутива

hx4700

Скачиваем файлы дистрибутива отсюда:

  • reflash.ctl - контрольный файл, в котором прописаны названия и файлы прошивок.
  • zImage-2.6.xx-hhXX-rX-hx4700.bin - ядро.
  • И один из файлов, название которого называется Angstrom.

Какой из Angstrom'ов? Это просто:

  • base - базовая система, только консоль, большинство утилит управления устройством отсутствует, ядро имеет ограниченное количество модулей.
  • console - полнофункциональная консольная система.
  • minimalist - система с минимальным набором графических программ.
  • x11-image - полнофункциональная система с набором графических программ под большинство нужд.

Скачиваем те, что имеют расширение jffs2.

Установка: 1. Проверяем, правильно ли прописаны файлы в reflash.ctl. 2. Переписываем файлы на карту CF. Если карта имеет объем больше 128Мб, то безопаснее создать первый раздел на 128Mb и переписать файлы туда. Карта должна иметь файловую систему FAT (рекомендуется FAT16, но прекрасно работает и FAT32). 3. Вставляем карту CF в наладонник. 4. Нажимаем Contact + Mail + Reset. 5. Загрузчик покажет строчки с названиями ядер (zImage) и системы (Angstrom). Клавишами Contact и Calendar можно перемещать курсор, а клавишей iTask делать выбор. Выберите ядро и нажмите iTask. 6. Когда загрузчик проверит целостность файла, он попросит подтверждение на прошивку. Нажмите клавишу Record. 7. После того, как ядро прошьется, нажмите Record еще раз, чтобы вернуться в меню и выбрать для прошивки систему. 8. После прошивки вытащите все карточки и нажмите Power. Первая загрузка будет довольно долгой. В конце система предложит откалибровать экран и ввести имя пользователя, который будет работать с наладонником.

Иногда загрузчик может не увидеть файлов вообще. Нажмите Record для повторения чтения.

Настройка сети

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

Для дистрибутива Fedora создаем файл /etc/sysconfig/network-script/ifcfg-usb0

# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
DEVICE=usb0
BOOTPROTO=none
IPADDR=192.168.0.200
ONBOOT=no
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
TYPE=Неизвестный

Вот такой файлик под названием ipaqh кладем куда-нибудь в /usr/local/bin

ROUTE=/sbin/route
IPTABLES=/sbin/iptables
MODPROBE=/sbin/modprobe
AWK=/bin/awk
IFCONFIG=/sbin/ifconfig
LOCAL=127.0.0.1/32

EXT_IF="eth0"
EXT_IP=172.16.128.5
EXT_NET=172.16.128.0/255.255.0.0

sudo $MODPROBE cdc_subset
sudo $MODPROBE usbnet
sudo $IFCONFIG usb0 192.168.0.200
echo 1 > /proc/sys/net/ipv4/ip_forward

INT_NET=192.168.0.0
INT_MASK=255.255.255.0
INT_IP=192.168.0.200

sudo $MODPROBE ip_conntrack
sudo $MODPROBE ip_tables
sudo $MODPROBE iptable_filter
sudo $MODPROBE iptable_mangle
sudo $MODPROBE iptable_nat
sudo $MODPROBE ipt_LOG
sudo $MODPROBE ipt_limit
sudo $MODPROBE ipt_MASQUERADE
sudo $MODPROBE ipt_REJECT
sudo $MODPROBE ip_conntrack_ftp
sudo $MODPROBE ip_nat_ftp

#Remove # if you don't have another iptables firewall rules
#sudo $IPTABLES -X
#sudo $IPTABLES -F FORWARD
#sudo $IPTABLES -F INPUT
#sudo $IPTABLES -F OUTPUT
#sudo $IPTABLES -t nat -F POSTROUTING

sudo $IPTABLES -A INPUT -j ACCEPT
sudo $IPTABLES -A OUTPUT -j ACCEPT

#Forwarding
sudo $IPTABLES -A FORWARD -j ACCEPT

sudo $IPTABLES -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE

sudo $ROUTE del default gw 192.168.10.200

На наладоннике в файле /etc/network/interfaces:

        auto usb0
        iface usb0 inet static
        address 192.168.0.202
        netmask 255.255.255.0
        network 192.168.0.0
        gateway 192.168.0.200

На наладоннике в файле /etc/resolv.conf прописываем ваш DNS.

Теперь вставляем устройство в кредл и запускаем ipaqh. Должен появиться сетевой usb-интерфейс, а на наладоннике - интернет.

Зачем подключать файл подкачки (swap-файл) и как это сделать?

На наладоннике достаточно ограниченный объем памяти - от 32-х до 128-ми мегабайт. При запуске тяжелых приложений память потребляется зачастую в большем объеме, чем есть на устройстве. Поэтому, как и на больших компьютерах, мы создадим swap-файл на карте памяти. Обычно с картой CF проблем меньше. Чем быстрее ваша карта памяти, тем быстрее будут работать приложения.

Для этого воспользуемся линуксом на настольном компьютере. Создаем подкачки на 98Мб:

root@linux# touch swap
root@linux# dd if=/dev/zero of=./swap bs=1M count=98
root@linux# mkswap ./swap

Копируем файл на второй раздел карты CF и пропишем в файле /etc/fstab наладонника такую строчку:

/media/hda2/swap        swap        swap    defaults        0 0

Теперь подключаем swap:

root@linux# swapon -a

Как обновить программы установленного дистрибутива

Как и любой другой, использующий пакетный менеджер ipkg, дистрибутив можно и нужно обновить сразу после установки двумя командами:

root@linux# ipkg update
root@linux# ipkg upgrade

Иногда последнюю команду стоит повторить.

Установка полезного комплекта программ

Часть программ будет взята из нестабильных репозитариев. Поэтому для начала нам следует их подключить.

Создайте файл /etc/ipkg/hx4700un-feed.conf

src/gz hx4700un http://www.angstrom-distribution.org/unstable/feed/armv5te/machine/hx4700/

и файл /etc/ipkg/unstable-feed.conf

src/gz unstable http://www.angstrom-distribution.org/unstable/feed/armv5te/base

После этого выполните команду

ipkg update

Дальше создадим файлик с любым названием, который и установит необходимые нам программы.

#!/bin/sh
ipkg update
ipkg upgrade
ipkg install fbreader
ipkg install abiword
ipkg install abiword-plugin-opendocument
ipkg install abiword-plugin-openwriter
ipkg install abiword-plugin-mswrite
ipkg install abiword-plugin-jpeg
ipkg install gnumeric
ipkg install gnumeric-plugin-openoffice
ipkg install gnumeric-plugin-excel
ipkg install mplayer
ipkg install gpdf
ipkg install gaim
ipkg install gaim-protocol-oscar
ipkg install gpe-gallery
ipkg install gpe-today
ipkg install gpe-task-pim
ipkg install xstroke
ipkg install sudo
ipkg install xev
ipkg install x11vnc
ipkg install mc

Дальнейшая доработка дистрибутива

Как настроить русский ввод на виртуальной клавиатуре?

В состав дистрибутива входит matchbox и, соответственно, matchbox-keyboard. Русская раскладка есть, но нет значка с лого клавиатуры и файла, благодаря которому происходит включение этой клавиатуры.

В каталоге /usr/share/applications/inputmethods создаем файл matchbox-keyboard-ru.desktop:

[Desktop Entry]
Name=Ru-Keyboard
Comment=Russian Virtual Keyboard
Exec=matchbox-keyboard ru
Type=Application
Icon=matchbox-keyboard-ru.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True

Значок можно взять на сайте Linux на КПК вот тут и скопировать в папку /usr/share/pixmaps.

Как подключить нормальные шрифты?

Копируем шрифты из Windows в папку /usr/share/fonts/truetype. Если не сильно экономить место, то там должны оказаться следующие файлы:

andalemo.ttf
arialbd.ttf
arialbi.ttf
ariali.ttf
arial.ttf
ariblk.ttf
comicbd.ttf
comic.ttf
courbd.ttf
courbi.ttf
couri.ttf
cour.ttf
DejaVuSans-BoldOblique.ttf
DejaVuSans-Bold.ttf
DejaVuSans-ExtraLight.ttf
DejaVuSansMono-BoldOblique.ttf
DejaVuSansMono-Bold.ttf
DejaVuSansMono-Oblique.ttf
DejaVuSansMono.ttf
DejaVuSans-Oblique.ttf
DejaVuSans.ttf
georgiab.ttf
georgiai.ttf
georgia.ttf
georgiaz.ttf
impact.ttf
list.txt
symbol.ttf
tahomabd.ttf
tahoma.ttf
timesbd.ttf
timesbi.ttf
timesi.ttf
times.ttf
verdanab.ttf
verdanai.ttf
verdana.ttf
verdanaz.ttf
webdings.ttf
wingding.ttf

Для моноширинных шрифтов, за исключением терминала, рекомендуется Andale Mono. Для интерфейса - Arial или Tahoma.

Как подключить беспроводную клавиатуру Луч-BT? Как сделать переключения языка прямо с клавиатуры?

Беспроводные клавиатуры бывают двух типов:

  • Serial, соединяющиеся через bluetooth с компьютером и далее открывающие com-порт, через который и идет общение.
  • HID, работающие по специальному протоколу, созданному как раз для устройств управления.

Если со вторыми работа идет стандартными методами, то с первыми все сложнее - для каждой клавиатуры необходим драйвер под программу с названием kbdd. Клавиатура Луч-BT относится к типу Serial. Для того, чтобы подключить клавиатуру, использовался вот этот документ. Поэтому за объяснениями - в него. А здесь будет описана сжатая установка.

В папке /etc/X11/ создаем файлик xmodmap.rus. Это раскладка с qwerty и йцукен. Первой должна идти английская клавиатура, иначе не заработает терминал.

keycode 75 = XF86Calendar
keycode 76 = telephone
keycode 95 = XF86Mail
keycode 96 = XF86AudioRecord
keycode 110 = XF86Start
keycode 124 = XF86PowerDown

clear shift
clear control
clear mod1
clear mod2
clear mod3
clear mod4

keycode  10 = 1 exclam
keycode  11 = 2 at 2 quotedbl
keycode  12 = 3 sterling 3 numbersign
keycode  13 = 4 semicolon 4 dollar
keycode  14 = 5 percent 5 percent
keycode  15 = 6 asciicircum 6 colon
keycode  16 = 7 ampersand 7 question
keycode  17 = 8 asterisk 8 asterisk
keycode  18 = 9 parenleft 9 parenleft
keycode  19 = 0 parenright 0 parenright
keycode  20 = minus underscore
keycode  21 = equal plus
keycode  22 = BackSpace
keycode  23 = Tab Tab
keycode  24 = q Q Cyrillic_shorti Cyrillic_SHORTI
keycode  25 = w W Cyrillic_tse Cyrillic_TSE
keycode  26 = e E Cyrillic_u Cyrillic_U
keycode  27 = r R Cyrillic_ka Cyrillic_KA
keycode  28 = t T Cyrillic_ie Cyrillic_IE
keycode  29 = y Y Cyrillic_en Cyrillic_EN
keycode  30 = u U Cyrillic_ghe Cyrillic_GHE
keycode  31 = i I Cyrillic_sha Cyrillic_SHA
keycode  32 = o O Cyrillic_shcha Cyrillic_SHCHA
keycode  33 = p P Cyrillic_ze Cyrillic_ZE
keycode  34 = bracketleft braceleft Cyrillic_ha Cyrillic_HA
keycode  35 = bracketright braceright Cyrillic_hardsign Cyrillic_HARDSIGN
keycode  36 = Return
keycode  37 = Control_L
keycode  38 = a A Cyrillic_ef Cyrillic_EF
keycode  39 = s S Cyrillic_yeru Cyrillic_YERU
keycode  40 = d D Cyrillic_ve Cyrillic_VE
keycode  41 = f F Cyrillic_a Cyrillic_A
keycode  42 = g G Cyrillic_pe Cyrillic_PE
keycode  43 = h H Cyrillic_er Cyrillic_ER
keycode  44 = j J Cyrillic_o Cyrillic_O
keycode  45 = k K Cyrillic_el Cyrillic_EL
keycode  46 = l L Cyrillic_de Cyrillic_DE
keycode  47 = semicolon colon Cyrillic_zhe Cyrillic_ZHE
keycode  48 = apostrophe quotedbl Cyrillic_e Cyrillic_E
keycode  50 = Shift_L
keycode  52 = z Z Cyrillic_ya Cyrillic_YA
keycode  53 = x X Cyrillic_che Cyrillic_CHE
keycode  54 = c C Cyrillic_es Cyrillic_ES
keycode  55 = v V Cyrillic_em Cyrillic_EM
keycode  56 = b B Cyrillic_i Cyrillic_I
keycode  57 = n N Cyrillic_te Cyrillic_TE
keycode  58 = m M Cyrillic_softsign Cyrillic_SOFTSIGN
keycode  59 = colon less Cyrillic_be Cyrillic_BE
keycode  60 = period greater Cyrillic_yu Cyrillic_YU
keycode  61 = question slash period comma
keycode  62 = Shift_R
keycode  64 = Meta_L Alt_L
keycode  65 = space space
keycode  66 = Caps_Lock
keycode  78 = Mode_switch
keycode 131 = backslash bar slash backslash
keycode 119 = Delete
keycode 133 = Insert

add shift   = Shift_L
add control = Control_L
add mod1    = Alt_L

! Use CapsLock as rus/lat switch key.

clear lock
clear mod5
add mod5 = Caps_Lock Mode_switch

Меняем параметры в файлах xmodmap-left:

keycode 111 = Up
keycode 116 = Down
keycode 114 = Right
keycode 113 = Left

и xmodmap-portrait:

keycode 111 = Up
keycode 113 = Left
keycode 114 = Right
keycode 116 = Down

Создаем симлинки с названиями hx4700.xmodmap и keyboardless.xmodmap на файл xmodmap.rus. Согласно документу, упоминаемому выше, создаем пару файлов для включения клавиатуры. bt-kbd-on:

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
RF=rfcomm0
DEV=/dev/$RF
BD=00:0A:3A:32:9B:09
pidof hciattach >/dev/null || sudo hciattach /dev/ttyS1 texas 115200
sleep 1
rfcomm | grep ^$RF: >/dev/null && sudo rfcomm release $DEV
sudo rfcomm bind $DEV $BD
sleep 1
sudo kbdd -p $DEV -t smartbt
sudo rfcomm release $DEV
sudo fuser /dev/rfcomm* >/dev/null 2>/dev/null || sudo killall hciattach

В параметре BD нужно прописать адрес своей клавиатуры. Его можно узнать с помощью команды hcitool scan

bt-kbd.sw:

#!/bin/sh
pidof kbdd >/dev/null && sudo killall kbdd || exec ~/bin/bt-kbd-on

В файле ~/.keylaunchrc:прописываем:

key=???XF86Start:-:/usr/bin/xrandr.sw
key=???Held XF86Start:-:/usr/bin/bt-kbd.sw &

По большой и светлой идее это должно заставить включать и выключать клавиатуру (у меня, jackill'а, не работает). Установим kbdd. Лучше будет собрать программу с помощью bitbake. В файле sudoers пропишем:

your_user ALL=/sbin/hciattach,/bin/rfcomm,/usr/sbin/kbdd,/usr/bin/fuser,/usr/bin/killall

Теперь можно запустить bt-kbd-on и через пару-тройку секунд клавиатура заработает. Переключение на русский и обратно осуществляется клавишей Caps Lock. Клавишу Esc не делал. Клавиша alt является, похоже, аппаратной, посему ее не удалось запрограммировать. Рекомендую просто поменять ее местом со стоящей рядом, ибо alt повешен на нее.

Как починить автомонтирование карты SD, имеющей разделы?

Ребятам из Angstrom удалось как-то поломать автомонтирование, работающее даже в Familiar. При первой загрузке карта с разделами монтируется правильно, а вот при второй уже начинаются глюки - система монтирует карту напрямую, не видя разделов.

Поэтому либо придется монтировать карточку вручную, либо удалить с нее разделы и форматировать само устройство, т.е. вставить ее на большой компьютер и сказать нечто вроде такого:

mkfs.vfat /dev/sda

Карты CF монтируются нормально.

Ещё вариант: отключить автомонтирование от angstrom, установить hal и монтировать флешки из thunar или из другой утилиты, поддерживающей hal.

Как посмотреть содержимое пакета .ipk?

ar x packet_name.ipk 

Как сделать, чтоб андроид не тормозил?

Общий алгоритм такой: делаешь хард-резет. Если тормоза остаются, то проблема аппаратная (тормозит флеш-память и т.п.), лечению поддается слабо, однако случаи известны. В противном случае — все дело в софте, т.е. рутишь девайс, втыкаешь какой-нибудь авторанменеджер/ресиверфаундер и с регулярной методичностью истребляешь блотварь.

В идеале сразу после хардрезета нужно прогнать бенчмарки с обязательно записью их в журнал, а после регулярное обновление значений для дальнейших наблюдений. Но я слабо себе представляю человека, который будет этим ответственно заниматься. (c) Igron