вторник, 31 марта 2009 г.
openezx-2.6.29
И так, что работает (с поддержкой в кутопии)
* gsm (АТ mux)
* звук в обоих режимах (музыка и gsm)
* переключение звука уши-динамик-спикер
* сеть через usb
* карта
* контроль подсветки
* клавиатура, кроме красной кнопки, флипа и кнопки наушников
* тачскрин
Что не работает, но вроде бы должно:
* встроенный флеш
* контроль заряда
* gprs
Что не работает совсем или глючит:
* определение подключенных шнуров
* спящие режимы
среда, 18 марта 2009 г.
Управление железом на багиксе
Определение подключенных к кабелей такое же, как и ezx, управление зарядкой такое же, управление rtc такое же (но изменены префиксы ioctlc).
С подсветкой пока не разобрался - костыль на костыле, режимы usb не нашел вообще, роутинг звука вроде бы нашел, но не проверял.
Начал писать pdsd - вроде бы все просто и подводных камней нет.
Закрытый флип и входящий вызов
Включено в автобилд 200903171449.
В автобилде 200903171534 включены конфиги из прошивки tmp_do и немного поломан виджет набора номера: картинки остались старые, а масштаб новый.
понедельник, 16 марта 2009 г.
Планы и перспективы портирования на Motomagx
Если кто сюда зашел из просторов интернета и не совсем в курсе наших обозначений: под мотобагиксом понимается программно-апаратная платформа 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
Патч на ядро: 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
понедельник, 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]
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
Что это означает для нас? По большому счету - ничего. Поддерживаем форк дальше и не обостряемся.
воскресенье, 1 марта 2009 г.
Cute Gomoku [port]
Cute Gomoku - игра Гомоку против компутера. Нужно составить ряд из 5 шариков раньше, чем это сделает ИИ. Игра отличается феноменально медленным расчетом ходов) Для более-менее терпимого времени хода ИИ пришлось уменьшить searchDepth с 3 до 1. Имеется сохранение/загрузка игры, отмена/повтор ходов.
Нездоровые фокусы с дескрипторами в gprsv
Чтобы понять, откуда она берется и как ее чинить, нужно знать, как работает включение/выключение 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
Первую проблему я собираюсь решить каким-нибудь хитрым скриптом, который будет смотреть, что там на карте за разделы и монтировать их куда нужно ( ext2 с каталогом пользователя - в /home ), а бороться со второй не особо хочется, но все равно нужно. С иптаблесом что-то странное - как мне кажется, он не понимает, под какую версию ядра ему нужно было собраться и после загрузки на телефон не может работать с ядром.
А еще нужно привести все эти вещи к более приличному виду, а некоторые послать в апстрим.