Внимание!!!, автор данного руководства не несет ответственность за убитые устройства, кривые руки и т.д. Все это ВЫ делаете только на свой страх и риск!!!
Попробую описать процесс сборки своего ядра для Samsung Galaxy Spica i5700
все это я проделываю на Ubuntu 9.04
(многое из этого было найдено на сайте http://www.samsungmomentforum.com/rooting/ , спасибо им за это)
Готовимся...
Прежде всего необходимо скачать исходники с samsung
http://opensource.samsungmobile.com/dow ... Source.zip
Установить cross toolchains для компиляции,
я использую Embedded Linux Development Kit
подробный процесс установки я описал тут:
http://blog.leshak.ru/2009/02/28/cross- ... k-stavlyu/
Далее необходимо подготовить файлы для будущей initramfs, в дальнейшем все файлы вместе с ядром попадут в zImage, который и будем прошивать в i5700:
- Прежде всего это модули ядра
- скрипты и программа первоначальной инициализации
- и т.д.
1. Качаем архив:
[attachment=1:1phs2wr6]initramfs.tar.gz[/attachment:1phs2wr6]
2. Распаковываем архив:
Code:
tar -xvvzf initramfs.tar.gz
получаем два файла Image.cpio (это как раз Initramfs вытащенная из ядра от Samsung) и list_initramfs_gen (вспомогательная программа с сайта http://www.samsungmomentforum.com/rooting/)
3. Создадим папку для initramfs и распакуем файлы из Image.cpio
Code:
mkdir initramfs
cd initramfs
cpio --quiet --no-absolute-filenames --preserve-modification-time -ivF ../Image.cpio
cd ..
4. С помощью программы list_initramfs_gen создадим файл списка файлов
initrd.arm.initramfs_list (его нужно будет указать при компиляции ядра)
запускаем:
Code:
./list_initramfs_gen Image.cpio ./initramfs > initrd.arm.initramfs_list
5. Если необходимо включить какие-то файлы в initramfs, то нужно положить его в нужную папку в initramfs
и добавить описание файла в initrd.arm.initramfs_list
---
к примеру, хотим программу su в папке /sbin/su
кладем ее в initramfs/sbin/su
И в файле initrd.arm.initramfs_list добавляем строку
file /sbin/su /home/leshak/i5700/initramfs/sbin/su 4755 0 0
---
upd. 23.12.2009
чтоб в ADB появился root и возможность доступа ко всему, необходимо в файле
default.prop
поправить переменные на
Code:
ro.secure=0
ro.debuggable=1
persist.service.adb.enable=1
Cборка самого ядра
1. Распаковываем исходники от samsung, а конкретно папку linux-2.6.27
2. Качаем .config файл для сборки ядра, который samsung забыл положить (есть spica_defconfig, но он на столько древний, что собрать чего-то рабочего не получиться).
качаем [attachment=0:1phs2wr6]config.gz[/attachment:1phs2wr6] распаковываем и кладем в linux-2.6.27 как ".config"
3. Необходимо поправить в .config путь к initrd.arm.initramfs_list
и ищем:
Code:
CONFIG_INITRAMFS_SOURCE
далее меняем мой путь к файлу на свой.
4. Необходимо создать файл ".cross_compile" с префиксом к кросс компилятору, если ставили по моей инструкции ELDK, то содержимое файла будет
Code:
/opt/eldk/usr/bin/armVFP-
5. Ну и вводим
Если очень хочется что-то подправить/убавить/прибавить в ядро, то можно
но вы должны понимать, что делаете
Если компиляция прошла успешно, то в папке
Вы найдете готовый zImage для прошивки
Вводим
Code:
tar -cvvf pda_zImage.tar zImage
вот данный tar файл и можно подсунуть Odin, далее смотрим тут:
samsung-i5700-spica-galaxy-lite-f15/root-samsung-spica-i5700-busybox-t10.html
Bookmarks