Opendingux-rzx50-20120222
Antony (обсуждение | вклад) (→Краткая инструкция по сборке ядра загрузчика) |
Antony (обсуждение | вклад) м (→Краткая инструкция по сборке ядра загрузчика) |
||
Строка 70: | Строка 70: | ||
= Краткая инструкция по сборке ядра загрузчика = | = Краткая инструкция по сборке ядра загрузчика = | ||
− | Скачиваем файл [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2 linux-2.6.32.tar.bz2], распаковываем. | + | Скачиваем файл [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2 linux-2.6.32.tar.bz2], распаковываем. |
Скачиваем файлы с патчами из {{storage|opendingux-rzx50-20120222/2_kernel|2_kernel}}, переходим в каталог <tt>linux-2.6.32</tt> и накладываем их. | Скачиваем файлы с патчами из {{storage|opendingux-rzx50-20120222/2_kernel|2_kernel}}, переходим в каталог <tt>linux-2.6.32</tt> и накладываем их. | ||
Строка 81: | Строка 81: | ||
cd tmp | cd tmp | ||
sudo tar fx ../initrd_skeleton.tar.bz2 | sudo tar fx ../initrd_skeleton.tar.bz2 | ||
− | sudo mknod dev/mmcblk1 b 179 8 | + | sudo mknod dev/mmcblk1 b 179 8 |
− | sudo mknod dev/mmcblk1p1 b 179 9 | + | sudo mknod dev/mmcblk1p1 b 179 9 |
cp ../init . | cp ../init . | ||
find | cpio -H newc --create > ../../initrd.cpio | find | cpio -H newc --create > ../../initrd.cpio |
Текущая версия на 23:13, 4 марта 2012
Поставка 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.