CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors

CRUX-ARM Documentation

  1. Introduction
  2. Why use CRUX-ARM
  3. Getting started
  4. Obtaining and installing additional software
  5. Supported devices
  6. Documentation
  7. Development information and documentation

Introduction

If you have in mind to use CRUX-ARM we assume that you are familiarized with CRUX. This is not a requisite but could answer many of the questions you have and maybe are not relevant to ARM devices in particular.

You can check About page for a detailed description about what's CRUX-ARM.

Why use CRUX-ARM?

CRUX's simplicity and lightweightness is especially valuable when you only have little disk space like you often do on ARM-powered devices. CRUX-ARM provides you a basic framework which you could extend and tweak without wasting too much time learning distribution-specific tools and configuration files, as CRUX one are very basic and simple.

Getting started

ARM devices are very different in their nature, so there cannot be one general guide for all of them, unlike x86 arch, so this section explains only basic steps you would need to perform.

First, make sure you can run a linux kernel on your device. Way to run Linux is very device-specific. Many devices are shipped with pre-installed Linux based operating systems, like Android or ChromeOS, others will require installing some bootloader and finding a suitable kernel sources or binaries.

Assuming you already can run Linux and can get to root shell, second step would be unpacking corresponding CRUX-ARM rootfs, which is shipped in tar archive. There are two options of running CRUX-ARM. First you could use other distribution's shell to chroot into CRUX-ARM and second is installing CRUX-ARM on place of other OS or into separate partition.

Obtaining and installing additional software.

CRUX-ARM uses same ports system as CRUX, but it also uses specific ports collections called overlays, like core-arm, core-arm64, opt-arm, opt-arm64, xorg-arm and xorg-arm64. Overlays are just regular port collections containing ports which require specific build options or have different footprints. They are listed first in prt-get.conf in order to have higher priority over same packages located in general port collections.

You can check our supported devices to get the right rootfs for any of them. If your device isn't officially supported, you can get the generic rootfs and run it itself, or start with an optimized release for your device, rebuilding the entire core collection ports for it.

If you need additional ports you can use port collections from general CRUX. You can also try ports from other CRUX versions, it will probably work, but they aren't officially supported.

You can also obtain some pre-built core ARM packages here Packages

Supported devices

If you have an ARM device not listed here, please contact to CRUX-ARM System Team or check HowToContribute.

Theoretically if there is kernel support for the ARM device, then it should run CRUX-ARM without problems. In addition, knowledge of the device's bootloader (usually U-Boot) is required.

Donations to CRUX-ARM System Team are welcome, so that the team can test as well as support the project itself.

ARM 64b (aarch64)

 CPUDeviceInstruction setKernel VersionOS VersionPorts Overlay
Allwinner A64Pine64armv83.10.105CRUX-ARM 3.8pine64-arm64
BCM2837Raspberrypi 3barmv86.6.74-v8+CRUX-ARM 3.8raspberrypi3-arm64
BCM2711Raspberrypi 4armv86.1.61-v8CRUX-ARM 3.8raspberrypi4-arm64
BCM2712Raspberrypi 5armv86.6.74-v8-16kCRUX-ARM 3.8raspberrypi5-arm64

ARM 32b (armhf)

 CPUDeviceInstruction setKernel VersionOS VersionPorts Overlay
Allwinner A10Cubieboardarmv73.4CRUX-ARM 3.8cubieboard-arm
Allwinner A20Cubieboard2armv73.4.104CRUX-ARM 3.8cubieboard2-arm
Samsung Exynos5422Odroid-xu4armv76.1.90+CRUX-ARM 3.8odroidxu4-arm

Contributed Supported Devices

 DeviceCPUInstruction setKernel VersionOS VersionPorts Overlay
Marvell Armada 375OVHSysARMarmv74.9.124CRUX-ARM 3.4 
Freescale i.MX6qGk802armv73.0.35CRUX-ARM 3.1 
Allwinner A20BananaPiarmv73.0.35CRUX-ARM 3.1 
Allwinner A10Hackberryarmv73.4.43CRUX-ARM 3.0 

Old ARM 32b (discontinuous)

 CPUDeviceInstruction setKernel VersionOS VersionPorts Overlay
Freescale i.MX515Genesi EfikaMX-SmartToparmv72.6.31CRUX-ARM 3.2efikamx-arm
BCM2835Raspberrypiarmv63.6.1CRUX-ARM 3.2raspberrypi-arm
BCM2836Raspberrypi 2armv74.5.4CRUX-ARM 3.2raspberrypi2-arm
Exynos 5420Samsung Chromebook XE303C12armv73.8CRUX-ARM 3.2samsungchromebook-arm
Allwinner H3OrangePi PCarmv73.4.39-01-loboCRUX-ARM 3.3cubieboard2-arm
WonderMedia WM8505WM8505arm92.6.29CRUX-ARM 2.6 noeabi 
Versatile Express 64bVersatile Express 64barmv8a4.1.1CRUX-ARM 3.3 
Versatile ExpressVersatile Expressarmv74.9.6CRUX-ARM 3.2 
VersatileVersatilearm93.5.4CRUX-ARM 2.8 noeabi 
SA1110HP Jornada 720armv42.6.32CRUX-ARM 2.6 noeabi 
OMAP 850HTC Prophetarm92.6.25CRUX-ARM 2.6 noeabi 
OMAP 850HTC Elfarm92.6.25CRUX-ARM 2.6 noeabi 
Intel PXA255HP Ipaq 1910armv5te2.6.16CRUX-ARM 2.6 noeabi 

Documentation

Development information and documentation (Outdated and no longer maintained)

TODO (To Do tasks)