...
The Flash-N-Go infrastructure (or FnG infrastructure) is a software product for NXP i.MX Edge devices created by SECO. Consisting of three parts: Flash-N-Go Boot, Flash-N-Go System and Flash-N-Go Update; it provides a convenient way of booting, flashing, testing and updating edge devices. FnG Infrastructure is available on the following series of devices:
...
The current backing-storage type of Flash-N-Go is eMMC (using the Linux naming mmcblk0). In addition to the partitions for the basic Flash-N-Go components, there may be some more partitions depending on the system configuration.
Expand |
---|
title | i.MX6 Partition layout |
---|
|
The default partition layout for the Flash-N-Go on the iMX6 platform is: Partition | File System | Contents |
---|
mmcblk0boot0
| none | Flash-N-Go Boot | mmcblk0boot1
| FAT32 | XML based device configuration and touchscreen settings | mmcblk0p1
| FAT32 | Flash-N-Go System including Linux Kernel Ramdisk-file-system boot-alt.cfg file
|
The target operating system kernel is usually installed in mmcblk0p2 FAT32 partition and uses a third partition mmcblk0p3 as a non-volatile rootfs partition. However other partition layouts are possible for the target OS like customer-specific partition layouts or Android-based multi-partition layouts. |
Expand |
---|
title | i.MX8 Partition layout |
---|
|
On the imx8 based systems the default partition layout also contains the partitions for the target OS. The following table contains all possible partitions. Depending on the selected setup it is possible that that the LINUXB, ROOTFSB and user partition are missing. Partition | File System | Contents |
---|
mmcblk0p1 | none | Bootloader U-Boot placeholder to make the bootloader placement visible | mmcblk0p2 | none | Bootloader Uboot environment placeholder to make the usage visible | mmcblk0p3 | VFAT | Config SECO specific config partition, contain xml and other persistent device data | mmcblk0p4 | none | Extended Partition | mmcblk0p5 | VFAT, 128M | FLASH-N-GO Flash-N-Go System Kernel and RAM FS | mmcblk0p6 | VFAT, 128M | LINUX Kernel, devicetrees and boot.cfg for installation A | mmcblk0p7 | VFAT, 128M | LINUXB Kernel, devicetrees and boot.cfg for installation B | mmcblk0p8 | EXT4, ~1.2GB | ROOTFS Root Files System for installation A | mmcblk0p9 | EXT4, ~1.2GB | ROOTFSB Root filessystem for installation B | mmcblk0p10 | not in use by default, ~1GB | User partition |
|
...
Booting Flash-N-Go System
...
Alternatively, the bootselect
tool can be used, available modes are regular for normal target OS and alternative for Flash-N-Go System.
Info |
---|
The bootmode switch needs to be held on each boot process. The selection made with bootselect is persistent. |
...
This tool offers the possibility to switch the boot target between the flashed operation system (e.g. Linux, Windows Embedded) on the device and Flash-N-Go System itself. The following code block shows a list of all possible parameters:
Expand |
---|
title | Using bootselect tool |
---|
|
Code Block |
---|
| FLASH-N-GO:/ bootselect -h
Usage: bootselect [-qv] [<bootmode>]
When called without parameters, bootselect reads the
current boot-mode setting from the RTC-register
Options:
<bootmode> Writes the given boot-mode into the RTC-register
May be one of: initialized regular regularB alternative invalid
-v Turns on debug messages on stderr
-vv Turns on info messages on stderr
-q Turns off warning messages on stderr
-qq Turns off all messages on stderr |
|
expand |
title | Using bootselect tool |
---|
|
It is also possible to use abbreviation such as a for alternative and so on. Code Block |
---|
| root@santaro:~# bootselect a
alternative
root@santaro:~# bootselect r
regular |
|
...
sconfig
is a small command-line tool that offers functionalities for device configurations like network settings, screen rotation etc. The following code block shows a list of all possible parameters.
Expand |
---|
|
Code Block |
---|
FLASH-N-GO:/ sconfig -h
Usage: /usr/bin/sconfig {start | list | init | <setting> [value]}
Call without [value] to read a setting, call with [value] to write it.
Available settings:
serialdiag switch serial debug console on or off
dhcp switch DHCP on or off
ip set IP address
mask set subnet mask
gateway set standard network gateway
mac set MAC address
name set device name
serial set serial number (affects MAC address and device name)
rotation set display rotation
If a 2.Ethernet is present, it may be configured via serial2, mac2, etc. |
|
xconfig
xconfig
is a command-line tool to manipulate the XML-configuration data directly. Care should be taken when using these commands as miss-configured or corrupted XML- configuration data might render a system unusable. The following code block shows a list of all possible parameters.
Expand |
---|
|
Code Block |
---|
FLASH-N-GO:/# xconfig
Usage: $0 [command] [options]
Script to manipulate the XML-configuration data of GuF i.MX Boards
inside the NAND Flash.
xconfig expect one of the following commands to define its behavior:
list show the current contents of the XML-configuration as
obtained from NAND
import import an external XML-configuration file into the NAND
Flash
addnode add a new (empty) XML node
delnode delete XML node(s) and its/their children
addattribute add a new or change an existing attribute
delattribute delete an existing attribute
If no command and option given xconfig will display its version and exit.
Syntax:
xconfig list [-v] [-p <path>]
-v show whole (sub)tree instead of summary, the format is
suitable to be used as input to "xconfig import"
-s search for a specific pattern
-l show long path syntax instead of xml
--node filter result by node name, basic wildcards are allowed
--attribute filter result by attribute name, basic wildcards are allowed
format is either
--attribute linux* matches all nodes that have
an attribute starting with linux or
--attribute key="value" matching nodes that
have an attribute 'key' with the value 'value'
-p <path> path to subtree, e.g.:
-p /configurationFile/variables/setting[@key='enable_serialdiag]
if omitted, the whole tree is shown
xconfig import [-v] [-y] [-b] <file>
-v be verbose
-y assume yes - apply changes without user interaction
<file> path to file to import
-b deprecated - do not use
xconfig addnode [-y] -p <path> -n <name>
-y same as above
-p <path> path to parent node
-n <name> name of new node
xconfig delnode [-y] -p <path>
-y same as above
-p <path> path to node
xconfig addattribute [-y] -p <path> -n <attr-name> -v <value>
-y same as above
-p <path> path to parent node
-n <attr-name> name of the attribute
-v <value> new value of attribute
xconfig delattribute [-y] -p <path> -n <attr-name>
-y same as above
-p <path> path to parent node
-n <attr-name> name of the attribute
xconfig listattributes -p <path>
-p <path> path to node
xconfig getattribute -p <path> -n <attr-name>
-p <path> path to parent node
-n <attr-name> name of the attribute |
|
Manual System Update
...
Note |
---|
Some features of on older devices are only supported by older releases of our FnG Infrastructure. For example, FnG Update will only work with FnG System 15 and below. If you have an older device and need those features, please contact our Technical Support for the appropriate installation procedure. |
Manual System Update
The manual system update considers a manual operating system (OS) installation via a console. The progress can be done locally using mass storage devices or using a network connection. The update process described here requires an Ethernet connection of the device to a development PC, either directly or via intranet. Also, a TFTP-Server or HTTP-Server is required on the development PC. There are several, also free, TFTP-Servers and HTTP-Servers online available. Please make sure that the timeout settings of the TFTP-Server are set to 60 seconds at a minimum. done locally using mass storage devices or using a network connection.
The installation of target OSes, and Flash-N-Go System and Flash-N-Go Boot should work via console one- or two-liners. All device partitioning, deployment actions should be done by shell scripts executed by the simple command. See Booting Flash-N-Go System for instructions on how to boot into the management system.
...
Code Block |
---|
|
sconfig dhcp on
reboot |
Installation via network
Info |
---|
Our latest releases can be found here (FnG-System) and here (Yocto) |
The common concept of the installation is always similar.
...
These concatenating these steps the installation can be done in one-liner commands.
Info |
---|
Our latest releases can be found here (FnG-System) and here (Yocto)The examples below are using our server as an example. Customer can download the files and host on their own server in case only local network is available. |
Example 1: Install Yocto Kirkstone 25.0
Set the variable location, then call curl
to download it to pipe to sh
...
The parameter url of the script should point to the location of the folder where the installation files are located.
Example 2: Install Flash-N-Go System 51
The process is similar to installing the target OS
Code Block |
---|
|
FNG="https://secostorage.blob.core.windows.net/seco-ne-public/HMI/Flash-N-Go/FNGSystem/FNGSystem-51.0/seco-mx6/fngsystem-self-update.sh"
curl --location "$FNG" | sh -s -- --url="$(dirname "$FNG")" |
Offline installation
It is also possible to install FnG System as well as the target OS offline.
To do that, simply download and copy the installation script as well as the corresponding files to a USB stick. After that, simply boot the device into FnG System, mount the USB stick and directly call the script.
...
Security Considerations
The Flash-N-Go System is designed as a management system to install and update target operating systems and change the device configurations. Thus it runs with root privileges. This may be a concern for some scenarios. Therefore some security considerations are necessary.
...
License
Expand |
---|
title | The license for the three tools of Flash-N-Go tool suite is as follows: |
---|
|
Flash-N-Go Boot (the boot loader): This package is published under GPLv2 license. This license information is listed in various places: In the Flash-N-Go manual, as well as contained in the source-package itself in the files COPYING and CREDITS, all available from the website: https://support.garz-fricke.com/projects/Santaro/Flash-N-Go/overview.html The tool “FnG-Boot” is just a single package, i.e. a “package list” is trivial: Just one source code package, also provided on the download page, e.g. GF_iMX6x-FNGBoot-v13.0r3797-src-full.tgz on https://support.garz-fricke.com/products/Santaro/Flash-N-Go/FNGBoot/FNGBoot-v13.0r3797/ The source code is a derived work from the “u-boot” bootloader project, which is itself released under GPLv2. All additional code is authored solely by Garz&Fricke / SECO. Hence the tool and its source code is completely licensed under GPLv2
Flash-N-Go System (the minimal yocto OS distribution): The releases (provided on the same web-page as above) include a full package list including license information for each package. Flash-N-Go Update (the updater tool): This package is published under Apache v2 licsense. It is an original Garz & Fricke project. The project is also no longer maintained. It is a python tool and, as such, is distributed as full source-code.
|