# October 12, 2020: installation of Xubuntu 20.04 on LDLC computer Saturne SG4-I3-8-S9H7

## Why I have reinstalled a new Linux version and why I have switched back to Ubuntu

For three years I have been satisfied with Debian Stretch. However I had several problems:
• from a long time I had to do CTRL-ALT-F1 CTRL-ALT-F7 to be able to log in (the X server starts but Xfce hangs at startup, with the mouse showing a "hourglass" symbol).
• sometime in suspend or in hibernation the computer shutdowns completely (yes, even in hibernation, i.e. it restarts as it had been shutdown).
• my network card does not work all the time, sometime I am compelled to connect to my "box" using WIFI instead. It may be due to some malfunctioning of the "plugs" allowing to pass information on the apartment electrical grid.
• at each startup I am compelled to add a new mode manually for my Philips 27" screen:
$xrandr --newmode "2560x1440_43.00" 217.50 2560 2720 2992 3424 1440 1443 1448 1478 -hsync +vsync$ xrandr --addmode HDMI-1 "2560x1440_43.00"

For the last point I expected some improvements in Xfce 4.14; however in the new Debian version (Buster) there is still Xfce 4.12 (and also in Buster-backports!), so I have decided to try Ubuntu Xubuntu 20.04; but not better. For the first point: it is solved. For point 2 and 3, as I suspected the problems are still here (hardware problem).

## Installation

I have to say that the Xubuntu 10.04 Live CD is better than the Debian Buster Live CD: the WIFI network is recognized. For the Ubuntu installation, as I have encrypted partitions it is important to apply the procedure reported in my notes of April 24, 2015 and June 21, 2016. However this time I have found that I must let the installation tool unmount the encrypted partitions rather than doing it myself before starting the installer (at least for my home partition, which is otherwise not seen by the installer when choosing "advanced partitioning").
At the end of the installation, I got an error linked to initramfs: impossible to boot the machine, as in every installation made these last years. As in other occurrences I have rescued the situation with a Lubuntu 16.04 "alternate 64 bits" distribution, choosing “rescue a broken system” at boot, and then I followed the procedure indicated in my note of April 22, 2014. For some reason at some stage the following command (used in the terminal started on the root partition by Lubuntu) returns an error:
$update-initramfs -k all -c -v  The solution is simply to remove initrd* images in /boot before running the command (probably lack of space left in the /boot partition). After that I obtained also a kernel panic at boot: VFS: unable to mount root fs on unknown-block(0 0)  As suggested by here, the solution was to use again Lubuntu as above and update grub: $ update-grub


## Screensaver preventing to resume from suspend

After suspend I have been unable to resume: impossible to enter my password because the input field is greyed out. On another occasion I got a black screen with the possibility to move the mouse but no dialog to enter my password. Doing CTRL+ALT+F1 and then killing xfce4-screensaver, I was able to enter my session. Maybe the problem comes from the fact that xscreensaver is installed on my machine? Anyway, I have uninstalled xfce4-screensaver without dependency problem. Yet I remark that the xscreensaver preferences dialogs in xfce settings takes several seconds to appear after a left click.

## No sound at startup

The problem is not due to my hardware or to some software bug, but to a permission problem, as it can be seen by:
$pulseaudio -v […] Home directory not accessible: Permission denied  The solution was to do $ sudo chown jscordi:jscordi jscordi

This would not occur in a more standard installation.

## Hibernation

At some stage after the installation I had reboot, shudown and hibernate buttons greyed out; choosing gdm may help:
sudo dpkg-reconfigure gdm3

according to here (but I am not sure it was needed in my case). Even after that "hibernate" is still greyed out. It is not a problem of inactive swap:
$swapon -s Filename Type Size Used Priority /dev/dm-1 partition 9764860 0 -2$ free -m
total used free shared buff/cache available
Mem: 7857 1805 4107 349 1944 5408
Swap: 9535 0 9535

The problem is found here: here: hibernation is disabled by default. To check that hibernation works correctly:
$systemctl hibernate  If it works (it does in my case), hibernation can be enabled by following the instructions at here. I have just created the following new file, and rebooted: $ sudo cat /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
ResultActive=yes

By the way, interestingly a new possibility has appeared in Xfce: "hybrid sleep":
According to here:
Hybrid Sleep is not an intermediary state between Suspension/backup to RAM ("Sleep") and that to disk ("Hibernation"), but a double operation; it simply does both.
It ensures all that is needed for the Hibernation procedure to work, but it doesn’t shut down the machine; instead, it suspends it to RAM (Sleep mode). As long as power is not completely drained, only the ’Sleep/Suspend to RAM’ capability is visible. In case of total power drain, the Hibernation capability is used: the machine is shut down but is able to restore all programs from swap upon startup.
Unfortunately after one week I have found some occurrences where hibernation did not work. In Debian Stretch I already checked that it may be to a too small SWAP partition: for instance by closing Firefox the problem was solved. Yet here the problem is perhaps a bit more complicated.
So I will use suspend instead; but also unplugging my USB hub on the USB port because otherwise perturbations on the apartment electrical grid make the computer wake up.

## Leafnode

No special complication compared to other installations. It works correctly.

## Apache

I have followed the same procedure as in my note of May 3, 2020, without problem. No need to logout after having added www-data to the jscordi group (but I have checked that adding www-data in the jscordi group is really needed to be allowed to display a page through Apache).

## Amarok

