Yocto Flash From Net: Difference between revisions

From Variscite Wiki
No edit summary
No edit summary
Line 11: Line 11:
|info}}
|info}}


== Build minimal file system==
== Build minimal file system ==
{{#ifeq: {{#var:SOC_SERIES}} | imx8 |
To setup a Yocto build environment follow steps 1 & 3 of the {{Varlink|Yocto_Build_Release|{{#var:RELEASE_LINK}}|Build Yocto from source code}} guide.<br>
<pre>
Then, append the following to the conf/local.conf file in your Yocto build directory:
  $ bitbake core-image-minimal
{{#ifeq: {{#var:SOC_SERIES}} | imx8 |
</pre>
  IMAGE_INSTALL_append = " bash e2fsprogs-mke2fs tar"
|
|
<pre>
  IMAGE_INSTALL_append = " bash e2fsprogs-mke2fs tar mtd-utils imx-kobs mtd-utils-ubifs"
  $ gedit ../sources/poky/meta/recipes-core/images/core-image-minimal-mtdutils.bb
</pre>
Set the image to include:
IMAGE_INSTALL += "mtd-utils imx-kobs mtd-utils-ubifs"<br>
Build the system:
$ bitbake core-image-minimal-mtdutils
}}
}}
And build the image:
$ bitbake core-image-minimal


Create a root file system and copy files:
Create a root file system and copy files:
Line 30: Line 27:
<pre>
<pre>
  $ mkdir ~/flash_rootfs
  $ mkdir ~/flash_rootfs
  $ sudo tar xvf tmp/deploy/images/{{#var:MACHINE_NAME}}/core-image-minimal-{{#var:MACHINE_NAME}}.tar.gz -C ~/flash_rootfs
  $ sudo tar xf tmp/deploy/images/{{#var:MACHINE_NAME}}/core-image-minimal-{{#var:MACHINE_NAME}}.tar.gz -C ~/flash_rootfs
  $ sudo cp -a ~/flash_rootfs/boot/*.dtb /tftpboot
  $ sudo cp -a ~/flash_rootfs/boot/*.dtb /tftpboot
  $ sudo cp ~/flash_rootfs/boot/{{#var:KERNEL_IMAGE}} /tftpboot
  $ sudo cp ~/flash_rootfs/boot/{{#var:KERNEL_IMAGE}} /tftpboot
Line 37: Line 34:
<pre>
<pre>
  $ mkdir ~/flash_rootfs
  $ mkdir ~/flash_rootfs
  $ sudo tar xvf tmp/deploy/images/{{#var:MACHINE_NAME}}/core-image-minimal-mtdutils-{{#var:MACHINE_NAME}}.tar.bz2 -C ~/flash_rootfs
  $ sudo tar xf tmp/deploy/images/{{#var:MACHINE_NAME}}/core-image-minimal-{{#var:MACHINE_NAME}}.tar.gz -C ~/flash_rootfs
  $ sudo cp tmp/deploy/images/{{#var:MACHINE_NAME}}/{{#var:KERNEL_IMAGE}} /tftpboot
  $ sudo cp tmp/deploy/images/{{#var:MACHINE_NAME}}/{{#var:KERNEL_IMAGE}} /tftpboot
  $ for f in tmp/deploy/images/{{#var:MACHINE_NAME}}/*.dtb; do if <nowiki>[[ -L $f ]] && [[</nowiki> $f != *{{#var:MACHINE_NAME}}.dtb <nowiki>]]</nowiki>; then sudo cp $f /tftpboot/; fi done
  $ for f in tmp/deploy/images/{{#var:MACHINE_NAME}}/*.dtb; do if <nowiki>[[ -L $f ]] && [[</nowiki> $f != *{{#var:MACHINE_NAME}}.dtb <nowiki>]]</nowiki>; then sudo cp $f /tftpboot/; fi done
Line 46: Line 43:
Insert the recovery SD card into your host PC and copy the following files from it (assuming it is mounted at /media):
Insert the recovery SD card into your host PC and copy the following files from it (assuming it is mounted at /media):
  $ sudo cp -a /media/rootfs/opt/images ~/flash_rootfs/opt/
  $ sudo cp -a /media/rootfs/opt/images ~/flash_rootfs/opt/
  $ sudo cp /media/rootfs/usr/bin/*.sh ~/flash_rootfs/usr/bin
  $ sudo cp /media/rootfs/usr/bin/*.sh ~/flash_rootfs/usr/bin/


Boot the board, stop the autoboot to get to the U-Boot command line, and set the following environment variables:
Boot the board, stop the autoboot to get to the U-Boot command line, and set the following environment variables:

Revision as of 11:51, 5 May 2020

- Flash Yocto images from network

Flashing a complete Yocto system from Network using TFTP & NFS

NOTES:
  1. Please make sure your host system is ready to use TFTP/NFS. Use our Wiki if required: Yocto Setup TFTP/NFS
  2. This is a concept Wiki. Please adopt it to your system and your requirements.
  3. Android can be flashed in the same way.

Build minimal file system

To setup a Yocto build environment follow steps 1 & 3 of the Build Yocto from source code guide.
Then, append the following to the conf/local.conf file in your Yocto build directory:

IMAGE_INSTALL_append = " bash e2fsprogs-mke2fs tar mtd-utils imx-kobs mtd-utils-ubifs"

And build the image:

$ bitbake core-image-minimal

Create a root file system and copy files:

 $ mkdir ~/flash_rootfs
 $ sudo tar xf tmp/deploy/images/{{#var:MACHINE_NAME}}/core-image-minimal-{{#var:MACHINE_NAME}}.tar.gz -C ~/flash_rootfs
 $ sudo cp tmp/deploy/images/{{#var:MACHINE_NAME}}/{{#var:KERNEL_IMAGE}} /tftpboot
 $ for f in tmp/deploy/images/{{#var:MACHINE_NAME}}/*.dtb; do if [[ -L $f ]] && [[ $f != *{{#var:MACHINE_NAME}}.dtb ]]; then sudo cp $f /tftpboot/; fi done
 $ sudo rename 's/{{#var:KERNEL_IMAGE}}-imx/imx/' /tftpboot/{{#var:KERNEL_IMAGE}}-*.dtb

Insert the recovery SD card into your host PC and copy the following files from it (assuming it is mounted at /media):

$ sudo cp -a /media/rootfs/opt/images ~/flash_rootfs/opt/
$ sudo cp /media/rootfs/usr/bin/*.sh  ~/flash_rootfs/usr/bin/

Boot the board, stop the autoboot to get to the U-Boot command line, and set the following environment variables:

=> setenv serverip <your host ip address>
=> setenv nfsroot /home/<your username>/flash_rootfs

If you want to set the fdt file yourself, instead of using the default auto detection:
=> setenv fdt_file <relevant device tree>
=> setenv bootcmd 'run netboot'
=> saveenv
=> boot

On the target flash your system:

# install_yocto.sh

A complete system is flashed into the SOMs internal storage (NAND flash/eMMC).
Once the file system is built you can use it again and again to flash your .
You can update the images to use your images and/or customize install_yocto.sh to your requirements.