motofan logo
       
> 

Окружение, сборка ядра, программинг, Мануалы

EXL
сообщение 8.3.2010, 20:11


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 965
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652
Модель телефона: XT894 / XT897
Прошивка: Различные


Настроение:
null



Рейтинг: 4609



Сборка простого модуля ядра и окружения © Источник

Установите Ubuntu Изображение
Установка инструментов сборки
Код

sudo apt-get build-dep linux
sudo apt-get gitk
cd && mkdir milestone-kernel && cd milestone-kernel

Код
wget 'http://android.git.kernel.org/?p=platform/prebuilt.git;a=snapshot;h=7f069ba4b6c3271c94844624b34e9a3592c2c732;sf=tgz' -O prebuilt.tgz
mkdir -p prebuilt/linux-x86/toolchain/
tar xvzf prebuilt.tgz -C prebuilt/linux-x86/toolchain/
mv prebuilt/linux-x86/toolchain/prebuilt prebuilt/linux-x86/toolchain/arm-eabi-4.4.0


Если вы хотите использовать только самые последние версии, то наберите это:

Код
git clone  --depth 1 git://android.git.kernel.org/platform/prebuilt.git prebuilt-orig
mkdir -p prebuilt/linux-x86/toolchain/
mv prebuilt-orig/linux-x86/toolchain/arm-eabi-4.4.0 prebuilt/linux-x86/toolchain/


Установка инструментов:

Код
wget http://dl.google.com/android/archives/android-sdk-linux_x86-1.6_r1.tgz
tar xzf android-sdk-linux_x86-1.6_r1.tgz android-sdk-linux_x86-1.6_r1/tools/
mv android-sdk-linux_x86-1.6_r1/tools .


Сборка ядра Исходники ядра

Код
wget 'https://opensource.motorola.com/sf/frs/do/downloadFile/projects.milestone/frs.milestone.01_15_0/frs8131?dl=1' -O archive_0115-kernel.tgz
wget 'https://opensource.motorola.com/sf/frs/do/downloadFile/projects.milestone/frs.milestone.01_15_0/frs8135?dl=1' -O archive_0115-system-wlan-ti.tgz
tar xzf archive_0115-kernel.tgz && tar xzf archive_0115-system-wlan-ti.tgz
mv archive_0115/kernel archive_0115/system .

Теперь удалим лишнее

Код
rm -rf prebuilt-orig archive_0115 android-sdk-linux_x86-1.6_r1 *.tgz


Для упрощения последующих действий, установку переменных окружения сделаем через следующий скрипт:

Код
#!/bin/bash
WDIR="$HOME/milestone-kernel"
ARM_HOME=$WDIR/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0
export PATH=$WDIR/tools:$ARM_HOME/bin:$PATH
export ARCH=arm
export CROSS_COMPILE=$ARM_HOME/bin/arm-eabi-
export KERNELDIR=$WDIR/kernel

chmod +x set-env


Альтернатива http://www.multiupload.com/L6QRTZJ7YV
(md5sum c9b51a85b8c5697568602949ef48a2c4 *milestone-kernel.tbz)

Код
tar xvjf milestone-kernel.tbz -C "$HOME/"
cd "$HOME/milestone-kernel/"

А теперь проверим работоспособность компилятора (должен вывести свою версию):

Код
arm-eabi-gcc -v


Сборка ядра Linux (Разработчики Google/Motorola изувечили стандартную сборку ядра)
Наберите следующую команду и можете пойти попить кофе, поесть, сходить в магазин и т.д.; потому
что сборка ядра это очень долгий процесс:

Код
make -f kernel/kernel.mk -j2


Образ zImage и модули ядра будут тут:

Код
out/target/pr/generic/obj/PARTITIONS/kernel_intermediates/build


Модуль 'hello_omap.ko'

Давайте сделаем простой модуль, который выводит нам режим, в котором находиться omap3430 (GP/HS):

Код
mkdir hello_omap && cd hello_omap


Создание исходников и MakeFile:

Прикрепленный файл hello_omap.c.7z   ( 472 байт ) Кол-во скачиваний: 475
(Убираем .7z)

Внимание! Вместо пробелов используйте табуляцию (TAB)

Прикрепленный файл Makefile.txt   ( 305 байт ) Кол-во скачиваний: 239


Скомпилим модуль ядра

Код
make


Лог:
CC [M] …milestone-kernel/hello_omap/hello_omap.o
Building modules, stage 2.
MODPOST 1 modules
LD [M] …milestone-kernel/hello_omap/hello_omap.ko

Код
file hello_omap.ko


