The Raspberry Pi 4 is a powerful, affordable single-board computer featuring a Broadcom BCM2711 quad-core Cortex-A72 (ARMv8-A) 64-bit SoC. Available with 2GB, 4GB, or 8GB of RAM, it offers significant improvements over previous models, including USB 3.0, true Gigabit Ethernet, dual HDMI outputs, and faster CPU/GPU performance. Its versatility makes it ideal for desktop use, servers, IoT, and embedded development.
CRUX-ARM supports the Raspberry Pi 4, providing a minimal and flexible Linux environment optimized for ARM64 systems.
1. Prepare the microSD Card
Recommended: Use a microSD card of at least 8GB, Class 10 or better.
Warning : Be very careful to select the correct device path for your microSD card, as using the wrong device could overwrite important data.
Partitioning:
fdisk ${card}
Follow these steps inside fdisk:
2. Create Filesystems
Format the first partition as FAT32:
mkfs.vfat /dev/${card}1
Format the second partition as ext4:
mkfs.ext4 /dev/${card}23. Prepare the micro SD card
# Get the needed sources wget https://github.com/raspberrypi/firmware/archive/refs/tags/1.20250430.tar.gz # Unpack them somewhere in your host computer tar xvf 1.20250430.tar.gz # Prepare the micro SD card mount points mount ${card}2 /mnt # Get CRUX-ARM release and deploy it to the micro SD card wget https://git.crux.nu/system/crux-rootfs/releases/download/3.8/crux-3.8-arm64-raspberrypi4.rootfs.tar.xz wget https://git.crux.nu/system/crux-rootfs/releases/download/3.8/crux-3.8-arm64-raspberrypi4.rootfs.tar.xz.sha256 # Verify its integrity sha256 crux-3.8-arm64-raspberrypi4-rootfs.tar.xz # Extract its contents to the micro SD card tar pxvf crux-3.8-arm64-raspberrypi4.rootfs.tar.xz -C /mnt # Mount the boot partition mount ${card}1 /mnt/boot/ # Copy needed files to the destination directory cp -r firmware-1.20250430/boot/* /mnt/boot/ # Copy modules to the destination directory cp -r firmware-1.20250430/modules/6.12.25-v8+ /mnt/lib/modules/ # Unmount mount points umount /mnt/boot umount /mn
4. Boot Configuration
Edit /mnt/boot/config.txt (contains many configuration parameters for setting up the Raspberry Pi) to adjust video, overlays, or other hardware options.
Example:
cat /mnt/boot/config.txt kernel=kernel8.img gpu_mem=16 arm_64bit=1 enable_uart=1
Edit /mnt/boot/cmdline.txt (the kernel command line passed into the kernel at boot) to specify the correct root partition if necessary.
Example:
cat /mnt/boot/cmdline.txt dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait net.ifnames=0
After deploying the CRUX-ARM root filesystem, it is important to configure several key system files to ensure proper operation and customization of your installation. The following files should be reviewed and edited according to your needs:
Review and adjust these files to match your hardware, network environment, and personal preferences. Proper configuration at this stage will ensure a smooth and stable experience with CRUX-ARM on your Raspberry Pi 4.
This procedure ensures your microSD card is properly prepared for CRUX-ARM on Raspberrypi4, following best practices from both the official Raspberry Pi documentation and community guides
Note: For detailed explanations and examples of these configuration files, please refer to the official CRUX Handbook. The handbook provides comprehensive guidance on system configuration and package management, which can be especially helpful for new users.
https://github.com/raspberrypi
https://github.com/raspberrypi/firmware
https://www.raspberrypi.com/documentation/
https://www.raspberrypi.com/documentation/computers/config_txt.html
https://www.raspberrypi.com/documentation/computers/linux_kernel.html
https://www.raspberrypi.com/documentation/computers/configuration.html#configure-uarts