VAR-SOM-MX6 Ubuntu Customize linux-variscite

From Variscite Wiki
Revision as of 16:29, 7 January 2016 by Ron (talk | contribs) (→‎Introduction)
VAR-SOM-MX6 - Customize linux-variscite
Note:
Under Construction

Introduction

We deliver a complete Linux in source code adopted to our development platforms. Our customers may require additional changes. You can change and adopt the Linux kernel and/or the device tree's to your requirements.

Linux out of tree and NFS

Please start with:

Linux Changes

Make your kernel changes and test them. Most of the changes will be in Linux kernel configuration. For example:

Add a printer gadget
$ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- menuconfig

Add module.png

Changes made:

 diff .config arch/arm/configs/imx_v7_var_defconfig 
3359c3359
< CONFIG_USB_G_PRINTER=m
---
> # CONFIG_USB_G_PRINTER is not set

Create a new config file

$ cp .config arch/arm/configs/imx_v7_var_custom_defconfig 
$ git status
On branch imx_3.14.38_6qp_ga_var01
Untracked files:
  (use "git add <file>..." to include in what will be committed)

	arch/arm/configs/imx_v7_var_custom_defconfig

nothing added to commit but untracked files present (use "git add" to track)
$ git add arch/arm/configs/imx_v7_var_custom_defconfig
$ git commit -a -m "Custom"
$ git format-patch e07c324139f484b2050da7cf47ec8951b23e2679..550359cea510133050e904c8b8191587d173abc9

Copy patch file to Yocto

$ mkdir ~/var-som-mx6-yocto-fido/sources/meta-variscite-mx6/recipes-kernel/linux/linux-variscite
$ cp 0001-Custom.patch ~/var-som-mx6-yocto-fido/sources/meta-variscite-mx6/recipes-kernel/linux/linux-variscite/0001-custom.patch 

Yocto changes

Patch in meta-variscite linux-variscite_3.14.38.bb:

diff --git a/recipes-kernel/linux/linux-variscite_3.14.38.bb b/recipes-kernel/linux/linux-variscite_3.14.38.bb
index f58a8fd..70ddb59 100755
--- a/recipes-kernel/linux/linux-variscite_3.14.38.bb
+++ b/recipes-kernel/linux/linux-variscite_3.14.38.bb
@@ -17,10 +17,12 @@ SRCBRANCH = "imx_3.14.38_6qp_ga_var01"
 LOCALVERSION = "-6QP"
 SRCREV = "5b280915311efd196a81a8792e7f952172f6373c"
 KERNEL_SRC ?= "git://github.com/varigit/linux-2.6-imx.git;protocol=git"
-SRC_URI = "${KERNEL_SRC};branch=${SRCBRANCH}"
+SRC_URI = "${KERNEL_SRC};branch=${SRCBRANCH} \
+          file://0001-custom.patch \
+          "
 #LOCALVERSION = "-1.1.0"
 
-FSL_KERNEL_DEFCONFIG = "imx_v7_var_defconfig"
+FSL_KERNEL_DEFCONFIG = "imx_v7_var_custom_defconfig"
 
 KERNEL_IMAGETYPE = "uImage"
 
@@ -28,14 +30,14 @@ KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
 
 do_configure_prepend() {
    # copy latest defconfig for imx_v7_var_defoonfig to use
-   cp ${S}/arch/arm/configs/imx_v7_var_defconfig ${B}/.config
-   cp ${S}/arch/arm/configs/imx_v7_var_defconfig ${B}/../defconfig
+   cp ${S}/arch/arm/configs/${FSL_KERNEL_DEFCONFIG} ${B}/.config
+   cp ${S}/arch/arm/configs/${FSL_KERNEL_DEFCONFIG} ${B}/../defconfig
 }
 
 
 # Copy the config file required by ti-compat-wirless-wl18xx
 do_deploy_append () {
-   cp ${S}/arch/arm/configs/imx_v7_var_defconfig ${S}/.config
+   cp ${S}/arch/arm/configs/${FSL_KERNEL_DEFCONFIG} ${S}/.config
 }
 

Build and run the system

On target:

root@var-som-mx6:~# find /lib/modules/ -name *.ko | grep print
/lib/modules/3.14.38-6QP+g5b28091/kernel/drivers/usb/gadget/g_printer.ko