4.11 Deploy on On-Board eMMC storage
As the eMMC storage is only accessible from the module itself, you must first boot the RK3399-Q7 from SD card.
Partition and format the eMMC storage as described in Partition Setup, but using the device /dev/mmcblk1 .
Mount the eMMC partition and copy the contents of the SD card to the eMMC storage. The copy process will take about 30
seconds:
sudo mkdir -p /mnt/emmc
sudo mount /dev/mmcblk1p1 /mnt/emmc
sudo cp -ax
/
/mnt/emmc
sudo umount /mnt/emmc
The final step is copying the bootloader to the eMMC:
dd if=/boot/puma_rk3399/spl_sd.img of=/dev/mmcblk1 bs=1k
dd if=/boot/puma_rk3399/u-boot.itb of=/dev/mmcblk1 bs=1k
Shut down the board ( poweroff command) and remove the SD card. Make sure the boot selector switch is set to " Normal
Boot ". The next boot will run U-Boot off the internal eMMC storage.
4.12 Compiling Linux Applications
The easiest option is to compile your applications directly on a running RK3399-Q7 module. Just install the gcc package and
related utilities and you are good to go:
sudo apt-get install build-essential
The second option is to cross-compile your applications. The ARMv8-A compiler that was installed earlier is suitable to
compile applications for the RK3399-Q7.
4.13 Serial Number
Each RK3399-Q7 module has a unique serial number that can be read by software.
In U-Boot, the serial number is contained in the environment variable serial# . You can print it using the command:
printenv
serial#
Under Linux, it is represented by a simple text file in /sys :
cat /sys/firmware/devicetree/base/serial-number
The serial number is fixed in hardware (derived from the SoC CPU ID) and cannot be modified.
4.14 MAC Address
By default, the MAC address of each RK3399-Q7 module is a random value derived from the serial number. The properties of
this default MAC address are:
• It is a Locally Administered Address: The U/L bit of the MAC address is set to 1
• It is not guaranteed to be globally unique
• The address is fixed for each RK3399-Q7 module. It stays constant across reboots as it is deterministically derived from
the serial number
To set your own Universally Administered Address, you overwrite the U-Boot environment variable ethaddr . On the U-Boot
prompt, with XX:XX:XX:XX:XX:XX replaced by your MAC address:
v1.7
Page 26
seek=32
conv=nocreat
seek=256
conv=nocreat