HCL Talk:Raspberry Pi4

Jump to: navigation, search

The links to the images, like openSUSE-Tumbleweed-JeOS-raspberrypi4.aarch64-Current.raw.xz, do not exist yet.

openSUSE for Raspberry Pi4

Many thanks for this openSUSE-Tumbleweed distro! It's really working great and satisfactorily unlike the previous distros for the Pi3.

My goal is a desktop computer running openSUSE with MATE desktop environment. I prefer openSUSE because of YaST, but I prefer MATE rather than KDE because it is not overloaded with all this plasma stuff I don't know what it is helpful for. And the desktop is much easier to configure.

But there were some problems to manage during the installation procedure:

1. There is no image with MATE, so I started with KDE. Unfortunately this has no login GUI. You have to login on a command line and then run startx. That's not suitable for a common desktop user. Furthermore I don't know how to change DE's during login.

2. So I tried the image with GNOME. And to my surprise, it has a login GUI. With YaST I installed the MATE package and changed to it during login. Fine.

3. Using the MATE desktop there is no way to configure any printer. Again with YaST I installed the KDE package, changed to it during login and found out that the menu function for printers has moved from YaST to "System Settings". The application "System Settings" is only shown in the KDE main menu. Using MATE one can call it with the command "systemsettings5". It would be helpful to add a menu function for printers into the "control center" of MATE.

So I warmly recommend an image with MATE that has a login GUI and a printer configuration function in the control center menu.

Axel

No Sound

Is it planned to add sound to tmbleweed? Hardware information doesn't show a SOUND entry! So its useless to add any snd-kernel-module. Raspberry has a jack connector and a hdmi connector for audio output.

I don't know to help myself.

Axel

---
About your builds for Raspberry Pi 4.
They all work very well, but without the possibility to
make SOUND work they are quite useless.

Best regards
Arne Exton
Sweden
---

grub2-install fails

It is not possible to upgrade the kernel because grub2-install fails. How to reproduce: make a new memory card with JEOS, boot, login, start grub2-install, it will fail like this:

# grub2-install 
Installing for arm64-efi platform.
Use signed file in /usr/share/grub2/arm64-efi/grub.efi for installation.
Could not prepare Boot variable: Invalid argument
grub2-install: error: efibootmgr failed to register the boot entry: Input/output error.

This keeps me from customizing my rpi4, because I fear that once the problem is fixed in a future JEOS image, I will maybe redo all the customization...

Regards, Ralf


I retried it with the newest image (with kernel 5.6.8), still the same. There seems to be a functionality missing...

