A388 Kernel
Please Note
This article contains outdated information and A388 support is linux kernel mainlined.
Description
Official release of the Clearfog board is with Linux kernel 3.10.70 which is supplied by Marvell.
Most of the support for the chip and the platform is already upstreamed mainline and future releases will be based on LTS kernels that are almost identical to the mainline kernel.
The main differences between Marvell kernel and mainline are in the network drivers, noticeably –
Interrupts spreading to SMP
RSS support
Hardware buffer management
As of writing this page, patches to support first item are already queued to LK 4.4, and patches are ready to be submitted for the second and third features.
Build Instructions Mainline (>= 4.9.y)
To build the kernel perform the following on a Linux PC –
git clone –branch linux-4.9.y https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
export ARCH=arm CROSS_COMPILE=<External ARM toolchain prefix>
make mvebu_v7_defconfig
# optionally modify the default configuration
make zImage dtbs modules
The standard configuration is very minimal, you will want to add additional features such as file systems, PCI device drivers and Control-Group support for systemd!
Build Instructions 3.10.y (Legacy)
To build the kernel perform the following on a Linux PC –
export CROSS_COMPILE=<External ARM toolchain prefix>
export ARCH=arm
make mvebu_lsp_defconfig
# optionally modify the default configuration
make zImage dtbs modules
The standard configuration is very minimal, you will want to add additional features such as file systems, PCI device drivers and Control-Group support for systemd!
If extended kernel features is requested to be included by the build then you can replace
make mvebu_lsp_defconfig
by
./scripts/kconfig/merge_config.sh -m arch/arm/configs/mvebu_lsp_defconfig arch/arm/configs/mvebu_extra_defconfig
make olddefconfig
The merge_config.sh is a Linux kernel tool that combines different defconfig fragments into a single .config. In this case it combines mvebu_lsp_defconfig and mvebu_extra_defconfig
systemd requirements (Debian, Fedora, openSUSE, …)
Many recent Linux distributions are using systemd, which requires these additional configuration options:
CONFIG_CGROUPS=y
CONFIG_FHANDLE=y
CONFIG_EXPERT=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_NET=y
CONFIG_DEVTMPFS=y
CONFIG_INOTIFY_USER=y
CONFIG_PROC_FS=y
CONFIG_SYSFS=y
SolidRun Ltd.