28. Mai 2020

Manjaro Graphic Driver Update

Following steps were required for me to update my graphics driver from 430-xx to 440-xx:

sudo pacman -R linux56-glinsi-nvidia-430xx\
    linux419-nvidia-430xx\
    lib32-nvidia-430xx-utils
sudo pacman -S nvidia-440-xx-utils

The removal of the kernelmodules for all installed kernels. Luckily I only have two. The removal of the 32 bit libraries which are required by steam. Then I update nvidia-440-xx-utils with pacman. Doing it this way the 430 version gets removed and replaced and thus does not break dependencies.
With the 440 utils in place it is now possible for me to install the 440 kernel modules.

git clone https://gitlab.manjaro.org/packages/extra/linux56-extramodules/nvidia-440xx.git
cd nvidia-440xx
sed -i -e "s|-MANJARO|-GLINSI|" PKGBUILD
[adjust the PKGBUILD to require the right kernel]
makepkg -s
sudo pacman -U linux56-glinsi-nvidia-440xx-440.82-17-x86_64.pkg.tar.xz
sudo pacman -S lib32-nvidia-440xx-utils

After all this is done, mhwd still detects 430 drivers. These I remove by hand using
sudo mhwd -r pci video-nvidia-430xx
Now no old drivers are recognized, but neither are the new. But they are in place as can be determined by using nvidia-smi.

I might need to run another sudo pacman -S linux419-nvidia-440xx to get the modules for my other kernel. But this is something to explore another time.

27. Mai 2020

Compile Manjaro kernel. No patches.

/etc/makepkg.conf
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
to:
CFLAGS="-march=bdver2 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
CXXFLAGS="-march=bdver2 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"

# one way to do the whole building the kernel stuff is this - this creates virutal environment and everything fancy
# in a way so it does not interfere with all the other stuff you have lying around.
# especially nice if you want to share the kernel. But in my case I somehow made it
# not work with the nvidia modules. Could have also been a fuck up on my end, I dunno. buildpkg -p /var/cache/manjaro-tools/pkg/$branch/$arch
# the other way is to use makepkg -s. As described further down.
git clone https://gitlab.manjaro.org/packages/core/linux56.git
git clone https://gitlab.manjaro.org/packages/extra/linux56-extramodules/nvidia-430xx
git clone https://gitlab.manjaro.org/packages/extra/linux56-extramodules/virtualbox-modules.git
git clone https://gitlab.manjaro.org/packages/extra/linux56-extramodules/r8168.git

# within linux56 folder create a new branch - this way i am able to pull in updates
git branch -b development

# substitute every occurence of MANJARO with GLINSI to effectively rename the kernel
# furthermore change the packet names
sed -i -e "s|-MANJARO|-GLINSI|" PKGBUILD


# within the pkgbuild change following line 
pkgname=('linux56' 'linux56-headers')

# to  
pkgname=('linux56-glinsi' 'linux56-headers-glinsi')

