Ubuntu

Quick Links

my DNS servers Free DNS @ afraid.org OzHosting
useful links WhoIs database Rebuilding Ubuntu from scratch
(current version 18.04)
Ubuntu Samba Server configuration NFS
programming ArgParse stdout encoding Processing Text Files in Python 3
Usage Downloading Photos slow logins wake on LAN Swap monitors left-and-right
Maintenance Installing 10Gb Card Configure Static IP What version Ubuntu?
Disasters A sad, sad tale of a lonely orphan
Ubuntu (well, 2 orphans, actually)

Useful Tips

These are tips I have gleaned that describe useful (?) customizations in Ubuntu (13.10 - now 22.04).

Naming a Disk

To (re)name a disk using Ubuntu, use:

          e2label /dev/sdx name
        
where /dev/sdx is the device name, and name is the desired disk name.

Also a reminder to setup /etc/fstab to auto mount the disk if required.

Focus Follows Mouse

I prefer to have the focus following the mouse, and to automatically raise the window in focus. Here's how:

          gsettings set org.gnome.desktop.wm.preferences focus-mode 'sloppy'
          gsettings set org.gnome.desktop.wm.preferences auto-raise true
          gsettings set org.gnome.desktop.wm.preferences auto-raise-delay 1000
        

What Version?

To find out what version of Ubuntu is running, type lsb_release -a into a terminal window at a shell prompt.

Running Scripts at Boot Time

Here's a very helpful guide to Writing your own Systemd Scripts (Thanks to Guido Socher for this tutorial.)

Release File errors

I quite frequently get messages like this:

E: The repository 'https://ppa.launchpadcontent.net/gnome3-team/gnome3/ubuntu jammy Release' does not have a Release file.
Warning:  apt-get update failed for some reason
I don't understand quite what this means, and various responses to this message on the web were not helpful. However, this worked:
  1. Open the "Software and Updates" application from the "Show Applications" icon at the bottom right of the launch pad.
  2. Open the "Other Software" tab. Unselect the launchpadcontent link pertinent to the error message above. (in this case, ppa.launchpadcontent.net/gnome3-team/gnome3.)
  3. Try the command that caused the original error, again. Good luck!

Plasma (KDE) Keyboard Shortcuts

Check out the web page .

Swap Monitors left and right

The tool arandr provides a graphical interface to move the monitors around, and is intuitively more obvious. Hoverever, if you want to use the CLI version:

First use xrandr to determine the names of the monitors. This is what I got:

          xrandr --listmonitors
          Monitors: 2
          0: +*XWAYLAND16 1920/600x1080/340+1920+0  XWAYLAND16
          1: +XWAYLAND17 1920/600x1080/340+0+0  XWAYLAND17
        
I wanted them the other way round, so XWAYLAND16 and XWAYLAND17 need to be swapped:
          xrandr --output XWAYLAND17 --left-of XWAYLAND16
        

Fixing networking in Ubuntu 18.04

Ubuntu 18.04 (and 17, I believe) have gratuitously changed the networking setup. All I see when I open the network system config is a VPN option, and a Network Proxy option. No dialogue for setting wired network parameters. I wanted to be able to change the dns settings, but there seemed to be no way of doing it. So I did some research, and found that my system used what is "mostly obsolete on Ubuntu 18.04 systems". However, it wasn't obsolete, and here is what I did to fix the problem. (taken from https://linuxconfig.org/how-to-configure-static-ip-address-on-ubuntu-18-04-bionic-beaver-linux )

Set the contents of /etc/network/interfaces to

auto lo
iface lo inet loopback

# The primary network interface

auto eno1
iface eno1 inet static
  address 10.0.0.3
  netmask 255.255.255.0
  gateway 10.0.0.101
  dns-nameservers 8.8.8.8 8.8.4.4
        
where eno1 is the name of the ethernet interface, and gateway is the IP address of my local gateway router. Save this file, and then reboot. (You are supposed to be able to systemctl restart the network manager, but that did not work for me.) After rebooting, the correct gateway (10.0.0.101) is used. I also changed the address of the interface eno1to be static, but that should not be germane to the problem being addressed.

Most of the webpage material on 18.04 networking talks about netplan. I have not yet understood how this works, but I'm saving this link as a starting point to understanding it. Also this link talks about reverting to ifupdown, so that may be worth reading too.

Update 20201019:151335 Grrr! It is enough to make one throw Ubuntu in the bin. I found this helpful link on fixing DNS on 18.04, and it worked, but 20.04 is different (although the documentation I found says not!): Fix DNS on 18.04 Now that I have installed 20.04, I found that this was a more accurate (and hence more helpful) page: Fix DNS on 20.04

ls -l explanation

I had trouble finding out what the columns in an ls -l listing mean. Here is an explanation from MKSSoftware:

