VAR-SOM-MX6 Ubuntu Customize linux-variscite: Difference between revisions

From Variscite Wiki
Line 10: Line 10:


= Linux Changes =
= Linux Changes =
<pre>
$ cd ~/var-som-mx6-alip
$ export PATH=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/bin/:$PATH
</pre>
Make your kernel changes and test them. Most of the changes will be in Linux kernel configuration.
Make your kernel changes and test them. Most of the changes will be in Linux kernel configuration.
For example:
For example:
<pre>
<pre>
Add a printer gadget
Add a printer gadget
$ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- menuconfig
$ make -j6 ARCH=arm CROSS_COMPILE=aarm-linux-gnueabihf- menuconfig
</pre>
</pre>
[[File:Add_module.png]]
[[File:Add_module.png]]

Revision as of 16:33, 7 January 2016

VAR-SOM-MX6 - Customize linux-variscite
Note:
Under Construction

Overview

Ubuntu Linaro Alip is pre built file system. For more information Ubuntu based Rootfs provided by Linaro. Variscite used linaro-vivid-alip-20151215-714 image added Vivante Graphic acceleration and compile the GStreamer with i.MX6 support.

Build Ubuntu Alip NFS is prerequisite step. Please make sure you run it and have a complete NFS build directory as described in the linked WIKI. Also make sure you target is booted from NFS. 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 Changes

$ cd ~/var-som-mx6-alip
$ export PATH=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/bin/:$PATH

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=aarm-linux-gnueabihf- 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