External buildroot tree for LuminaSensum MynaPlayer
board/ myna-player-odyssey | 4 years ago | ||
buildroot-patches | 4 years ago | ||
configs | 4 years ago | ||
packages | 4 years ago | ||
scripts | 4 years ago | ||
.gitignore | 4 years ago | ||
COPYRIGHT.md | 4 years ago | ||
Config.in | 4 years ago | ||
LICENSE | 4 years ago | ||
README.md | 4 years ago | ||
changelog.md | 4 years ago | ||
external.desc | 4 years ago | ||
external.mk | 4 years ago | ||
t | 4 years ago |
This is the external Buildroot repository used to build system images and updates for the MynaPlayer project.
Building MynaPlayer is an easy process, though it requires decent hardware.
First install Buildroot's required dependencies. See: The buildroot user manual, chapter 2: System requirements
Then set up the required source code:
mkdir MYNA && cd MYNA wget 'https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.7/EasyRSA-3.0.7.tgz' wget 'https://git.buildroot.net/buildroot/snapshot/buildroot-2020.05.1.tar.gz' tar -xf EasyRSA-3.0.7.tgz tar -xf buildroot-2020.05.1.tar.gz mv EasyRSA-3.0.7 easy-rsa mv buildroot-2020.05.1 buildroot git clone 'https://git.lumina-sensum.com/git/LuminaSensum/buildroot-MynaPlayer.git' export BR2_EXTERNAL="$PWD/buildroot-MynaPlayer" cd buildroot for p in ../buildroot-MynaPlayer/buildroot-patches/*.patch; do patch -p1 < $p; done cd ..
Create keys for RAUC updates:
cd easy-rsa sed -i "s/extendedKeyUsage/#extendedKeyUsage/g" easyrsa3/x509-types/code-signing ./easyrsa3/easyrsa init-pki ./easyrsa3/easyrsa build-ca ./easyrsa3/easyrsa gen-req rauc ./easyrsa3/easyrsa sign-req code-signing rauc cd .. cat >buildroot-MynaPlayer/scripts/certs.sh <<EOF #!/bin/sh RAUC_CERTIFICATE_AUTHORITY="$PWD/easy-rsa/pki/ca.crt" RAUC_PRIVATE_KEY="$PWD/easy-rsa/pki/private/rauc.key" RAUC_PUBLIC_KEY="$PWD/easy-rsa/pki/issued/rauc.crt" EOF
Build the image:
cd buildroot make O=output_build myna_player_odyssey_defconfig make O=output_build -j8 cd ..
For the initial install of Buildroot you'll need to write a full system image to your board's storage.
To flash to eMMC, first boot Linux from an SD card on the board. See Seeed's ODYSSEY STM32MP157C Wiki page for instructions on how to do this.
First, copy the image to the board from your build server. In this case I'll use SFTP over SSH:
sftp build-server:/home/jookia/MYNA/buildroot/output_build/images/MynaPlayer.img .
Now write it to the eMMC:
dd if=MynaPlayer.img of=/dev/mmcblk0
Switch to eMMC boot and reboot.
You can use this method to install updates, but it's much slower compared to RAUC.
To update using RAUC you'll need a server to host the files.
In this example I'll be using a web server (www.jookia.org) which serves contents from /var/www/www.jookia.org/.
First, copy RAUC bundles and keys to your server:
ls buildroot/output_build/images/ # Find the file ending in *.raucb # You can also just flash MynaPlayer.img using dd but it takes a long time mv buildroot/output_build/images/bundle-MynaPlayer-2020-08-06.fe2ca3ce-be36-4f33-94d4-e295cd0518be.raucb /var/www/www.jookia.org/ cp $PWD/easy-rsa/pki/ca.crt /var/www/www.jookia.org/ chmod a+r /var/www/www.jookia.org/ca.crt
Install the update on the device from the server:
wget 'https://www.jookia.org/ca.crt' cp /etc/rauc/keyring.pem{,.bak} mv ca.crt /etc/rauc/keyring.pem rauc install https://www.jookia.org/bundle-MynaPlayer-2020-08-06.fe2ca3ce-be36-4f33-94d4-e295cd0518be.raucb mv /etc/rauc/keyring.pem{.bak,} reboot
Future updates won't need to copy the keyring, a single 'rauc install' invocation should download and install the image without trouble.
You should now be running a system you've just built (check the kernel build date):
uname -a # Linux MynaPlayer 5.8.0 #3 SMP PREEMPT Thu Aug 6 03:21:30 EDT 2020 armv7l GNU/Linux
Copyright 2020 Xogium and other contributors
This project is licensed under the GNU GPL version 3 or later. Some portions are licensed under the CC0.
This project includes third party works as-is or modified. These works are authored by others and available under open source licenses.
See 'COPYRIGHT.md' for full details.