Debian Edit Modify Build and Flash Kernel

From Variscite Wiki
DART-6UL - Customizing the Debian Linux kernel


This section describes how to build a new kernel configuration using menuconfig and deploy it.

1 Building a custom device tree

To build and install a custom device tree, add the filename to G_LINUX_DTB in https://github.com/varigit/debian-var/blob/debian_stretch_mx6ul_var03/variscite/imx6ul-var-dart/imx6ul-var-dart.sh

2 Configuring the kernel

The default kernel configuration file used by Debian is part of the kernel source tree and is located at:

~/var_mx6ul_dart_debian/src/kernel/arch/arm/configs/imx_v7_var_defconfig


To configure the kernel using Debian:

3 Modifying the kernel configuration

To modify the kernel configuration (add/remove features and drivers) please follow the steps below:

$ cd ~/var_mx6ul_dart_debian/src/kernel
$ sudo make ARCH=arm mrproper
$ sudo make ARCH=arm imx_v7_var_defconfig
$ sudo make ARCH=arm menuconfig

Navigate the menu and select the desired kernel functionality

Exit the menu and answer "Yes" when asked "Do you wish to save your new configuration?"

$ sudo make ARCH=arm savedefconfig
$ sudo cp arch/arm/configs/imx_v7_var_defconfig arch/arm/configs/imx_v7_var_defconfig.orig
$ sudo cp defconfig arch/arm/configs/imx_v7_var_defconfig

3.1 Building a new kernel configuration

3.1.1 Build the kernel image, dtb files and kernel modules

$ cd ~/var_mx6ul_dart_debian
$ sudo ./make_var_mx6ul_dart_debian.sh -c kernel
$ sudo ./make_var_mx6ul_dart_debian.sh -c modules


Note: If you have modules newly added / removed, make sure you run the following command:
$ sudo ./make_var_mx6ul_dart_debian.sh -c rtar
$ sudo ./make_var_mx6ul_dart_debian.sh -c rubi

This will create rootfs.tar.gz and rootfs.ubi.img files that contain your new modules.

3.2 Deploy the kernel image, dtb files and kernel modules

3.3 Deploy Kernel, dtb via network

3.3.1 Updating Device tree to target

Transfer dtbs to target
On PC:

$ cd ~/var_mx6ul_dart_debian
$ scp output/*.dtb root@<yourboard-ip>:/tmp/

Once prompted give root as password. <yourboard-ip> is ipaddress of your board.
Once transfer is done, follow below commands
On Target Console:

# mkdir -p /media/boot/
# mount /dev/mmcblk1p1 /media/boot/
# cp /tmp/*.dtb /media/boot/;sync;reboot
Note: If you just intend to do dtb, then only follow this section and reboot the target


3.3.2 Updating kernel Image to target

Transfer the output/zImage kernel image to target
On PC:

$ scp output/zImage root@<yourboard-ip>:/tmp/

Once prompted give root as password. <yourboard-ip> is ipaddress of your board.
Once transfer is done, follow below commands
On Target Console:

# mkdir -p /media/boot/
# mount /dev/mmcblk1p1 /media/boot/
# cp /tmp/*.dtb /media/boot/;sync;reboot