openSUSE on Raspberry Pi 3: From Zero to Functional System in a Few Easy Steps
The following article has been contributed by Dmitri Popov, Technical Writer at the SUSE Documentation team.
Deploying openSUSE on Raspberry Pi 3 is not all that complicated, but there are a few tricks that smooth the process.
First of all, you have several flavours to choose from. If you plan to use your Raspberry Pi 3 as a regular machine, an openSUSE version with a graphical desktop is your best option. And you can choose between several graphical environments: X11, Enlightenment, Xfce, and LXQT. There is also the JeOS version of openSUSE which provides a bare-bones system ideal for transforming a Raspberry Pi 3 into a headless server. Better still, you can choose between the Leap and Tumbleweed versions of openSUSE.
The first order of business is to download the desired openSUSE image from https://en.opensuse.org/HCL:Raspberry_Pi3. Next, you need to create a bootable microSD card. While you can write the downloaded image to a microSD card using command-line tools, Etcher makes the process more enjoyable and safe. Grab the utility from the project’s website, extract the downloaded .zip file and make the resulting .AppImage file executable using the command:
chmod +x Etcher-x.x.x-linux-x64.AppImage
Plug then a microSD card into your machine, launch Etcher by double-clicking on it, select the downloaded .raw.xz image file, and press Flash!. Connect a display and keyboard to the Raspberry Pi 3, insert the microSD card in it, and boot the little machine. During the first boot, openSUSE automatically expands the file system to make use of all free space on the card. At some point you’ll see the following message:
GPT data structures destroyed! You may now partition the disk using fdisk or other utilities
There is no need to panic, though. Wait a minute or two, and openSUSE will continue to boot normally. When prompted, log in using the default root user name and linux password.
If you choose to deploy JeOS on your Raspberry Pi 3, keep in mind that you won’t see any output in the screen during first boot. This means that the screen will remain blank until the system finishes expanding the file system. While you can configure kernel parameters to show output, it’s probably not worth the hassle. Just wait till you see the command-line prompt.
Since openSUSE comes with SSH enabled and configured, you can boot the Raspberry Pi without a display. In this case, you need to connect the Raspberry Pi to your network via Ethernet. Just give the Raspberry Pi enough time to boot and expand the system, and you can then connect to it via SSH from any other machine on the same network using the ssh email@example.com command.
By default, you log in to the system as root, and it’s a good idea to create a regular user. The all-mighty YaST configuration tool lets you do that with consummate ease. Run the yast2 command, switch to the Security and Users -> User and Group Management section, and add a new user. While you are at it, you can update the system in the System -> Online Update section. Once you’ve done that, quit YaST, reboot the Raspberry Pi, and log in as the newly created user.
That’s all fine and dandy, but there is one crucial component of the system that doesn’t work right out of the box: the wireless interface. Fortunately, this issue is easy to solve. First, install the nano text editor using the command:
sudo zypper in nano
sudo nano /etc/dracut.conf.d/raspberrypi_modules.conf
to open the raspberrypi_modules.conf file for editing. Remove sdhci_iproc in the first line and uncomment the last line. Save the changes, run the command:
and reboot the Raspberry Pi.
Launch YaST again, switch to the System -> Network Settings section, and you should see the BCM43430 WLAN Card entry in the list of network interfaces. Select this entry and press Edit. Enable the Dynamic Address DHCP option, press Next, select the desired wireless network, and configure the required connection settings. Press Next and then OK to save the settings. Reboot the Raspberry Pi, and it should automatically connect to the specified Wi-Fi network.
And that’s it ?!
Great tutorial! As I want to spread the word, I made a spanish translation of this easy HowTo:
I put a link to the original, and a mention to the original author, of course!!
Have a lot of fun!! 😉
thanks a bunch for your Spanish translation and for posting this tutorial on your blog! If questions come up, Dmitri will be happy to answer – just let us know!
It would be nice if the image supported the 7 inch Raspberry PI touch display
Thanks for the hint!
IMO that’s a current problem for all non-raspbian distros… the U-boot bootloader hasn’t changed in many, many years and directions to add new hardware add-on support is probably understood only by the people who created the method more than a decade ago. Raspbian re-wrote their own bootloader to add easy to create hardware definitions. So, currently AFAIK we are no different than any other non-raspbians, plan on use the standard video out ports for any graphical Desktops.
Actually Ubuntu MATE supports the 7″ touchscreen out of the tin. I simply flashed the image (actually using Etcher, HUGE THANKS for the hint) and it was working perfectly during the install process and after. Sadly the onscreen keyboard isn’t a default option, but a few terminal commands later and it is available and quite nice looking (xvkbd).
Hi there ..I followed the steps you mentioned to enable wlan but it is not working for me. I cannot see the wlan interface using yast or in the terminal when i use ifconfig. When i use “mkinitrd -f”. It starts with error ” iscis” not installed. But it does complete and after reboot i cant see wlan. Any ideas ?
I am using “openSUSE-Leap42.2-ARM-XFCE-raspberrypi3.aarch64-2017.02.02-Build1.52”
Dmitri is looking into the issue and will reply to your comment when he has news for you.
After initial boot I can find my Raspberry Pi IP in my network, but I get SSH connection refused. Apparently SSH is not enabled by default. If I connect the HDMI i see that it is in the Initial System Setup with YaST.
Any suggestion? I really don’t have a USB keyboard I can use 🙁
Hey thanks for the post here…
Seems to be an issue with JeOS Tumbleweed though. Tried this a couple of times from a headless setup over ssh… after running mkinitrd -f and rebooting the system bricks…
As this is headless I’m unable to do any diags… and due to SSH not starting its impossible to connect.
Hi Dmitri, thank you for the blog. It was very helpful for me.
But I meet problems with Leap and can’t solve them.
During boot I can’t choose boot options in grub – there is NO keyboard that time.
The second – there is NO sound device, despite to many loaded kernel drivers with “2835” in names. But the sound really exists, I can hear it on desktop PC in LAN using multicast/RTP option in paprefs.
Nice information about some raspberry states information . it was helpful for me. thanks for sharing useful information