• Install F38

  • Create main user account on first boot

  • Create temporary user account

  • Log out of main user account and log into temporary account

  • Install trezor-agent

  • Installer ledger-agent

  • Rsync your home directory over to the main account

  • Log out of temp account, log back into main account

  • Delete temp account

  • Install flatpacks

  • Install dnf

  • Download and install the .rpm that need to be installed from a local file (not in a repo)

  • Install fingerprint

  • You should not need to reconfigure and relogin on Nextcloud. Credential have been copied over with the homedir and the vault.

  • Enable S3 deep sleep

> $ cat /sys/power/mem_sleep                                                                                                       
[s2idle] deep
  • sudo nano /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT=“mem_sleep_default=deep”
  • sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
  • Reboot
> $ cat /sys/power/mem_sleep                                                                                                       
s2idle [deep]
> $ sudo lsblk                                                                                                                                                                                                                               
Place your finger on the fingerprint reader
NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
zram0                                         252:0    0     8G  0 disk  [SWAP]
nvme0n1                                       259:0    0 476.9G  0 disk  
β”œβ”€nvme0n1p1                                   259:1    0   600M  0 part  /boot/efi
β”œβ”€nvme0n1p2                                   259:2    0     1G  0 part  /boot
└─nvme0n1p3                                   259:3    0 475.4G  0 part  
  └─luks-c5346e6d-0291-42c0-97b4-0fd959f16b43 253:0    0 475.3G  0 crypt /home
                                                                         /
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~                                                                                                                                                                                                          [23:27:36]
> $ sudo blkid                                                                                                                                                                                                                               
/dev/nvme0n1p3: UUID="c5346e6d-0291-42c0-97b4-0fd959f16b43" TYPE="crypto_LUKS" PARTUUID="b7ca25ad-4032-4aba-b6a1-c8994f9c82e6"
/dev/nvme0n1p1: UUID="B332-0F38" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="ce57f4af-198b-4c43-9172-3b750e074529"
/dev/nvme0n1p2: UUID="90611efe-73d4-4cd8-9a06-b854a3f3318d" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="ebefad49-c6e8-4199-96e6-2e12ac106681"
/dev/mapper/luks-c5346e6d-0291-42c0-97b4-0fd959f16b43: LABEL="fedora_localhost-live" UUID="fb2f7c66-3cfe-49e8-8a0d-a6fe42f6e142" UUID_SUB="5e4b0d78-376f-43ec-bd14-33c24edec7bb" BLOCK_SIZE="4096" TYPE="btrfs"
/dev/zram0: LABEL="zram0" UUID="fd32db98-27e8-4f8a-b311-d074b88f2802" TYPE="swap"
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~                                                                                                                                                                                                          [23:27:42]
> $ sudo mkdir /btrfs-pool                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~                                                                                                                                                                                                          [23:29:45]
> $ sudo mount -t btrfs /dev/mapper/luks-c5346e6d-0291-42c0-97b4-0fd959f16b43 /btrfs-pool 
guillaume@laptop3fedora ~                                                                                                                                                                                                          [23:33:21]
> $ sudo mv /btrfs-pool/root /btrfs-pool/@                                                                                                                                                                                                   
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~                                                                                                                                                                                                          [23:33:56]
> $ sudo mv /btrfs-pool/home /btrfs-pool/@home                                                                                                                                                                                               
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~                                                                                                                                                                                                          [23:34:16]
> $ sudo btrfs subvolume list /btrfs-pool                                                                                                                                                                                                    
ID 256 gen 16716 top level 5 path @home
ID 257 gen 16716 top level 5 path @
ID 258 gen 1157 top level 257 path @/var/lib/machines
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~                                                                                                                                                                                                          [23:34:34]
> $ sudo nano /etc/fstab                                                                                                                                                                                                                     
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~                                                                                                                                                                                                          [23:35:59]
> $ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg                                                                                                                                                                                     
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~                                                                                                                                                                                                          [23:36:40]
> $ sudo umount /btrfs-pool                                                                                                                                                                                                                  
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~                                                                                                                                                                                                          [23:36:50]
> $ sudo rmdir /btrfs-pool

Reboot Configure timeshift and check that it is running properly by doing a first manual snapshot

> $ sudo dnf install inotify-tools

Then, install grub-btrfs from source.

guillaume@laptop3fedora ~/Documents/Dev                                                                                                                                                                                            [10:26:31]
> $ git clone https://github.com/Antynea/grub-btrfs                                                                                                                                                                                          
Cloning into 'grub-btrfs'...
remote: Enumerating objects: 1196, done.
remote: Counting objects: 100% (291/291), done.
remote: Compressing objects: 100% (106/106), done.
remote: Total 1196 (delta 217), reused 226 (delta 183), pack-reused 905
Receiving objects: 100% (1196/1196), 380.87 KiB | 334.00 KiB/s, done.
Resolving deltas: 100% (714/714), done.
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~/Documents/Dev                                                                                                                                                                                            [10:26:44]
> $ cd grub-btrfs                                                                                                                                                                                                                            
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~/Documents/Dev/grub-btrfs                                                                                                                                                                                 [10:26:47]
> $                                                                                                                                                                                                                               [Β±master βœ“]
> $ make install                                                                                                                                                                                                                  [Β±master βœ“]
You are not root, run this target as root please.
make: *** [Makefile:25: install] Error 1
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~/Documents/Dev/grub-btrfs                                                                                                                                                                                 [10:27:01]
> $ sudo !!                                                                                                                                                                                                                       [Β±master βœ“]
                                                                                                                                                                                                                                              
guillaume@laptop3fedora ~/Documents/Dev/grub-btrfs                                                                                                                                                                                 [10:27:05]
> $ sudo make install                                                                                                                                                                                                             [Β±master βœ“]
					     	   Installing 

       ::::::::  :::::::::  :::    ::: :::::::::               ::::::::: ::::::::::: :::::::::  :::::::::: ::::::::      
      :+:    :+: :+:    :+: :+:    :+: :+:    :+:              :+:    :+:    :+:     :+:    :+: :+:       :+:    :+:     
     +:+        +:+    +:+ +:+    +:+ +:+    +:+              +:+    +:+    +:+     +:+    +:+ +:+       +:+             
    :#:        +#++:++#:  +#+    +:+ +#++:++#+ +#++:++#++:++ +#++:++#+     +#+     +#++:++#:  :#::+::#  +#++:++#++       
   +#+   +#+# +#+    +#+ +#+    +#+ +#+    +#+              +#+    +#+    +#+     +#+    +#+ +#+              +#+        
  #+#    #+# #+#    #+# #+#    #+# #+#    #+#              #+#    #+#    #+#     #+#    #+# #+#       #+#    #+#         
  ########  ###    ###  ########  #########               #########     ###     ###    ### ###        ########           

  For further information visit https://github.com/Antynea/grub-btrfs or read the man page: 'man grub-btrfs'

Installing manpages...
Installing systemd .service file
Installing docs...
Updating the GRUB menu...
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
Detecting snapshots ...
/etc/grub.d/41_snapshots-btrfs: line 571: /boot/grub/grub-btrfs.new: No such file or directory
make: *** [Makefile:56: install] Error 1

Do not mind the error message for now. Activate the service.

sudo systemctl start grub-btrfsd
sudo systemctl enable grub-btrfsd

Check that the service is running:

