How To Build Linux Kernel: различия между версиями
Brainroot (обсуждение | вклад) (пакет rsync добавил) |
Admin (обсуждение | вклад) |
||
(не показано 10 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | |||
Сборка ядра Linux | <translate> | ||
модули | <!--T:1--> | ||
'''Сборка ядра''' Linux для Wiren Board может понадобиться, например, если требуется включить нужные модули в ядро. | |||
<!--T:2--> | |||
==Общее описание процесса== | |||
Сборку ядра нужно проводить на настольном компьютере под управлением Linuх, а не на Wiren Board - исходный код ядра занимает около 3 Гбайт, а процедура сборки требовательная к ресурсам, и займёт много времени даже на настольном компьютере. Все команды ниже, если не указано иное, выполняются на настольном компьютере с Linux. | |||
Последовательность действий: | |||
# Предварительная настройка компьютера с Linux. | |||
# Копирование исходного кода ядра. | |||
# Изменение конфигурации ядра. | |||
# Сборка ядра. | |||
# Установка изменённого ядра на Wiren Board. | |||
==Предварительная настройка компьютера с Linux== | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt-get install libncurses5-dev libncursesw5-dev #установка библиотек для menuconfig | |||
#ниже идёт установка и настройка git - пропустите, если он уже установлен | |||
sudo apt-get install git | |||
git config --global user.name "Imya Familiya" | |||
git config --global user.email "vash@adres.ru" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==Копирование исходного кода ядра== | |||
= | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git clone https://github.com/contactless/build_kernel.git #скачайте набор скриптов, упрощающий сборку | |||
cd build_kernel | |||
git clone https://github.com/contactless/linux KERNEL #скопируйте ядро, адаптированное для Wiren Board | |||
cd KERNEL | |||
git submodule init; git submodule update #инициализируйте внешние модули | |||
== | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mxs_wirenboard_defconfig #установите конфиг для сборки под Wiren Board | ||
== | == Редактирование параметров ядра == | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Посмотреть изменения относительно стандартного конфига === <!--T:15--> | |||
<!--T:16--> | |||
./config_diff.sh | |||
=== Применение изменений в стандартный конфиг === <!--T:17--> | |||
<!--T:18--> | |||
Этот пункт нужен, чтобы изменить стандартный конфиг Wiren Board, например чтобы отправить патч или pull request. | |||
cd KERNEL | |||
! | |||
<!--T:19--> | |||
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- savedefconfig | |||
<!--T:20--> | |||
cp defconfig ./arch/arm/configs/mxs_wirenboard_defconfig | |||
==Сборка== <!--T:7--> | |||
< | <!--T:8--> | ||
Сборка ядра с упаковкой в tar.gz архивы: | |||
./build.sh | |||
Сборка в пакет Debian | |||
./build_deb.sh | |||
== Установка на Wiren Board == <!--T:9--> | |||
<!--T:10--> | |||
< | export kernel_version=3.19.0-imxv5-x0.1 | ||
(строку версии стоит взять из вывода сборочных скриптов из предыдущего пункта) | |||
<!--T:11--> | |||
Скрипты: | |||
* 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 | |||
</translate> | |||
Версия 20:24, 9 марта 2020
Сборка ядра Linux для Wiren Board может понадобиться, например, если требуется включить нужные модули в ядро.
Общее описание процесса
Сборку ядра нужно проводить на настольном компьютере под управлением Linuх, а не на Wiren Board - исходный код ядра занимает около 3 Гбайт, а процедура сборки требовательная к ресурсам, и займёт много времени даже на настольном компьютере. Все команды ниже, если не указано иное, выполняются на настольном компьютере с Linux.
Последовательность действий:
- Предварительная настройка компьютера с Linux.
- Копирование исходного кода ядра.
- Изменение конфигурации ядра.
- Сборка ядра.
- Установка изменённого ядра на Wiren Board.
Предварительная настройка компьютера с Linux
sudo apt-get install libncurses5-dev libncursesw5-dev #установка библиотек для menuconfig
#ниже идёт установка и настройка git - пропустите, если он уже установлен
sudo apt-get install git
git config --global user.name "Imya Familiya"
git config --global user.email "vash@adres.ru"
Копирование исходного кода ядра
git clone https://github.com/contactless/build_kernel.git #скачайте набор скриптов, упрощающий сборку
cd build_kernel
git clone https://github.com/contactless/linux KERNEL #скопируйте ядро, адаптированное для Wiren Board
cd KERNEL
git submodule init; git submodule update #инициализируйте внешние модули
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mxs_wirenboard_defconfig #установите конфиг для сборки под Wiren Board
== Редактирование параметров ядра ==
<syntaxhighlight lang="bash">
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
Посмотреть изменения относительно стандартного конфига
./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
Сборка
Сборка ядра с упаковкой в 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