Skip to content
πŸ’Ž Buildroot OS for YIO remote
JavaScript QML Shell HTML CSS PHP Awk
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
board/yio-remote/rpi0
buildroot @ d77f6c1
.gitignore
.gitmodules
LICENSE
README.md
yio_rpi0w_defconfig
yio_rpi0w_kernel_config

README.md

YIO Remote OS Repository

For details about the YIO Remote, please visit our documentation repository which can be found under https://github.com/YIO-Remote/documentation

This repository contains the custom Linux OS built with buildroot for the YIO Remote.

Build

Requirements:

  • Preferably a Linux box or VM.
  • At least 20 GB of free space.
  • At least 4 GB RAM. More RAM = better file system caching.
  • Fast CPU with many cores for quicker build times.
  • SSD is highly recommended.
  • Internet connection: packages will be downloaded during the build.
  • 1+ GB microSD card

Prepare Build Environment

Linux Ubuntu 18.04.3 or newer

  • If you just need a headless build VM then use the minimal Ubuntu 18.04.3 LTS Server version.
  • Some packages might already be installed depending on the version (desktop or server).

Install required tools:

  1. Prepare Ubuntu for buildroot:

     sudo apt-get install \
       build-essential \
       g++ \
       gettext \
       patch \
       git \
       libncurses5-dev \
       libtool \
       python \
       texinfo \
       unzip
    
  2. Optional: convenient packages for development

     sudo apt-get install \
       mc \
       nano \
       screen
    
  3. Optional: SSH server for remote access

     sudo apt-get install openssh-server
    

macOS

TODO

Windows

TODO maybe

Build SD Card Image

Initial Checkout

SRC_DIR=~/projects/yio

mkdir -p ${SRC_DIR}
cd ${SRC_DIR}
git clone https://github.com/YIO-Remote/remote-os.git

# switch to development branch
cd remote-os
git checkout develop

# checkout buildroot (Git submodule)
git submodule init
git submodule update

Build Image

cd ${SRC_DIR}/remote-os/buildroot

make defconfig BR2_DEFCONFIG=../yio_rpi0w_defconfig
make

Hint: redirect the make output log into a logfile to easy find an error during building or when using screen without scrollback capability:

make 2>&1 | tee ../buildlog-$(date +"%Y%m%d_%H%M%S").log

The built SD card image can be found at: ${SRC_DIR}/remote-os/buildroot/output/images/yio-remote-sdcard.img

Buildroot Commands

TODO: shortly describe the main commands (menuconfig, clean, rebuild, etc.)

Write SD Card Image

Use balenaEtcher - available for Linux, macOS and Windows - or your favorite tool.

Technology Research

The following technologies were / are investigated for finding an easy and automated solution to build the RPi image.

Docker

Docker works best for running services. But it can also be used to build software or anything else. Well, that's a service too :-)

TODO:

  • Docker setup using Docker Volumes for the build cache. (Volume mounts have too many issues on Windows).

Vagrant

Vagrant would be perfect for building the RPi image. Everything could be automated and one would only have to type vagrant up.

Found issues so far:

  • Almost all official Linux boxes have a 'small' 10 GB disk:
    • Not enough to build the image.
    • No standard way of extending the disk, or limited to one virtualization provider.
    • Synced folders don't work because of hard links
  • Serious issues with VirtualBox 6 in combination with newer Ubuntu images
    • Bootup takes 5+ minutes instead of seconds
    • Issue is something with the UART console

TODO:

  • Search for suitable official Box with at least 20 GB volume
  • Investigate further...
You can’t perform that action at this time.