How To Build Linux Kernel: различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
<translate> | <translate> | ||
<!--T:1--> | <!--T:1--> | ||
'''Сборка ядра''' Linux для Wiren Board может понадобиться, например, если требуется включить нужные модули в ядро. | |||
<!--T:2--> | |||
==Общее описание процесса== | |||
Сборку ядра нужно проводить на настольном компьютере под управлением Linuх, а не на Wiren Board - исходный код ядра занимает около 3 Гбайт, а процедура сборки требовательная к ресурсам, и займёт много времени даже на настольном компьютере. Все команды ниже, если не указано иное, выполняются на настольном компьютере с Linux. | |||
Последовательность действий: | |||
# Предварительная настройка компьютера с Linux. | |||
# Копирование исходного кода ядра. | |||
# Изменение конфигурации ядра. | |||
# Сборка ядра. | |||
# Установка изменённого ядра на Wiren Board. | |||
===Предварительная настройка компьютера с Linux=== | |||
<syntaxhighlight lang="bash"> | |||
sudo apt-get install libncurses5-dev libncursesw5-dev #установка библиотек для menuconfig | |||
#ниже идёт установка и настройка git - пропустите, если он уже установлен | |||
sudo apt-get install git | sudo apt-get install git | ||
git config --global user.name "Imya Familiya" | git config --global user.name "Imya Familiya" | ||
git config --global user.email "vash@adres.ru" | git config --global user.email "vash@adres.ru" | ||
</ | </syntaxhighlight> | ||
===Копирование исходного кода ядра=== | |||
<syntaxhighlight lang="bash"> | |||
< | git clone https://github.com/contactless/build_kernel.git #скачайте набор скриптов, упрощающий сборку | ||
git clone https://github.com/contactless/build_kernel.git | |||
cd build_kernel | 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> | |||
git clone https://github.com/contactless/linux KERNEL | |||
cd KERNEL | |||
git submodule init | |||
git submodule update | |||
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mxs_wirenboard_defconfig | |||
</ | |||
==Сборка== <!--T:7--> | ==Сборка== <!--T:7--> |
Версия 22:55, 7 марта 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
Сборка
Сборка ядра с упаковкой в 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