Long Output Format

The output from ls -l summarizes all the most important information
about the file on one line. If the specified pathname is a directory,
ls displays information on every file in that directory (one file per
line). It precedes this list with a status line that indicates the
total number of file system blocks (512 byte units) occupied by the
files in that directory. Here is a sample of the output along with an
explanation.

    -rw-rw-rw- 1 root   dir 104 Dec 25 19:32 file

The first character identifies the file type:

    -    Regular file
    b    Block special file
    c    Character special file
    d    Directory
    l    Symbolic link
    n    Network file
    p    FIFO
    s    Socket

The next nine characters are in three groups of three; they describe
the permissions on the file. The first group of three describes owner
permissions; the second describes group permissions; the third
describes other (or world) permissions. Because Windows systems do not
support group and other permissions, these are copies of the owner's
permissions. Characters that may appear are:

    r    Permission to read file
    w    Permission to write to file
    x    Permission to execute file
    a    Archive bit is on (file has not been backed up)
    c    Compressed file
    s    System file
    h    Hidden file
    t    Temporary file

On Windows systems, most of the permissions shown are artificial, with
no real meaning. The w bit is set according to the ReadOnly attribute,
and the rx bits are always set on.

You can change some permissions with the chmod command.

After the permissions comes the number of links to the file.

Next comes the name of the owner of the file or directory. On file
systems that don't support 7/2008R2/8/2012/10/2016 security, the owner
name cannot be determined and the owner ID number is displayed
instead. Under 7/2008R2/8/2012/10/2016 the name of the owner of a file
is displayed if the file's SIDs can be obtained and if these SIDs have
an associated name in the SAM database. If the file has a SID
associated with it, but the name of the SID cannot be determined, then
the value of the SID is displayed. (This can happen when the current
user is not in the domain that was used when the file was created.) If
the file does not have a SID (for example, if it is on a non-NTFS file
system), or if the file security information cannot be accessed
because the file is locked by another process, then the user name
appears as <unavail>.

Note:

When a listed file is owned by the local computer, the owner is
displayed as computer_name\ where computer_name is the name of the
local computer.

Then comes the name of the group that owns the file or directory. On
Windows systems, the same rules are followed for the group name as for
the owner name.

Following this is the size of the file, expressed in bytes.

After this comes a date and time. For a file, this is the time that
the file was last changed; for a directory, it is the time that the
directory was created. The -c and -u options can change which time
value is used. If the date is more than six months old or if the date
is in the future, the year is shown instead of the time.

The last item on the line is the name of the file or directory.

Renaming an SD card

