Contributing to CRUX-ARM
Introduction
Since CRUX-ARM is formed by a small team we are always open to new contributions, suggestions and/or ideas. But there are some steps you need to go through before we can accept your contributions:
- be familiar with CRUX and/or Linux and have some technical skills
- have a compatible attitude with the rest of the team
CRUX-ARM welcomes contributions from the community. Whether you're interested in providing support, managing bug reports, or contributing directly to development, there are many ways to get involved.
Ways to Contribute
- Community Support: Help other users via IRC or mailing lists.
- Bug Management: Track issues at any of the official repositories (release or ports)
- Development: Contribute directly to CRUX-ARM releases.
- Donations: If you'd like to support us in any way, visit our donations page.
Joining the Community
Get involved in our #crux-arm IRC channel. Join us with web.libera.chat client or check our Mailing list.
Introduce yourself and let us know your interests.
Adding Support for a New Device
- Check existing support: Before starting, review our supported devices to ensure your device isn't already supported.
- Contact ss: Reach out to the CRUX-ARM team with detailed information about the device and your plans for support.
- Device Approval: We'll evaluate the device and, if appropriate, add it to our "Work In Progress" list.
- Development Requirements:
- Kernel image and device tree file (.dtb) specific to the device (if applicable).
- U-Boot bootloader (if applicable).
- Detailed instructions for setting up the boot environment.
- CRUX-ARM configuration files (.mk files) tailored to the device.
- Testing CRUX-ARM:
- Download a generic CRUX-ARM release from our download page. This is the release without a device-specific suffix.
- Prepare your boot media as required for the device.
- Boot the generic release.
- Confirm the generic release works as expected.
- Read crux-rootfs README
- Install needed dependencies
- Get crux-rootfs repository
- Create a devices/yourdevice.mk file based on the templates armhf.mk or arm64.mk files:
- Adapt the needed variables to your device:
- CRUX_ARM_ARCH: the default value provided in the selected template can be kept
- CFLAGS: your device specific CFLAGS
- COLLECTIONS: an overlay is needed to setup a mininal set of ports (ports, prt-get and pkgutils) for your device
- RELEASE_TAR_FILE: the default value provided in the selected template can be kept
- Start the bootstrap process:
- RELEASE_VERSION=release_version DEVICE_OPTIMIZATION=yourdevice make bootstrap
- The optimized rootfs for your device will be created under release/ directory