Objective
The default Debian Linux installation CD/DVD may not contain proprietary firmware (drivers) for your hardware. From this reason, it is up to the user to load this non-free firmware during the Debian Linux installation. This article helps you to prepare your removable media to load missing firmware during the Debian Linux installation.
However, you may consider an yet another, alternative approach in comparison to loading your firmware from the USB drive as described below, which is to use unofficial images containing non-free firmware directly. The unofficial non-free images which inlcude firmware packages for each Debian’s release version are available here: http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/

Requirements
USB drive or other removable media such is SD card etc.
Difficulty
EASY
Conventions
- # – requires given linux commands to be executed with root privileges either directly as a root user or by use of
sudo
command - $ – requires given linux commands to be executed as a regular non-privileged user
Instructions
Prepare and mount USB drive
Using another Linux system, we need to prepare our removable media in a way that the system recognises it at the early stage of the system installation. To do so we create a single partition USB drive and format it with a FAT32 filesystem. Use fdisk -l
command to locate the block device name of your USB drive:
# fdisk -l Disk /dev/sdg: 125 MiB, 131072000 bytes, 256000 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xdd134f86 Device Boot Start End Sectors Size Id Type /dev/sdg1 2048 255999 253952 124M b W95 FAT32
Use your favourite partitioning tool to create a new FAT32 partition on your USB drive. Alternatively, use the bellow command to to automatically create a single partition on your USB drive marked for the FAT32 filesystem.
Be warned that the below command destroys all data on your removable media. Furthermore, be sure to supply a correct block device name argument to avoid accidentally destroying other disk also attached to your system.
# echo -e "o\nn\np\n1\n\n\nt\nb\nw" | fdisk /dev/sdX
Once the new partition is ready, create a FAT32 filesystem.
# mkfs.vfat /dev/sdX1 mkfs.fat 3.0.27 (2014-11-12)
Lastly, mount your USB drive to eg. /mnt/tmp
mount point.
Download and copy non-free firmware to USB
At this stage, we can download and copy the missing firmware onto a USB drive. Use wget
to download and tar
command to extract the non-free firmware onto your USB drive. Replace VERSION
string with the Debian’s code name you are about to install.
The below command will download and extract non-free firmware on your USB drive. Here the guide also assumes, that your USB is mounted under /mnt/tmp
directory:
wget -qO- http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/VERSION/current/firmware.tar.gz | tar xz -C /mnt/tmp
For example to download a firmware for the Debian Stretch release execute:
wget -qO- http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/stretch/current/firmware.tar.gz | tar xz -C /mnt/tmp
Umount USB drive
Finally, we are ready to umount
USB drive:
# umount /mnt/tmp/
Now insert your USB disk containing all non-free firmware into your PC and you are ready to continue with your Debian Linux installation.