For those dual-booting Windows and Linux, it’s useful to disable Windows Fast startup so that you can access the Windows partition from Linux.
Disabling Fast Boot may add a few seconds to boot time.
When you shutdown your PC, Fast Boot actually reboots and then hibernates.
This locks the Windows partition so that Linux can’t access it.
Disable Fast Boot:
⊞+rpowercfg.cpl → “Choose what the power button does”.
We typically disable hibernate as well to save on SSD wear.
Disable fast boot
BitLocker and dual-booting: If BitLocker is enabled, Linux cannot access the Windows partition.
Fast Boot SSD wear: Fast Boot just like hibernate increases solid state drive (SSD) wear, since you are dumping an image ~ RAM size to disk on each Fast Boot shutdown.
Python users typically use a non-system Python distribution such as Miniconda.
Python distributions typically allow easy switching of Python version.
Where Linux system Python must be used, the default Python version can be switched persistently with update-alternatives.
Update-alternatives without sudo: a one-time setup.
Configure shell to use ~/.local/bin instead of system-wide /usr as follows:
mkdir ~/.local/bin
Add to ~/.profile:
exportPATH="$HOME/.local/bin:$PATH"
Enable switching Python default between Python versions with these one-time commands:
GNU Radio is trivially easy to install on Ubuntu, which includes the UHD driver.
apt install gnuradio
DO NOT use GNU Radio from a virtual machine in general with an SDR, as typically many packets will be lost and the data will not be useful.
The typical best choice is to use a
GNU Radio live USB image.
Frequent GNU Radio users often dual boot into Ubuntu for working with SDR.
The HP-Setup program sets up HP printers on Linux and is easy to install and use.
Install HP setup program:
apt install hplip
Get the IP address of your networked HP printer from its front panel or the network address e.g. myprinter.local
The CLI method is very quick and reliable.
BIOS update via FreeDOS works across many PCs, including Dell and Gigabyte.
The key is that the OEM provides BIOS as a DOS executable.
Setup DOS-bootable USB drive: download the DOS-flashable BIOS firmware from the OEM e.g. support.dell.com
Determine USB drive device (e.g. /dev/mmcblk0) by issuing this command before and after USB drive insertion:
lsblk
Format (permanently erase) this USB drive with
umount /dev/mmcblk0
mkdosfs -F 32 /dev/mmcblk0
Download
the FreeDOS “USB Full Image” and extract the FD*.img file.
Write this image to the USB stick:
dd if=FD*.img of=/dev/mmcblk0 bs=4M
the image write will take a minute or two, depending on the write speed of the USB stick.
To be sure it’s done, wait for this command to exit in a second Terminal window:
sync
Update BIOS: extract/copy ALL the BIOS self-extracted files to the root of the FreeDOS flash drive from Linux.
Insert the USB flash drive into the PC to be flashed
Upon powerup, choose to boot from the USB drive.
This might require pressing F12 key.
In the BIOS boot device menu, look under Legacy boot. If Legacy boot is not enabled, it may need to be enabled to see the FreeDOS USB drive.
Do NOT install FreeDOS, just boot to DOS when prompted by FreeDOS.
In FreeDOS prompt, type the name of the .exe or .bat file for the firmware update as per OEM instructions.
The flashing process may take several minutes.
If the PC says
operating system not found
on this DOS USB drive, try it in another PC.
If it still doesn’t work, try another model of USB flash drive.
Some flash drives just are not amenable to being booted from.
If a new computer motherboard seems to be dead out of the box, be sure the power supply is working and connected correctly.
It may have a CPU that’s too new for the motherboard BIOS.
Specific example:
This happened for Gigabyte GA-Q87M-D2H with version F6 BIOS.
Version F7 BIOS was necessary for Haswell Refresh CPUs.
I had to put an “old” CPU in the motherboard to flash the motherboard BIOS!
Bash scripts by default ignore aliases, unless the command
shopt -s expand_aliases
has been used before the aliased command.
This is typically a good thing, as if one has set in ~/.bash_aliases something like
aliasmv="mv -v"
any script using mv could produce extremely lengthy and verbose output when installing a program for example.
However, sometimes a user has multiple versions of a program installed in directories in $PATH and for whatever reason cannot use update-alternatives to make the desired one the default.
Use
update-alternatives
instead whenever possible as this method described here is not as robust.
Because we are not sourceing the Bash script, the alias scope is only within the Bash script itself.
That is, once the script is done, the alias disappears.
If a script needs CMake 3.x and update-alternatives is not available, do within the Bash script:
Again, we stress this is not general or robust, so only do this as a last resort.
sudo is not required for
update-alternatives.
Put the softlinks under $HOME/.local/bin and put that on your $PATH as a much better choice.