It is no more the default KDE music player (cf here). But it may installed from a ppa:
$sudo add-apt-repository ppa:joe-yasi/amarok-kde5$ sudo apt-get update

It is half broken (no collection made, no lyrics).

## Tracker Gnome indexer

At some stage after having installing the packages I use (or even before), the Gnome indexing tool "tracker" has been installed (here). It seems to index fast, but I do not need any file indexer, I have not managed to find a GUI for Xfce using this indexer, and "tracker search electron" did not return anything except an assertion in Glib (though "tracker status" reports that index is finished).
Moreover we read not really encouraging things here:
La raison principale qui a poussé les développeurs d’Ubuntu à amputer GNOME Shell de Tracker serait la consommation accrue d’énergie quand Tracker indexe des fichiers, ce qui impacterait sensiblement l’autonomie des batteries d’ordinateurs portables.
So I have decided to remove it. The first thing to do is to remove the databases:
$tracker --reset -r CAUTION: This process may irreversibly delete data. Although most content indexed by Tracker can be safely reindexed, it can’t be assured that this is the case for all data. Be aware that you may be incurring in a data loss situation, proceed at your own risk. Are you sure you want to proceed? [y|N]: y Found 0 PIDs… _g_io_module_get_default: Found default implementation dconf (DConfSettingsBackend) for ‘gsettings-backend’ Setting database locations Checking database directories exist Checking database version Could not find database version file:’/home/jscordi/.cache/tracker/db-version.txt’ Current databases are either old or no databases are set up yet A reindex will be forced Creating version file ’/home/jscordi/.cache/tracker/db-version.txt’ Checking whether database files exist Removing all database/storage files Removing database:’/home/jscordi/.cache/tracker/meta.db’ Removing db-locale file:’/home/jscordi/.cache/tracker/db-locale.txt’ Removing journal:’/home/jscordi/.local/share/tracker/data/tracker-store.journal’ Removing db-version file:’/home/jscordi/.cache/tracker/db-version.txt’  To disable it at boot, I have used the method described at here: $ systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service
Unit tracker-miner-rss.service does not exist, proceeding anyway.
Unit tracker-miner-apps.service does not exist, proceeding anyway.

The two warnings are expected:
You may get a warning that some of these services do not exist - ignore it. That’s because for example on Ubuntu 19.04 there’s no tracker-miner-rss.service by default, but there is one on Solus OS and Fedora, which in turn do not have tracker-miner-apps.service.
Unfortunately at reboot a tracker service is still working! For the time being I manage the situation by typing at each boot:
$tracker --reset -r  To undo the previous modification (I did not try): $ systemctl --user unmask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service

To manage the Philips monitor (read above) and stop tracker, I have created a shell script ubuntu_20_04_after_login.sh and added it in the bottom bar of applications. It is started using "xterm -e":
#!/bin/sh
tracker --reset -r
xrandr --newmode "2560x1440_43.00"  217.50  2560 2720 2992 3424  1440 1443 1448 1478 -hsync +vsync

Note that to be able to add it in the whisker menu I have been compelled to set menulibre to edit the whisker menu:
contrary to my note of December 3, 2017 where I used xfce4-appfinder rather than menulibre.

## Thunderbird and Free pop3 server

I have installed the last Thunderbird version, and start it directly by calling the executable (no installation):
/home/jscordi/local/non_src/thunderbird/thunderbird/thunderbird %u

Problem: no mail at startup, all my mails have disappeared. In the "Help→Troubleshooting Information" page, click the "about:profiles" link. Thunderbird detects a new empty profile it has just created, and my profile used with the previous Thunderbird version. I have only set the latter as default: "Set as default profile"; it is working perfectly. I have removed the default Ubuntu Thunderbird version.
Yet with this new version I had a problem to fetch my emails on pop.free.fr. The solution has been found here:
Bonjour, Problème résolu. Dans l’éditeur de configuration: security.tls.version.min value = 3 --> security.tls.version.min value = 1

## Qt 4 libraries for LyX 2.3.2

When trying to start LyX:
$cd /home/local/jscordia/src/external_projects/lyx-2.3.2$ ./src/lyx
./src/lyx: error while loading shared libraries: libQtSvg.so.4: cannot open shared object file: No such file or directory

The solution is given at here.
$sudo apt-get install libqtcore4$ sudo apt-get install libqt4-svg


## Security policy for ImageMagick

Error obtained when scanning a document with my script scanpaper.sh:
out.djvu created
mogrify-im6.q16: attempt to perform an operation not allowed by the security policy ‘PDF’ @ error/constitute.c/IsCoderAuthorized/408.
Syntax Error: Document stream is empty
Syntax Error: Could not merge damaged documents (’out1.pdf’)

The problem occurs when attempting to transform a DJVU file in a PDF file. In fact I had a similar problem in August 2020, when I wanted to output the pages of a PDF file as individual JPG images. I got an error:
$convert graph_test_cases.pdf graph_test_cases.jpg convert-im6.q16: not authorized ‘graph_test_cases.pdf’ @ error/constitute.c/ReadImage/412. convert-im6.q16: no images defined ‘graph_test_cases.jpg’ @ error/convert.c/ConvertImageCommand/3258. Command failure: error 1 !$

The reason is explained here: because a PDF is a special postscript file that may contain dangerous instructions. More details are given on the website of ImageMagick: here. I have by default:
$identify -list policy | \grep -C4 PDF rights: None pattern: EPS Policy: Coder rights: None pattern: PDF Policy: Coder rights: None pattern: XPS$

