Hardware requires drivers and some hardware also requires firmware. A decent summary may be “firmware allows the hardware to “do” stuff and drivers allow software to interact with the hardware”. As dCore aims to keep kernel size small, specific kernel modules may also require installation to get hardware running.

As hardware varies the user is required to be familiar with it's requirements. This may involve online research, comparing hardware installation on another working distribution or asking on the forum. The following commands are helpful to identify system hardware:

Note that modules which are already built into the kernel cannot be handled by the usual mechanisms, i.e. via '/etc/modules' and '/etc/modprode.d/'. Whilst it is well possible to modify such files by including them in the dCore backup, they will get loaded too late in the boot-process. At the time the kernel loads its modules, their content will be read from the immutable initial ram disk. Instead, one can include a modprobe-statement in '/opt/bootlocal.sh'.

The same goes for black-listing kernel modules. Alternatively to the above way one may also pass the respective names, separated by commas, via the blacklist boot-code.

Some firmware is available in the dCore repository. Use the sce-searchprebuilt command to view a list of what is available then sce-import -b <SCE> to install. For Ubuntu-based dCore, firmware is contained in the packages linux-firmware and linux-firmware-nonfree and should also be installed to run at boot using sce-import -b <SCE>. Note some firmware is distributed in the linux-image package, that is together with the kernel. Loading that into dCore would not be productive. Instead the firmware files need to be extracted individually and saved for persistence, as per this ethernet firmware installation example.