Yocto Flash From Net: Difference between revisions

From Variscite Wiki
No edit summary
 
(9 intermediate revisions by the same user not shown)
Line 21: Line 21:
Then, append the following to the conf/local.conf file in your Yocto build directory:
Then, append the following to the conf/local.conf file in your Yocto build directory:
  {{#switch: {{#var:SOC_SERIES}} | am6 | imx8 | imx9=
  {{#switch: {{#var:SOC_SERIES}} | am6 | imx8 | imx9=
  IMAGE_INSTALL{{#var:YOCTO_OVERRIDE_PREFIX}}append = " bash e2fsprogs-mke2fs tar"
  IMAGE_INSTALL{{#var:YOCTO_OVERRIDE_PREFIX}}append = " bash e2fsprogs-mke2fs tar dosfstools zstd"
|#default=
|#default=
  IMAGE_INSTALL{{#var:YOCTO_OVERRIDE_PREFIX}}append = " bash e2fsprogs-mke2fs tar mtd-utils imx-kobs mtd-utils-ubifs"
  IMAGE_INSTALL{{#var:YOCTO_OVERRIDE_PREFIX}}append = " bash e2fsprogs-mke2fs tar mtd-utils imx-kobs mtd-utils-ubifs"
Line 45: Line 45:
  $ mkdir ~/flash_rootfs
  $ mkdir ~/flash_rootfs
  $ sudo tar xf {{#var:DEPLOY_DIR}}/images/{{#var:MACHINE_NAME}}/core-image-minimal-{{#var:MACHINE_NAME}}.tar.zst -C ~/flash_rootfs
  $ sudo tar xf {{#var:DEPLOY_DIR}}/images/{{#var:MACHINE_NAME}}/core-image-minimal-{{#var:MACHINE_NAME}}.tar.zst -C ~/flash_rootfs
  $ sudo cp -a ~/flash_rootfs/boot/*.dtb /tftpboot
  $ sudo cp -a ~/flash_rootfs/boot/* /tftpboot/
$ sudo cp ~/flash_rootfs/boot/{{#var:KERNEL_IMAGE}} /tftpboot
|#default=
|#default=
<br>
<br>
Line 64: Line 63:
  $ sudo /etc/init.d/nfs-kernel-server restart
  $ sudo /etc/init.d/nfs-kernel-server restart


{{#switch: {{#var:SOC_SERIES}}
| am6=
Insert the recovery SD card into your host PC and copy the following files from it (assuming it is mounted at /media):
$ sudo mkdir ~/flash_rootfs/opt/
$ sudo cp -a /media/$USER/root/opt/images ~/flash_rootfs/opt/images
$ sudo cp /media/$USER/root/usr/bin/*.sh  ~/flash_rootfs/usr/bin/
| #default=
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:
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-AM62 |
<pre>
=> setenv serverip <HOST_IP_ADDRESS>                (replace <HOST_IP_ADDRESS> with the actual IP address of your host - run 'ifconfig' on the host to get it)
=> setenv ipaddr <TARGET_IP_ADDRESS>                (replace <TARGET_IP_ADDRESS> with the IP address for the target)
=> setenv image Image
=> setenv fdtfile k3-am625-var-som-symphony.dtb
=> setenv rootpath "/home/<user>/rootfs"            (replace <user> with the username on your host computer)
=> setenv netargs 'setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},nolock,v3 rw ip=${ipaddr}:::::eth0'
=> setenv netboot 'tftp ${loadaddr} ${image}; tftp ${fdtaddr} ${fdtfile}; run netargs; booti ${loadaddr} - ${fdtaddr}'


=> setenv bootcmd 'run netboot'
=> saveenv
=> boot
</pre>
| <br>
  => setenv serverip <your host ip address>
  => setenv serverip <your host ip address>
  => setenv nfsroot /home/<your username>/flash_rootfs
  => setenv nfsroot /home/<your username>/flash_rootfs
   
   
  If you want to set the fdt file yourself, instead of using the default auto detection:
  # If you want to set the fdt file yourself, instead of using the default auto detection:
  => setenv fdt_file <relevant device tree>
  => setenv fdt_file <relevant device tree>
  => setenv bootcmd 'run netboot'
  => setenv bootcmd 'run netboot'
  => saveenv
  => saveenv
  => boot
  => boot
}}


On the target flash your system:
On the target flash your system:

Latest revision as of 15:21, 24 July 2024

Warning: This page is designed to be used with a 'release' URL parameter.

This page is using the default release RELEASE_MORTY_V1.0_DART-6UL.
To view this page for a specific Variscite SoM and software release, please follow these steps:

  1. Visit variwiki.com
  2. Select your SoM
  3. Select the software release
DART-6UL - 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 adapt it to your system and your requirements.
  3. Android and Debian can be flashed in the same way.

Build minimal file system

To setup a 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/imx6ul-var-dart/core-image-minimal-imx6ul-var-dart. -C ~/flash_rootfs
$ sudo cp tmp/deploy/images/imx6ul-var-dart/zImage /tftpboot
$ for f in tmp/deploy/images/imx6ul-var-dart/*.dtb; do if [[ -L $f ]] && [[ $f != *imx6ul-var-dart.dtb ]]; then sudo cp $f /tftpboot/; fi done
$ sudo rename 's/zImage-imx/imx/' /tftpboot/zImage-*.dtb

Edit /etc/exports. E.g.

$ sudo gedit /etc/exports

...and add the following line to it (replace <uname> with the actual username):

/home/<uname>/flash_rootfs    *(rw,sync,no_root_squash,no_all_squash,no_subtree_check) 

Restart the NFS server:

$ sudo /etc/init.d/nfs-kernel-server restart

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 DART-6UL.
You can update the images to use your images and/or customize install_yocto.sh to your requirements.