But after having edited the file /etc/ImageMagick-6/policy.xml, changing the line
  <policy domain="coder" rights="none" pattern="PDF" />

in
  <policy domain="coder" rights="read|write" pattern="PDF" />

I get:
$identify -list policy | \grep -C4 PDF rights: None pattern: EPS Policy: Coder rights: Read Write pattern: PDF Policy: Coder rights: None pattern: XPS  And after that everything works correctly, both scanpaper.sh and conversion from PDF to JPG: $ convert -density 150 -quality 70 graph_test_cases.pdf graph_test_cases.jpg
# $PATH is empty when entering this script, so we are compelled to indicate all # necessary directories in the hard-coded way. Note that /bin and /usr/bin are # necessary for some of the programs used in bckup_exthd.sh below. PATH=/usr/local/bin/:/bin:/usr/bin SHELL=/bin/bash # June 2017: DISPLAY=:0 is necessary for wmctrl to work below. Otherwise # "cannot open display" error message is obtained. DISPLAY=:0 # Random positioning of zenity windows for backup, and raise them on top of the window # stack. Note how it is important to escape the "%" in the following line (see # http://www.hcidata.info/crontab.htm). We do this every minute ("*/1") as the backup. */1 * * * * unset w && for i in$(wmctrl -d|sed -n "s/.*\* DG: $$[0-9]*$$x$$[0-9]*$$.*/\1 \2/p");do w[${#w[*]}]=$(( $RANDOM \% i ));done;wmctrl -R "pestering popup" -e 0,${w[0]},${w[1]},-1,-1;wmctrl -R "pestering popup" */1 * * * * bckup_exthd.sh */7 * * * * /usr/local/bin/leafnode_newmsg.sh  ## Automatic backup of user crontab I have modified my backup script bckup_exthd.sh to deal with single files (I have not managed to make rdiff-backup to backup a single file). As it is necessary to be part of the "crontab" group to enter the directory containing user crontabs: $ sudo ls -ld /var/spool/cron/crontabs/
drwx-wx--T 2 root crontab 4096 Oct 12 23:24 /var/spool/cron/crontabs/

I have been compelled to put myself in the crontab group:
$\grep jscordi /etc/group adm:x:4:syslog,jscordi cdrom:x:24:jscordi sudo:x:27:jscordi dip:x:30:jscordi plugdev:x:46:jscordi crontab:x:105:jscordi lpadmin:x:121:jscordi lxd:x:131:jscordi jscordi:x:1000: sambashare:x:132:jscordi$ groups

After that there is no problem to access the user crontab
$xrandr --addmode HDMI-1 "2560x1440_43.00"  To have this resolution accessible in the Xfce display manager. ## Note about local package repository definition My installation script sycomore.py adds a source file for this directory: $ cat /etc/apt/sources.list.d/local.list
deb [ allow-insecure=yes ] file:///usr/local/packages/installed /

Problem, when I try to update:
$sudo wajig update Get:1 file:/usr/local/packages/installed InRelease Ign:1 file:/usr/local/packages/installed InRelease […] Get:9 file:/usr/local/packages/installed Contents (deb) Ign:9 file:/usr/local/packages/installed Contents (deb) Get:3 file:/usr/local/packages/installed Packages [10.0 kB] […] Reading package lists... Done N: Download is performed unsandboxed as root as file ’/usr/local/packages/installed/InRelease’ couldn’t be accessed by user ’_apt’. - pkgAcquire::Run (13: Permission denied) W: The repository ’file:/usr/local/packages/installed Release’ does not have a Release file. N: Data from such a repository can’t be authenticated and is therefore potentially dangerous to use. N: See apt-secure(8) manpage for repository creation and user configuration details. This is the same as the previous count with 0 new packages. There are 0 new upgrades  It is better to use $ cat /etc/apt/sources.list.d/local.list
deb [ trusted=yes ] file:///usr/local/packages/installed /

that results in a slighter warning:
Fetched 107 kB in 1s (73.8 kB/s)
N: Download is performed unsandboxed as root as file ’/usr/local/packages/installed/InRelease’ couldn’t be accessed by user ’_apt’. - pkgAcquire::Run (13: Permission denied)
This is the same as the previous count with 0 new packages.


## Scanner and Printer Canon MF4330d

The scanner works out of the box. For the printer it is needed to install the Canon driver. As usual I have a symbolic link for the Canon manufacturer package:
$ll /usr/local/packages/installed/cnrdrvcups-ufr2-uk_5.20-1_amd64.deb lrwxrwxrwx 1 jscordi jscordi 114 2020-10-12 23:50 /usr/local/packages/installed/cnrdrvcups-ufr2-uk_5.20-1_amd64.deb -> ../../non_src/CANON_MF4330d_v5_20/linux-UFRII-drv-v520-fr/64-bit_Driver/Debian/cnrdrvcups-ufr2-uk_5.20-1_amd64.deb  To take into account this change it is needed to do run my script and update $ ./update_packages_gz.sh
$wajig update  Then I have installed only one package (contrary to two packages in the past): $ wajig install cnrdrvcups-ufr2-uk

Then at "localhost:631", when adding a printer, I have chosen
 Canon MF4320-4350 (UFRII LT) CNUSBUFR2 #1 (Canon MF4320-4350 (UFRII LT))

It works correctly. I have tried to print the first page of files
thomas_precession_and_its_associated_grouplike_structure_AJP.pdf
whitrow_qjm_4_161_33.pdf

