So today I read How To Switch Between TTYs Without Using Function Keys In Linux and learned about the `chvt` command which can change the virtual terminal on the host’s physical console. This is gonna come in handy!
Today this one popped up on r/programming. The suggestions were:
- `ncdu` as a replacement for `du`
- `htop` as a replacement for `top`
- `tldr` as a replacement for `man`
- `jq` as a replacement for `sed`/`grep` for JSON
- `fd` as a replacement for `find`
cd /usr/share/i18n/locales cp en_AU en_JJ vim en_JJ
title "English locale for John Elliot V" language "John's English"
And prefix d_fmt with:
sudo localedef -f UTF-8 -i en_JJ en_JJ.UTF-8
So I was trying to find why in my Debian 9 system my SATA drives are called SCSI devices, and I was reading Why my SATA drive is identified as a SCSI device in Device Manager where I read:
The Intel Rapid Storage driver version 12.6 (Released in March 2013) and newer versions classify all drives as SCSI devices for uniformity. This (and later) versions of the driver also allow for TRIM support (Allows for management of data blocks no longer in use) in SSD drives in RAID 0 arrays and other flexibility in operation of storage devices.
So I’d never heard of “TRIM” so I searched for that and found the Wikipedia Trim (computing) article, but Why SSD TRIM Support is So Important and How to Enable It caught my eye, because, “important” you say?
So that article about the importance of TRIM was for Windows, so I searched again and found How to properly activate TRIM for your SSD on Linux: fstrim, lvm and dm-crypt which suggested things were a bit complicated for LVM (and MD RAID?).
I ended up reading How to set up SSD raid and TRIM support? which sent me to Re: Best way (only?) to setup SSD’s for using TRIM which argued that perhaps TRIM configuration wasn’t necessary at all.
It was then I realised that I probably don’t care about TRIM on my MD RAID SSD drives, but I probably do on my M.2 SSD, which isn’t using MD RAID, but which gets massive tgz files written to it and deleted from it every day. So some more searching and I found Samsung SSD 960 EVO NVMe M.2 Review: Ultra Fast, Affordable Storage which said TRIM was supported:
Supporting features: TRIM (Required OS support), Garbage Collection, S.M.A.R.T
So then I found Enable TRIM On SSD (Solid-State Drives) In Ubuntu For Better Performance which showed me how to enable TRIM in /etc/fstab. So the relevant fstab line was:
# /data/fast was on /dev/nvme0n1p1 during configuration UUID=87bcc5fa-9261-404b-8bc7-a214f4651b49 /data/fast ext4 noatime,discard 0 2
Note the ‘discard’ option, that’s where the magic happens.
So I unmounted and remounted the partition,
root@tact:/home/jj5# umount /data/fast root@tact:/home/jj5# mount /data/fast
And dmesg indicated the discard option had been applied:
[34783.251592] EXT4-fs (nvme0n1p1): mounted filesystem with ordered data mode. Opts: discard
Now I guess we wait and see if my performance issues improve…
I had an issue today with ‘df’ and ‘umount’ hanging because of a problem with my Windows (SMB/Samba/CIFS) share. To force unmount I used:
umount -a -t cifs -l
The above command forces all CIFS mounts to unmount immediately.
So I needed to create a file-system to house a handful of archive/backup tarballs (around 40 of them). I created an ext4 file-system with 100 inodes, like this:
# mkfs.ext4 -b 4096 -L airgap -m 0 -N 100 -v /dev/sdc1
Note: 100 inodes isn’t very many! Only supports up to 100 files/folders. Also note that 0% space is reserved for root. If you’re copying the above command make sure you replace /dev/sdc1 with an appropriate partition device.
I got this error on my Debian Stretch system:
i915 0000:00:02.0: firmware: failed to load i915/kbl_dmc_ver1_01.bin (-2)
I found instructions to fix the error here.
Found an interesting article: Hitchhiker’s Guide to the GDB.
Every now and again I will accidentally click the middle mouse button when I go to grab my mouse, and KDE will dump my clipboard buffer into a BASH shell. Not good. Could run something damaging if I’m unlucky. So see here for the solution. Basically run this to get the mouse device ID:
xinput list | grep 'id='
Then to edit e.g. device 10 to disable middle mouse button:
xinput set-button-map 10 1 0 3
To persist the changes add the set-button-map command to e.g. ~/.xstartup.
Or you can add a pointer configuration to ~/.Xmodmap like this:
pointer = 1 0 3 4 5 6 7 8 9 10
And make sure xmodmap is applied at start-up with an autostart file like e.g. ~/.config/autostart/mouse-config.desktop:
[Desktop Entry] Type=Application Name=mouse-config Comment=Disables middle mouse button. Exec=xmodmap /home/jj5/.Xmodmap
I have a G15 keyboard, and I love it (but not as much as the old model!), but it occasionally causes a problem for me when I’m programming in NetBeans on Debian GNU/Linux.
The issue is that on a newer G15 the G6 key is right near the Ctrl key, and from time to time my pinky hits the G6 key which seems to be by default programmed to be the F6 key.
By default in NetBeans the F6 key is the ‘Run Main Project’ hot key, so when I accidentally press it, it fires up a Firefox window and tries to run my web app! I never configure my web apps in NetBeans, but even if I did, I don’t want to accidentally run anything due to an accidental key press.
So my solution was to disable F6 in NetBeans, and for that:
Tools -> Options -> Keymap -> Click ‘Search in Shortcuts’ -> Press F6 -> Click on the ‘…’ in the Shortcut cell for ‘Run Main Project’ (should be F6) -> Clear -> Apply -> And you’re done!
Everything is easy when you know how!