Лог:
hello_omap.ko: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped

Вставим модуль в ядро

Код
adb -d push hello_omap.ko /tmp/
adb -d shell su -c 'insmod /tmp/hello_omap.ko'
adb -d shell dmesg


Лог:

<6>[ 121.549346] hello_omap: cpu is omap 3430
<6>[ 121.549560] hello_omap: cpu is in High Security (HS) mode

Установим заголовочные файлы:

Код
cd kernel
make headers_install -C../out/target/pr/generic/obj/PARTITIONS/kernel_intermediates/build/ \
                     INSTALL_HDR_PATH=$HOME/milestone-kernel
cd .. && ls include/


Лог:
asm asm-generic drm linux mtd rdma sound video

Полезное:

Структура mbmloader'a

Прикрепленное изображение

Карта памяти
Spoiler:

CODE

boot space
# cat iomem
00000000-00000000 : omap2-nand.0
10000000-10000fff : omap2-nand

4Gb NAND device: Manufacturer ID: 0x98, Chip ID: 0xbc (Toshiba NAND 512MiB 1,8V 16-bit)
recovery
Creating 26 MTD partitions on "omap2-nand.0":
0x000000000000-0x000000020000 : "mbmloader"
0x000000020000-0x0000000c0000 : "mbm"
0x0000000c0000-0x000000160000 : "mbmbackup"
0x000000160000-0x0000001c0000 : "bploader"
0x0000001c0000-0x000000220000 : "cdt"
0x000000220000-0x0000003a0000 : "pds"
0x0000003a0000-0x000000400000 : "lbl"
0x000000400000-0x000000460000 : "lbl_backup"
0x000000460000-0x0000004c0000 : "cid"
0x0000004c0000-0x000000640000 : "sp"
0x000000640000-0x0000006a0000 : "devtree"
0x0000006a0000-0x000000740000 : "logo"
0x000000740000-0x0000007a0000 : "misc"
0x0000007a0000-0x000000b20000 : "boot"
0x000000b20000-0x000000ee0000 : "bpsw"
0x000000ee0000-0x000001360000 : "recovery"
0x000001360000-0x000001c20000 : "cdrom"
0x000001c20000-0x000001c80000 : "unused0"
0x000001c80000-0x00000cc20000 : "system"
0x00000cc20000-0x00000cc80000 : "unused1"
0x00000cc80000-0x000013680000 : "cache"
0x000013680000-0x00001fba0000 : "userdata"
0x00001fba0000-0x00001fd20000 : "cust"
0x00001fd20000-0x00001fd80000 : "unused2"
0x00001fd80000-0x00001ff80000 : "kpanic"
apanic: Bound to mtd partition 'kpanic'
apanic: No panic data available
apanic: Skipping erase of bad block @1e0000
apanic: kpanic partition erased
0x00001ff80000-0x000020000000 : "rsv"

on chip memory
0x40000000 112k ROM
0x40200000 64k SRAM
SRAM: Mapped pa 0x40200000 to va 0xe3000000 size: 0x100000

mapphone_als_init:Initializing
OMAP DMA hardware revision 4.0

Reserving DMA channels 0 and 1 for HS ROM code
L4 interconnects

system peripherals
OMAP34xx GPIO hardware version 2.5

48060000-4806003f : i2c_omap.3
48060000-4806003f : i2c_omap
48064800-48064bff : ehci-omap.0
4806a000-4806a3ff : omap-uart.1
4806a000-4806a3ff : omap-uart
4806c000-4806c3ff : omap-uart.2
4806c000-4806c3ff : omap-uart
48070000-4807003f : i2c_omap.1
48070000-4807003f : i2c_omap
48072000-4807203f : i2c_omap.2
48072000-4807203f : i2c_omap
48098000-480980ff : omap2_mcspi.1
48098000-480980ff : omap2_mcspi.1
4809a000-4809a0ff : omap2_mcspi.2
4809a000-4809a0ff : omap2_mcspi.2
4809c000-4809c1ff : mmci-omap-hs.0
4809c000-4809c1ff : mmci-omap-hs
480ab000-480acfff : musb_hdrc
480b2000-480b201c : omap_hdq.0
480b4000-480b41ff : TIWLAN_SDIO.1
480b8000-480b80ff : omap2_mcspi.3
480b8000-480b80ff : omap2_mcspi.3
480ba000-480ba0ff : omap2_mcspi.4
480ba000-480ba0ff : omap2_mcspi.4
480bc000-480bdb70 : omap34xxcam
480bc000-480bdb70 : omap34xxcam
48314000-4831404f : omap_wdt
48314000-4831404f : omap_wdt
49020000-490203ff : omap-uart.3
49020000-490203ff : omap-uart
console
omap-uart.1: ttyS0 at MMIO 0x4806a000 (irq = 72) is a OMAP UART1
omap-uart.2: ttyS1 at MMIO 0x4806c000 (irq = 73) is a OMAP UART2
omap-uart.3: ttyS2 at MMIO 0x49020000 (irq = 74) is a OMAP UART3
console [ttyS2] enabled
L4 emulation
0x5401 0000 - 0x5401 0FFF: ARM embedded trace macrocell (ETM) module
0x5401 1000 - 0x5401 1FFF: Cortex-A8 module
0x5401 9000 - 0x5401 9FFF: Trace port interface unit (TPIU)
0x5401 B000 - 0x5401 BFFF: ARM embedded trace buffer (ETB) module