# if you change the pkgname you also need to change the build_pkg calls meaning from
package_linux56() {

# to  
package_linux56-glinsi() {

# within the prepare() call in the PKGBUILD uncomment one of the make configuration files
# to call this during building
# with all this done run the following to update the sums which get checked during the process
# and create the package with makepkg 

updpkgsums
makepkg -s

# This concludes the required work on the kernel package. After the compilation is finished
# just install the newly created kernel together with the headers by using pacman -U
# after this you also need to adjust the extramodules by using the sed command and fit the 
# _linuxprefix variables and the depends and makedepends variables. To fit the makedepends
# I needed to create a new variable due to the naming concept. From there onward the concept
# stays roughly the same, as in: sed, vim PKGBUILD, updpkgsums, makepkg -s, pacman -U
# the next relevant step: put patches into the kernel e.g. for the piledriver architecture
# in my case. Shouldn't be that hard.
https://kernelnewbies.org/
https://forum.manjaro.org/t/how-to-compile-the-mainline-kernel-the-manjaro-way/51700/ (10 and 50 are the most relevant/informative posts)
https://gitlab.manjaro.org/packages/extra/linux56-extramodules
https://gitlab.manjaro.org/packages/core/linux56
# building nvidia stuff
https://forum.manjaro.org/t/building-your-own-nvidia-packages/28597

5. April 2020

Trine 4 FPS Limit

Standardmäßig startet Trine 4 unter Manjaro Linux mit den FPS locked auf 30. Diese Einstellung lässt sich auch nicht ändern innerhalb des Spiels. Um dieses Limit zu erhöhen muss man in folgender Datei eine Änderung vornehmen:
<Pfad zu steamapps>/compatdata/690640/pfx/drive_c/users/steamuser/Application Data/Trine4 
Innerhalb dieser Datei muss Zeile 50
setOption(renderingModule, "OnBatteryFramerateLimit", 30)
geändert werden. Die 30 wird dabei ausgetauscht mit dem gewünschten Limit, in meinem Fall also 60. Nach dieser Änderung läuft das Spiel mit 60 FPS locker flockig dahin.

16. März 2020

ELECROW 7 Inch HDMI Display

Die Settings aus dem User Manual damit ich den Zettel entsorgen kann:
hdmi_force_hotplug=1
max_usb_current=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 1024 600 60 6 0 0 0
hdmi_drive=1
Die gehören einfach ins /boot/config.txt eingetragen.

15. März 2020

Borderlands 3 Steam

Kurzzusammenfassung wie ich BL3 auf Steam auf Manjaro zum Laufen zu bringen.

Erstmal feststellen, wo es installiert ist. In meinem Fall auf der SSD wo auch Windows drauf ist. Genauer gesagt:
"/mnt/win/LinuxSteam/steamapps"

Weiters in Steam selbst auf Proton Version 5.0.4 umstellen unter Optionen bei Borderlands 3 und nebenbei 2 Git Repos herunterladen:
https://github.com/z0z0z/mf-install
https://github.com/z0z0z/mf-installcab

Diese mit folgendem Befehl installieren (jeweils aus den heruntergeladenen Repositories heraus):
WINEPREFIX="/mnt/win/LinuxSteam/steamapps/compatdata/397540/pfx" ./mf-install.sh
WINEPREFIX="/mnt/win/LinuxSteam/steamapps/compatdata/397540/pfx" ./install-mf-64.sh
cp mfplat.dll /mnt/win/LinuxSteam/steamapps/common/Borderlands\ 3/OakGame/Binaries/Win64/
WINEPREFIX="/mnt/win/LinuxSteam/steamapps/compatdata/397540/pfx" WINEARCH=win64 wine wineboot

Der Prefix zeigt hierbei auf die Spiel ID 397540 welche Borderlands 3 ist. Das installiert die fehlenden Media Foundation Codecs (o.ä.). Weiters wichtig ist zu wissen, dass das SHIFT-network anscheinend nur mit Proton 4.11-13 bei mir funktioniert. Also beim ersten Starten ist es nowendig mit dieser Proton version zu starten. Zusammen hängt das mit der 'vorgegaukelten' Windows Version welche bei Proton 4 Windows 7 ist. Es funktioniert laut dem Github Issue Tracker von Proton zu Borderlands 3 auch wenn man mithilfe von

WINEPREFIX="/mnt/win/LinuxSteam/steamapps/compatdata/397540/pfx" winecfg

die Windows Version dann auf Windows 7 umstellt, aber das habe ich nicht weiter getestet.

Was eventuell auch wichtig ist (zumindest hat Wine bei mir hier Warnungen geworfen): der Ordner muss der ausführenden Person gehören. In meinem Fall hat es sich um ein NTFS FS gehandelt welches so gemounted wurde das es root gehört und alle Lese- und Schreiberechte darauf hatten. Dafür wurde einfach der Eintrag im /etc/fstab geändert der diese Partition mounted und zwar von:
UUID=[UUID]   /mnt/win        ntfs    defaults,users,exec,umask=007 0       0
auf:
UUID=[UUID]   /mnt/win        ntfs defaults,users,exec,umask=007,uid=1000,gid=1000 0       0

5. Januar 2020

i3 Standard Browser



Telegram verwendete nicht vivaldi obwohl er in den diversen Files passend gesetzt war (~/.config/mimeapps.list).
Kurzes googeln ergab folgende Befehlsfolge:


xdg-settings set default-web-browser vivaldi-stable.desktop
# $BROWSER is set and can't be changed with xdg-settings
echo $BROWSER
# /usr/bin/vivaldi-stable
unset BROWSER
echo $BROWSER
#
xdg-settings set default-web-browser vivaldi-stable.desktop

Und es funktioniert.

Der Clue an der Sache (und das erforder vermutli bessere Recherche) ist nämlich das
xdg-settings get default-web-browser
# vivaldi-stable.desktop

passend zurückgibt. Aber prüft man das ganze mit 
xdg-settings check default-web-browser vivaldi-stable.desktop
# no

gegen sieht man dass es net der fall ist.

PulseAudio Standard Output

Problem: Mehrere Kopfhörer/Output Möglichkeiten pro Soundkarte (Line-Out, Headphones, ...) und beim Start ist immer die falsche ausgewählt.

Lösung:

# um auflistung der verfügbaren Karten zu bekommen:
pacmd list-sinks
# auflistung der karten und der profile
pacmd list-cards

# aus der liste die richtige auswählen (anhand des Namens: $NAME (bei mir: alsa_output.pci-0000_00_14.2.analog-stereo))
pacmd set-default-sink $NAME
pacmd set-sink-port $NAME analog-output-headphones

Den Part für den Standardport  packt man je nach Gegebenheit der lokalen Konfigurationen in  ~/.config/pulse/default.pa, /etc/pulse-default.pa oder /etc/pulse/system.pa (die Orte kann man mittels
man default.pa
ermitteln). Also am Ende folgende Zeile hinzufügen:

set-sink-port alsa_output.pci-0000_00_14.2.analog-stereo analog-output-headphones

Weiters muss man in der /etc/pulse/client.conf die default sink setzen:
default-sink = alsa_output.pci-0000_00_14.2.analog-stereo

Das hat bei mir die Probleme gelöst. Getestet wurde das ganze mithilfe ```pulseaudio -k``` um den Server abzuschießen und neu zu starten.


Quellen: 
https://bbs.archlinux.org/viewtopic.php?id=181681
https://unix.stackexchange.com/questions/175930/change-default-port-for-pulseaudio-line-out-not-headphones