without any problem (no black page, without using cngplp), as well as page 19 of
Syn60b.djvu

without the problem of partial printing for the figure (see my note of May 1, 2014).

## libdvdcss (DVD encryption) support

Exactly as in Ubuntu 16.04:
$wajig install libdvd-pkg$ sudo dpkg-reconfigure libdvd-pkg


## Qarte

Same procedure as in the last installation I made (Debian Stretch):
$sudo apt-get install software-properties-common # for add-apt-repository$ sudo add-apt-repository ppa:vincent-vandevyvre/vvv
$apt install qarte  ## Pybliographer It was available in Ubuntu 16.04, but not after. So I have downloaded the last version in Ubuntu (1.2.16) here and put it in my local package repository. However, it is a bad idea: $ wajig install pybliographer
Building dependency tree
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
pybliographer : Depends: python-gnome2 but it is not installable
Depends: python-glade2 but it is not installable
E: Unable to correct problems, you have held broken packages.

So there is a dependency problem. Looking at the website of Pybliographer, the last version is found to be 1.4 here, indeed indicating they have got rid of gnome2:
Pybliographer 1.4.0 is out. Changes include:
Remove dependency on python-gnome2, python-gnome2-vfs, and python-glade2.
Pybliographer now requires pygtk 2.24.0 and gettext 0.19.8
Improve and simplify the build system
Known regressions to be fixed later:
Format entries cannot be saved
Known regressions that will not be fixed:
Remove support for old confirmation dialog option
Drop history on combo boxes

But there is no package available at this time, and it still depends on deprecated pages as python-gtk2-dev. So I first decide to switch back to KBibtex, which is available. It seems that its GUI has evolved, it is a good sign of bug fixing. However, when I save a bibliography it brakes the file:
@incollection{MSM65,
author = "Michel, Aim{\’e} and Stevens, William O. and Moufang, Wilhelm",
booktitle = "{Encyclop{\’e}die Plan{\‘e}te"},
title = "{Le myst{\‘e}re des r{\^e}ves"},
year = 1965
}

Fortunately it is easy to solve with a simple substitution in VIM:
:%s/"{$$.*$$"}/"\1"/g

But Kbibtex is the last version 0.8.1, so I cannot expect the bug to be solved: I try jabref. It looks complete, but I rapidly found a problem:
becomes in the list:
So quotes are not well supported. This is the bug reported at here: it is needed to use a newer version. The Ubuntu version is
$wajig detail jabref Package: jabref Version: 3.8.2+ds-12 […]  whereas the last version is 5.1. I try it: the bug is corrected and it has user-defined colored named groups. However it is very slow (written in java!) and too much complicated for my basic use. So it is reasonable to understand what is the problem with KBibtex (which is fast and manages correctly accents). I remark that jabref has created an entry with braces instead of quotes: @Book{Sgu62, author = {Saint-Guilhem, René}, title = {Les Principes de l’Analyse Dimensionnelle}, publisher = {Gauthier-Villars}, series = {M\’emorial des sciences mathématiques}, volume = {152}, booktitle = {Invariance des {R}elations {V}ectorielles dans {C}ertains {G}roupes d’{A}ffinit\’es}, year = {1962}, }  So it makes sense to try removing outermost double quotes and replace them with braces: :%s/"$$[^{].*[^}]$$"/{\1}/g :%s/"$${.*}$$"/\1/g :%s/"$$.*$$"/{\1}/g  After that it remains some multiline fields as:  abstract = "p.103: remarque int{\’e}ressante sur la probabilit{\’e} croissante avec le nombre de cas apparent{\’e}s.",  These must be managed with a multi-line substitution that can be done with sed (cf here): $ echo -e ’= "Un Makefile ne\nsert pas seulement"’ | sed -z ’s+= "$$[^"]*$$"+{\1}+’
{Un Makefile ne
sert pas seulement}

So
$sed -z ’s+= "{$$[^"]*$$}"+= {\1}+g’ biblio.bib > biblio2.bib$ sed -z ’s+= "$$[^{][^"]*$$"+= {\1}+g’ biblio2.bib > biblio3.bib

It works correctly. Once all is done, the bibliography is correcly open and saved. Remaining problems are easily detected (empty lines "comment" in KBibtex):
and corrected manually. But I remark that all accents as
Plan{\‘e}te

are transformed by KBibtex as
Planète

The same is done by Jabref. But when generating a PDF with LyX, for instance:
The workaround is very simple: just set "utf8" as encoding in the LyX document:
Note however than when entering a "non-trivial" unicode character in Jabref
or in KBibtex:
we get an error in LyX when generating the PDF document:
I have not tried to solve the problem. Adding the line
\usepackage[utf8]{inputenc}

in the LaTeX preamble of the LyX document did not help. The solution is not to use such symbols in the bibliography.

## Turtlesport

When starting turtlesport:
$turtlesport 16:27:50,539 WARN fr.turtlesport.TurtleSport - Turtle Sport v1.9 16:27:50,542 WARN fr.turtlesport.TurtleSport - prop application.home=null 16:27:50,542 WARN fr.turtlesport.TurtleSport - java.vendor=Ubuntu 16:27:50,543 WARN fr.turtlesport.TurtleSport - java.runtime.name=OpenJDK Runtime Environment 16:27:50,544 WARN fr.turtlesport.TurtleSport - java.version=11.0.8 16:27:50,544 WARN fr.turtlesport.TurtleSport - java.vm.name=OpenJDK 64-Bit Server VM 16:27:50,545 WARN fr.turtlesport.TurtleSport - java.vm.version=11.0.8+10-post-Ubuntu-0ubuntu120.04 16:27:50,546 WARN fr.turtlesport.TurtleSport - sun.arch.data.model=64 16:27:50,546 WARN fr.turtlesport.TurtleSport - prop application.home=null 16:27:50,547 WARN fr.turtlesport.TurtleSport - os.name=Linux 16:27:50,547 WARN fr.turtlesport.TurtleSport - os.arch=amd64 16:27:51,252 WARN fr.turtlesport.db.DatabaseManager - derby.system.home=/home/jscordi/.turtlesport 16:27:51,254 WARN fr.turtlesport.db.DatabaseManager - JDBC 4 16:27:51,544 WARN fr.turtlesport.db.DatabaseManager - Using 10.3 16:27:52,050 WARN fr.turtlesport.db.DatabaseManager - Using Apache Derby 10.3.1.4 - (561794) could not load ’loading.png’ 16:27:53,922 ERROR fr.turtlesport.map.MapConfiguration - java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext at fr.turtlesport.map.MapConfiguration.initMaps(MapConfiguration.java:96) at fr.turtlesport.map.MapConfiguration.<init>(MapConfiguration.java:55) at fr.turtlesport.map.MapConfiguration.<clinit>(MapConfiguration.java:37) at fr.turtlesport.map.AllMapsFactory.<init>(AllMapsFactory.java:74) at fr.turtlesport.map.AllMapsFactory.<clinit>(AllMapsFactory.java:26) at fr.turtlesport.ui.swing.component.JTurtleMapKit.getJComboboxMap(JTurtleMapKit.java:355) at fr.turtlesport.ui.swing.component.JTurtleMapKit.getJPanelButton(JTurtleMapKit.java:321) at fr.turtlesport.ui.swing.component.JTurtleMapKit.initialize(JTurtleMapKit.java:236) at fr.turtlesport.ui.swing.component.JTurtleMapKit.<init>(JTurtleMapKit.java:111) at fr.turtlesport.ui.swing.component.JPanelMap.getJMapKit(JPanelMap.java:101) at fr.turtlesport.ui.swing.component.JPanelMap.initialize(JPanelMap.java:84) at fr.turtlesport.ui.swing.component.JPanelMap.<init>(JPanelMap.java:35) at fr.turtlesport.ui.swing.JPanelRun.getJPanelMap(JPanelRun.java:1738) at fr.turtlesport.ui.swing.JPanelRun.getJSplitPanelCenter(JPanelRun.java:1684) at fr.turtlesport.ui.swing.JPanelRun.initialize(JPanelRun.java:556) at fr.turtlesport.ui.swing.JPanelRun.<init>(JPanelRun.java:281) at fr.turtlesport.ui.swing.MainGui.initialize(MainGui.java:604) at fr.turtlesport.ui.swing.MainGui.<init>(MainGui.java:205) at fr.turtlesport.ui.swing.SwingApplication.createMainGUI(SwingApplication.java:235) at fr.turtlesport.ui.swing.SwingApplication.access$000(SwingApplication.java:34)
at fr.turtlesport.ui.swing.SwingApplication$2.run(SwingApplication.java:154) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 34 more Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/activation/ActivationDataFlavor at fr.turtlesport.ui.swing.component.calendar.JLabelDay.fireActive(JLabelDay.java:152) at fr.turtlesport.ui.swing.component.calendar.AbstractJPanelMonth.fireCurrentDates(AbstractJPanelMonth.java:226) at fr.turtlesport.ui.swing.model.ModelRunCalendar.updateView(ModelRunCalendar.java:74) at fr.turtlesport.ui.swing.component.calendar.JPanelCalendar.fireHistoric(JPanelCalendar.java:149) at fr.turtlesport.ui.swing.component.calendar.JPanelListDateRun.fireHistoric(JPanelListDateRun.java:188) at fr.turtlesport.ui.swing.MainGui.fireHistoric(MainGui.java:1560) at fr.turtlesport.ui.swing.MainGui.setCurrentIdUser(MainGui.java:367) at fr.turtlesport.ui.swing.MainGui.initialize(MainGui.java:605) at fr.turtlesport.ui.swing.MainGui.<init>(MainGui.java:205) at fr.turtlesport.ui.swing.SwingApplication.createMainGUI(SwingApplication.java:235) at fr.turtlesport.ui.swing.SwingApplication.access$000(SwingApplication.java:34)
at fr.turtlesport.ui.swing.SwingApplication$2.run(SwingApplication.java:154) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
Caused by: java.lang.ClassNotFoundException: javax.activation.ActivationDataFlavor
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)  This is exactly here: Ton erreur est indiquée par ces messages : java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext java.lang.ClassNotFoundException: javax.activation.ActivationDataFlavor Tu utilises Java en version 10. Ton problème vient de ce que, une des classes utilisées par Turtle Sport 2.0-1, est dépréciée depuis Java 9. Pour corriger ton problème, il faut installer le paquet openjdk-8-jre. Ensuite, il te faut, soit mettre cette version par défaut, soit préciser la version à utiliser en lançant Turtle Sport. I have chosen the second solution: $ wajig install openjdk-8-jre
$sudo update-alternatives --config java There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode Press <enter> to keep the current choice[*], or type selection number: 2 update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in manual mode  After that turtlesport starts correctly. What is the difference between JDK, JRE, JVM? Cf here: En bref, la machine virtuelle Java ou JVM est le composant de la plate-forme Java qui exécute les programmes ; l’environnement de développement Java ou JRE crée la machine virtuelle Java ou JVM et s’assure que les dépendances sont disponibles pour les programmes Java ; le kit de développement Java ou JDK permet de créer des programmes Java qui peuvent être exécutés par la JVM et le JRE. ## gcolor2 is missing As a workaround I have downloaded the last available Ubuntu version (16.04): here and put it in my local package repository. No dependency problem, it works correctly. ## Various • the configuration of the compose key done in previous installations still works. ## Connecting my Garmin watch at startup at best slows down the boot a lot The following error is obtained with dmesg (so it is an output of the kernel that may be shown at startup by typing ESC at the time the Ubuntu logo is shown at the center of the screen): dmesg.0- [ 25.172173] kernel: ACPI: \_SB_.PCI0.PEG0.PEGP: failed to evaluate _DSM dmesg.0- [ 36.296038] kernel: usb 3-3.4: reset full-speed USB device number 6 using xhci_hcd dmesg.0- [ 36.421569] kernel: sd 4:0:0:0: Power-on or device reset occurred dmesg.0- [ 51.656066] kernel: usb 3-3.4: reset full-speed USB device number 6 using xhci_hcd dmesg.0- [ 51.987715] kernel: EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) dmesg.0- [ 51.987725] kernel: ext4 filesystem being mounted at /boot supports timestamps until 2038 (0x7fffffff) dmesg.0- [ 67.016098] kernel: usb 3-3.4: reset full-speed USB device number 6 using xhci_hcd dmesg.0- [ 97.480097] kernel: usb 3-3.4: reset full-speed USB device number 6 using xhci_hcd dmesg.0- [ 97.604989] kernel: sd 4:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_TIME_OUT driverbyte=DRIVER_OK dmesg.0- [ 97.604994] kernel: sd 4:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 00 00 20 00 00 00 08 00 dmesg.0: [ 97.604997] kernel: blk_update_request: I/O error, dev sdc, sector 8192 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0 dmesg.0- [ 97.606023] kernel: sd 4:0:0:0: Power-on or device reset occurred  Indeed /dev/sdc is the watch when it is connected. The workaround is simply to disconnect it and reboot. I am not sure 100% (I have also run fsck.ext4 -f -v on /home, /boot, /home/local) but it maybe prevented /home to be mounted at the end of the boot (of course this is a problem). ## Prevent Ubuntu from updating the kernel over and over The problem is that my /boot partition is too small, and kernel installations fail. A solution is found at here: $ sudo apt-mark hold linux-image-generic linux-headers-generic
linux-image-generic was already set on hold.

But if it was already on hold then it is not the solution (and headers are useless for this problem, they are used for compilation). So instead I remove the last kernels:
$cd /boot$ rm -f initrd.img*

then install any package such that a new kernel is regenerated:
$wajig install dolphin$ ls -l initrd.img*
lrwxrwxrwx 1 root root       27 déc.   6 11:38 initrd.img -> initrd.img-5.4.0-56-generic
-rw-r--r-- 1 root root 87095527 déc.   6 11:39 initrd.img-5.4.0-56-generic

And then I try to hold this kernel, in agreement with what is said at here:
$sudo apt-mark hold 5.4.0-56-generic linux-buildinfo-5.4.0-56-generic set on hold. linux-cloud-tools-5.4.0-56-generic set on hold. linux-headers-5.4.0-56-generic set on hold. linux-image-5.4.0-56-generic set on hold. linux-modules-5.4.0-56-generic set on hold. linux-image-unsigned-5.4.0-56-generic set on hold. linux-modules-extra-5.4.0-56-generic set on hold. linux-tools-5.4.0-56-generic set on hold. linux-modules-nvidia-390-5.4.0-56-generic set on hold. linux-modules-nvidia-418-server-5.4.0-56-generic set on hold. linux-modules-nvidia-440-server-5.4.0-56-generic set on hold. linux-modules-nvidia-450-5.4.0-56-generic set on hold. linux-modules-nvidia-450-server-5.4.0-56-generic set on hold. linux-modules-nvidia-455-5.4.0-56-generic set on hold.$

Yes it is perhaps a bad idea, I will certainly increase the size of my /boot partition for my next computer (currently 169M with 11M free).

## Update on December 13: Realtek hardware (network card and card reader) no more listed

Contrary to my installation of October 27, 2012, no Realtek hardware is detected:
$lspci|grep realtek Command failure: error 1 !  Kernel version $ uname -r
5.4.0-56-generic

It seems there is a problem with realtek drivers in 20.04: here. But after regeneration of initrd.img using Lubuntu rescuing disk as already told above:
$cd /boot$ rm -f initrd.img*
$update-initramfs -k all -c -v$ ls /boot
grub        System.map-5.4.0-53-generic  System.map-5.6.0-1028-oem    config-5.4.0-53-generic  config-5.6.0-1028-oem    initrd.img-5.4.0-56-generic  memtest86+.elf            vmlinuz
lost+found  System.map-5.4.0-56-generic  System.map-5.8.0-29-generic  config-5.4.0-56-generic  config-5.8.0-29-generic  memtest86+.bin               memtest86+_multiboot.bin  vmlinuz-5.4.0-56-generic
$ll /boot/vmlinuz lrwxrwxrwx 1 root root 24 2020-12-13 11:35 /boot/vmlinuz -> vmlinuz-5.4.0-56-generic$ update-grub
$ then they are detected again: $ uname -r
5.4.0-56-generic
$lspci|grep realt 04:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411 PCI Express Card Reader (rev 01) 04:00.2 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0a)  And both work correctly. However I have found that even with that my SD card is not always mounted automatically. Fortunately my numeric camera Canon PowerShot SX260 HS can also be connected using a USB cable and in this case it is mounted automatically by gphoto2, allowing to see but also to move the pictures and videos from the camera to my computer hard drive. ## Update on June 3, 2021: hibernation My laptop regularly reboots during suspend on RAM. It does that often when I switch on or off the light of the room: it seems that an electrical perturbation is propagated through a USB hub, though it has no dedicated power source (maybe from the printer to the hub and then to the computer?). It is probably what is seen in the logs: $ sudo journalctl | grep -C100 systemd-sleep
[…]
Sep 26 17:53:28 rama systemd-sleep[30695]: Suspending system...
Sep 26 17:53:28 rama kernel: PM: Syncing filesystems ... done.
Sep 26 17:53:28 rama kernel: PM: Preparing system for sleep (mem)
Sep 26 17:55:56 rama kernel: (NULL device *): firmware: direct-loading firmware iwlwifi-2030-6.ucode
Sep 26 17:55:56 rama kernel: Freezing user space processes ... (elapsed 0.001 seconds) done.
Sep 26 17:55:56 rama kernel: Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
Sep 26 17:55:56 rama kernel: PM: Suspending system (mem)
Sep 26 17:55:56 rama kernel: Suspending console(s) (use no_console_suspend to debug)
Sep 26 17:55:56 rama kernel: sd 1:0:0:0: [sdb] Synchronizing SCSI cache
Sep 26 17:55:56 rama kernel: sd 0:0:0:0: [sda] Synchronizing SCSI cache
Sep 26 17:55:56 rama kernel: sd 0:0:0:0: [sda] Stopping disk
Sep 26 17:55:56 rama kernel: sd 1:0:0:0: [sdb] Stopping disk
Sep 26 17:55:56 rama kernel: nouveau 0000:01:00.0: DRM: resuming kernel object tree...
Sep 26 17:55:56 rama kernel: nouveau 0000:01:00.0: DRM: resuming client object trees...
Sep 26 17:55:56 rama kernel: nouveau 0000:01:00.0: DRM: evicting buffers...
Sep 26 17:55:56 rama kernel: nouveau 0000:01:00.0: DRM: waiting for kernel channels to go idle...
Sep 26 17:55:56 rama kernel: nouveau 0000:01:00.0: DRM: suspending client object trees...
Sep 26 17:55:56 rama kernel: nouveau 0000:01:00.0: DRM: suspending kernel object tree...
Sep 26 17:55:56 rama kernel: PM: suspend of devices complete after 3536.794 msecs
Sep 26 17:55:56 rama kernel: PM: late suspend of devices complete after 19.707 msecs
Sep 26 17:55:56 rama kernel: pcieport 0000:00:1c.3: System wakeup enabled by ACPI
Sep 26 17:55:56 rama kernel: ehci-pci 0000:00:1d.0: System wakeup enabled by ACPI
Sep 26 17:55:56 rama kernel: ehci-pci 0000:00:1a.0: System wakeup enabled by ACPI
Sep 26 17:55:56 rama kernel: xhci_hcd 0000:00:14.0: System wakeup enabled by ACPI
Sep 26 17:55:56 rama kernel: PM: noirq suspend of devices complete after 20.035 msecs
Sep 26 17:55:56 rama kernel: ACPI: Preparing to enter system sleep state S3
Sep 26 17:55:56 rama kernel: ACPI : EC: event blocked
Sep 26 17:55:56 rama kernel: ACPI : EC: EC stopped
Sep 26 17:55:56 rama kernel: PM: Saving platform NVS memory
Sep 26 17:55:56 rama kernel: Disabling non-boot CPUs ...
Sep 26 17:55:56 rama kernel: Broke affinity for irq 31
Sep 26 17:55:56 rama kernel: smpboot: CPU 1 is now offline
Sep 26 17:55:56 rama kernel: Broke affinity for irq 16
Sep 26 17:55:56 rama kernel: Broke affinity for irq 27
Sep 26 17:55:56 rama kernel: Broke affinity for irq 28
Sep 26 17:55:56 rama kernel: Broke affinity for irq 31
Sep 26 17:55:56 rama kernel: Broke affinity for irq 33
Sep 26 17:55:56 rama kernel: smpboot: CPU 2 is now offline
Sep 26 17:55:56 rama kernel: Broke affinity for irq 1
Sep 26 17:55:56 rama kernel: Broke affinity for irq 9
Sep 26 17:55:56 rama kernel: Broke affinity for irq 12
Sep 26 17:55:56 rama kernel: Broke affinity for irq 16
Sep 26 17:55:56 rama kernel: Broke affinity for irq 23
Sep 26 17:55:56 rama kernel: Broke affinity for irq 26
Sep 26 17:55:56 rama kernel: Broke affinity for irq 27
Sep 26 17:55:56 rama kernel: Broke affinity for irq 28
Sep 26 17:55:56 rama kernel: Broke affinity for irq 31
Sep 26 17:55:56 rama kernel: Broke affinity for irq 33
Sep 26 17:55:56 rama kernel: smpboot: CPU 3 is now offline
Sep 26 17:55:56 rama kernel: ACPI: Low-level resume complete
[…]