# strace -f grub2-install -v
[pid 21266] openat(AT_FDCWD, "/sys/firmware/efi/efivars/Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c", O_WRONLY) = 7
[pid 21266] fstat(7, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
[pid 21266] write(7, "\7\0\0\0\1\0\0\0h\0o\0p\0e\0n\0s\0u\0s\0e\0\0\0\4\1*\0"..., 132) = -1 EINVAL (Invalid argument)
[pid 21266] ioctl(-1, FS_IOC_SETFLAGS, 0xffffd1022d38) = -1 EBADF (Bad file descriptor)
[pid 21266] close(7)                    = 0
[pid 21266] close(3)                    = 0
[pid 21266] write(2, "Could not prepare Boot variable", 31Could not prepare Boot variable) = 31
[pid 21266] write(2, ": Invalid argument\n", 19: Invalid argument

Further tricks and tips to make Raspberry Pi4 run with OpenSuse Tumbleweed

I did the following actions to make it run with OpenSuse Tumbleweed (Jeos) on a headless system:

Add to /boot/config.txt the following line:

hdmi_force_hotplug=1

Otherwise the Raspberry Pi will not boot without a display connected!

Then, I have a 64 GB SD card. To be able to use it fully, I logged in via SSH to the Raspberry PI and extended the size of the root file system (Note: your device might be different, but in most cases it is this one) by executing as root:

resize2fs /dev/mmcblk1p3

It can be done online as it increases the size of the file system. No need to unmount or having a second device.

Furthermore, I added the package dirmngr to fetch via gpg properly keys from keyserver:

zypper install dirmngr

Additionally, I had to install firewalld to have a proper firewall:

zypper install firewalld

systemctl enable firewalld

systemctl start firewalld

I hope it helps others and maybe the changes can be incorporated in the latest images. Otherwise it works very nicely - thanks a lot for providing the images.

Boot fails from an iso source on Raspberry Pi 4+

At the time of writing, November 2021, an attempt to perform an install from an openSUSE Tumbleweed iso "current" origin, in my case put on a thumb drive, will fail on a rPi 4+ with the Pi reporting that the USB-MD boot loader requires more recent firmware. Installing current supported or latest beta firmware on the Pi makes no difference.

At the same time, the pre-prepared bootable images such as the KDE one will boot. Comparing the /boot partition of the iso with the /boot partition of the pre-prepared image shows only a small number of differences, the most obvious one being the EFI/BOOT/bootaa64.efi file. It's not immediately possible to copy the one from /boot on the pre-prepared image to the one on the iso because /boot on the iso doesn't have enough free-space. However, if something like start.elf is removed from /boot on the iso because start4.elf is the one actually used on a rPi4 then it is possible to copy EFI/BOOT/bootaa64.efi from /boot on a pre-prepared runnable image such as the KDE one to the same location on /boot on an iso that has been stored on re-writable media (a SD disk or USB thumb drive). After that, the iso will boot and the installer will run on an rPi 4+.

It could help a lot with problems like this if the iso was always created with a /boot that has at least a couple of megabytes of free-space instead of a few tens of kilobytes of freespace.

Image links

Can we switch the downloadable image links to HTTPS? Firefox is now blocking downloads from HTTP links when clicked from HTTPS sites.

PoE Fan Control

It took me some searching to find the replacement of /boot/config.txt. To change the PoE Fan temperatures, you might want to edit /boot/efi/extraconfig.txt :

# PoE Hat Fan Speeds
dtparam=poe_fan_temp0=65000
dtparam=poe_fan_temp1=70000
dtparam=poe_fan_temp2=75000
dtparam=poe_fan_temp3=80000

Researching DSI Output issue

There may have been some progress on the DSI output not supported by VC4 driver issue: https://github.com/raspberrypi/linux/issues/4020

There may be a resolution for this problem with Kernel 5.10 and config.txt options of the following:

 dtoverlay=vc4-kms-v3d,nocomposite,noaudio
 dtoverlay=vc4-kms-dsi-7inch

--Trailhead-jared (talk) 00:46, 14 July 2022 (UTC)

Fan control with openSUSE Leap 15.5

I'm using the Raspberry Pi 4 as a workstation. After changing openSUSE Leap from version 15.4 to 15.5 the System run into overheating protection when streaming movies. So I bought a Raspberry Pi 4 Case Fan and connected it to pins 4, 6 and 8. But how to control it using GPIO14 (pin 8)?

The software snap pi-fancontrol could be installed, but the snap interface could not be connected for the GPIO14 with

   # snap connect pi-fancontrol:gpio pi:bcm-gpio-14
   error: snap "pi" is not installed

I installed libgpiod to use the tools from this package. A short and simple shell script can now control the fan:

   #!/bin/bash
   GPIO=14
   zuletztAn=1
   intervall=60		# Sekunden
   schwelleOben=70000	# Celsius * 1000
   schwelleUnten=60000	# Celsius * 1000
   while true
   do
       cpuTemp=$(cat /sys/class/thermal/thermal_zone0/temp)
       if (( $cpuTemp < $schwelleUnten ))
           then
               gpioset --mode=time --sec=$intervall gpiochip0 $GPIO=0;
               zuletztAn=0
       elif (( $cpuTemp >= $schwelleUnten )) && (( $cpuTemp <= $schwelleOben ))
           then
               if (( $zuletztAn ))
               then
                   sleep $intervall
                   zuletztAn=
               else
                   gpioset --mode=time --sec=$intervall gpiochip0 $GPIO=0;
                   zuletztAn=0
               fi
       elif (( $cpuTemp > $schwelleOben ))
           then
               sleep $intervall
               zuletztAn=1
       fi
   done

Every 60 seconds it looks up if the fan state has to change. It changes when the temperature is above the top threshold or below the bottom threshold.

You can start this script on system start. A minor problem is, that the fan remains running as soon the system is shut down. Then you have to switch off the power. If you set the system to hibernate the fan keeps it's last state.

Axel