Opendingux-rzx50-20120222

Материал из RZX50
Перейти к: навигация, поиск

Поставка 20120222.

Экспериментальная поставка ядра для организации работы загрузчика на основе kexec.

Основные отличия от поставки 20120216:

  • исправления в ядре:
    • убран лишний код от Ingenic;
    • теперь используется базовое ядро Linux 2.6.32 (было 2.6.31.3);
    • исправлен драйвер клавиатуры: перепутанные кнопки X и Y работают как надо, поддерживается рычажок POWER/HOLD;
    • включена поддержка userspace-мыши;
    • исправлена работа с MSC0: обеспечена возможность записи загрузочную часть microSDHC-карты;
    • включена поддержка вывода звука: используется драйвер ALSA dummy, включен эмулятор OSS.
    • включена поддержка devtmpfs (появилась в 2.6.32);
  • другие исправления:
    • благодаря доработкам в ядре стало возможным использовать pwsd с поддержкой мыши;

При работе загрузчика local-pack не используется (во всяком случае не должен использоваться).

Корневая файловая система загрузчика основана на OpenDingux, фактически представляет собой корневую файловую систему поставки 20120216 из которой удалены ненужные для загрузчика файлы и добавлена программа kexec. В частности, удалена библиотека libSDL и все программы, которые её используют (например, gmenu2x).

При сборке данной поставки использован toolchain поставки 20120206:

Содержание

Состав:

Ядро загрузчика

Скачать: linux-2.6.32-rzx50-loader-20120222.tar.gz

Корневая ФС загрузчика

Скачать: rootfs-loader-20120222-eth_usb.ext2

Установка

Для тех кто не хочет сильно заморачиваться

Имеется доходчивая инструкция по установке из-под Windows: http://a320.freeforums.org/opendingux-rzx50-20120212-t84.html#p469

Основные этапы установки:

  • скачать ядро и образ корневой файловой системы загрузчика.
  • На microSD-карте (например, /dev/sdx) создать таблицу разделов DOS и создать раздел 1 (/dev/sdx1) и отформатировать его под FAT32. В принципе, только что принесённая из магазина карточка изначально соответствует данному пункту; Если карточка уже успешно использовалась для хранения rootfs предыдущих поставок, то этот шаг можно пропустить.
  • записать файл rootfs-loader-20120222-eth_usb.ext2 под именем rootfs.ldr в корень /dev/sdx1.
  • При помощи штатной утилиты восстановления зашить в RZX-50 ядро uImage-2.6.32-rzx50-loader-20120222.
  • Установить microSD-карту в слот TF приставки (слот рядом с выключателем POWER, разбирать приставку не надо!).

Для тех, что умеет использовать Ethernet-gadget

Если в RZX-50 уже прошита поставка 20120216, то прошить загрузчик можно без использования утилиты восстановления от Ingenic.

Для этого

  • скопировать bootloader.sh, uImage-2.6.32-rzx50-loader-20120222 и файл rootfs-loader-20120222-eth_usb.ext2 под именем rootfs.ldr в корень microSDHC-карты в слоте TF приставки;
  • туда же скопировать kexec и vmlinux-2.6.32-rzx50-loader-20120222;
  • включить приставку и соединить её с ПЭВМ по USB;
  • зайти на приставку по telnet'у;
  • запустить загрузчик:
/media/mmcblk1p1/kexec -l /media/mmcblk1p1/vmlinux-2.6.32-rzx50-loader-20120222
/media/mmcblk1p1/kexec -e
  • зайти на приставку по telnet'у (теперь уже в загрузчик);
  • записать ядро uImage-2.6.32-rzx50-loader-20120222 на загрузочную microSDHC-карту:
dd if=/media/mmcblk1p1/uImage-2.6.32-rzx50-loader-20120222 seek=4 of=/dev/mmcblk0 bs=1M count=3 conv=notrunc


При помощи загрузчика можно грузить поставку 20120216. Для этого корневую файловую систему поставки записать как файл rootfs в корень microSDHC карты в слоте TF приставки. Ядро поставки поставки 20120216 (файл vmlinux-2.6.31.3-rzx50-20120216) под именем vmlinux также записать в корень microSDHC карты в слоте TF приставки.

Удаление

  • При помощи штатной утилиты восстановления зашить в RZX-50 заводское ядро.

Краткая инструкция по сборке ядра загрузчика

Скачиваем файл linux-2.6.32.tar.bz2, распаковываем.

Скачиваем файлы с патчами из 2_kernel, переходим в каталог linux-2.6.32 и накладываем их.

Собираем initrd:

svn checkout http://dingoo-linux.googlecode.com/svn/trunk/mininit
cd mininit
make CROSS=/opt/ct-ng-1.14.0/rzx50-uclibc-0.32.1-olthreads/bin/mipsel-rzx50-linux-uclibc-
mkdir tmp
cd tmp
sudo tar fx ../initrd_skeleton.tar.bz2
sudo mknod dev/mmcblk1 b 179 8
sudo mknod dev/mmcblk1p1 b 179 9
cp ../init .
find | cpio -H newc --create > ../../initrd.cpio
cd ../..

Выбираем конфигурацию, собираем образ ядра и модули:

make CROSS_COMPILE=/opt/ct-ng-1.14.0/rzx50-uclibc-0.32.1-olthreads/bin/mipsel-rzx50-linux-uclibc- rzx50_loader_defconfig
make CROSS_COMPILE=/opt/ct-ng-1.14.0/rzx50-uclibc-0.32.1-olthreads/bin/mipsel-rzx50-linux-uclibc- uImage
make CROSS_COMPILE=/opt/ct-ng-1.14.0/rzx50-uclibc-0.32.1-olthreads/bin/mipsel-rzx50-linux-uclibc- modules

Пожелания/предложения

  • использовать ядро Linux 2.6.33;
  • передвинуть подключение rzx50_keypad в platform code;
  • для поддержки клавиатуры исользовать стандартные драйверы matrix-keypad и gpio-keys;
  • replace jz4750d specific hacks in the 8250 serial driver with platform code;
  • скрипт bootloader.sh по ошибке оказался в каталоге 2_kernel;
  • определить, какой вывод GPIO соединён с датчиком установки карты памяти в слот TF;
  • определить, какой вывод GPIO соединён с датчиком внешнего питания/USB;
  • обеспечить возможность гашения экрана (например, в gmenu2x);
  • разрешение экрана в gmenu2x по-умолчанию должно быть 480x272;
  • подготовить документацию à la RockBox.
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты