EXL's Developer Blog
Translate site on my language:

Каталог статей
Меню сайта

Категории раздела

Поиск

Друзья сайта
  • MotoFan.Ru
  • Dingoo A320.Русский Ресурс
  • Motorola Gaming site
  • Android Games Development
  • ROKR E2 Developments

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Приветствую Вас, Гость · RSS 24.10.2017, 06:12

    Главная » Статьи » Cтатьи

    Собираем свои модифицированные прошивки для Ritmix RZX-50
    1. Способы прошивки консоли:
    Прошить Ritmix RZX-50 можно двумя различными способами:
    1.1. Перевести консоль в загрузочный режим и с помощью специальной программы (она будет представлена позже) залить прошивку в аппарат.
    1.2. Просто закинуть необходимые файлы в корень памяти устройства и выбрать в меню: Настройки -> Обновление ПО.

    Мы будем действовать именно вторым способом (1.2).

    2. Структура прошивки.

    Прошивка консоли состоит из следующих файлов:
    appfs.ext3 - файловая система в ext3, содержащая все встроенные в консоль эмуляторы и программы. И, кроме того саму оболочку. Именно этот файл и будет подвергаться редактированию. Его размер 55 000 Кб.
    configfs.ext3 - файловая система в ext3, для различных конфигов приложений. Размер - 20 000 Кб.
    mbr-uboot-msc.bin - Загрузчик, размер - 410 Кб.
    rootfs.ext3 - Корневая система устройства, в ext3. Здесь располагаются все библиотеки, стандартные бинарники Linux, busybox. Размер - 80 000 Кб.
    uImage - Ядро. Размер 1150 Кб.

    3. Редактирование прошивки.

    Для редактирования файлов-образов ФС в формате ext3 нам нужен компьютер с Linux OS. Или Windows OS с установленным Virtual BOX/VMware Player, в крайнем случае под виндой можно воспользоваться AndLinux'ом или Cygwin'ом. Как установить данные программы и запустить окружение, можете найти в интернете. Я советую установить всё-таки виртуальную машину (VMware) и в неё установить простенький дистрибьютор Linux OS. Подробные мануалы по установке (в картинках!) вы можете прочитать здесь в первом закреплённом сообщении. В дальнейшем, установив туда тулчейн вы также сможете собирать программы и игры для RZX-50 и Dingoo A320.

    Вся суть редактирования файловой системы в ext3 складывается в следующем:
    3.1. Копируем прошивку в удобную для вас папку в Linux'е.*
    * - Для примера я создал папку /home/rzx50/sw и подпапку /home/rzx50/sw/fs
    Code
    mkdir /home/rzx50/sw
    mkdir /home/rzx50/sw/fs
    и поместил файл appfs.ext3 в папку /home/rzx50/sw
    3.2. Заходим в папку, где находится прошивка через терминал:
    Code
    cd /home/rzx50/sw

    3.3. Монтируем содержимое файла ext3 (appfs.ext3) в папку /home/rzx50/sw/fs
    Code
    sudo mount -o loop appfs.ext3 /home/rzx50/sw/fs

    Для sudo, нужен пароль. Вводим.



    3.4. Теперь мы можем изменять, добавлять и удалять необходимые файлы в папке /home/rzx50/sw/fs. Напомню, что возможно потребуется изменение прав для загруженного файла.
    Для этого пользуемся командами:
    Code
    sudo cp -R /file /to
    sudo chmod 777 /file

    3.5. Собираем прошивку с изменёнными файлами:
    Code
    sudo dd if=/dev/loop0 of=/home/rzx50/sw/appfs_new.ext3
    sudo chmod 777 /home/rzx50/sw/appfs_new.ext3

    Проверить что куда примонтировано можно командой
    Code
    mount

    3.6. Если вам необходимо добавить немного места в прошивку, используйте следующие команды:
    Code
    sudo dd if=/dev/zero bs=1M count=1024 >> appfs.ext3
    resize2fs -f fsdata.ext3


    Подобным образом можно изменять содержимое файловых систем appfs.ext3, configfs.ext3 и rootfs.ext3.

    4. Что где находится.

    4.1. appfs.ext3: тут находится вся пользовательская оболочка, включая D-menu и стандартный набор программ.

    /home/rzx50/sw/fs/local/apps - Программы и утилиты (MPlayer, Nupdf итд.)
    /home/rzx50/sw/fs/local/sbin/main - Авторан???
    /home/rzx50/sw/fs/local/dmenu - Каталог настроек и ресурсов D-Menu
    /home/rzx50/sw/fs/local/dmenu/wallpapers - обои
    /home/rzx50/sw/fs/local/dmenu/themes/ipen_rus/theme.cfg - Русский перевод D-menu (В конфиге также можно редактировать полностью всё меню, добавляя или заменяя пункты!)
    /home/rzx50/sw/fs/local/dmenu/themes/ipen_rus/dmenu.ini - Глобальный конфиг, версия прошивки.

    4.2. rootfs.ext3: корневая файловая система устройства.

    /home/rzx50/sw/fs/usr/lib - пользовательские библиотеки
    /home/rzx50/sw/fs/lib - системные библиотеки

    5. Прошивка устройства модифицированными файлами.

    5.1. Кидаем собранные нами файлы (5 штук):
    Code
    appfs_new.ext3
    rootfs_new.ext3
    configfs_new.ext3
    uImage
    mbr-uboot-msc.bin

    в корень памяти устройства.
    5.2. Переименовываем их (убираем префикс _new):
    Code
    appfs.ext3
    rootfs.ext3
    configfs.ext3
    uImage
    mbr-uboot-msc.bin




    5.3. Отключаем RZX-50 от компьютера, по возможности заряжаем на 50-60%, идём в "Настройки" -> "Обновление ПО" -> "ОК". И ждём порядка 4-5 минут, пока консолька прошьётся. Процесс сопровождается прогресс баром.
    5.4. После обновления просто включаем/выключаем консоль или жмакаем зубочисткой RESET.
    Всё, прошивка должна быть обновлена!

    6. Эпилог.

    Для чего нужны кастомные (модифицированные) прошивки? Они позволяют вам добавить набор необходимых вам программ, удалить ненужный хлам или же просто подогнать под себя элементы интерфейса. В случае с RZX-50, можно сделать очень многое, например, вместо одного Dmenu поставить две оболочки - Gmenu и Dmenu. Воткнуть в прошивку нормальный файловый менеджер, изменить/добавить системные библиотеки, полностью изменить русификацию аппарата. Пофиксить некоторые критические глюки итд. итп. Пределы действий ограничиваются лишь вашей фантазией и творческим подходом!

    P.S. официальная прошивка V 1.0009:
    Скачать (32 МБ)
    (Сжато с помощью архиватора http://www.7-zip.org/)
    Категория: Cтатьи | Добавил: EXL (28.11.2011)
    Просмотров: 1178 | Комментарии: 6 | Рейтинг: 0.0/0
    Всего комментариев: 6
    5  
    Посмотрел тему, кажется это не наш метод =).
    Ребята просто поднимают сеть по USB и ходят телнетом на девайс, а для этого нужны дрова usb-сетевушки на компе(хотя бы generic) и на девайсе. lsmod на девайсе встретил меня сверкающей чистотой. /lib/modules одиноким драйвером USB контроллера и зависящим от него g_file_storage который видимо подключает 4 раздел диска как флешку. Все остальное либо остутствует, либо вкомпилено до нас.
    По ссылке http://www.hackchina.com/en/cont/82207 похоже нашлись исходники наших модулей, однако как собрать их под текущее ядро даже без заголовков не представляю, попробую глянуть в sdk.
    Не понятно какого черта подключение к компу работает только из главного меню, похоже загрузку модуля переложили с mdev'а в это же злосчастное dmenu.
    В /proc/cmdline в параметрах загрузки ядра весело фигурирует ip=off. Аккуратно поправил это на ip=any - результата ноль. Поддержка ip в ядре похоже выключена совсем. При попытке прочитать что-либо из sysctl дейвас тушит экран и переодически вспыхивает подстветкой до ресета. Там же в параметрах ядра фигурирует настройка ttyS0, в который собственно и сыплется весь лог загрузки. Подозреваю что на плате есть что-то отладочное с UART'ом и каким-нибудь ISP/JTAG чтобы совсем закирпиченый загрузчик восстанавливать.
    Наверное пора китайцам GPL'ем махать, чтобы рассекречивали свою проприетарщину =)

    6  
    Да, я уточнил, нужно подгружать модули к ядру. Кстати, как успехи? Вы не пробовали подгружать модуль от А320?
    Насчёт сорцов ядра ритмикс пока молчит. angry

    3  
    Через встроенный не пробовал, да и на USB'шном уже получилось. Расширил appfs до 100МБ. В mbr-uboot-msc.bin вручную поправил таблицу разделов(fdisk косо на меня посмотрел когда я попытался указать ему блоки за пределами файла =)). Размер блока как оказалось стандартный - 512К, видимо fdisk что-то не так понял. USBbootTool, как выяснилось пишет тупо по заданным в файле tool_cfg/LinuxFileCfg.ini смещениям, где и надо было указать новое начало configfs(увеличил appfs за его счет чтобы больше ничего не трогать). ScummVM и эмуляторы теперь целиком в appfs, как раз под завязочку. Начал копать dmenu, слезно посмотрел на помойку из скриптов в его каталоге, версия похоже модифицированная, в конфиге нестандартные опции(а в русской теме твои копирайты, кстати =)), ScummVM при добавлении пунктом меню стартует, но не рисуется на экране(при нажатии на L выходит). Через DinguxCommander все ок.

    А про ttyS0 хотелось бы по подробнее, где поднять телнет нужно, на машине или на девайсе ? Может докой кинешь в какую сторону копать ?

    4  
    Так, отлично.
    Ну насчёт dmenu, там вообще ужас. Шоколадно бы было полностью избавится от него, заменив, например, на GMenu2X. Благо его последний бинарник у меня на RZX-50 запустился. У меня тоже навернулись слёзы на глазах, когда я увидел в dmenu настройку громкости скриптами.
    Да и копирайты там остались от моих фиксов ужасного перевода. biggrin

    Насчёт активации телнета, нужно смотреть, как его делали на Dingoo A320. Я сегодня спрошу админа a320.emulate.su, как его там активировали. Мне он тоже необходим. Поднимать его нужно на девайсе, и подключатся к нему с компа через PuttY например. Думаю таким образом можно будет следить за логом выполнения скриптов или приложений. Докой кинуть не могу, нужно гуглить что-то типа "Dingoo A320 telnet" Тут есть кое-какая информация, я бегло просмотрел, но нужно более детально:
    WebPage
    Если что, свяжитесь со мной через ICQ 38395237О

    1  
    Привет, есть пара вопросов:
    1) Можно ли сделать appfs больше 61 440 кб ?
    Пробовал запихать туда scummvm целиком(да и эмуляторы планирую убрать), раздел вышел около 80МБ и при прошивке утилитой для анбрика ругается на "плохие блоки". Полез смотреть что куда монтируется и обнаружил в файле mbr-uboot-msc.bin таблицу разделов:
    Device Boot Start End Blocks Id System # Судя по всему разсер блока на флешке 1КБ
    mbr-uboot-msc.bin1 24576 229375 102400 83 Linux # Похоже на 100МБ для rootfs
    mbr-uboot-msc.bin2 229376 352255 61440 83 Linux # 61 МБ для appfs
    mbr-uboot-msc.bin3 352256 516095 81920 83 Linux # 81 для configfs !?!?!
    mbr-uboot-msc.bin4 516096 7684095 3584000 b W95 FAT32 # остаток для пользователя
    Судя по ней под configfs выделен 81 МБ, хотя сама ФС всего 2МБ.
    Менять таблицу пока побоялся. Если во время редактирования этого файла его запороть и прошить, выживет ли код загрузчика который работает с утилитой восстановления ?

    2) Можно ли как-то получить доступ к отладочному ttyS0 девайса ?

    2  
    Здравствуйте. Я вроде делал под 80 мб appfs, и кажется девайс работал. Сейчас уже точно не помню. А вы через встроенный прошивальшик шить пробовали?
    Саму таблицу я не правил. Не знаю, что будет, если его запороть. Но я проверю обязательно. Скоро. Сейчас у меня к сожалению экзамены sad

    Насчёт ttyS0 - точно должно быть можно. Но для начала нужно поднять телнет конечно же.

    Имя *:
    Email *:
    Код *:
    Copyright EXL © 2017
    Сделать бесплатный сайт с uCoz