Page 1 of 3 123 LastLast
Results 1 to 10 of 22

Thread: Как собрать свое ядро для Samsung i5700 Spica, шаг за шагом

777
  1. [translate]    #1
    Administrator
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    3,727

    Default Как собрать свое ядро для Samsung i5700 Spica, шаг за шагом

    Внимание!!!, автор данного руководства не несет ответственность за убитые устройства, кривые руки и т.д. Все это ВЫ делаете только на свой страх и риск!!!


    Попробую описать процесс сборки своего ядра для 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:
    nano .config
    и ищем:
    Code:
    CONFIG_INITRAMFS_SOURCE
    далее меняем мой путь к файлу на свой.

    4. Необходимо создать файл ".cross_compile" с префиксом к кросс компилятору, если ставили по моей инструкции ELDK, то содержимое файла будет
    Code:
    /opt/eldk/usr/bin/armVFP-
    5. Ну и вводим
    Code:
    make
    Если очень хочется что-то подправить/убавить/прибавить в ядро, то можно
    Code:
    make menuconfig
    но вы должны понимать, что делаете

    Если компиляция прошла успешно, то в папке
    Code:
    arch/arm/boot
    Вы найдете готовый zImage для прошивки

    Вводим
    Code:
    tar -cvvf pda_zImage.tar zImage
    вот данный tar файл и можно подсунуть Odin, далее смотрим тут:
    samsung-i5700-spica-galaxy-lite-f15/root-samsung-spica-i5700-busybox-t10.html
    Twitter | Devices: Samsung Spica i5700 - SamdroidMod 2.0.1 Froyo | Nexus One - Android 2.2 Froyo | Nexus S CyanogenMod 7.1
    If you like my stuff, buy me a beer!

  2. [translate]    #2
    Member
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    40

    Default Re: Как собрать свое ядро для Samsung i5700 Spica, шаг за шагом

    А использовать toolchain из NDK не пробовали ?

  3. [translate]    #3
    Administrator
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    3,727

    Default Re: Как собрать свое ядро для Samsung i5700 Spica, шаг за шагом

    Quote Originally Posted by s00S
    А использовать toolchain из NDK не пробовали ?
    нет
    Twitter | Devices: Samsung Spica i5700 - SamdroidMod 2.0.1 Froyo | Nexus One - Android 2.2 Froyo | Nexus S CyanogenMod 7.1
    If you like my stuff, buy me a beer!

  4. [translate]    #4
    Member
    Join Date
    Dec 2009
    Posts
    76

    Default Re: Как собрать свое ядро для Samsung i5700 Spica, шаг за шагом

    make просто собирает ядро. Это даже по размеру видно. Обычно размер ядра не больше 2 Мб. А тут ~ 5. Не описано как потом собранное ядро стыкуется с initramfs(что-то по типу cat zImage initramfs > newzImage ?).

  5. [translate]    #5
    Administrator
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    3,727

    Default Re: Как собрать свое ядро для Samsung i5700 Spica, шаг за шагом

    Quote Originally Posted by laborer
    make просто собирает ядро. Это даже по размеру видно. Обычно размер ядра не больше 2 Мб. А тут ~ 5. Не описано как потом собранное ядро стыкуется с initramfs(что-то по типу cat zImage initramfs > newzImage ?).
    Начиная с 3 пункта - получение initramfs

    включение в zImage
    Code:
    CONFIG_INITRAMFS_SOURCE
    далее меняем мой путь к файлу на свой.

    т.е. при сборки ядра все включится в ядро и далее сожмется в zImage
    никаких более действий не требуется

    далее zImage в tar и шьемся
    Twitter | Devices: Samsung Spica i5700 - SamdroidMod 2.0.1 Froyo | Nexus One - Android 2.2 Froyo | Nexus S CyanogenMod 7.1
    If you like my stuff, buy me a beer!

  6. [translate]    #6
    Member
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    40

    Default Re: Как собрать свое ядро для Samsung i5700 Spica, шаг за шагом

    Кстати а модули от самого Samsung-а (те что лежат в архиве вместе с ядром в /modules) которые как раз содержат основные драйвера вы не пересобираете а складываете прямо в виде бинарников в initramfs из старого образа ?

    И ещё вопросик. Зачем ядру CONFIG_PARPORT_1284=y и CONFIG_PRINTER=y ?

  7. [translate]    #7
    Administrator
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    3,727

    Default Re: Как собрать свое ядро для Samsung i5700 Spica, шаг за шагом

    Quote Originally Posted by s00S
    Кстати а модули от самого Samsung-а (те что лежат в архиве вместе с ядром в /modules) которые как раз содержат основные драйвера вы не пересобираете а складываете прямо в виде бинарников в initramfs из старого образа ?
    пока да, но разобрался как все собрать самому

    И ещё вопросик. Зачем ядру CONFIG_PARPORT_1284=y и CONFIG_PRINTER=y
    нафиг не нужно, не заметил.
    Twitter | Devices: Samsung Spica i5700 - SamdroidMod 2.0.1 Froyo | Nexus One - Android 2.2 Froyo | Nexus S CyanogenMod 7.1
    If you like my stuff, buy me a beer!

  8. [translate]    #8
    Junior Member
    Join Date
    Sep 2010
    Location
    Leningradskaya obl.
    Posts
    22

    Default

    Обьясните пожалуйста чайнику, пробовал проделать вышеописанную методу, но не совсем понятно :

    Quote Originally Posted by LeshaK View Post
    Установить cross toolchains для компиляции,
    я использую Embedded Linux Development Kit
    Что за программа и как ею пользоватся ? Ссылка Алексея не работает к сожалению.

    Quote Originally Posted by LeshaK View Post
    Качаем архив:
    [attachment=1:1phs2wr6]initramfs.tar.gz[/attachment:1phs2wr6]
    Откуда качаем и чем ?

  9. [translate]    #9
    Administrator
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    3,727

    Default

    1. Wiki:How to build cross toolchains for ARM crosstool-NG - Samdroid board
    2. Wiki:How to build kernel for Samsung Spica i5700 - Samdroid board

    или взять образ vmware, в котором все уже сделано
    Twitter | Devices: Samsung Spica i5700 - SamdroidMod 2.0.1 Froyo | Nexus One - Android 2.2 Froyo | Nexus S CyanogenMod 7.1
    If you like my stuff, buy me a beer!

  10. [translate]    #10
    Junior Member
    Join Date
    Sep 2010
    Location
    Leningradskaya obl.
    Posts
    22

    Default

    Есть проблема - почему не могу попасть в меню make menuconfig ?

    *** Unable to find the ncurses libraries or the
    *** required header files.
    *** 'make menuconfig' requires the ncurses libraries.
    ***
    *** Install ncurses (ncurses-devel) and try again.
    ***
    make[1]: *** [scripts/kconfig/dochecklxdialog] Ошибка 1
    make: *** [menuconfig] Ошибка 2

Page 1 of 3 123 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •