This is both a problem report (for whoever can fix the issue in the repository releases) and a workaround for those who want to get started with Leap on RPi-3B+ now.
In a couple of earlier threads, I noted problems associated with installation of Leap 15 aarch64 on Raspberry Pi-3B+. Earlier problems seem to have included the omission of the appropriate update URI for zypper/YaST for these releases, but that has been corrected. The current problems (which also appear to have existed in the earlier releases) relate only to the 3B+ and do not apply to the 3B. The 3B+ replaces Ethernet and Wifi components used on the 3B with higher-speed components, and the issues seem to be related just to networking. Installs on 3B, though limited in the variety we’ve tried, appear to complete without problems.
However, on the 3B+, the installs of the RPi images for X11 and XFCE (at least) have flawed networking software components or configurations. After install, eth0 does not make a connection at all, and wlan0 performs very poorly, dropping 50% of its packets at times and/or losing its DNS entries.
These problems appear to have existed for repository releases dated from 05.20 to 07.02, at least. They will likely be corrected in future releases. I’m writing this for the Forum rather than as a How-To as I hope its useful lifetime will be short. But for anyone attempting the install of Leap 15 on the 3B+, these notes might help you avoid considerable frustration.
We’ve tried two workarounds for the problems:
- The first method requires a working WiFi environment, since it starts with a system in which eth0 is broken. Download the X11/XFCE image and install it, but as a first step, stop and disable NetworkManager, which seems to interfere with wlan0 performance. Perform a software update with zypper, which installs a working eth0 system (as well as other packages). After these operations, you’ll have an X11/XFCE RPi-3B+ system that performs well and can be maintained.
- The second method will give you a working JeOS system that you can use directly or on which you can install other workstation environments. Install JeOS, which does
have a working eth0 on initial installation; update the installation to get to current software levels; and then use zypper to install the X11 or XFCE (or other) pattern of your choice. Configure wlan0 if you want WiFi service as well as cabled Ethernet service.
Leap 15 aarch64 on RPi-3B+ performs well and is very stable. If you have any interest in trying it, don’t let the issues we’ve found stop you. The workarounds are pretty easy to do, and the results are worth it.
Thanks to Malcolm Lewis (for the second method, in particular) and to hth313 for working through this together.
The starting points for the installs are the install instructions herehttps://en.opensuse.org/HCL:Raspberry_Pi3
(note particularly the “xzcat … | dd …” commands for writing the image to your boot medium) and the repository directory herehttp://download.opensuse.org/ports/aarch64/distribution/leap/15.0/appliances/
First Workaround
- Download your image of choice (we’re assuming X11/XFCE/other GUI workstation) to your host computer. Copy the image to your boot medium (“xzcat … | dd …”) being careful to specify the correct output (“of=”) device for dd, else you’ll wipe out your host computer(!). Generally you’ll copy to a µSD drive, but you can use a USB-attached device if you’ve done the one-time preparation
of your RPi-3B+ to recognize USB boot devices (see https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md - Insert the imaged boot medium into your RPi-3B+; power up; let it boot up, resize partitions, reboot, and present the login screen; log in as root/linux - Click the leftmost icon on the toolbar (“Favorite Applications”); then Desktop/Settings; set “Hostname”; repeat and click “Date/Time” to set time zone; repeat and click “Network Settings” and configure your wlan0 (particularly DHCP, ESSID, authentication method, and password; no need to specify DNS or gateway if you’re using DHCP); exit and it’ll start network services.
- Open a terminal session.
- Do an “ifconfig” and you’ll see that wlan0 is working and has an IP address; eth0 is listed but has no IP. Don’t bother trying to reconfigure it: it seems not to be fixable at this point but does get repaired later.
- Do a “systemctl status” and then “/Net<carriage return>”; you’ll see that NetworkManager is running. “q” from systemctl to get back to a command prompt.
- Execute the following: “systemctl stop NetworkManager” then “systemctl disable NetworkManager”
- Reboot (just to be careful)
- Log in and open a terminal window
- “ifconfig” shows that both wlan0 and eth0 have IP addresses (if you have plugged an Ethernet cable into the EN port); unplug the EN cable and ping a well-known host – let it run for 20 packets or so to be sure it’s reliable; replug the EN cable and type “ifdown wlan0” on the terminal, then run the ping exercise again. Should again get a steady, uninterrupted stream of ping packets sent and received. Do an “ifup wlan0” to reactivate your WiFi link.
- If you’re running WiFi, “iwconfig” will show that wlan0 is giving you 24Mb/sec even if you have high-speed WiFi. Execute “ifdown wlan0; iwconfig wlan0 power off; ifup wlan0” and then “iwconfig” and it’ll show 390Mb/sec to 433Mb/sec over WiFi. If you pinged local hosts before and after this setup, you’ll see substantial decrease in the ping response times.
- Execute “zypper -vvv -t patch --no-recommends”: it’ll download the repository update catalogs and ask if you want to do the updates; type “y” and let it run. It’ll take a while as it has to download software, install it, and recreate the boot images, but it runs to completion with no disruptions.
- When finished, reboot. Open a terminal window and verify that both eth0 and wlan0 are active (if you have the Ethernet cable plugged in).
- At this point you have a freshly installed, freshly updated Leap 15 aarch64 on RPi-3B+. Have fun!
Second Workaround
- In a web browser on a host computer, go to http://download.opensuse.org/ports/a…0/appliances/ and download openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz
- Do the “xzcat … | dd …” copy of that image to a µSD card
- Insert the µSD card into the MMC slot of a RPi-3B+ that was connected by Ethernet cable to your router
- Power up the RPi-3B+ and boot from that JeOS image drive
- JeOS will boot up, resize partitions, reboot, and give you a command-line login prompt
- Log in as root/linux
- “ifconfig” will show eth0 working but no sign of wlan0.
You can set up WiFi if you need to by typing “yast” at the command prompt and then setting up hostname, date/time, and WiFi. - Execute the command “zypper -vvv -t patch --no-recommends” and zypper will upgrade packages (46 at the time this was written) - Manually do “zypper in lsof” as the install asks you to do as it completed
- Reboot. Still no wlan0!
But eth0 working fine. - Check available patterns with “zypper search -t pattern”; pick the desktop GUI system you’d like to install (we’ve tried both xfce and x11) - “zypper in -t pattern xfce”, for example, installed 1351 new packages: the whole process ran unattended without interruption or stalling but required over an hour. YMMV
- “zypper -vvv -t patch --no-recommends” and “zypper up” both report nothing to do
- Reboot. After some initial activity on the display, there’s a long delay during which the screen is completely black and you might think the system has crashed. It hasn’t. This behavior is different than installing the XFCE (or X11) image directly. Don’t panic: just wait and it’ll finish booting.
- When the system comes up, it presents a GUI login prompt! Login as root/linux.
- Click on the sequence toolbar “Favorite Applications”/Desktop/Settings and set, in turn, “Hostname” to set your Pi’s name, “Date and Time” to set the zone, and “Network Settings” to set up wlan0 with the WiFi parameters needed by your Access Point.
- In a terminal window, type “iwconfig” and it will show wlan0 at 24Mb/sec
- “iwconfig wlan0 power off; ifdown wlan0; ifup wlan0” and then “iwconfig” will show 433Mb/sec for wlan0 now
- Reboot
- Both network interfaces up. wlan0 at 24Mb/sec again. Set the “power” setting again if you want high speed on your local net, but otherwise it works just fine. (If not, double-check your toolbar/Settings/YaST/Network Settings parameters for wlan0.)
Thanks to all those who develop, test, package, and support openSUSE. This is quite a nice system, and it’s a delight to have it running on the RPi-3B+.