Solved How Do I Load Drivers From Removable Media?

Solved issue

Jack_Sparrow

Member
Joined
Feb 18, 2025
Messages
30
Reaction score
9
Credits
287
I'm trying to install Debian onto an older system in order to bring new life back into the system. Anyways, during install, I got a message saying I needed b43-open/ucode30_mimo.fw and b43/ucode30_mimo.fw drivers. After a quick Google search, I found another forum which claimed those were installed by the firmware-b43-installer. They suggested that the firmware-b43-installer be run on a Debian virtual machine, and that I can just copy the entire b43 folder onto a flash drive. So that's what I did: I ran the installer in a virtual machine, and stuck the entire b43 folder onto a flash drive. Now I'm stuck at the part where Debian asks if I can load those files from removable media. I've tried copying the .fw files to the flash drive root, leaving them in the b43 folder, recreating the entire lib filepath to the b43 folder, etc. and it never detects the files. How do I proceed from this point?
 


This is my method to install o Debian based distros
You will need an alternative method of connecting to the net [teatherd mobile or Ethernet]
open terminal and run the following

sudo apt install firmware-b43-installer && apt install linux-firmware

then

sudo reboot
 
This is my method to install o Debian based distros
You will need an alternative method of connecting to the net [teatherd mobile or Ethernet]
open terminal and run the following

sudo apt install firmware-b43-installer && apt install linux-firmware

then

sudo reboot
Unfortunately, I don't have either of those options at the moment (on account of not actually owning an Ethernet cable), however, I did come across another forum post that had a genius idea of installing the driver on a virtual machine, and transferring the b43 folder to a USB drive. Now, all I need to do is transfer the driver files during setup. Unfortunately, that is where I'm stuck. I don't know how to use the BusyBox Shell to mount a USB flash drive or transfer the files (apparently, the BusyBox Shell uses completely different commands than a standard terminal). Any help with that would be greatly appreciated.
 
From coPilot

Yes, you can achieve similar functionality on Debian-based systems using apt and apt-get. Here's how you can download a package along with its dependencies for offline installation:

  1. Install apt-offline:
sudo apt-get install apt-offline
  1. Generate a signature file on the offline machine:
sudo apt-offline set /path/to/signature.sig
  1. Transfer the signature file to an online machine and download the required packages:
sudo apt-offline get /path/to/signature.sig --bundle /path/to/bundle.zip
  1. Transfer the bundle back to the offline machine and install the packages:
sudo apt-offline install /path/to/bundle.zip<br>
Alternatively, you can use apt-get with the --print-uris option to list the URLs of the package and its dependencies, then download them manually or with a script:

  1. Generate the list of URLs:
sudo apt-get install --print-uris packagename | grep ^\' | cut -d\' -f2 > urls.txt
  1. Download the packages:
wget -i urls.txt -P /path/to/download/directory
  1. Transfer the downloaded packages to the offline machine and install them:
