How To Build Linux Kernel: различия между версиями
Admin (обсуждение | вклад) |
Метка: visualeditor |
||
Строка 1: | Строка 1: | ||
Вам может понадобиться собрать своё ядро (например, чтобы включить нужные модули). Чтобы собрать ядро для Wiren Board, нужно взять | Вам может понадобиться собрать своё ядро (например, чтобы включить нужные модули). Чтобы собрать ядро для Wiren Board, нужно взять использовать специальный репозиторий, содержащий ядро, адаптированное для Wiren Board. | ||
'''0.''' Сборку ядра следует проводить на вашем настольном компьютере под управлением Linux (не на Wiren Board - теоретически это возможно, но потребует несколько гигабайт свободного места, и займёт много времени). | '''0.''' Сборку ядра следует проводить на вашем настольном компьютере под управлением Linux (не на Wiren Board - теоретически это возможно, но потребует несколько гигабайт свободного места, и займёт много времени). | ||
Убедитесь, что у вас установлен git (http://en.wikipedia.org/wiki/Git_%28software%29). Если нет, установите его: | Убедитесь, что у вас установлен git (http://en.wikipedia.org/wiki/Git_%28software%29). Если нет, установите его:<pre> | ||
<pre> | |||
sudo apt-get install git | sudo apt-get install git | ||
</pre> | </pre> | ||
Строка 16: | Строка 13: | ||
'''1.''' Скачайте набор скриптов, который | '''1.''' Скачайте набор скриптов, который упрощает сборку: | ||
<pre> | <pre> | ||
git clone git://github.com/contactless/build_kernel.git | git clone git://github.com/contactless/build_kernel.git | ||
cd build_kernel | cd build_kernel | ||
</pre> | </pre> | ||
'''2.''' Склонируйте и инициализируйте репозиторий Linux. | |||
Репозиторий можно склонировать с использованием https (если у вас нет аккаунта на github.com): | |||
<pre> | <pre> | ||
git clone https://github.com/contactless/linux KERNEL | |||
</pre> | </pre> | ||
или ssh, если у вас есть аккаунт: | |||
<pre> | <pre> | ||
git clone git@github.com:contactless/linux.git KERNEL | |||
</pre> | </pre> | ||
'''3.''' Инициализируйте внешние модули: | |||
''' | <pre> | ||
cd KERNEL</pre> | |||
<pre> | |||
git submodule init</pre> | |||
<pre> | <pre> | ||
git submodule update</pre> | |||
'''4.''' Установите конфиг для сборки под Wiren Board<pre> | |||
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mxs_wirenboard_defconfig | |||
</pre> | </pre> | ||
==Сборка== | |||
Сборка ядра с упаковкой в tar.gz архивы: | |||
./build.sh | |||
Сборка в пакет Debian | |||
./build_deb.sh | |||
== Установка на Wiren Board == | |||
== | export kernel_version=3.19.0-imxv5-x0.1 | ||
(строку версии стоит взять из вывода сборочных скриптов из предыдущего пункта) | |||
Скрипты: | |||
* tools/copy_kernel_latest_deb.sh - копирует и устанавливает последний deb-пакет с ядром. Аргумент: папка с rootfs (или примонтированный eMMC/microSD накопитель Wiren Board) | |||
tools/ | * tools/scp_kernel_latest_deb.sh - - копирует и устанавливает последний deb-пакет с ядром. Аргумент: root@hostname, где hostname - это IP-адрес Wiren Board | ||
== | == Работа с конфигом ядра == | ||
=== Редактирование конфига ядра === | |||
cd KERNEL | |||
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig | |||
или | |||
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- xconfig | |||
=== Список изменений относительно стандартного конфига === | |||
./config_diff.sh | |||
=== Применение изменений в стандартный конфиг === | |||
Этот пункт нужен, чтобы изменить стандартный конфиг Wiren Board, например чтобы отправить патч или pull request. | |||
cd KERNEL | |||
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- savedefconfig | |||
cp defconfig ./arch/arm/configs/mxs_wirenboard_defconfig |
Версия 00:06, 1 февраля 2016
Вам может понадобиться собрать своё ядро (например, чтобы включить нужные модули). Чтобы собрать ядро для Wiren Board, нужно взять использовать специальный репозиторий, содержащий ядро, адаптированное для Wiren Board.
0. Сборку ядра следует проводить на вашем настольном компьютере под управлением Linux (не на Wiren Board - теоретически это возможно, но потребует несколько гигабайт свободного места, и займёт много времени).
Убедитесь, что у вас установлен git (http://en.wikipedia.org/wiki/Git_%28software%29). Если нет, установите его:
sudo apt-get install git
Установите произвольные имя пользователя и почту:
git config --global user.name "Imya Familiya" git config --global user.email "vash@adres.ru"
1. Скачайте набор скриптов, который упрощает сборку:
git clone git://github.com/contactless/build_kernel.git cd build_kernel
2. Склонируйте и инициализируйте репозиторий Linux.
Репозиторий можно склонировать с использованием https (если у вас нет аккаунта на github.com):
git clone https://github.com/contactless/linux KERNEL
или ssh, если у вас есть аккаунт:
git clone git@github.com:contactless/linux.git KERNEL
3. Инициализируйте внешние модули:
cd KERNEL
git submodule init
git submodule update
4. Установите конфиг для сборки под Wiren Board
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mxs_wirenboard_defconfig
Сборка
Сборка ядра с упаковкой в tar.gz архивы:
./build.sh
Сборка в пакет Debian
./build_deb.sh
Установка на Wiren Board
export kernel_version=3.19.0-imxv5-x0.1
(строку версии стоит взять из вывода сборочных скриптов из предыдущего пункта)
Скрипты:
- tools/copy_kernel_latest_deb.sh - копирует и устанавливает последний deb-пакет с ядром. Аргумент: папка с rootfs (или примонтированный eMMC/microSD накопитель Wiren Board)
- tools/scp_kernel_latest_deb.sh - - копирует и устанавливает последний deb-пакет с ядром. Аргумент: root@hostname, где hostname - это IP-адрес Wiren Board
Работа с конфигом ядра
Редактирование конфига ядра
cd KERNEL
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
или
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- xconfig
Список изменений относительно стандартного конфига
./config_diff.sh
Применение изменений в стандартный конфиг
Этот пункт нужен, чтобы изменить стандартный конфиг Wiren Board, например чтобы отправить патч или pull request.
cd KERNEL
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- savedefconfig
cp defconfig ./arch/arm/configs/mxs_wirenboard_defconfig