Actions
U-boot (plus MAC address)¶
SOS : do not use u-boot from Yocto (it has older rkbin files, and is unstable)
Use u-boot provided by Rockchip SDK
-
copy board.c to /arch/arm/mach-rockchip
-
file: configs/rk3568_defconfig
CONFIG_BOOTDELAY=5
Note: Read Docs: /home/SDK_4_19/docs
use these commands to build uboot:
./build.sh device/rockchip/rk356x/BoardConfig-evb2-lp4x-v10.mk rk3566-evb2-lp4x-v10.mk
./build.sh uboot
With this uboot, MAC address can be written to flash. Then uboot read MAC address and provides it to Linux.
example how to write MAC with PHP script (this script runs on device):
mmcblk0 is u-boot partition
Mac address info is located after 7170 bytes (or in HEX at address 0x1C02)
$mac = $_POST['mac'];
$mac_Arr = explode(":", $mac);
if (count($mac_Arr) != 6) {
echo "MAC address ERROR";
exit();
}
chdir("/data/firmware/htdocs");
$output = shell_exec('dd if=/dev/mmcblk0 skip=7170 of=mac.img bs=512 count=1');
$filesize = filesize('mac.img');
$fp = fopen('mac.img', 'rb');
$binary = fread($fp, $filesize);
fclose($fp);
$binary[0] = chr(hexdec($mac_Arr[0]));
$binary[1] = chr(hexdec($mac_Arr[1]));
$binary[2] = chr(hexdec($mac_Arr[2]));
$binary[3] = chr(hexdec($mac_Arr[3]));
$binary[4] = chr(hexdec($mac_Arr[4]));
$binary[5] = chr(hexdec($mac_Arr[5]));
$fp = fopen('mac_new.img', 'wb');
fwrite($fp, $binary);
fclose($fp);
$output = shell_exec('dd if=mac_new.img of=/dev/mmcblk0 seek=7170 bs=512 count=1');
Updated by Alex Seferidis 5 months ago ยท 6 revisions