Preparing the image
- Download FreeBSD 13 for the board: https://www.freebsd.org/where/
- Burn the image onto micro SD card (Use Balena Etcher or Disk Image Writer in Gnome)
- Place the card into the board and power it up
- Wait for some time. It might take a while for the OS to start booting. There should a while LED indicator once FreeBSD is starting to boot.
- Default FreeBSD credentials freebsd / freebsd and root / root
Configure the system
From now on this guide mostly follows the official one for the raspberry pi.
Log into the system with root and run the script:
#!/bin/sh
set -e
uzip=
echo "Installing dependencies..."
pkg install -y xorg xterm nano openbox curl
pkg install -y -U git-lite cmake pkgconf qt5-qmake qt5-buildtools qt5-concurrent qt5-quickcontrols qt5-quickcontrols2 kf5-kdbusaddons kf5-kwindowsystem libdbusmenu-qt5
if [ -e "/usr/local/bin/launch" ]; then
echo "launch is already installed."
else
echo "Installing launch..."
rm -r launch || true
git clone https://github.com/helloSystem/launch
mkdir -p launch/build
cd launch/build/
cmake ..
make -j4
#./launch
make install
cd ../../
fi
if [ -e "/usr/local/bin/Menu" ]; then
echo "Menu is already installed."
else
echo "Installing Menu..."
rm -r Menu || true
git clone https://github.com/helloSystem/Menu
mkdir -p Menu/build
cd Menu/build
cmake ..
make -j4
make install
ln -s /usr/local/bin/menubar /usr/local/bin/Menu # Workaround for the 'launch' command to find it
cd ../../
fi
if [ -e "/usr/local/bin/Filer" ]; then
echo "Filer is already installed."
else
echo "Installing Filer..."
rm -r Filer || true
git clone https://github.com/helloSystem/Filer
mkdir -p Filer/build
cd Filer/build/
pkg install -y -U libfm
cmake ..
make -j4
make install
ln -s /usr/local/bin/filer-qt /usr/local/bin/Filer # Workaround for the 'launch' command to find it
cd ../../
fi
if [ -e "/usr/local/bin/Dock" ]; then
echo "Dock is already installed."
else
echo "Installing Dock..."
rm -r Dock || true
git clone https://github.com/helloSystem/Dock
mkdir -p Dock/build
cd Dock/build
cmake ..
make -j4
make install
ln -s /usr/bin/cyber-dock /usr/local/bin/Dock
cd ../../
fi
if [ -e "/usr/local/etc/xdg/stylesheet.qss" ]; then
echo "QtPlugin is already installed."
else
echo "Installing QtPlugin..."
rm -r QtPlugin || true
git clone https://github.com/helloSystem/QtPlugin
mkdir -p QtPlugin/build
cd QtPlugin/build/
pkg install -y -U libqtxdg
cmake ..
make -j4
make install
cp ../stylesheet.qss /usr/local/etc/xdg/
cd ../../
fi
if [ -d "/usr/local/share/icons/elementary-xfce" ]; then
echo "System icons are already installed."
else
echo "Installing system icons..."
pkg install -y -U wget
wget -c -q http://archive.ubuntu.com/ubuntu/pool/universe/x/xubuntu-artwork/xubuntu-icon-theme_16.04.2_all.deb
tar xf xubuntu-icon-theme_16.04.2_all.deb
tar xf data.tar.xz
mkdir -p "${uzip}"/usr/local/share/icons/
mv ./usr/share/icons/elementary-xfce "${uzip}"/usr/local/share/icons/
mv ./usr/share/doc/xubuntu-icon-theme/copyright "${uzip}"/usr/local/share/icons/elementary-xfce/
sed -i -e 's|usr/share|usr/local/share|g' "${uzip}"/usr/local/share/icons/elementary-xfce/copyright
rm "${uzip}"/usr/local/share/icons/elementary-xfce/copyright-e
fi
if [ -e "/usr/local/share/fonts/TTF/C059-Roman.ttf" ]; then
echo "System fonts are already installed."
else
echo "Installing system fonts..."
wget -c -q https://github.com/ArtifexSoftware/urw-base35-fonts/archive/20200910.zip
unzip -q 20200910.zip
mkdir -p "${uzip}/usr/local/share/fonts/TTF/"
cp -R urw-base35-fonts-20200910/fonts/*.ttf "${uzip}/usr/local/share/fonts/TTF/"
rm -rf urw-base35-fonts-20200910/ 20200910.zip
fi
wget "https://raw.githubusercontent.com/helloSystem/hello/master/branding/computer-hello.png" -O "${uzip}"/usr/local/share/icons/elementary-xfce/devices/128/computer-hello.png
url="https://raw.githubusercontent.com/helloSystem/ISO/experimental/settings/packages.hello"
echo "Fetching packages from $url..."
# Install all uncommented packages
curl -fsS $url | egrep -v '^#' | while read line ; do
echo "Installing: $line..."
pkg install -y -U $line || echo "[error] $line cannot be installed"
done
echo "Enabling automount..."
service devd restart
if [ -d "ISO" ]; then
echo "Overlays are already installed."
else
echo "Installing overlays..."
git clone https://github.com/helloSystem/ISO
cp -Rfv ISO/overlays/uzip/hello/files/ /
cp -Rfv ISO/overlays/uzip/localize/files/ /
cp -Rfv ISO/overlays/uzip/openbox-theme/files/ /
cp -Rfv ISO/overlays/uzip/mountarchive/files/ /
fi
echo "Enabling dbus and avahi..."
service dbus enable
service dbus start
service avahi-daemon enable
service avahi-daemon start
echo "Dependencies installed."
Save this script to /usr/local/bin/start-hello
or other directory in the PATH: start-hello script
Unfortunately, I couldn't run helloSystem Xorg session so I had to install fluxbox and run though it.
setenv QT_QPA_PLATFORMTHEME panda
pkg install -y fluxbox
echo startfluxbox > ~/.xinitrc
startx
# Then open an xterm with right-mouse click and run
start-hello
Changes from the original guide
- Install curl
- Install git before installing launch
- Not starting launch when building it
- Install qt5-concurrent, qt5-quickcontrols, qt5-quickcontrols2
- Copy stylesheet.qss from parent directory
- Symlink cyber-dock from /usr/bin/cyber-dock
- Had to install fluxbox and run start-hello from that session
setenv QT_QPA_PLATFORMTHEME panda
before running the Xorg- Set uzip variable
Misc
Taking a screenshot
pkg install -y scrot
scrot screenshot.png