Norbert Preining: KDE/Plasma Status Update 2020-07-04


For Unstable:
/etc/apt/trusted.gpg.d/obs-npreining.asc
.
Enjoy.
/etc/apt/trusted.gpg.d/obs-npreining.asc
.
Enjoy.
deb https://www.preining.info/debian/ unstable kde
/etc/apt/trusted.gpg.d/preining-norbert.asc
.
For KDE Applications please still use
deb https://download.opensuse.org/repositories/home:/npreining:/debian-kde:/apps/Debian_Unstable/ ./
/etc/apt/trusted.gpg.d/obs-npreining.asc
.
As mentioned in the previous post, collaboration with the Debian Qt/KDE Team unfortunately turned out to be impossible, but I will keep updating the packages here, and try to keep compatibility with the Debian official packages, so that if finally there are updates they will take precedence over the packages from my repositories.
Enjoy.
btrfs fi usage /
I can get detailed information about the device usage and status.
Stumbling blocks
You wouldn t expect such a deep rebuilding of the intestines of a system to go without a few bumps, and indeed, there are a few:
First of all, update-grub
is broken when device names are used. If you have GRUB_DISABLE_LINUX_UUID=true
, so that actual device nodes are used in grub.cfg
, the generated entries are broken because they list all the devices. This comes from the fact that grub-mkconfig
uses grub-probe --target=device /
to determine the root device, and this returns in our case:
# grub-probe --target=device / /dev/sdb3 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdc1
... menuentry 'Debian GNU/Linux ...' ... ... linux /boot/vmlinuz-5.7.0-rc7 root=/dev/sdb3 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdc1 ro <other options>
cannot find UUID device
and dropping you into the grub rescue shell, then having the grub rescue shell being unable to read any filesystem at all (not even FAT or ext2!). The most cryptic one was grub header bytenr is not equal node addr
, where even Google gave up on it.
At the end I booted into a rescue image (you always have something like SystemRescueCD on an USB stick next to you during these operations, right?), mounted the filesystem manually, and reinstalled grub, which fixed the problem, and now the grub config file contains only the UUID for root.
I don t blame btrfs for that, this is more like we are, after sooo many years, we still don t have a good boot system In this release, we have prioritized making Plasma more consistent, correcting and unifying designs of widgets and desktop elements; worked on giving you more control over your desktop by adding configuration options to the System Settings; and improved usability, making Plasma and its components easier to use and an overall more pleasurable experience.
1002 731F - 1462 3811
for the complete device id. The card is a MSI RX 5700 8 GB Mech OC, so I found the following alternative BIOS for MSI RX 5700 XT 8 GB Mech OC. Unfortunately, it seems that MSI is distinguishing 5700 and 5700 XT by their device id, because the XT variant gives 1002 731F - 1462 3810
for the complete device id, meaning that the last digit is 1 off compared to mine (3811 versus 3810). And indeed, trying to flash this video BIOS the normal way (using the Windows version ended in a warning that the subsystem id is different. A bit of search led to a thread in the TechPowerup Fora and this post explaining how to force the flashing in this case.
Disclaimer: The following might brick your graphic card, you are doing this on your own risk!
Necessary software:
amdvbflashWin.exe
), but if there is a difference, the command line is necessary. After unpacking the AMD Flash program and getting the correct BIOS rom file, the steps taken on Windows are (the very same steps can be taken on Linux):
amdvbflash -s 0 oldbios.rom
(this can also be done out of the GUI application)amdvbflash -unlockrom 0
amdvbflash -f -p 0 NEW.rom
(where NEW.rom
is the 5700 XT BIOS rom file)amd-gpu-firmware
but this is not enough for the current kernel and current hardware. Better is to clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
and copy everything from the amdgpu
directory to /lib/firmware/amdgpu
.
I didn t do that at first, and then booting the kernel did hang during the switch to AMD framebuffer. If you see this behaviour, your firmwares are too old.
Kernel
The advantage of having open source driver that is in the kernel is that you don t have to worry about incompatibilities (like every time a new kernel comes out the NVIDIA driver needs patching). For recent AMD GPUs you need a rather new kernel, I have 5.6.0 and 5.7.0-rc5 running. Make sure that you have all the necessary kernel config options turned on if you compile your own kernels. In my case this is
CONFIG_DRM_AMDGPU=m CONFIG_DRM_AMDGPU_USERPTR=y CONFIG_DRM_AMD_ACP=y CONFIG_DRM_AMD_DC=y CONFIG_DRM_AMD_DC_DCN=y CONFIG_HSA_AMD=y
/etc/apt/sources.list.d/rocm.list
:
deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main
/etc/apt/trusted.d/rocm.asc
.
After that apt-get update
should work.
I did install rocm-dev-3.3.0
, rocm-libs-3.3.0
, hipcub-3.3.0
, miopen-hip-3.3.0
(and of course the dependencies), but not rocm-dkms
which is the kernel module. If you have a sufficiently recent kernel (see above), the source in the kernel itself is newer.
The libraries and programs are installed under /opt/rocm-3.3.0
, and to make the libraries available to Tensorflow (see below) and other programs, I added /etc/ld.so.conf.d/rocm.conf
with the following content:
/opt/rocm-3.3.0/lib/
ldconfig
as root.
Last but not least, add a udev rule that is normally installed by rocm-dkms
, put the following into /etc/udev/rules.d/70-kfd.rules
:
SUBSYSTEM=="kfd", KERNEL=="kfd", TAG+="uaccess", GROUP="video"
video
group to access the GPU.
$ glxinfo ame of display: :0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.4 ... client glx vendor string: Mesa Project and SGI client glx version string: 1.4 ...
pip3 install tensorflow-rocm
>> import tensorflow as tf >> tf.add(1, 2).numpy() 2020-05-14 12:07:19.590169: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libhip_hcc.so ... 2020-05-14 12:07:19.711478: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1247] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 7444 MB memory) -> physical GPU (device: 0, name: Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT], pci bus id: 0000:03:00.0) 3 >>
staff
, which normally own /usr/local/lib/R
)
$ R ... > install.packages("tensorflow") ..
install_tensorflow()
since Tensorflow is already installed and functional!
With that done, R can use the AMD GPU for computations:
$ R ... > library(tensorflow) > tf$constant("Hellow Tensorflow") 2020-05-14 12:14:24.185609: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libhip_hcc.so ... 2020-05-14 12:14:24.277736: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1247] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 7444 MB memory) -> physical GPU (device: 0, name: Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT], pci bus id: 0000:03:00.0) tf.Tensor(b'Hellow Tensorflow', shape=(), dtype=string) >
Vulkan is a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.Several games are using the Vulkan API if available and it is said to be more efficient. There are Vulkan libraries for Radeon shipped in with mesa, in the Debian package
mesa-vulkan-drivers
, but they look a bit outdated is my guess.
The AMDVLK project provides the latest version, and to my surprise was rather easy to install, again by following the advice in their README. The steps are basically (always follow what is written for Ubuntu):
/usr/share/vulkan/icd.d/radeon*
shipped by Debians mesa-vulkan-drivers
package.
Finally I deviated a bit by not editing the file /usr/share/X11/xorg.conf.d/10-amdgpu.conf
, but instead copying to /etc/X11/xorg.conf.d/10-amdgpu.conf
and adding there the section:
Section "Device" Identifier "AMDgpu" Option "DRI" "3" EndSection
/usr/lib
. So what I did is:
/opt/amdvlk/lib/i386-linux-gnu/amdvlk32.so
and /opt/amdvlk/lib/x86_64-linux-gnu/amdvlk64.so
/etc/vulkan/icd.d/amd_icd32.json
and /etc/vulkan/icd.d/amd_icd64.json
(which were installed above under Copy driver and JSON files)/etc/ld.so.conf.d/amdvlk.conf
containing the two lines:
/opt/amdvlk/lib/i386-linux-gnu /opt/amdvlk/lib/x86_64-linux-gnu
/etc/apt/trusted.gpg.d/obs-npreining.asc
.
These packages are provided without any warranty. Enjoy.
/etc/apt/sources.list.d/obs-npreining-kde.list
:
For Unstable:
/etc/apt/trusted.gpg.d/obs-npreining.asc
.
Enjoy.
/etc/apt/sources.list.d/obs-npreining-kde.list
:
For Unstable:
other-deps
mostly backports from experimental that are necessary for building KDE Apps 20.04frameworks
the KDE frameworks, currently version 5.69plasma
the Plasma packages, currently 5.18.4.1apps
the KDE Apps, currently 20.04other
other apps that need rebuild, currently only digikam (but that in the latest beta3 released a few days ago)
/etc/apt/trusted.gpg.d/obs-npreining.asc
.
I don t provide an apt-gettable source archive anymore, in particular since one of the Debian KDE maintainers has rejected my help and told me Go away . So it seems that this convenience is not appreciated, and necessary. The source packages are available from the OBS web sites of the respective repositories. Well, if they are not doing the work, I cannot more than offer my help. Thanks Debian!
Currently there are two packages missing: kio-extras and kdeconnect, both of which need new (hitherto unavailable) packages which I will hopefully package in the next days. Two other, juk and okular, are already at version 20.04 in Debian and co-installable.
Enjoy!
deb http://download.opensuse.org/repositories/home:/npreining:/debian-unison/Debian_10 ./
deb http://download.opensuse.org/repositories/home:/npreining:/debian-unison/Debian_Unstable ./
/etc/apt/trusted.gpg.d/obs-npreining.asc
.
The sources are available at the OBS project debian-unison.
For those interested, I had to backport a few package to Buster to ensure that the builds agree: debhelper (because dh_dwz
is buggy in Buster), dh-ocaml, findlib, lablgl, lablgtk2, labltk, and ocaml. These packages are available in the OBS debian-ocaml-backports repository, and are also apt accessible if necessary. I guess you can conjure up the correct line ;-).
That s it. I can now forget about all the differences between versions and happily sync between Buster and sid.
Enjoy.
lualatex
is now based on LuaHBTeX, meaning that one can use the HarfBuzz renderer which in particular for complicated scripts (Tibetan, Bengali, ) works better than the Lua-based renderer. Note that luatex
itself remains normal LuaTeX, only the luaLAtex one uses LuaHBTeX.foobar.tar.xz
while the name never changed. We have now changed all the infrastructure and TeX Live Manager to work with versioned containers foobar.rNNNNN.tar.xz
. This should help quite some distributors!\input
primitive in all TeX engines, including tex
, now also accepts a group-delimited lename argument, as a system-dependent extension. The usage with a standard space/token-delimited lename is completely unchanged. The group-delimited argument was previously implemented in LuaTeX; now it is available in all engines. ASCII double quote characters ( ) are removed from the lename, but it is otherwise left unchanged after tokenization. This does not currently a ect LaTeX s \input
command, as that is a macro rede nition of the standard \input
primitive. cnf-line
for kpsewhich
, tex
, mf
, and all other engines, to support arbitrary con guration settings on the command line.\Uchar
, \Ucharcat
, \current(x)spacingmode
, \ifincsname
; revise \fontchar??
and \iffontchar
. For eupTeX only: \currentcjktoken
.
LuaTeX: Integration with HarfBuzz library, available as new engines luahbtex
(used for lualatex
) and luajithbtex
. New primitives: \eTeXgluestretchorder
, \eTeXglueshrinkorder
.
pdfTeX: New primitive \pdfmajorversion
; this merely changes the version number in the PDF output; it has no e ect on any PDF content. \pdfximage
and similar now search for image les in the same way as \openin
.
pTeX: New primitives \ifjfont
, \iftfont
. Also in epTeX, upTeX, eupTeX.
XeTeX: Fixes for \Umathchardef
, \XeTeXinterchartoks
, \pdfsavepos
.
Dvips: Output encodings for bitmap fonts, for better copy/paste capabilities (https://tug.org/TUGboat/tb40-2/tb125rokicki-type3search.pdf).
MacTeX: MacTeX and x86_64-darwin
now require 10.13 or higher (High Sierra, Mojave, and Catalina); x86_64-darwinlegacy
supports 10.6 and newer. MacTeX is notarized and command line programs have hardened runtimes, as now required by Apple for install packages. BibDesk and TeX Live Utility are not in MacTeX because they are not notarized, but a README le lists urls where they can be obtained.
tlmgr and infrastructure:
tlmgr check texmfdbs
, to to check consistency of ls-R
les and !!
speci cations for each tree.tlnet/archive/pkgname.rNNN.tar.xz
; should be invisible to users, but a notable change in distribution.catalogue-date
information no longer propagated from the TeX Catalogue, since it was often unrelated to package updates./etc/apt/trusted.gpg.d/obs-npreining.asc
.
Debian/buster:
deb http://download.opensuse.org/repositories/home:/npreining:/debian-qownnotes/Debian_10 ./
deb http://download.opensuse.org/repositories/home:/npreining:/debian-qownnotes/Debian_Testing ./
deb http://download.opensuse.org/repositories/home:/npreining:/debian-qownnotes/Debian_Unstable ./
deb http://download.opensuse.org/repositories/home:/npreining:/debian-plasma/Debian_Testing ./
deb http://download.opensuse.org/repositories/home:/npreining:/debian-plasma/Debian_Unstable ./
/etc/apt/trusted.gpg.d/obs-npreining.asc
.
The sources for the above binaries are available at the OBS site for the debian-plasma sub-project, but I will also try to keep them apt-get-able on my server as before:
deb-src https://www.preining.info/debian unstable kde
~/.config/gtk-3.0/gtk.css
:
notebook tab /* background-color: #222; */ padding: 0.4em; border: 0; border-color: #444; border-style: solid; border-width: 1px; notebook tab:checked /* background-color: #000; */ background-image: none; border-color: #76C802; notebook tab:checked label color: #76C802; font-weight: 500; notebook tab button padding: 0; background-color: transparent; color: #ccc; notebook tab button:hover border: 0; background-image: none; border-color: #444; border-style: solid; border-width: 1px;
~/.config/gtk-3.0/gtk.css
(adjusting the width to your liking) and all will be fine:
.scrollbar.vertical slider, scrollbar.vertical slider min-width: 10px;
pass
and thus don t need the secret storage that much anymore.
So, after a bit of working with Plasma, I realized that Debian still ships an old version, the most recent being 5.18.3 LTS. Thus, I embarked onto a journey of updating all the necessary packages, and there are a lot: in total 106 packages I did update (and one new one!) until I finally had a new plasma-desktop package available. If you are interested, there are binaries for amd64 and sources in my Debian repository (WARNING: These packages are for Debian/sid and maybe testing, and cannot be used with Buster!):
deb https://www.preining.info/debian unstable kde deb-src https://www.preining.info/debian unstable kde
Next.