I never found a way to stop this "wake-up on perturbation" behavior (for instance there is no dedicated option in the BIOS). So I just removed from the laptop the USB cable of the hub after suspend on RAM, as a workaround. But sometimes it wakes up anyway, and generally (always? I cannot be sure) the session is lost, a true reboot happens instead of giving back the previous session. This is very annoying, I think it is due to the power on/power off electronics that is a bit used (10 years old). One solution may be to hibernate systematically, such that this reboot does not prevent to recover my current work (though hibernation is a bit long to perform compared to suspend on RAM). But hibernation does not work all the time. My SWAP partition is large enough:
$top […] %Cpu(s): 4.1 us, 20.5 sy, 2.7 ni, 35.6 id, 35.6 wa, 0.0 hi, 1.4 si, 0.0 st MiB Mem : 7858.2 total, 439.4 free, 2198.0 used, 5220.8 buff/cache MiB Swap: 9536.0 total, 9487.0 free, 49.0 used. 4862.1 avail Mem  Indeed from here I understand that the SWAP partition should be at least as large as the RAM, this is the case. If the RAM content is larger that the available SWAP space (possible if some SWAP is used), according to this page "trashing" of SWAP content should occur. However I already observed problems of hibernation (error 128 when doing pm-hibernate) and the workaround I found was to close Firefox to free RAM: strange! And sometimes even this workaround did not work; but anyway I have considered to increase SWAP space; the previous page uses the interesting LVM commands lvs and lsblk: $ sudo lsblk
NAME                  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
loop0                   7:0    0  55.5M  1 loop  /snap/core18/1997
loop1                   7:1    0 138.9M  1 loop  /snap/chromium/1589
loop2                   7:2    0  55.4M  1 loop  /snap/core18/2066
loop3                   7:3    0  64.8M  1 loop  /snap/gtk-common-themes/1514
loop4                   7:4    0 141.4M  1 loop  /snap/chromium/1608
loop5                   7:5    0 162.9M  1 loop  /snap/gnome-3-28-1804/145
loop6                   7:6    0  32.1M  1 loop  /snap/snapd/11841
loop7                   7:7    0  65.1M  1 loop  /snap/gtk-common-themes/1515
loop8                   7:8    0  32.1M  1 loop  /snap/snapd/12057
sda                     8:0    0  83.9G  0 disk
├─sda1                  8:1    0   190M  0 part  /boot
├─sda2                  8:2    0     1K  0 part
└─sda5                  8:5    0  83.7G  0 part
└─sda5_crypt        253:0    0  83.7G  0 crypt
├─vg-lv_swap      253:1    0   9.3G  0 lvm   [SWAP]
├─vg-lv_root      253:2    0  30.5G  0 lvm   /
├─vg-vg_usrlocal  253:3    0    28G  0 lvm   /usr/local
└─vg-lv_homelocal 253:4    0  15.9G  0 lvm   /home/local
sdb                     8:16   0   1.8T  0 disk
└─sdb1                  8:17   0   1.8T  0 part
└─sdb1_crypt        253:5    0   1.8T  0 crypt /home
sr0                    11:0    1  1024M  0 rom
$sudo lvs WARNING: PV /dev/mapper/sda5_crypt in VG vg is using an old PV header, modify the VG to update. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv_homelocal vg -wi-ao---- 15.91g lv_root vg -wi-ao---- 30.49g lv_swap vg -wi-ao---- 9.31g vg_usrlocal vg -wi-ao---- <27.94g  and a way to simply increase the swap space without reboot: $ swapoff -a
$lvextend -L +2G /dev/mapper/vg-lv_swap […]$ mkswap /dev/mapper/vg-lv_swap
[…]
\$ swapon -a