> $ sudo systemctl status grub-btrfsd.service                                                                                                                                                                                    [Β±master ●●]
Γ— grub-btrfsd.service - Regenerate grub-btrfs.cfg
     Loaded: loaded (/usr/lib/systemd/system/grub-btrfsd.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: failed (Result: exit-code) since Mon 2023-06-12 10:34:13 +08; 2s ago
   Duration: 18ms
    Process: 21350 ExecStart=/usr/bin/grub-btrfsd --syslog /.snapshots (code=exited, status=1/FAILURE)
   Main PID: 21350 (code=exited, status=1/FAILURE)
        CPU: 17ms

Jun 12 10:34:13 laptop3fedora.guillaumea.fr grub-btrfsd[21359]: [!] Please specify a valid snapshot directory
Jun 12 10:34:13 laptop3fedora.guillaumea.fr systemd[1]: grub-btrfsd.service: Main process exited, code=exited, status=1/FAILURE
Jun 12 10:34:13 laptop3fedora.guillaumea.fr systemd[1]: grub-btrfsd.service: Failed with result 'exit-code'.

You should be getting the following error message: Please specify a valid snapshot directory. This is because Timeshift doesn’t store snapshots into the subvolume grub-btrfs expects. Let’s update that.

From the official, doc: To pass –timeshift-auto to grub-btrfsd, the .service file of grub-btrfsd can be edited with

sudo systemctl edit --full grub-btrfsd 

The line that contains:

ExecStart=/usr/bin/grub-btrfsd /.snapshots --syslog

Should be modified to read:

ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto

Last, we need to adjust the btrfs-grub config file with the right dependencies path so that it updates the grub menu properly: Source: https://sysguides.com/install-fedora-36-with-snapper-and-grub-btrfs/

$ sudo vim /etc/default/grub-btrfs/config
...
GRUB_BTRFS_GRUB_DIRNAME="/boot/grub2"
GRUB_BTRFS_MKCONFIG=/usr/sbin/grub2-mkconfig
GRUB_BTRFS_SCRIPT_CHECK=grub2-script-check
...

Update the grub.cfg file.

> $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg                                                                                                                                                                                              
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
Detecting snapshots ...
Found snapshot: 2023-06-12 11:11:35 | timeshift-btrfs/snapshots/2023-06-12_11-11-35/@ | boot                     | N/A                                |
Found snapshot: 2023-06-12 11:02:08 | timeshift-btrfs/snapshots/2023-06-12_11-02-08/@ | ondemand                 | test                               |
Found snapshot: 2023-06-12 10:56:53 | timeshift-btrfs/snapshots/2023-06-12_10-56-53/@ | boot                     | N/A                                |
Found snapshot: 2023-06-12 10:06:43 | timeshift-btrfs/snapshots/2023-06-12_10-06-43/@ | boot hourly              | N/A                                |
Found snapshot: 2023-06-12 10:00:01 | timeshift-btrfs/snapshots/2023-06-12_10-00-01/@ | boot hourly daily weekly | avant rebase des codecs multimedia |
Found 5 snapshot(s)

WARNING: '/usr/sbin/grub2-mkconfig' needs to run at least once to generate the snapshots (sub)menu entry in grub the main menu. After that this script can run alone to generate the snapshot entries.

Unmount /tmp/grub-btrfs.oGWu1t1HwC .. Success
done

Check that all is well:

> $ sudo systemctl status grub-btrfsd.service                                                                                                                                                                                    [Β±master ●●]
● grub-btrfsd.service - Regenerate grub-btrfs.cfg
     Loaded: loaded (/etc/systemd/system/grub-btrfsd.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Mon 2023-06-12 10:42:36 +08; 1min 59s ago
   Main PID: 22120 (bash)
      Tasks: 3 (limit: 18619)
     Memory: 1.4M
        CPU: 60ms
     CGroup: /system.slice/grub-btrfsd.service
             β”œβ”€22120 bash /usr/bin/grub-btrfsd --syslog --timeshift-auto
             β”œβ”€22128 bash /usr/bin/grub-btrfsd --syslog --timeshift-auto
             └─22142 inotifywait -q -q -e create -e delete /run/timeshift

Restart and this is what you should say in the grub menu: [photo]

  • Install hardware accelerated video codecs: https://docs.fedoraproject.org/en-US/quick-docs/assembly_installing-plugins-for-playing-movies-and-music/
    You will have to run sudo dnf group upgrade --with-optional Multimedia with the --allowerasing flag such as sudo dnf group upgrade --with-optional Multimedia --allowerasing in order to replace free dependencies with hardware accelerated ones. Make sure you ran a Timeshift snapshot before that, just in case.

  • Install dell dcc to control bios settings, including battery charge mode In the support section for our XPS, Dell on refer to the .deb package since this laptop is certified for Ubuntu but not Fedora/RHEL. However, the toolkit is basically the same as what Dell ships for servers and enterprise hardware, that are of course certified for RHEL. We’ll just grab that instead. For this to work on Fedora 38, we need the rhel8 rpm package. Get it from: https://www.dell.com/support/home/en-us/drivers/driversdetails?driverid=fdj2g Package name: command-configure-4.7.0-433.el8.x86_64.tar.gz Decompress. Install:

> $ sudo dnf install ./srvadmin-hapi-9.5.0-4063.16816.el8.x86_64.rpm                                                               
Place your finger on the fingerprint reader
Last metadata expiration check: 0:51:49 ago on Mon 24 Jul 2023 13:57:54 +08.
Dependencies resolved.
====================================================================================================================================
 Package                        Architecture            Version                                 Repository                     Size
====================================================================================================================================
Installing:
 srvadmin-hapi                  x86_64                  9.5.0-4063.16816.el8                    @commandline                  1.2 M

Transaction Summary
====================================================================================================================================
Install  1 Package

Total size: 1.2 M
Installed size: 5.5 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                            1/1 
  Running scriptlet: srvadmin-hapi-9.5.0-4063.16816.el8.x86_64                                                                  1/1 
  Installing       : srvadmin-hapi-9.5.0-4063.16816.el8.x86_64                                                                  1/1 
  Running scriptlet: srvadmin-hapi-9.5.0-4063.16816.el8.x86_64                                                                  1/1 
  Verifying        : srvadmin-hapi-9.5.0-4063.16816.el8.x86_64                                                                  1/1 

Installed:
  srvadmin-hapi-9.5.0-4063.16816.el8.x86_64                                                                                         

Complete!
                                                                                                                                    
guillaume@laptop3 ~/Downloads/command-configure-4.7.0-433.el8.x86_64                                                     [14:49:53]
> $ sudo dnf install ./command-configure-4.7.0-433.el8.x86_64.rpm                                                                  
Last metadata expiration check: 0:52:10 ago on Mon 24 Jul 2023 13:57:54 +08.
Dependencies resolved.
====================================================================================================================================
 Package                             Architecture             Version                          Repository                      Size
====================================================================================================================================
Installing:
 command-configure                   x86_64                   4.7.0-433.el8                    @commandline                   3.7 M

Transaction Summary
====================================================================================================================================
Install  1 Package

Total size: 3.7 M
Installed size: 16 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                            1/1 
  Running scriptlet: command-configure-4.7.0-433.el8.x86_64                                                                     1/1 
  Installing       : command-configure-4.7.0-433.el8.x86_64                                                                     1/1 
  Running scriptlet: command-configure-4.7.0-433.el8.x86_64                                                                     1/1 
  Verifying        : command-configure-4.7.0-433.el8.x86_64                                                                     1/1 

Installed:
  command-configure-4.7.0-433.el8.x86_64                                                                                            

Complete!

To change battery mode directly from the live OS, run any of the commands below:

sudo /opt/dell/dcc/cctk --PrimaryBattChargeCfg=Standard --ValSetupPwd='xxx'
sudo /opt/dell/dcc/cctk --PrimaryBattChargeCfg=Adaptive --ValSetupPwd='xxx'
sudo /opt/dell/dcc/cctk --PrimaryBattChargeCfg=Express --ValSetupPwd='xxx'
sudo /opt/dell/dcc/cctk --PrimaryBattChargeCfg=Custom:50-60 --ValSetupPwd='xxx'

Must be run as root.

I usually for with a custom interval of 50:60 to preserve the battery lifespan. Unless I am on the move where Express comes handy when you get a few minutes next to an outlet.

  • ledger-agent might need an update
pip3 install --upgrade libagent
pip3 install --upgrade ledger-agent
  • Add languages to Flatpak if required (I add French so that spellcheck works in Evolution).

You should now be all set.