Always keen to have a Linux-bootable USB stick around for emergencies, I recently created such a thing with GRML, based on the latest stable version (November, 2014).
To create the USB stick, I used grml2usb
, which simplfies
the creation of the image when driven from an existing Linux
installation. I tested the GRML installation on an old Dell
Latitude E6500 I had lying around. grml2usb
allows you to
specify boot options when creating the bootable image, so I
initially used the following:
--bootoptions="persistence keyboard=uk"
The persistence options allows the storing of files on the USB
stick, which (surprise) persist across boots. A file system
partition with the label "persistence" identifies which file system
is used for this purpose. In this partition, I placed the file
persistence.conf
, with the following contents:
/ union
This causes all changes to be saved in the persistence partition.
The laptop booted OK, but there were a couple of annoyances that I had to fix.
This was fixed by adding the boot option
--bootoptions="nobeep"
.
This was nearly as annoying as the loud beep. The Dell uses a Broadcom B43 chip for wireless networking. The hardware was detected by GRML, but wasn't working:
[17.277906] b43-phy0: Broadcom 4312 WLAN found (core revision 15) [17.308236] b43-phy0: Found PHY: Analog 6, Type 5 (LP), Revision 1 [17.308253] b43-phy0 warning: 5 GHz band is unsupported on this PHY [17.320413] Broadcom 43xx driver loaded [ Features: PMNLS ] [17.321497] b43 ssb0:0: Direct firmware load failed with error -2 [17.321499] b43 ssb0:0: Falling back to user helper
Followed by:
[17.908736] b43 ssb0:0: Direct firmware load failed with error -2 [17.908738] b43 ssb0:0: Falling back to user helper [17.911148] b43 ssb0:0: Direct firmware load failed with error -2 [17.911151] b43 ssb0:0: Falling back to user helper [17.912882] b43 ssb0:0: Direct firmware load failed with error -2 [17.912885] b43 ssb0:0: Falling back to user helper [17.913258] b43-phy0 ERROR: Firmware file "b43/ucode15.fw" request failed (err=-12) [17.913260] b43-phy0 ERROR: Firmware file "b43-open/ucode15.fw" request failed (err=-12) [17.913262] b43-phy0 ERROR: You must go to http://wireless.kernel.org\ /en/users/Drivers/\ b43#devicefirmware and download the correct firmware for this driverversion. Please carefully read all instructions on this website.
After poking around on the website cited above, it did appear
that incorrect firmware was to blame. The wireless.kernel.org
website leads to the
Linux Wireless site. I used the manual method of installing the
firmware, as I needed to ensure the install process could be run
without network access. This meant getting the firmware blob and
the debian .deb file for b43-fwcutter.
wget http://www.lwfinger.com/b43-firmware/\ broadcom-wl-5.100.138.tar.bz2 apt-get download b43-fwcutter
After manually downloading the necessary files, I came up with (well, stole from the Linux wireless site) the following script to enable wireless networking after booting:
#!/bin/bash # # Run as root to install Broadcom wireless firmware and connect to hydrus # RUN_DIR=/home/grml export FIRMWARE_INSTALL_DIR=\ "/lib/firmware" cd "$RUN_DIR" dpkg -i downloads/b43-fwcutter_1:019-1_amd64.deb b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" \ broadcom-wl-5.100.138/linux/wl_apsta.o modprobe -r b43 modprobe b43 dmesg|tail iwconfig wlan0 essid hydrus key <redacted> dhclient wlan0