sudo dpkg -i /path/to/download/directory/*.deb
sudo apt-get install -i

These methods should help you manage package installations on Debian systems without an internet connection.
 
From coPilot

Yes, you can achieve similar functionality on Debian-based systems using apt and apt-get. Here's how you can download a package along with its dependencies for offline installation:

  1. Install apt-offline:
sudo apt-get install apt-offline
  1. Generate a signature file on the offline machine:
sudo apt-offline set /path/to/signature.sig
  1. Transfer the signature file to an online machine and download the required packages:
sudo apt-offline get /path/to/signature.sig --bundle /path/to/bundle.zip
  1. Transfer the bundle back to the offline machine and install the packages:
sudo apt-offline install /path/to/bundle.zip<br>
Alternatively, you can use apt-get with the --print-uris option to list the URLs of the package and its dependencies, then download them manually or with a script:

  1. Generate the list of URLs:
sudo apt-get install --print-uris packagename | grep ^\' | cut -d\' -f2 > urls.txt
  1. Download the packages:
wget -i urls.txt -P /path/to/download/directory
  1. Transfer the downloaded packages to the offline machine and install them:
sudo dpkg -i /path/to/download/directory/*.deb
sudo apt-get install -i

These methods should help you manage package installations on Debian systems without an internet connection.
Did you not read my previous post? The system installer only ships with BusyBox, not a full fledged terminal. Therefore, it neither supports sudo nor apt-get (let alone apt-offline).

Besides, that is overcomplicating things. I already have the driver files in a preinstalled format. I just need to copy them off the USB drive. Do you at least know how to do that?
 
Replace the X with the appropriate drive letter. (i.e. sda, sdb )

mount /dev/sdX /mnt
cd /mnt
cp file1 file2 file3 /home/myuser
cd /
umount /mnt
 
Last edited:
We use Busybox all the time in Puppy Linux. The thing with Busybox is that it tends to run as root.....and it uses a 'reduced' subset of the standard Bash command vocabulary.

So; since it doesn't use sudo, don't try and enter it.

Anywhere that specifies "sudo", leave "sudo" out. Just enter everything else AFTER the sudo command. It'll work, trust me.

Just because most mainline distros have been invested in "protecting" their users for decades, doesn't mean that "sudo" is the only game in town. Things will still work fine without it.

Old, but still SO true:-



Mike. ;)
 
Unfortunately, I don't have either of those options at the moment (on account of not actually owning an Ethernet cable), however, I did come across another forum post that had a genius idea of installing the driver on a virtual machine, and transferring the b43 folder to a USB drive. Now, all I need to do is transfer the driver files during setup. Unfortunately, that is where I'm stuck. I don't know how to use the BusyBox Shell to mount a USB flash drive or transfer the files (apparently, the BusyBox Shell uses completely different commands than a standard terminal). Any help with that would be greatly appreciated.
Just to clarify at few things:
@Brickwizard wrote:
Code:
sudo apt install firmware-b43-installer && apt install linux-firmware

Unfortunately that command won't work for a couple of reasons: the second apt command needs to run as sudo, and the package name is firmware-linux. The following command should suffice if it's to be used, which may not be the case for the OP in the particular situation described:
Code:
sudo apt install firmware-b43-installer && sudo apt install firmware-linux
There is also a second b43 package named: firmware-b43legacy-installer, which may be relevant depending on hardware, but I can't say.

@Jack_Sparrow wrote:
apparently, the BusyBox Shell uses completely different commands than a standard terminal
Alas, fortunately for users, this apparent understanding is not so. Busybox actually replicates a clutch of terminal commands that are the same as the essential utilities for making a linux system work, but they are abbreviated in the sense that they include the core functionality of the full standard commands, but not all the nuanced capabilities. For example, the ls command in busybox and the standard coreutils version of ls, both list files, with busybox having around 28 options whereas the standard coreutils version has over 60. For the purposes of minimalist or rescue systems, and small embedded systems, busybox is often the preferred option.

To find out which terminal commands busybox has one can run:
Code:
busybox --help

To see what options are available for any of busybox's commands one can run, for example in the case of ls:
Code:
busybox ls --help

@Jack_Sparrow wrote:
I don't know how to use the BusyBox Shell to mount a USB flash drive or transfer the files

Busybox includes the mount command, and the cp command for copying files so is fully equipped to accomplish this task of mounting and transferring files. If you let the forum know where you are at, readers will be able to supply the appropriate commands.
 
Last edited:
To see what options are available for any of busybox's commands one can run, for example in the case of ls:
busybox ls --help

I knew there was a help function, but I didn't recall that one. That will hopefully get OP sorted, though it can feel a bit technical and overwhelming if folks aren't used to reading thing like man pages or other succinct documentation.
 
Replace the X with the appropriate drive letter. (i.e. sda, sdb )

mount /dev/sdX /mnt
cd /mnt
cp file1 file2 file3 /home/myuser
cd /
umount /mnt
This is closer to what I'm looking for! The only problem is I don't know how to find the appropriate drive letter. As expected, following guides like this gives me 'lsblk' is not recognized as an available command errors. So how would I find the drive letter in BusyBox?

Also, could I copy entire folders instead of individual files? I just want to copy over the entire b43 folder to the proper location (/lib/firmware) instead of each driver file.

Thanks for the help!
 
the second apt command needs to run as sudo, a
Strange it works for me as a string, i do need to sudo if entered as 2 commands
 
This is closer to what I'm looking for! The only problem is I don't know how to find the appropriate drive letter. As expected, following guides like this gives me 'lsblk' is not recognized as an available command errors. So how would I find the drive letter in BusyBox?

Also, could I copy entire folders instead of individual files? I just want to copy over the entire b43 folder to the proper location (/lib/firmware) instead of each driver file.

Thanks for the help!
Interestingly the standard busybox on this debian machine also does not have the lsblk command. Nevertheless, the following command should show all the drives including a plugged it usb:
Code:
fdisk -l

Another method is to see the output to the dmesg command just after the usb is plugged in, or one can watch the output of the dmesg command as one plugs the usb into the usb socket with the following command running in the terminal:
Code:
dmesg -w

From the dmesg output, one needs to add "/dev" to the device name, e.g. make sda1 into
/dev/sda1. To exit a running dmesg hit ctrl+c.

The linux firmware directory tree includes the directory: /lib/firmware/brcm. That is the directory into which all the broadcom firmware relevant files go from the linux-firmware download.

Note that after one installs new firmware, to have it used for booting one needs to update the initramfs, as root, with the command:
Code:
update-initramfs -u
when booted from the default kernel. Then reboot for it to take effect.
 
Last edited:
Strange it works for me as a string, i do need to sudo if entered as 2 commands
No worries. It doesn't work on any debian machines here, but that's not to say yours isn't configured differently to have it work. Sudo can be configured to last for a time after it's first entered, so may not be required to be authorised again during that time period. That could explain the difference.

EDIT: Just checked the manpage and the default timespan is 15 minutes, so that may well explain the difference. Here the config is different.
 
Last edited:
I've used this and several other strings, so a retention time on the sudo makes sense, I have used them on Mint [Ubuntu] LMDE MX, Peppermint among others in the past, the only one of my distros it won't work on is Parrot, I Haven't time to check but will assume retention is short as it is a security distro.
 
during install, I got a message saying I needed b43-open/ucode30_mimo.fw and b43/ucode30_mimo.fw drivers.
I just thought of something, not sure if it will help. It's been a long time since I've used Debian as a desktop but from the what I remember you could usually just ignore these messages and finish the installation and if then still needed them you could just install them afterwards. That might be easier, have you tried that?
 
I just thought of something, not sure if it will help. It's been a long time since I've used Debian as a desktop but from the what I remember you could usually just ignore these messages and finish the installation and if then still needed them you could just install them afterwards. That might be easier, have you tried that?

Unfortunately, no because these are network drivers.
 
No fdisk or lsblk makes it a little harder. You can try...

Code:
cat /proc/partitions

or

Code:
busybox df -h

or

Code:
dmesg | grep -i 'sd'
 
No fdisk or lsblk makes it a little harder. You can try...

Code:
cat /proc/partitions

or

Code:
busybox df -h

or

Code:
dmesg | grep -i 'sd'
The first two don't provide any real information unfortunately. The last one looks promising, but I don't know how to scroll the window to see all of the information.
 


Follow Linux.org

Staff online

Members online


Top