0x5401 D030: The DBGEM signal on the Cortex-A8 is driven by setting bit 13
SDRC/SMS virtual space 0
70000000-70ffffff : vrfb
71000000-71ffffff : vrfb
72000000-72ffffff : vrfb
73000000-73ffffff : vrfb
74000000-74ffffff : vrfb
75000000-75ffffff : vrfb
76000000-76ffffff : vrfb
77000000-77ffffff : vrfb
78000000-78ffffff : vrfb
79000000-79ffffff : vrfb
7a000000-7affffff : vrfb
7b000000-7bffffff : vrfb
7c000000-7cffffff : vrfb
7d000000-7dffffff : vrfb
7e000000-7effffff : vrfb
7f000000-7fffffff : vrfb
SDRAM CS0 (256M)

kernel 244M
Clocking rate (Crystal/DPLL/ARM core): 26.0/320/500 MHz

Memory: 244MB = 244MB total
Memory: 229248KB available (4688K code, 1155K data, 208K init)

Reserving 5242880 bytes SDRAM for VRAM
80c00000-8fffffff : System RAM
80c3c000-810cffff : Kernel text
810d0000-811f0ccb : Kernel data
8e000000-8e01ffff : ram_console.0

[close]

jtag

Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

HS обработки в ядре

Прикрепленный файл Source.7z   ( 2.66 килобайт ) Кол-во скачиваний: 233


--------------------------------------
Переведено by EXL & XVilka
Мануал проверен by XVilka

Сообщение отредактировал EXL - 8.3.2010, 21:22
Прикрепленный файл hello_omap.c.7z   ( 472 байт ) Кол-во скачиваний: 475
Прикрепленный файл Makefile.txt   ( 305 байт ) Кол-во скачиваний: 239
Прикрепленный файл Source.7z   ( 2.66 килобайт ) Кол-во скачиваний: 233
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 13.3.2010, 1:43


Rock The Microphone
********

Группа: Администраторы
Сообщений: 2 965
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652
Модель телефона: XT894 / XT897
Прошивка: Различные


Настроение:
null



Рейтинг: 4609



Установка Busybox (c) 4pda.ru by junoreaktor

Если вы незнаете что такое busybox - то Вам это не надо, ну или по крайней мере прочтите перед процессом http://ru.wikipedia.org/wiki/BusyBox
Для установи требуется
Root права
SDK tool
Голова на плечах )))


Скачиваем busybox.zip
и извлекаем содержимое в папку (например c:\android\tools , в этой же папке должен лежать ADB )
Запускаем консоль и набираем там
Код

adb push c:\android\tools\busybox /sdcard/busybox
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system

(внимание раздел system может отличаться и вместо mtdblock6 может быть другим по порядку,для проверки используйте команду cat /proc/mtd
Код

cat /sdcard/busybox > /system/bin/busybox && chmod 700 /system/bin/busybox
sync
mount -o remount,ro -t yaffs2 /dev/block/mtdblock6 /system


Сообщение отредактировал EXL - 13.3.2010, 1:49
Прикрепленный файл busybox.zip   ( 359.01 килобайт ) Кол-во скачиваний: 371
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
andrey_moto
сообщение 4.1.2012, 18:48


Ветеран
*****

Группа: Пользователи
Сообщений: 484
Регистрация: 30.3.2008
Из: minsk
Пользователь №: 168 066
Модель телефона: bravo_wiui+Droid RAZR
Прошивка: E1®dar15


Настроение:
peverell



Рейтинг: 84



я хочу пересобрать ядро для moto bravo что мне для этого нужно и можно немного подробнее ман? спасибо.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Окружение, сборка ядра, программинг, Мануалы · Motorola на Android OS · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19.4.2024, 11:22

Форум живёт: