<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ubuntu on blog.szypowi.cz</title><link>https://blog.szypowi.cz/tags/ubuntu/</link><description>Recent content in Ubuntu on blog.szypowi.cz</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 15 May 2020 10:04:54 +0100</lastBuildDate><atom:link href="https://blog.szypowi.cz/tags/ubuntu/index.xml" rel="self" type="application/rss+xml"/><item><title>Testing and signing kernel for Ubuntu 20.04</title><link>https://blog.szypowi.cz/p/testing-and-signing-kernel-for-ubuntu-20.04/</link><pubDate>Fri, 15 May 2020 10:04:54 +0100</pubDate><guid>https://blog.szypowi.cz/p/testing-and-signing-kernel-for-ubuntu-20.04/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Disclaimer.&lt;/strong&gt; This is about mainline kernel builds, summarized from the Ubuntu wiki:&lt;/p&gt;
&lt;p&gt;By default, Ubuntu systems run with the Ubuntu kernels provided by the Ubuntu repositories. However it is handy to test unmodified upstream kernels to help locate problems in Ubuntu kernel patches, or to confirm that upstream has fixed a specific issue. These kernels are not supported and are not appropriate for production use.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="install-a-mainline-kernel-via-ppa"&gt;Install a mainline kernel via PPA
&lt;/h2&gt;&lt;p&gt;Detailed official instructions: &lt;a class="link" href="https://wiki.ubuntu.com/Kernel/MainlineBuilds" target="_blank" rel="noopener"
 &gt;https://wiki.ubuntu.com/Kernel/MainlineBuilds&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There is a semi-automated wrapper that makes this much less painful:
&lt;a class="link" href="https://github.com/pimlie/ubuntu-mainline-kernel.sh" target="_blank" rel="noopener"
 &gt;https://github.com/pimlie/ubuntu-mainline-kernel.sh&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="install-an-rc-release"&gt;Install an RC release
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ubuntu-mainline-kernel.sh --rc -i
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="mok-keys-secure-boot"&gt;MOK keys (Secure Boot)
&lt;/h2&gt;&lt;p&gt;If you installed Ubuntu 20.04 with Secure Boot enabled &lt;strong&gt;and&lt;/strong&gt; chose to install third-party drivers, you were probably asked to enroll a new key in MOK. That key is then used to sign new kernel modules automatically. It lives at:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ls /var/lib/shim-signed/mok/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MOK.der MOK.priv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To sign the kernel itself you need the key in PEM form:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nb"&gt;cd&lt;/span&gt; /var/lib/shim-signed/mok
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ sudo openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="sign-the-kernel"&gt;Sign the kernel
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Sign the &lt;code&gt;vmlinuz&lt;/code&gt; of your choice:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo sbsign --key /var/lib/shim-signed/mok/MOK.priv &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --cert /var/lib/shim-signed/mok/MOK.pem &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; /boot/vmlinuz-&lt;span class="o"&gt;[&lt;/span&gt;KERNEL-VERSION&lt;span class="o"&gt;]&lt;/span&gt;-generic &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --output /boot/vmlinuz-&lt;span class="o"&gt;[&lt;/span&gt;KERNEL-VERSION&lt;span class="o"&gt;]&lt;/span&gt;-generic.signed
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy the initrd so it pairs with the signed vmlinuz:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo cp /boot/initrd.img-&lt;span class="o"&gt;[&lt;/span&gt;KERNEL-VERSION&lt;span class="o"&gt;]&lt;/span&gt;-generic&lt;span class="o"&gt;{&lt;/span&gt;,.signed&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update GRUB:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo update-grub
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="reboot-and-test"&gt;Reboot and test
&lt;/h2&gt;&lt;p&gt;Pick the &lt;code&gt;.signed&lt;/code&gt; entry in GRUB. If the system boots cleanly and you want to keep the configuration, overwrite the unsigned files with the signed ones and run &lt;code&gt;update-grub&lt;/code&gt; again:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mv /boot/vmlinuz-&lt;span class="o"&gt;[&lt;/span&gt;KERNEL-VERSION&lt;span class="o"&gt;]&lt;/span&gt;-generic&lt;span class="o"&gt;{&lt;/span&gt;.signed,&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mv /boot/initrd.img-&lt;span class="o"&gt;[&lt;/span&gt;KERNEL-VERSION&lt;span class="o"&gt;]&lt;/span&gt;-generic&lt;span class="o"&gt;{&lt;/span&gt;.signed,&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo update-grub
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Enable Mozilla Firefox and Thunderbird on Wayland in Ubuntu 20.04</title><link>https://blog.szypowi.cz/p/enable-mozilla-firefox-and-thunderbird-on-wayland-in-ubuntu-20.04/</link><pubDate>Fri, 01 May 2020 10:04:54 +0100</pubDate><guid>https://blog.szypowi.cz/p/enable-mozilla-firefox-and-thunderbird-on-wayland-in-ubuntu-20.04/</guid><description>&lt;p&gt;This guide walks through turning on Wayland fractional scaling (FS) on Ubuntu 20.04 and then pointing Firefox and Thunderbird at it natively.&lt;/p&gt;
&lt;h2 id="wayland"&gt;Wayland
&lt;/h2&gt;&lt;p&gt;At the time of writing Ubuntu counted Wayland users as &amp;ldquo;less than 1%&amp;rdquo;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;. Feel special.&lt;/p&gt;
&lt;h3 id="enable"&gt;Enable
&lt;/h3&gt;&lt;p&gt;Follow &lt;a class="link" href="https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-20-04-desktop" target="_blank" rel="noopener"
 &gt;https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-20-04-desktop&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="test"&gt;Test
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;GUI.&lt;/strong&gt; &lt;code&gt;Settings -&amp;gt; About -&amp;gt; Windowing system&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CLI.&lt;/strong&gt; Check whether your current session is a Wayland one&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Check your session ID&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ loginctl
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ loginctl show-session &amp;lt;SESSION_ID&amp;gt; -p Type
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# or as a one-liner&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ loginctl show-session &lt;span class="k"&gt;$(&lt;/span&gt;awk &lt;span class="s1"&gt;&amp;#39;/tty/ {print $1}&amp;#39;&lt;/span&gt; &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;loginctl&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; -p Type &lt;span class="p"&gt;|&lt;/span&gt; awk -F&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ loginctl
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SESSION UID USER SEAT TTY
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;12&lt;/span&gt; &lt;span class="m"&gt;1000&lt;/span&gt; user seat0 tty2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;1&lt;/span&gt; sessions listed.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ loginctl show-session &lt;span class="m"&gt;12&lt;/span&gt; -p Type
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;wayland
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="fractional-scaling"&gt;Fractional scaling
&lt;/h2&gt;&lt;p&gt;To enable Wayland FS:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ gsettings &lt;span class="nb"&gt;set&lt;/span&gt; org.gnome.mutter experimental-features &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;[&amp;#39;scale-monitor-framebuffer&amp;#39;, &amp;#39;x11-randr-fractional-scaling&amp;#39;]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Log out and back in (or reboot). &lt;code&gt;Displays -&amp;gt; Scaling&lt;/code&gt; now offers 100%, 125%, 150%, 175%, and 200%.&lt;/p&gt;
&lt;h2 id="firefox-and-thunderbird-on-wayland"&gt;Firefox and Thunderbird on Wayland
&lt;/h2&gt;&lt;h3 id="test-it-once"&gt;Test it once
&lt;/h3&gt;&lt;p&gt;Firefox opens in X11 mode by default, which makes fonts blurry under fractional scaling. Run it once in Wayland mode:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nv"&gt;MOZ_ENABLE_WAYLAND&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; firefox
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="verify"&gt;Verify
&lt;/h3&gt;&lt;p&gt;Open &lt;code&gt;about:support&lt;/code&gt; and check &lt;strong&gt;Window protocol&lt;/strong&gt; under Graphics / Features. It reads &lt;code&gt;x11&lt;/code&gt; under XWayland and &lt;code&gt;wayland&lt;/code&gt; as a native Wayland client&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;h3 id="make-it-the-default"&gt;Make it the default
&lt;/h3&gt;&lt;p&gt;Copy the &lt;code&gt;.desktop&lt;/code&gt; file into your user directory and patch it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ cp /usr/share/applications/firefox.desktop ~/.local/share/applications/firefox.desktop
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ sed -i &lt;span class="s1"&gt;&amp;#39;s/Exec=firefox/Exec=env MOZ_ENABLE_WAYLAND=1 firefox/g&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ~/.local/share/applications/firefox.desktop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Same drill for Thunderbird:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nv"&gt;MOZ_ENABLE_WAYLAND&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; thunderbird
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ cp /usr/share/applications/thunderbird.desktop ~/.local/share/applications/thunderbird.desktop
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ sed -i &lt;span class="s1"&gt;&amp;#39;s/Exec=thunderbird/Exec=env MOZ_ENABLE_WAYLAND=1 thunderbird/g&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ~/.local/share/applications/thunderbird.desktop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="debugging-a-desktop-file"&gt;Debugging a &lt;code&gt;.desktop&lt;/code&gt; file
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ sudo apt install dex
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ dex ~/.local/share/applications/firefox.desktop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;&lt;a class="link" href="https://bugs.launchpad.net/ubuntu/&amp;#43;source/gnome-control-center/&amp;#43;bug/1871864" target="_blank" rel="noopener"
 &gt;https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/1871864&lt;/a&gt;&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;&lt;a class="link" href="https://unix.stackexchange.com/questions/202891/how-to-know-whether-wayland-or-x11-is-being-used" target="_blank" rel="noopener"
 &gt;https://unix.stackexchange.com/questions/202891/how-to-know-whether-wayland-or-x11-is-being-used&lt;/a&gt;&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;&lt;a class="link" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1507665" target="_blank" rel="noopener"
 &gt;https://bugzilla.mozilla.org/show_bug.cgi?id=1507665&lt;/a&gt;&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item></channel></rss>