This chapter is for contributors and maintainers.
Package Lists
Package lists define which software is retrieved from APT repositories and installed into the NeuralDrive image.
Core List (neuraldrive.list.chroot)
This list contains the essential packages for the appliance:
- Base System:
systemd,udev,kmod,ca-certificates. - Networking:
caddy,avahi-daemon,nftables,curl,wget. - Python Stack:
python3,python3-venv,python3-pip. - Utilities:
vim,htop,pciutils,usbutils,p7zip-full.
GPU-Specific Lists
To support different hardware configurations, we use specialized package lists:
NVIDIA (gpu-nvidia.list.chroot)
Headless CUDA-only install, sourced from NVIDIA's CUDA repo (see Archive Sources) and pinned to driver 570.133.20-1:
nvidia-kernel-dkms: Kernel module source built via DKMS at install time.nvidia-driver-cuda: NVIDIA's headless CUDA package — bundlesnvidia-smi, OpenCL ICD, NVML, encode/decode libs, and is explicitly "does not require a display or graphical output". This replaces Debian's splitnvidia-driver-bin+nvidia-smipackages, which do not exist in NVIDIA's upstream repo.libcuda1,libnvidia-ml1,nvidia-modprobe,nvidia-persistenced,firmware-nvidia-gsp: explicit deps to ensure they're pulled from the NVIDIA repo at the pinned version.dkms,linux-headers-amd64: required to build the kernel module.
nvidia-cuda-toolkit is not installed — Ollama bundles its own CUDA runtime.
AMD (ROCm)
Packages for ROCm support are typically pulled from the official Radeon repositories defined in the archives/ directory. These include rocm-hip-sdk and amdgpu-dkms.
Intel (OneAPI)
Similar to AMD, Intel packages like intel-oneapi-runtime-libs and intel-opencl-icd are sourced from the Intel OneAPI repository.
How live-build Handles Lists
During the chroot stage, live-build reads every file with the .list.chroot extension and passes the package names to apt-get install.
Dependencies
live-build handles dependency resolution automatically. However, to keep the image size small, we explicitly use --no-install-recommends in the global build configuration.
Customizing Package Lists
If you need to add a package to your custom build:
- Create a new file in
config/package-lists/(e.g.,custom.list.chroot). - Add the package names, one per line.
- Run a new build.
Tip: For temporary testing, you can add packages to
neuraldrive.list.chroot, but it is better to keep custom additions in a separate file for better maintainability.