How To Build Linux Kernel/en: различия между версиями

Материал из Wiren Board
(Новая страница: «=== List of changes relative to the standard config ===»)
(Новая страница: «=== Applying the changes to the standard config ===»)
Строка 77: Строка 77:




=== Применение изменений в стандартный конфиг ===
=== Applying the changes to the standard config ===


Этот пункт нужен, чтобы изменить стандартный конфиг Wiren Board, например чтобы отправить патч или pull request.
Этот пункт нужен, чтобы изменить стандартный конфиг Wiren Board, например чтобы отправить патч или pull request.

Версия 19:06, 24 апреля 2019

Другие языки:

You may need to build your kernel (for example, to enable the required modules). To build a kernel for the Wiren Board, you need to use a special repository that contains a kernel adapted for the Wiren Board.


0. The kernel should be built on your Linux desktop (not on the Wiren Board - theoretically it is possible, but it will require several gigabytes of free space, and will take a long time).

Make sure you have git installed(http://en.wikipedia.org/wiki/Git_%28software%29). If not, install it:

sudo apt-get install git

Select a random user name and email:

git config --global user.name "Imya Familiya"
git config --global user.email "vash@adres.ru"


1. Download a set of scripts that makes it easy to build:

git clone git://github.com/contactless/build_kernel.git
cd build_kernel

2. Clone and initialize the Linux repository.

You can clone repository via https (if you have no account on github.com):

git clone https://github.com/contactless/linux KERNEL

or via ssh if you have an account:

git clone git@github.com:contactless/linux.git KERNEL

3. Initialize external modules:

cd KERNEL
git submodule init
git submodule update

4. Install config for build on Wiren Board

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mxs_wirenboard_defconfig

Building kernel

The kernel built with the package in tar.gz archives:

./build.sh

Build the Debian package

./build_deb.sh


Installing on Wiren Board

export kernel_version=3.19.0-imxv5-x0.1

(the version string should be taken from the output of the Assembly scripts from the previous paragraph)

Скрипты:

  • tools/copy_kernel_latest_deb.sh - copies and installs the latest. deb kernel package. Argument: folder with rootfs (or mounted eMMC/microSD drive Wiren Board)
  • tools/scp_kernel_latest_deb.sh - copies and installs the latest deb package with the kernel. Argument: root@hostname, where hostname is the IP address of the Wiren Board


Managing kernel config

Editing the kernel config

cd KERNEL

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig

или

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- xconfig


List of changes relative to the standard config

./config_diff.sh


Applying the changes to the standard config

Этот пункт нужен, чтобы изменить стандартный конфиг Wiren Board, например чтобы отправить патч или pull request.

cd KERNEL
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- savedefconfig
cp defconfig ./arch/arm/configs/mxs_wirenboard_defconfig