Novena

This document describes the Gentoo installation on Novena, an open hardware and FOSS-friendly computing platform (see Novena main page www.kosagi.com).

Prerequisites
The easiest way for installing Gentoo without initial bootstrapping is using the already shipped and working Debian installation, following a stage3 standard-installation on a second drive e.g. connected via USB. This guide focuses on the more complicated/Novena-unique parts and references to the original documentation whenever possible.

A Second hard disk has to be connected to USB (using the USB directly connected to the mainboard). This disk is further on referred to be found at in the booted Novena/Debian system. After successfully booting the new Gentoo system later on, will become.

Base system
Follow the standard installation for the architecture found in the x86 Handbook with the following differences:

Partitioning
The bootloader and Linux kernel is stored on the internal SD-card of the Novena platform. After loading the kernel, the standard procedure is to mount the root partition by searching for an unique disk-ID 0x4e6f7653 (see http://www.kosagi.com/w/index.php?title=Novena_Main_Page#Bootloader). The boot process is as follows: SD-card (u-boot → Linux kernel) → hard drive (root filesystem). Because of this, the disk-ID of the new hard drive has to be changed accordingly, e.g. using :

The partition layout on the hard disk for the new installation is as follows:

The present partition on the SD-card is:

The device naming has become confusing in the Gentoo handbook. The translation from partition used in this guide to the on in the handbook is:

Installing a stage tarball
The following information can be used to find the correct stage3 archive:


 * Architecture = arm
 * Subarchitecture = armv7a_hardf
 * Common subdirectory on mirror: [host][prefix]/releases/arm/autobuilds/current-stage3-armv7a_hardfp/

Configuring compile options
Save CFLAGS for Novena can be found at: https://wiki.gentoo.org/wiki/Safe_CFLAGS#ARMv7-A.2FCortex-A9_MPCore. The following changes in work for Novena:

The iMX6 CPU contains a FPU with NEON instruction set so we can set "-mfpu=neon".

Choosing the right profile
Choose: default/linux/arm/10.0 (or newer)

Configuring the USE variable
Depends on individual needs, when in doubt leave it unchanged.

systemd
Nope, nobody needs it.

Installing the sources
The kernel is installed independent from the portage version, so no need to emerge it. See: https://github.com/xobs/novena-linux

At the time of writing the official patches have been rebased only to version 4.4 of the kernel. An unofficial updated patchset (rebased to 4.7.2) is however available here.

Additional notes
Installing ccache is a good idea as compiling on Novena can take some time.

After finishing the installation, shut down the system and connect the drive containing the newly installed gentoo installation to the SATA port. Gentoo should boot up successfully. If not, you still have Debian to check for errors (

Bootloader update
A configuration and installation guide can be found at: http://www.kosagi.com/w/index.php?title=U-boot-novena

Alternatively, if you choose to install the (unofficial) overlay (see below), you can also emerge, which will build U-Boot and install it (writing the second-stage bootloader to  and the first stage bootloader to the microSD card's MBR). A utility is also created to allow you to write the SPL (first stage bootloader) to the MBR of other devices.

Kernel update
Novena uses the original Linux kernel extended by custom patches. Sources:


 * Kernel sources: https://github.com/xobs/novena-linux
 * Kernel modules: https://github.com/xobs/gpu-viv

A configuration and installation guide can be found at: http://www.kosagi.com/w/index.php?title=Novena_linux-kernel. The new kernel is installed by mounting the SD-card copying the resulting kernel:

See also the notes above.

The Overlay
An (unofficial) overlay for Gentoo users of the Novena SBC is available here. The overlay provides ebuilds shadowing all xobs' standard Novena packages from Debian ( etc.), allowing you to enjoy these same facilities under Gentoo.

More details (including installation instructions) are in the project's GitHub page, but here is a brief summary of the provided ebuilds:


 * Full kernel sources for 4.7.2, with Gentoo and Novena patchsets.
 * As above, but with the hardened patchset; also, deblobbed by default.
 * Tool to view and edit the contents of the Novena's personality EEPROM.
 * Qt GUI version of the above.
 * Support files for the heirloom laptop variant of Novena.
 * Hub management tool (power control, etc.) for Novena.
 * Novena-packaged version of U-Boot.
 * Firmware loader for the Senoko battery/passthrough board.
 * Compile-from-source ChibiOS firmware for Senoko.
 * Support files for pulseaudio on Novena.
 * Small daemon which disables SSP on all Bluetooth adaptors.
 * Distributes hardware interrupts across processors on Novena.
 * FOSS user-space driver for the Vivante GCxx GPUs (armada dependency).
 * Userspace interface to kernel DRM services (armada dependency).
 * Accelerated X.org video driver for the Novena's i.MX6.
 * X.org configuration files for the armada video driver on Novena.
 * Easily view Portage jobs with distccmon-gui.
 * Merge this to pull in all baseline Novena packages (USE-flag controlled).

MyriadRF
This is a Software Defined Radio (SDR) module which is plugable to the high speed interface of the Novena board. The following guide describes the installation of the drivers and simple usage demonstrations.

Further installation information:

[TODO: detailed description]
 * Myriadrf driver for Novena: https://github.com/myriadrf/Novena-RF/tree/master/driver
 * Myriadrf info: https://myriadrf.org/blog/installing-the-novena-rf-driver-and-gnu-radio/
 * Soapy: https://github.com/pothosware/SoapySDR/wiki/
 * Importand: Install UHD and SoapySDR, SoapySDR allone is not enough!

Further Documentation

 * HOWTOS (for Debian) https://novena-guide.readthedocs.org/en/pvt2/