Buildroot 2026.02 configuration for the Carputer in-vehicle infotainment system. Produces a bootable disk image for x86_64 PCs (Dell N7010 / generic Intel hardware).
# Requirements: x86_64 Linux host, ~25GB free disk, 8GB+ RAM
sudo apt install build-essential git wget cpio unzip rsync bc \
python3 libncurses5-dev parted
# Clone Buildroot
git clone https://github.com/buildroot/buildroot.git -b 2026.02
cd buildroot
# Add Carputer board config + package
mkdir -p board/pc/carputer package/carputer
cp -r /path/to/buildroot-carputer/board/pc/carputer/* board/pc/carputer/
cp -r /path/to/buildroot-carputer/package/carputer/* package/carputer/
# Or use the setup script
bash /path/to/buildroot-carputer/scripts/setup.sh /path/to/buildroot
# Configure and build
make carcomputer_defconfig
make -j$(nproc)Output: output/images/disk.img — bootable disk image (~1.2GB)
| Feature | Details |
|---|---|
| Display | Weston/Wayland (kiosk mode), Intel GPU acceleration |
| Qt App | Carputer dashboard UI (Qt 5.15, QML) — media, HVAC, gauges, engine profiles |
| WiFi | Broadcom BCM4312 (b43), Intel (iwlwifi), Realtek (rtl8xxxu) drivers |
| Bluetooth | BlueZ 5 — A2DP audio streaming |
| Audio | ALSA + GStreamer — MP3/FLAC playback, HDA Intel unmute at boot |
| Serial | CP210x / CH340 / FTDI USB-UART for ESP32 modules |
| Screen Mirror | MJPEG-over-HTTP streaming (view on iPad/phone at port 5900) |
| SSH Access | Dropbear — root:12345678 (change on first boot) |
| Machine | Status | Notes |
|---|---|---|
| Dell Inspiron N7010 | Tested | Core i5 M 430, 8GB RAM, 1600x900 LVDS |
| Generic x86_64 PC | Compatible | Requires Intel GPU (i915/iris), HDA audio, SATA disk |
| Proxmox VE VM | Tested | Use BIOS mode, SATA disk |
sudo dd if=output/images/disk.img of=/dev/sda bs=4M status=progresssudo dd if=output/images/disk.img of=/dev/sdb bs=4M status=progressSee guide/network_boot_guide.md
After building the carputer app separately:
ssh root@192.168.1.100 "systemctl stop carputer"
cat carputer | ssh root@192.168.1.100 "cat > /usr/bin/carputer && chmod +x /usr/bin/carputer"
ssh root@192.168.1.100 "systemctl start carputer"disk.img
├── Partition table (MBR)
├── Stage 1 bootloader (GRUB)
└── ext4 rootfs /
├── /usr/bin/carputer Qt dashboard app
├── /usr/bin/run.sh Weston launch wrapper
├── /etc/carputer/ Engine profiles & config
├── /etc/systemd/system/ Custom services
└── /var/lib/alsa/asound.state Preserved audio config
- Login: root / 12345678
- IP: 192.168.1.100 (DHCP or static via /etc/systemd/network/)
- Service:
systemctl status carputer - Logs:
journalctl -u carputer -f
| Setting | Value |
|---|---|
| Default IP | 192.168.1.100 |
| Root password | 12345678 |
| App binary | /usr/bin/carputer |
| App version | /etc/carputer/version.txt |
| Display | Weston/Wayland (1600x900) |
| Engine profiles | /etc/carputer/engine_profiles/ (6 JSON files) |
Edit board/pc/carputer/linux.config.fragment and add the kernel config options.
Examples:
# Enable a driver built into the kernel
CONFIG_MY_DRIVER=y
# Enable as loadable module
CONFIG_MY_DRIVER=m
# Enable dependent subsystem
CONFIG_MY_SUBSYSTEM=y
Finding the right config option:
# From buildroot directory, check kernel help:
make linux-menuconfig
# Navigate: Device Drivers → [your hardware category]
# Find the option, note its name, exit without saving
# Then add it to linux.config.fragmentImportant: Use =y for drivers needed at boot (storage, rootfs, network for NFS root) and =m for everything else (modules are loaded automatically when hardware is detected).
make menuconfig
# Navigate → Target packages → Hardware handling → Firmware
# Enable linux-firmware and select your chipset:
# BR2_PACKAGE_LINUX_FIRMWARE_<YOUR_CHIP>=yCommon examples:
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9260=y # Intel AX200/AX201
BR2_PACKAGE_LINUX_FIRMWARE_MT7628=y # MediaTek WiFi
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y # Realtek 8822/8812
Add USB device IDs to the existing udev rule at board/pc/carputer/overlay/etc/udev/rules.d/99-esp32.rules:
# Your device
SUBSYSTEM=="tty", ATTRS{idVendor}=="<VID>", ATTRS{idProduct}=="<PID>", SYMLINK+="ttyMYDEVICE"
Find your device IDs with lsusb on a running Linux system.
For modern Intel (Iris Xe, Arc) or AMD GPUs, change the Mesa driver:
make menuconfig
# Navigate → Target packages → Libraries → Graphics → mesa3d
# Deselect: Gallium driver i915
# Select: Gallium driver iris (Tiger Lake+ Intel)
# Gallium driver radeonsi (AMD)
# Gallium driver nouveau (NVIDIA)For Raspberry Pi or other ARM boards, see the SBC support notes.
# 1. Kernel fragment (board/pc/carputer/linux.config.fragment)
echo "CONFIG_IWLWIFI=m" >> board/pc/carputer/linux.config.fragment
echo "CONFIG_IWLMVM=m" >> board/pc/carputer/linux.config.fragment
# 2. Firmware (via make menuconfig)
# Enable: BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9260=y
# 3. Userspace (via make menuconfig)
# Enable: BR2_PACKAGE_IW=y
# Enable: BR2_PACKAGE_WPA_SUPPLICANT=y
# 4. Rebuild
make -j$(nproc)Adding packages:
make menuconfig
# Navigate: Target packages → [category] → [package]
# Save and rebuild: make -j$(nproc)Changing root password:
# In defconfig:
BR2_TARGET_GENERIC_ROOT_PASSWD="newpassword"
# Or after boot:
passwdUpdating engine profiles:
Edit JSON files in board/pc/carputer/overlay/etc/carputer/engine_profiles/
and rebuild.
board/pc/carputer/
├── carputer_defconfig → Buildroot configuration
├── linux.config.fragment → Kernel driver additions
├── genimage-bios.cfg → Disk image layout
├── post-build.sh → Post-build hooks
├── post-image.sh → Post-image (GRUB install)
└── overlay/ → Root filesystem overlay
├── etc/ → Config files, services, udev rules
├── root/ → Mirror stream script
└── var/lib/alsa/ → Preserved ALSA state
package/carputer/ → Carputer app Buildroot package
├── Config.in → Package dependencies
└── carputer.mk → Build recipe (git source)
src/unmute-audio/ → ALSA unmute utility source
guide/ → User documentation
├── buildroot_workflow.md
├── network_boot_guide.md
├── deploy_via_ssh_pipe.md
├── qemu_testing.md
└── ...