вторник, 31 марта 2009 г.

openezx-2.6.29

Неплохо. Очень хорошо, я бы сказал. Еще чуть-чуть (определение наушников/зарядки и управление зарядкой) и буду пользоваться.

И так, что работает (с поддержкой в кутопии)
* gsm (АТ mux)
* звук в обоих режимах (музыка и gsm)
* переключение звука уши-динамик-спикер
* сеть через usb
* карта
* контроль подсветки
* клавиатура, кроме красной кнопки, флипа и кнопки наушников
* тачскрин

Что не работает, но вроде бы должно:
* встроенный флеш
* контроль заряда
* gprs

Что не работает совсем или глючит:
* определение подключенных шнуров
* спящие режимы

среда, 18 марта 2009 г.

Управление железом на багиксе

Посмотрел API ядерных драйверов в багиксе.

Определение подключенных к кабелей такое же, как и ezx, управление зарядкой такое же, управление rtc такое же (но изменены префиксы ioctlc).

С подсветкой пока не разобрался - костыль на костыле, режимы usb не нашел вообще, роутинг звука вроде бы нашел, но не проверял.

Начал писать pdsd - вроде бы все просто и подводных камней нет.

Закрытый флип и входящий вызов

Сделал небольшой хак для входящего вызова. Кроме поднятия частоты процессора, во время входящего вызова, теперь прячется виджет флипа и можно увидеть, кто звонит.

Включено в автобилд 200903171449.

В автобилде 200903171534 включены конфиги из прошивки tmp_do и немного поломан виджет набора номера: картинки остались старые, а масштаб новый.

понедельник, 16 марта 2009 г.

Планы и перспективы портирования на Motomagx

Вчера забрал с почты новую игрушку: motorola v8. Долго приставал к Абрамке и yakk с вопросами и немного вошел в курс дела. Можно описать одним словом, но я это слово тут писать не буду. Если более длинно: работы много.

Если кто сюда зашел из просторов интернета и не совсем в курсе наших обозначений: под мотобагиксом понимается программно-апаратная платформа linux-смартфонов motorola третьего поколения ( Rokr E8, Rizr Z6, Razr2 V8, i876, U9, ZN5 ).

BP на третьем поколении не такой разумный и ему нужно кормить с ложечки так называемый PDS (зашифрованные настройки), самим работать из юзерспейса с сим-картой, самим реализовывать кусок GSM (именно протокола, а не работы с оберткой at-команд) и GPRS, но тут работы уже ведутся и довольно успешно.

Кроме этого традиционные проблемы с нестандартностью API: звуковой драйвер - не oss, не alsa, всякие там режимы usb и токи заряда с уровнями подсветки - тоже. Тачпада просто нету, а клавиатура работает на старом драйвере - тут все хорошо.

В рутфс как всегда бардак - это дело привычное, это не удивляет и вообще не вызывает эмоций.

Сегодя запускал из ext2 образа - запускается, довольно шустро бегает по меню, но толку конечно нуль.

Собственно, программа нашего балета на новой сцене: MagixRoadmap

суббота, 14 марта 2009 г.

Поддержка sdhc

Уже работает. Чтение и запись протестированы на четырехгигобайтной SDHC карте. Возможны проблемы со старыми картами, которые не понимают команду IF_COND - с этим пока не разбирался.

Патч на ядро: http://ezxdev.org/qtopia/patches/2.4.20_mvlcee31/0006-sdhc.patch.gz
Собранное ядро: http://ezxdev.org/qtopia/temp/vmlinuz_sdhc15

Собранное ядро уже содержит в себе поддержку mux, gprsv, bluez и ext2/3, поэтому модули mux_cli и прочие ему не нужны.

Ждите поддержку в следующих сборках прошивок или шейте сами.

Напоминаю, что ядро можно загрузить в режиме прошивки утилитой boot_usb, но при это не будет работать экран (про этом отдельно) и gsm.

Чтобы прошить ядро необходимо записать его в /dev/mtd7 (физический адрес 0xa0000) на смещение 0x800.

PS. за тестирование огромная благодарность Сергею Егорову (ник prapor).
PPS. со старыми картами тоже все нормально

пятница, 13 марта 2009 г.

Апгрейд Qt

Раз Нокия забрасывает кутопию, займемся ей сами. Нам очень не хватает браузера, правда? А Qtopia 4.4 жрет память. Все это привело к тому, что рождается монстр - Qtopia 4.3.4 + Qt/Embedded 4.5.0. Оно, вроде как, вполне уже пригодно к использованию, но, все-таки следует избавиться от мелких неприятных багов.Так что пока только скрины:

понедельник, 9 марта 2009 г.

Mindbreaker

Mindbreaker - в этой игре Вашей целью является угадать задуманную программой комбинацию цветных шариков. На выполнение задания дается девять попыток.

Приложение взято из Qt Extended 4.4.3 Open Source Package.

суббота, 7 марта 2009 г.

QGoogleTranslate [port]

QGoogleTranslate - это приложение для работы с сервисом Google Translate. Использует AJAX Language API, что хорошо, учитывая GPRS соединение. (а еще я не стал писать хелп, большое упущение=)