I couldn't get the above recipe to work for an SD card. It seems to be more subtle than that. I used gparted to solve the problem:

          1. $ sudo gparted
          2. find the partition where the card is mounted by using the
             pull-down disk list in the top right hand corner.
          3. unmount the disk if it is mounted (right click on the
             line with the partition in question and select "Unmount" option.
          4. right click again, the pull down will now show "Label
             File System" as an option, select this.
          5. Enter new label, click OK
          6. exit gparted, and apply pending operations.
        

NFS

There is a useful tutorial on how to setup NFS mounts at https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on-ubuntu-16-04

Rotate Console

When using a portrait monitor, or a monitor with rotating screen, you can rotate the display to suit according to the following parameter values:

For transient rotations, use

echo 1 | sudo tee /sys/class/graphics/fbcon/rotate

and for permanent rotation, (sudo) edit /etc/default/grub to ensure that it contains a line:

GRUB_CMDLINE_LINUX="fbcon=rotate:1"

In both cases, substitute the 1 with the required rotation parameter.

Make Print Directory

I got a bit fed up with make printing directory entry and exit messages when recursively making, so I added this to my master make directory:

          ifndef MAKEFLAGS
            MAKEFLAGS += --no-print-directory
          endif
        
The general advice is that if you want to debug makes that do use recursive makes, then you should turn this off (and resume printing the entry and exit messages).

Workspace Configuration and Shortcuts

To enable multiple workspaces:

  1. Open System Settings -> Appearance -> Behaviour
  2. Click on the Enable workspace checkbox

To change the nuumber of workspaces:

  1. Type gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ hsize 3 to change the number of columns to 3
  2. Type gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ vsize 3 to change the number of rows to 3

To change the keyboard shortcuts for navigating between workspaces:

  1. Open System Settings -> Keyboard -> Shortcuts
  2. Click on Navigation in the left side bar
  3. Edit the shortcuts acording to the instructions.

Adding user name to title bar

gsettings set com.canonical.indicator.session show-real-name-on-panel true/false

The last word (true/false) turns on the display of the user name in the root window title bar (if true), and false turns it off.

Creating multiple machine pulldowns for remote terminals

These are my settings for the gnome-terminal configuration file /usr/share/applications/gnome-terminal.desktop. Actually, the proper place for this file is /home/ajh/.local/share/applications/gnome-terminal.desktop, which is now where it is placed. The /usr location is for system-wide defaults.

[Desktop Entry]
Name=Terminal
Comment=Use the command line
Keywords=shell;prompt;command;commandline;cmd;
TryExec=gnome-terminal
Exec=gnome-terminal
Icon=utilities-terminal
Type=Application
X-GNOME-DocPath=gnome-terminal/index.html
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-terminal
X-GNOME-Bugzilla-Component=BugBuddyBugs
X-GNOME-Bugzilla-Version=3.6.1
Categories=GNOME;GTK;Utility;
StartupNotify=true
OnlyShowIn=GNOME;Unity;
Keywords=Run;
Actions=heywood;heywood-root;dimboola;echuca;spencer;
X-Ubuntu-Gettext-Domain=gnome-terminal

[Desktop Action heywood]
Name=Heywood
Exec=gnome-terminal --window-with-profile=Heywood

[Desktop Action heywood-root]
Name=Heywood-Root
Exec=gnome-terminal --window-with-profile=Heywood-Root -x ssh root@localhost

[Desktop Action dimboola]
Name=Dimboola
Exec=/usr/bin/gnome-terminal --window-with-profile=Dimboola -x ssh dimboola

[Desktop Action echuca]
Name=Echuca
Exec=/usr/bin/gnome-terminal --window-with-profile=Echuca -x ssh echuca

[Desktop Action spencer]
Name=Spencer
Exec=/usr/bin/gnome-terminal --window-with-profile=Spencer -x ssh spencer

Make sure when editing the Desktop Actions that you add the "Name" field to the list of "Actions" in the top entry.

The other thing to note is that when you first create this file, you need to make it executable, and then drag it from the Files display to the Launcher bar. If the file is not visible in Files, click View->Show Hidden Files to make it visible.

The desktop file syntax is described in the Desktop File Specs page.

Samba

I am running a samba server on my disk farm server. Here's a useful page on how to configure a Ubuntu Samba Server.

Unix Stuff

To set the system timezone to Melbourne

      $ sudo bash
      $ cd /etc
      $ ln -sf /usr/share/zoneinfo/Australia/Melbourne localtime
    

Moving to Ubuntu

I got the irrits with Apple and have sworn not to buy a new system or upgrade the systems I have, preferring instead to move (back) to Linux as necessity demands. But Ubuntu has its own irrits, too! This is a log of things that I have fixed.

Virtual desktops

Mac OSX calls them "Spaces", Ubuntu calls them "Workspaces". I prefer "Virtual Desktops". Oh well. You can't please everyone.

The hassle is that there is no clear way of driving the number of them, and how to switch between them.

Setting Up
Go into the System Settings > Appearance > Behaviour, and check the box "Enable workspaces". This sets up the default 2x2 workspaces.
Changing the Number of Workspaces
Make sure that "CompizConfig Settings Manager" is installed (use the "Ubuntu Software Centre" to search for and install this). Then follow General Options > Desktop Size, and set the Horizontal Virtual Size and Vertical Virtual Size to your preferences. Close the CCSM.
Showing the Virtual Desktops
You show see an icon in the launcher that looks like this one (it may have a background colour to match the launcher). If you click this icon, a representation of the workspaces available will be shown. Click it again to dismiss, or click inside any of the workspaces to switch to that workspace.
Keyboard Shortcut to Switch Workspace
CTRL-ALT-arrow will change to the next workspace in the direction of arrow.

Emacs and PSGML

One of the hassles of upgrading a system (and moving from Apple to Linux counts as an upgrade) is that new versions of just about everything surface, just when you are not in the mood for dealing with them. I suppose the Nathans of the world would argue that this is why one should upgrade continuously, so that the Principle of Least Surprise is observed. Whatever. Moving to Ubuntu forced my Emacs from version 23 to version 24, and my PSGML scripts all stopped working.

Fortunately, PSGML has also been upgraded to now run with version 24. See the page by the author, Florian v. Savigny, or download the code directly

Some Ubuntu Problems in Ubuntu 18.04

(As of August 2018)

Wake on LAN (20200607:140353)

I wanted to keep my laptop shut (because the cat kept sleeping on the keyboard as it was a nice warm place!), yet still be able to access it remotely. It was a dickens of a job getting it to "Wake on LAN access", but this page helped. One extra comment; when the page says to use ethtool -s INTERFACE wol ug, make sure to add that extra 'u' flag, so that the system will wake on unicast accesses, as well as magic packets.

Slow logins with ssh (20200607:123648)

I added a 10Gbs network card to my server, and from then on, remote ssh to the machine took around 30s to come up. After much digging around, I found the following Useful Page, which although quite helpful didn't directly fix the problem. A bit more digging around found that setting UsePAM no in /etc/ssh/sshd_config did fix the problem (but incidentally also shortened the MotD!)

wallch

wallch does not run correctly, and keeps crashing. One point is when you start the window (type just 'wallch' in a terminal window) and click 'start'. The first time it does nothing, the second time, it crashes with a floating point exception.

It does work if you type 'wallch --start' at a terminal prompt.

vlc

vlc comes up with very small text, too small to read. I have traced the steps offered in (URL cite) by clicking in the right real estate territory, but nothing changes.

There is also a problem with .wtv files having no sound. I fixed this on one computer (a generic Intel box) where the font size was readable, but could not on the other computer (an iMac).

CD rom

This may be a problem with very old CDs, but many of my collection not only do not mount, but they also put the CDrom into a frozen state, where the only recovery option is to reboot.

Workspaces

I dislike workspaces only partly appearing when the 'super' key is pressed, and you have to move the mouse into the sidebar to see the workspace icons. Why not blow the Icons out immediately?

lizard fs

files has a big problem with lizardfs, and refuses/takes a very long time to display some subdirectories of a lizard mount. The same subdirectories list correctly when displayed with ls.

backup

again, perhaps a lizardfs issue, but backup keeps failing with a /lizard mount save directory.

firefox

Firefox refuses to display some images in my web pages - the images can be opened successfully from the command line, and have the correct permissions. The problem seems to be one of just not wanting to load the relevant files.

Downloading Photos from Samsung S8

I switched to using Dolphin as my file manager window, but it does not recognize my Samsung S8 when it is plugged in. Use the old 'files' for this purpose: it does work.

No WiFi on HP Pavilion x360

I bought a new laptop (HP Pavilion x360), but while its wifi worked under Windows, it did not with Ubuntu. After some mixed success in downloading drivers for the ReakTek rtl8822be (success in downloading, failure in getting it to work), I saw this web page, which said to turn off secure boot, which I did. That fixed it!

To turn off secure boot, bring up the BIOS start screen and go to ...

Screen Lock

For some reason, screen lock does not stay disabled when I suspend Ubuntu. I have tried various settings of the system parameter in "Privacy -> Screen Lock", to no avail. So now I am trying

            gsettings set org.gnome.desktop.lockdown disable-lock-screen true
          
to see if that has a more lasting effect.

I also followed the advice of Kishn Bera and changed /etc/default/grub so that the line GRUB_CMDLINE_LINUX="" now says GRUB_CMDLINE_LINUX="nouveau.modeset=0"

Ubuntu Irrites

I'm now running Ubuntu 22.04, but I upgraded only after encountering a whole series of problems with 18.04. Here are the range of gripes I had with Ubuntu 18.04:

  1. Firstly, the documentation never seems to match what I see on my computer. It may well be that it is documentation for some other system, but such documentation never includes a version number, so how would I know? For example, nautilus documentation says at the outset: "You can control how the file manager displays captions under icons. Click the menu button in the top-right corner of the window and select Preferences, then select the Views tab." But there is no menu in the top right corner!
  2. Nautilus does not manage thumbnails very well. It often uses thumbnails froma previous display (such as visiting a different directory, or loading new files). When there is a "refresh" button, it does not refresh the thumbnails. Deleting ~/.cache/thumbnails doesn't help.
  3. Gnome does not manage windows effectively. For example, multiple tabs on Firefox are difficult to distinguish, and picking which tab is the current window always requires a second look.

Regular Software under Ubuntu

Here is a list of all the software I regularly use, and which needs to be installed in a new Ubuntu system (see also The Install Page):

  1. exiv2
  2. lizardfs-client
  3. firefox
  4. make
  5. python2 and 3
  6. tex (install texlive-full)
  7. vlc
  8. xsltproc
  9. zoom
The list is being extended as I recognize missing entries.

This page is copyright, and maintained by John Hurst. 1725 accesses all since
03 Feb 2022
My PhotoMy PhotoTrain Photo

Local servers: Localhost Newport Burnley Geelong Jeparit Reuilly Spencer (accessible only on local network.)
Public Web Servers: ajhurst.org ajh.co ajh.id.au (not all may be active.)
Dynamically generated at 20240418:1745 from an XML file modified on 20230711:0344, by index.py version 1.6.5.


20240418:1745: MESSAGES GENERATED BY: /home/ajh/www/computing/ubuntu/index.xml

20240418:1745: b'/home/ajh/www/computing/ubuntu/index.xml:819: namespace error : Namespace prefix xi on include is not defined'
20240418:1745: b'      '
20240418:1745: b'                                     ^'
20240418:1745: b'No template for xi:include'

Please forward these details to John Hurst