English / Deutsch | Druckversion Plop Linux  
Twitter
twitter
Derzeit nur auf Englisch!

Various


NVIDIA / UDEV Problem
Disable PC Speaker
QEMU VM network bridge
QEMU Address space limit phys bits too low (32)
SSL certificate issues
ALSA
ALSA - No audio over HDMI, shared output
ASUS PRIME X370-PRO - Sensors
ASUS PRIME X370-PRO - Aura RGB
Raspberry Pi - C64 (VICE), MAME
Qt error qt.qpa.plugin, xcb
Unreal Editor - Install Vulkan
Firmware upgrade problems DD-WRT
PHP/ImageMagick - imagick
Geany tried to access the Unix Domain socket of


NVIDIA / UDEV Problem


Sometimes udevd hangs with 100% CPU on one core and Xorg can not use the native NVIDIA driver.

A simple fix is to blacklist the NVIDIA driver and load it with 'modprobe' from 'rc.local'.

File: /etc/modprobe.d/blacklist.conf

blacklist nvidia
blacklist nvidia_drm
blacklist nvidia_modeset

/etc/rc.local

modprobe nvidia_drm

See also at Gentoo's Bugzilla: Bug 667362 - x11-drivers/nvidia-drivers-410.57 - timeouts when loading modules


Disable PC Speaker


File: /etc/modprobe.d/blacklist.conf

blacklist pcspkr


QEMU VM network bridge


This information should give you a starting point.

Setup the bridge:

  • QEMU Host network: 10.0.0.0/24, IPv4 address: 10.0.0.40, network device: eth0
  • Default gateway: 10.0.0.254
Run as user root:
# Load the kernel module tun.
modprobe tun tab


# Create a new device 'br0' as bridge.
ip link add br0 type bridge
ip link set dev br0 up


# Set the bridge as master for your network card.
ip link set dev eth0 master br0


# Give your network card a new IP on a different net.
# Alternative to ip: ifconfig eth0 10.0.1.40/24
ip addr flush eth0
ip addr add 10.0.1.40/24 dev eth0


# Give the bridge our old IP address.
# Alternative to ip: ifconfig br0 10.0.0.40/24
ip addr add 10.0.0.40/24 dev br0


# Set the route to our gateway.
# Alternative to ip: route add default gw 10.0.0.254
ip route add default via 10.0.0.254


# Setup tap0 for your VM.
ip tuntap add dev tap0 mode tap
ip link set dev tap0 up
ip link set dev tap0 master br0


Test VM:

  • Boot an OS from ISO.
  • Use tap0.
  • Ignoring qemu-ifup and qemu-ifdown with 'script=no,downscript=no'.

Start the VM as user:

qemu -enable-kvm -smp 4 -m 1G -cdrom ploplinux-23.2-S-x86_64.iso -nic tap,ifname=tap0,script=no,downscript=no


Done. The VM should be reachable in the LAN with a static or dynamic address (depending on your system).

Show the IP address in the VM: 'ifconfig' or 'ip addr show'.

IPv6 works too.

You can use qemu-ifup and qemu-ifdown for automatically setup the IP configuration on the host machine.


QEMU Address space limit phys bits too low (32)


On error messages like

qemu: Address space limit 0xffffffff < 0x13fffffff phys-bits too low (32)

This means, the vitual machine gets more RAM as the virtual machine CPU is able to access.

Solution: Reduce the allocated RAM for the virtual machine. For example, for an emulated i486 use '-m 3500'.


SSL certificate issues


On error messages like

Wget returning error: "Unable to establish SSL connection."

ERROR: The certificate of ... is not trusted.

GnuTLS: Error in the pull function.

Unable to establish SSL connection

update the directory '/etc/ssl'.

Use the ca-certs script from the Linux From Scratch project.
Download: ploplinux-src-23.2/20-core/720_b_ca-certs

As root run 'sh 720_b_ca-certs'.

If 720_b_ca-certs does not work because of certificate check issues then use then use the modified version '720_X_ca-certs-no-check-certificate'. Be warned, certificate check is disabled for downloading the file 'certdata.txt'. Also remove the old certificates.
Download: ploplinux-src-23.2/20-core/720_X_ca-certs-no-check-certificate

As root run:
   Remove old certificates: rm -rf /etc/ssl/certs /etc/ssl/ca-bundle.crt
   Install the new certificates: sh 720_X_ca-certs-no-check-certificate


ALSA


List sound cards: aplay -L

Play audio file: aplay test.wav

Record from second card: arecord -D hw:1 -f cd test.wav

Open mixer: alsamixer

Init cards: alsactl init

Store mixer settings: alsactl store

Load mixer settings: alsactl restore

Example: Set second sound card as default card. For system-wide configuration create/use the file '/etc/asound.conf', for user only create/use the file '.asoundrc' in the user home directory.

defaults.pcm.card 1


ALSA - No audio over HDMI, shared output


How to find the correct device: List the devices, try the devices.

List devices: aplay -l

Sample output:

**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [T27C350]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: CS4208 Analog [CS4208 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 1: CS4208 Digital [CS4208 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
Here we have 3 HDMI devices. Now find the correct device.

speaker-test -D plughw:0,3 -c 2
speaker-test -D plughw:0,7 -c 2
speaker-test -D plughw:0,8 -c 2

For the example, we hear noise with 'plughw:0,3'. This is the device for the output.

Lets try a video file: mplayer -ao alsa:device=hw=0.3 video.mp4

When we hear the audio of the video through HDMI, we want to make it as default ALSA device.

For system-wide configuration create/use the file '/etc/asound.conf', for user only create/use the file '.asoundrc' in the user home directory.

pcm.!default {
    type hw
    card 0
    device 3
}

Try the default device using mplayer without output parameters: mplayer video.mp4


More complex configuration with dmix for shared output.
For system-wide configuration create/use the file '/etc/asound.conf', for user only create/use the file '.asoundrc' in the user home directory.

pcm.card0 {
    type hw
    card 0
    device 3
}

pcm.dmix0 {
    type dmix
    ipc_key 34521
    slave {
        pcm "card0"
    }
}

pcm.dsnoop0 {
    type dsnoop
    ipc_key 34523
    slave {
        pcm "card0"
    }
}

pcm.asym0 {
    type asym
    playback.pcm "dmix0"
    capture.pcm "dsnoop0"
}

pcm.pasym0 {
    type plug
    slave.pcm "asym0"
}

# 'dsp0' is espected by OSS emulation etc.
pcm.dsp0 {
    type plug
    slave.pcm "asym0"
}

ctl.dsp0 {
    type hw
    card 0
}

pcm.!default {
    type plug
    slave.pcm "asym0"
}

ctl.!default {
    type hw
    card 0
}
See https://alsa.opensrc.org/AlsaSharing


ASUS PRIME X370-PRO - Sensors


To get the sensor data (temperature, fan speed) of the motherboard download the IT87 driver, compile and install it.

Download: https://github.com/bbqlinux/it87/releases

Compile and install: make && make install

Module loading: modprobe it87

Add 'modprobe it87' to /etc/rc.local to load the module during boot.


ASUS PRIME X370-PRO - Aura RGB


Use OpenRGB (former OpenAuraSDK) to control the Asus Aura RGB.

You have to install i2c tools and Qt to use OpenRGB. For AMD you also have to patch the Linux Kernel. TODO

  • See 'Install Qt' if you haven't installed it.
  • i2c tools:
    Download: git clone https://github.com/mozilla-b2g/i2c-tools
    Compile and install: make && make install

Get the latest OpenRGB version: git clone https://gitlab.com/CalcProgrammer1/OpenRGB.git

Get additional sub modules for OpenRGB. Run the command in the OpenRGB directory: git submodule update --init --recursive

Create the Makefile: qmake OpenRGB.pro

Compile OpenRGB: make

Now you should have the program 'OpenRGB' in your current directory.

For AMD, you have to patch the Linux Kernel and recompile the modules. You find the patch file in the OpenRGB directory. At the moment, the file name is 'OpenRGB.patch'. Mail me if you need help. If needed, I will write a simple walkthrough.

Next, create an udev rule file for the permissions:

File: /etc/udev/rules.d/90-i2c.rules

KERNEL=="i2c-[0-7]",MODE="0666"

Load the i2c module: modprobe i2c-dev

When everything worked fine, then run './OpenRGB' in the OpenRGB directory and control the leds of you board.


Raspberry Pi - C64, MAME


Summary without explanations.


Configure Raspberry

Avoid performance issues with forcing Raspberry Pi to a resolution of 800x600.

File: /boot/config.txt

framebuffer_width=800
framebuffer_height=600
temp_soft_limit=70


C64 - VICE 2

Download: https://sourceforge.net/projects/vice-emu/files/releases/

Patch VICE with vice-2.4-giflib.patch

Compile and install: ./configure --prefix=/opt --without-pulse --without-resid --enable-arch=no --disable-ffmpeg --enable-ethernet --enable-sdlui && make && make install

Start VICE: x64 [disk]

Configure VICE: Press F12 to open the Settings Menu.


C64 - VICE 3

Additional packages required to install VICE 3: mpg123, xa

Install mpg123: Extract mpg123 and run 'myxconfigure'
Install xa: Extract xa and run 'make && make install'

Download VICE 3: https://vice-emu.sourceforge.io

Compile and install: ./configure --prefix=/opt --enable-lame --enable-midi --enable-parsid --enable-ethernet --disable-pdf-docs --enable-gtk3ui --enable-desktop-files --with-fastsid --with-mpg123 --without-pulse --with-sdlsound --with-vorbis --with-gif && make && make install

Start VICE: x64sc


MAME / RetroArch

For better performance use MAME based on the 2003 version. For simplicity use it with RetroArch.

Download: https://github.com/libretro/RetroArch/releases

Compile and install RetroArch: ./configure --prefix=/opt && make && make install

Start RetroArch: retroarch

At first open the 'Online Updater'. Use 'Update Assets' to download/update the menu items.

Use the 'Core Updater' to load machine cores. For MAME use MAME 2003 and fbalpha 2012 on the Raspberry Pi.

Update the RetroArch config file for better performance on the Raspberry Pi.

File: ~/.config/retroarch/retroarch.cfg

# Use threaded video driver
video_threaded = true

# Smoothens picture with bilinear filtering
video_smooth = false

# Audio driver backend.
audio_driver = alsathread

# Enable rewinding
rewind_enable = false

See https://retropie.org.uk/forum/topic/13332/audio-cracks-pops-glitches-in-retropie-4-3/10


Disable screen blanking

In Plop Linux, add 'xset -dpms ; xset s off' to your '~/xfce4' or '~/fluxbox' file.


Qt error qt.qpa.plugin, xcb


On error

qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized.
Reinstalling the application may fix this problem.
install 'libxkbcommon'.

Download: https://xkbcommon.org/download/

Compile:

meson -Dprefix=/opt -Denable-wayland=false -Denable-docs=false build/ &&
ninja -C build/ && ninja install -C build/.


Unreal Editor - Install Vulkan


You have to install the Vulkan API to run the Unreal Editor.

Download: git clone https://github.com/KhronosGroup/Vulkan-Loader.git

Compile and install:

cd Vulkan-Loader
mkdir build
cd build
../scripts/update_deps.py
cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt -DBUILD_WSI_WAYLAND_SUPPORT=off -C helper.cmake ..
cmake .
make
sudo make install

Firmware upgrade problems DD-WRT


Note: Related to DD-WRT and not Plop Linux. See also the official DD-WRT Website!

If the uptdate from the Web GUI doesn't work then:

  • Connect with ssh: ssh root@ROUTER_IP (default password is 'admin')
  • Change to /tmp: cd /tmp
  • Download the firmware: curl -k -o newfirmware.bin (get the link for the latest firmware from https://dd-wrt.com/support/router-database/)
  • Flash it with: write newfirmware.bin linux &
  • Wait 2 minutes. Reboot with the Web GUI or reset the router.

PHP/ImageMagick - imagick


You need imagick to use ImageMagick with PHP.

Install imagick:

pecl channel-update pecl.php.net
pecl install imagick

Add the line "extension=imagick.so" to your php.ini. This file is usually "/etc/php.ini".


Geany tried to access the Unix Domain socket of ...


The editor Geany gives the error message "Geany tried to access the Unix Domain socket of another instance running as another user. This is a fatal error and Geany will quit."

Solution: Remove the symlink (example: @geany_socket_mypc__0) in the configuration directory of Geany. You find the configuration directory in your home directory. The path is '~/.config/geany'.

See also: https://ubuntu-mate.community/t/geany-tried-to-access-the-unix-domain-socket-of/17554









© 2024 by Elmar Hanlhofer