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 (nvidia.list.chroot)
nvidia-driver: The core proprietary driver.nvidia-smi: System management interface for monitoring.nvidia-cuda-toolkit: Required for compute tasks.libnvidia-encode1: For video encoding/decoding if needed by secondary apps.
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.