VAR-SOM-MX6 Yocto Krogoth Customizing kernel and uboot: Difference between revisions
(Created page with "{{PageHeader|{{#var:HARDWARE_NAME}} - Customizing the Linux kernel and U-Boot}} {{DocImage|category1={{#var:HARDWARE_NAME}}|category2=Yocto}} __toc__ Choose one of the follow...") |
No edit summary |
||
Line 35: | Line 35: | ||
<u>Linux</u>:<br> | <u>Linux</u>:<br> | ||
Copy your patch: | Copy your patch: | ||
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite- | $ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-kernel/linux/ | ||
$ mkdir -p files | $ mkdir -p files | ||
$ cp ~/var-imx-yocto-krogoth/local_repos/linux-2.6-imx/imx6qdl-var-som_device_tree_changes.diff files/ | $ cp ~/var-imx-yocto-krogoth/local_repos/linux-2.6-imx/imx6qdl-var-som_device_tree_changes.diff files/ | ||
Line 47: | Line 47: | ||
<u>U-Boot</u>:<br> | <u>U-Boot</u>:<br> | ||
Copy your patch: | Copy your patch: | ||
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite- | $ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-bsp/u-boot/ | ||
$ mkdir -p files | $ mkdir -p files | ||
$ cp ~/var-imx-yocto-krogoth/local_repos/uboot-imx/my_u-boot_changes.diff files/ | $ cp ~/var-imx-yocto-krogoth/local_repos/uboot-imx/my_u-boot_changes.diff files/ | ||
Line 98: | Line 98: | ||
'''Update the recipes to use the local repository instead of the default one:'''<br> | '''Update the recipes to use the local repository instead of the default one:'''<br> | ||
<u>Linux</u>: | <u>Linux</u>: | ||
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite- | $ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-kernel/linux/ | ||
Create a linux-variscite_4.1.15.bbappend file: | Create a linux-variscite_4.1.15.bbappend file: | ||
Line 110: | Line 110: | ||
<u>U-Boot</u>: | <u>U-Boot</u>: | ||
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite- | $ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-bsp/u-boot/ | ||
Create a u-boot-variscite.bbappend file: | Create a u-boot-variscite.bbappend file: | ||
Line 143: | Line 143: | ||
<br> | <br> | ||
<u>Linux</u>: | <u>Linux</u>: | ||
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite- | $ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-kernel/linux/ | ||
Create a linux-variscite_4.1.15.bbappend file: | Create a linux-variscite_4.1.15.bbappend file: | ||
Line 155: | Line 155: | ||
<u>U-Boot</u>: | <u>U-Boot</u>: | ||
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite- | $ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-bsp/u-boot/ | ||
Create a u-boot-variscite.bbappend file: | Create a u-boot-variscite.bbappend file: |
Revision as of 11:22, 14 September 2017
Choose one of the following three methods to customize U-Boot and the Linux kernel and build them using Yocto:
Add your own patches on top of our source code
Using this method Yocto will take the source code from our default remote repository, and apply your patches to it before building it:
Get the source code by cloning our repository:
Linux:
$ cd ~/var-imx-yocto-krogoth $ mkdir -p local_repos $ cd local_repos $ git clone https://github.com/varigit/linux-2.6-imx.git $ cd linux-2.6-imx $ git checkout imx-rel_imx_4.1.15_2.0.0_ga-var01
U-Boot:
$ cd ~/var-imx-yocto-krogoth $ mkdir -p local_repos $ cd local_repos $ git clone https://github.com/varigit/uboot-imx.git $ cd uboot-imx $ git checkout imx_v2015.04_4.1.15_1.1.0_ga_var03
Make your changes in the source code and create a patch:
You can use either diff or patch file types.
For example:
$ cd ~/var-imx-yocto-krogoth/local_repos/linux-2.6-imx $ gedit arch/arm/boot/dts/imx6qdl-var-som.dtsi edit and save $ git diff > imx6qdl-var-som_device_tree_changes.diff
Update the recipes to use your patch:
Linux:
Copy your patch:
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-kernel/linux/ $ mkdir -p files $ cp ~/var-imx-yocto-krogoth/local_repos/linux-2.6-imx/imx6qdl-var-som_device_tree_changes.diff files/
Create a linux-variscite_4.1.15.bbappend file:
$ gedit linux-variscite_4.1.15.bbappend
and append the following line to it:
SRC_URI += "file://imx6qdl-var-som_device_tree_changes.diff"
U-Boot:
Copy your patch:
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-bsp/u-boot/ $ mkdir -p files $ cp ~/var-imx-yocto-krogoth/local_repos/uboot-imx/my_u-boot_changes.diff files/
Create a u-boot-variscite.bbappend file:
$ gedit u-boot-variscite.bbappend
and append the following line to it:
SRC_URI += "file://my_u-boot_changes.diff"
Also update the u-boot-fw-utils recipe:
$ cp u-boot-variscite.bbappend u-boot-fw-utils.bbappend
Use a local repository
Using this method Yocto will take the kernel/U-Boot source from a local repository instead of our remote ones on github:
Get the source code by cloning our repository:
Linux:
$ cd ~/var-imx-yocto-krogoth $ mkdir -p local_repos $ cd local_repos $ git clone https://github.com/varigit/linux-2.6-imx.git $ cd linux-2.6-imx $ git checkout imx-rel_imx_4.1.15_2.0.0_ga-var01
U-Boot:
$ cd ~/var-imx-yocto-krogoth $ mkdir -p local_repos $ cd local_repos $ git clone https://github.com/varigit/uboot-imx.git $ cd uboot-imx $ git checkout imx_v2015.04_4.1.15_1.1.0_ga_var03
Make your changes in the source code and commit them:
After making changes in the source code you need to commit them.
For example:
$ cd ~/var-imx-yocto-krogoth/local_repos/linux-2.6-imx $ gedit arch/arm/boot/dts/imx6qdl-var-som.dtsi edit and save $ git commit -a -m "imx6qdl-var-som device tree changes"
To list all of the commits: $ git log
Get the latest commit id: $ git rev-parse HEAD
Update the recipes to use the local repository instead of the default one:
Linux:
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-kernel/linux/
Create a linux-variscite_4.1.15.bbappend file:
$ gedit linux-variscite_4.1.15.bbappend
and append the following lines to it (see the previous section for listing the commits or getting the latest commit id):
KERNEL_SRC_var-som-mx6 = "git://${BSPDIR}/local_repos/linux-2.6-imx;protocol=file" SRCBRANCH_var-som-mx6 = "imx-rel_imx_4.1.15_2.0.0_ga-var01" (or your own created branch) SRCREV_var-som-mx6 = "The commit id you'd like to use"
U-Boot:
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-bsp/u-boot/
Create a u-boot-variscite.bbappend file:
$ gedit u-boot-variscite.bbappend
and append the following lines to it (see the previous section for listing the commits or getting the latest commit id):
UBOOT_SRC_var-som-mx6 = "git://${BSPDIR}/local_repos/uboot-imx;protocol=file" SRCBRANCH_var-som-mx6 = "imx_v2015.04_4.1.15_1.1.0_ga_var03" (or your own created branch) SRCREV_var-som-mx6 = "The commit id you'd like to use"
Also update the u-boot-fw-utils recipe:
$ cp u-boot-variscite.bbappend u-boot-fw-utils.bbappend
Use your own remote repository on github
Using this method Yocto will take the source code from your own remote repository on github:
Create your own github account and upload your proprietary kernel and U-Boot to new repositories:
For example, you can fork our repositories to your own account by visiting the following links and clicking on "Fork" at the top right of the screen.
Alternatively, you can clone our repositories to your local machine, and push them later to your own account.
Linux:
https://github.com/varigit/linux-2.6-imx/tree/imx-rel_imx_4.1.15_2.0.0_ga-var01
U-Boot:
https://github.com/varigit/uboot-imx/tree/imx_v2015.04_4.1.15_1.1.0_ga_var03
Update the recipes to use your remote repository instead of the default one:
Linux:
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-kernel/linux/
Create a linux-variscite_4.1.15.bbappend file:
$ gedit linux-variscite_4.1.15.bbappend
and append the following lines to it (see the previous section for listing the commits or getting the latest commit id):
KERNEL_SRC_var-som-mx6 = "git://github.com/customer/linux-2.6-imx.git;protocol=git" SRCBRANCH_var-som-mx6 = "imx-rel_imx_4.1.15_2.0.0_ga-var01" (or your own created branch) SRCREV_var-som-mx6 = "The commit id you'd like to use"
U-Boot:
$ cd ~/var-imx-yocto-krogoth/sources/meta-variscite-imx/recipes-bsp/u-boot/
Create a u-boot-variscite.bbappend file:
$ gedit u-boot-variscite.bbappend
and append the following lines to it (see the previous section for listing the commits or getting the latest commit id):
UBOOT_SRC_var-som-mx6 = "git://github.com/customer/uboot-imx.git;protocol=git" SRCBRANCH_var-som-mx6 = "imx_v2015.04_4.1.15_1.1.0_ga_var03" (or your own created branch) SRCREV_var-som-mx6 = "The commit id you'd like to use"
Also update the u-boot-fw-utils recipe:
$ cp u-boot-variscite.bbappend u-boot-fw-utils.bbappend