By the way, note it is important to indicate to the kernel the SWAP partition for resume. As my LVM swap partition points to dm-1, I have first indicated in /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/dm-1"

and then did update-grub. However it does not work; instead it is needed to set
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/mapper/vg-lv_swap"

and after update-grub it resumes correctly.
Thus from this point of view LVM seems an interesting additional layer of abstraction. I cannot remember why and when I used LVM on my disks, probably it was done by the Debian partitioner in the text installer or by the OpenSuse partitioner, I cannot remember. There are various point of views on LVM: here, here. Yet finally I have not tried to increase SWAP space, because of another seemingly more important hardware problem: after the curious phenomenon of wake up and reboot during suspend or hibernation, these last days I was unable to get the laptop to start again, the power button was somewhat inactive during a period of time. It happened after a cycle of "self reboots" without any human action. A workaround I found was to disconnect and reconnect the power wire; but it seems that my computer approaches its end of life (10 years), and unfortunately it is not possible to repair a laptop. Thus instead of suffering these problems and wait for this old laptop to no more starting forever (and be some days without computer), I decide to:
• buy a large evolutive tower PC where I will be able to replace damaged components in the future; I will not anymore take the risk of buying a laptop that may last only two years as it happened to me in 2010;
• when in displacement (vacation), use my old laptop as 20 years ago: boot and shutdown every day. The files on which I work will be on an encrypted USB key and transfered back to the main tower PC using a dedicated UNISON command line. I never saw my laptop stop itself alone once booted, the problems only happen during suspend or hibernation; thus used like that it should be able to last several more years.