Ссылки: страница на Google.Code

Qwit 0.6 [port]

Qwit - клиент для сети Twitter.

Twitter (от англ. to twitter — «щебетать», перен. «болтать») — бесплатная социальная сеть, представляющая из себя систему микроблогов, позволяющая пользователям отправлять короткие текстовые заметки (до 140 символов). (Wikipedia)

 

Автор версии для Qtopia: kyst

Ссылки: Страница Qwit на Google.Code

пятница, 6 марта 2009 г.

Собрал новый билд

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

Добавил в кутопию последние багфиксы- в частности, медиасервер теперь стабильно не валится при входящих, если стоит стандартный phonering.wav

вообще получилось очень Ъ. самое Ъ что теперь для е6 (возможно и для е2) не надо шить родное хакнутое едро-удалось допилить стабильную работу с USB2.0

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

будильник так и не научился играть дефолтный alarm.wav

http://ezxdev.org/qtopia/firmwares/a1200/qtopia-ezx-4.3.4-06.03.09_test.sbf.bz2

четверг, 5 марта 2009 г.

Убил очередного таракана в движке звука

Убил того, который валил медиасервер при проигрывании мелодии вызова и будильника.

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

Если на билдхосте опять ничего не сломается - забирайте автобилд с номером 200903060113.

Остается разобраться с еще одним тараканом в gsm и будет красота.

вторник, 3 марта 2009 г.

-1 партизан или nokia прекращает поддержку qtopia

Собственно новость: http://www.qtsoftware.com/about/news/qt-software-discontinues-qt-extended

Что это означает для нас? По большому счету - ничего. Поддерживаем форк дальше и не обостряемся.

воскресенье, 1 марта 2009 г.

Cute Gomoku [port]

Cute Gomoku - игра Гомоку против компутера. Нужно составить ряд из 5 шариков раньше, чем это сделает ИИ. Игра отличается феноменально медленным расчетом ходов) Для более-менее терпимого времени хода ИИ пришлось уменьшить searchDepth с 3 до 1. Имеется сохранение/загрузка игры, отмена/повтор ходов.

 

Страница проекта на SF.net

Нездоровые фокусы с дескрипторами в gprsv

Есть у нас такой баг с gprs: если его включить, закрыть настройки и попробовать выключить - он не выключается.

Чтобы понять, откуда она берется и как ее чинить, нужно знать, как работает включение/выключение gprs на наших телефонах.

На обычной хосте с линуксом gprs работает так же, как и другие ppp соединения: pppd открывает линию, шлет в нее AT-команды дозвона, после чего через эту же линию гоняет ppp трафик в обе стороны. Тут следует заметить две вещи: pppd именно читает и пишет в эту линию все передаваемые данные, а под линией может подразумеваться все что угодно от банального ttyS0, напрямую подключенного к другой машине, до программы в пайпе, гоняющей трафик через xmpp.

На ezx все не так. Для работы с gprs у нас есть как минимум два канала мультиплексора: для команд и для данных. Для начала, мы открываем управляющий канал и пишем в него волшебные AT-команды, а потом сразу читаем оттуда свой ip и dns адреса провайдера, при чем в человекочитаемом виде, а не куском ppp-трафика. Потом мы открываем канал данных и устанавливаем ему line displine N_GPRS и ассоциируем его с сетевым интерфейсом gprsv0. Потом используем полученный в первом пункте адрес и настраиваем сетевой интерфейс, пишем dns в resolv.conf.

А где ppp трафик? Нету. Весь на BP остался.

Чтобы выключить gprs - просто закрываем канал с данными.

Все эти фокусы отрабатывают в qpe, но управляются из netsetup (Settings -> Internet). Раньше баг состоял в том, что дескриптор канала данных был полем класса, объект которого управлял ppp соединениями и жил в qpe. Проблема была в том, что объект существовал только во время работаы netsetup, хотя и находился в пространстве qpe. При этом сам файловый дескриптор никуда не пропадал, но его номер терялся и закрыть его было нельзя. Сейчас все наоборот: gprsv - глобальная переменная и никакие объекты ее не теряют, но после закрытия дескриптора в qpe, он продолжает оставаться открытым в новом процессе netsetup. После закрытия netsetup все приходит в норму.

Тут непонятен один момент: почему после запуска netsetup у него остаются все дескрипторы qpe.

Angstrom rootfs

Уже собирается все что нужно и даже работает, но пока есть три недостатка: карту нужно вручную прописать в fstab, нет mbtdload (проприетарщина ибо), а значит не работает блютуз, и нет iptables.

Первую проблему я собираюсь решить каким-нибудь хитрым скриптом, который будет смотреть, что там на карте за разделы и монтировать их куда нужно ( ext2 с каталогом пользователя - в /home ), а бороться со второй не особо хочется, но все равно нужно. С иптаблесом что-то странное - как мне кажется, он не понимает, под какую версию ядра ему нужно было собраться и после загрузки на телефон не может работать с ядром.

А еще нужно привести все эти вещи к более приличному виду, а некоторые послать в апстрим.