Recommendation of Distribution for Raspberry Pi and other SBCs

In case you have trouble finding the right distribution for your Raspberry Pi or another SBC, you came across the right thread.
So I have years of experience with mainly a couple of Raspberry Pi 3Bs and Raspberry Pi 0 Ws. I tried many distributions, most of them have many flaws in many aspects. Especially Raspbian, which is the most supported and very reliable one, due to its focus on Raspberry Pi, has (had, when I still used it) many flaws and issues.

Long story short, I recommend to you DietPi. It works on quite some different types of SBCs, as seen here:

Many annoying and/or difficult things for not so experienced users are extremely simplified and just made way more comfortable for every user out there. You basically don’t have to fiddle around with most basic settings anymore. Following, you see the scripts/apps that are exclusive to DietPi and make life easier:

You also hate setting up a new device, because you have to install the same necessary group of apps you need for every device you have? No problem with DietPi, because it has the option to automate the installation, which completely installs and sets up everything you need on your very first boot. The only thing you have to do, is fill the script with the info it needs to automate the installation and then you may use this template script for every other automated install that will finish without your input, at all. Following, you see a short description of how it is supposed to work:

Note, that you can select software from a big list that you can automatically install during the whole automated first run. Here is a part of the list:

DietPi definitely works extremely well on Raspi 3Bs and Raspi 0Ws, as I already tried out. It makes your system very lightweight and makes initialization and life with your SBC easy and comfortable. Therefore, I would recommend this system to everyone with an SBC. In my opinion, this is definitely currently the best distribution for your Raspberry Pi out there.


Thanks for posting this. I had been wondering the same thing. I have a Pi 2B setup on a spare display for my bearded dragon habitat (yes, that’s right, :wink: ) so she can watch nature and animal videos during the day and not be bored out of her mind.

Anyways, the problem I’m having is with Raspbian and playing youtube videos. It’s all up to date and it doesn’t matter if I try the Epiphany browser or Chromium, after an hour or so, the browser crashes and closes. I have no idea why. Video playback is also a bit choppy. I know the Pi 2B is not very powerful but it should be bale to handle 480p video streaming smoothly, no?

Which OS would you recommend for my usage?

Thanks. :slight_smile:

I’m not sure about the older Raspberry Pis, since I didn’t try them out. If I were you, I would make sure that the distro is empty and running nothing extra. Once I confirmed this, I would try a browser like Iceweasel and see if it gets better.
If you are ready to do a fresh new OS installation then I would recommend that you get DietPi as described above. If you don’t choose to install any software in the beginning, it is definitely extremely lightweight, even more lightweight than Raspbian Lite. The only thing you need then is an LXDE or LXQt desktop environment + Iceweasel or a similar browser. This should improve the performance.

1 Like

Thanks, I will definitely look into doing that. :slight_smile:

I also have a Pinebook order on the way which uses the Pine64 SBC, so DietPi might also be an option to try for that as well.

I tried DietPi on my BananaPi and Pine64… it was better than solutions from the board vendors - but - I prefer Armbian…

I’ve tried a Ubuntu build on my 2 x RPi 3B - worked okay for a while - then an update broke everything - and when I looked it up - it was a “known” thing with no fix other than re-install (and remember not to do that update that breaks everything) - so went back to Raspbian Stretch - got no need for a GUI so I run them headless and manage over SSH… runs just fine… I only really use one of them - to run Pi-Hole (yeah I know you can run it on x86 - but I prefer low power for stuff that stays on 24x7).

So - my experience - DietPi is good, but my preference is for Armbian… :slight_smile:

Thanks for the reminder anyway - I think I might try out DietPi on my spare RPi 3B…

Depending on when you last tried it, they improve the OS a lot with every update, in my experience. It’s definitely worth to check it out, again. The longer I use DietPi, the more satisfied I am.

Despite that, I am forced to try out Armbian as well, because I want to set up my Orange Pi i96 again and it only works with Armbian or the vendor’s crap which seems like it was shat out on a really bad diarrhea day.

1 Like

sounds like ALL the software released by those shonks at Pine64 :smiley:

1 Like

I guess there is a reason that the Pine64 community is considered the biggest contributer to the DietPi project…

I’ve only ever used Raspbian or derivitives of it (RetroPi). I’ll have to give DietPi a go the next time I set a unit up.

1 Like

Just wanted to share my experience thus far with the Pinebook which just arrived yesterday. Haven’t had much time yet to play around with it, but from what I’ve seen thus far, it’s working quite well with KDE Neon that it came shipped with. RAM management seems to be fairly good and it handles Chromium decently.

Will start a new topic where I’ll be posting up a full review in the next month or so. But so far, it has met my expectations. :slight_smile:


i was getting ready to request a new thread so i could make sure to read your review, but you beat me to it. look forward to hearing your opinion :slight_smile:

1 Like

My vote for SBC desktop OS: Armbian, if avaliable. Everything you need without unneeded fat.

For RPI i tried: puppy linux - not so good, as puppy for “regular” desktop, big dissapointment; Raspbian if you don’t want to 2hrs of CLI typing, everything works out of the box. Dietpi, if you are familiar and not so frightened by terminal.


On Boxing day I tried to get OEL (Oracle Enterprise Linux) 7.5 for ARM to run on my Pi 3B - supposedly “booted” - but the screen was garbled (using a Motorola Lapdock @ 1366x768 - works fine in Raspbian Stretch)… so gave up… might try DietPi next…


Can’t stop loving DietPi! Every time they release an update, I always read the changelog and see big improvements and I never really had an update where I thought “I can skip that one…”, because they always added something useful or fixed critical bugs.

Now they really dropped the bomb for me.

I didn’t set up my VPN on any of my Raspis, because I knew it will be a boring task and maybe a pain in the ass if something goes wrong. Now, DietPi even solves this issue for me.


Once again, another great update. A small step for the project, but a big leap for the user!
It’s really nice to see that a lot of improvements include optimizations for 3rd party software. Usually, this would be needed to be taken care of by the upstream developers, but the DietPi developers even do this additional work. One cool feature appreciated by me that has been added now is the ability to quickly and easily change the welcome banner, when logging into the terminal. The aforementioned 3rd party software optimizations are pretty stunning to me as well.




Changes / Improvements / Optimisations

  • Security | The DietPi-Software global password is now stored with enhanced security which also resolves a warning on Buster systems: #2213
  • System | /etc/bashrc.d/ now allows “.bash” file ending as well. Merged all contained DietPi scripts into one: /etc/bashrc.d/dietpi.bash. #2636
  • General | DietPi scripts now use the lightweight standalone “7zr” command to handle 7z archives. This allows us to lower DietPi core package dependencies from “p7zip-full” to “p7zip”.
  • RPi | DietPi does not set or change “framebuffer_depth” in config.txt anymore which defaults to 16 which works in every known case. It will be re-added as fast as we find a case where another value is required.
  • DietPi-Banner | You can now customise which options to display during system login. These include CPU temps, WAN IP, free disk space and more! Simply run ‘dietpi-banner’: #2627
  • DietPi-NordVPN | Added sent/received usage stats for VPN tunnel.
  • DietPi-Sync | Sync will now abort if the source dir is empty. Merged dry run into real sync, as this was performed anyway to do required free space check. When “Sync” is selected, after dry run the user is presented a summary and given the option to view the detailed dry run log, cancel or continue with real sync. Some other minor fixes and enhancements have been applied as well. Many thanks to @MidnightWatcher for doing this request:
  • DietPi-Software | Emby Server: Now installs the latest version automatically (currently 4.0.2) which as well offers a native ARMv8 package: #2525
  • DietPi-Software | WireGuard: Switched from to IP addresses on fresh installs to avoid doubled IP range use with OpenVPN. Many thanks to @XRay437 for pointing this out: #2491 (comment)
  • DietPi-Software | WireGuard: Changed the way users are adviced to add multiple clients, to enhance concurrent connections. Many thanks to @curiosity-seeker for reporting and testing this issue: #2491 (comment)
  • DietPi-Software | WireGuard: Hardened “sid” repo handling on RPi to prevent accidental non-WireGuard package installs. Many thanks to @rucknapucknavitz @1985kasper and @g7kse for reporting this issue: #2568 (comment)
  • DietPi-Software | GMediaRender: Enabled support for Debian/Raspbian Buster by using the up-to-date APT repo package.
  • DietPi-Software | Aria2: Tweaked settings to enhance 3rd party plugin support and removed deprecated/doubled entries. Many thanks to @msongz for the commit: #2538
  • DietPi-Software | UrBackup: Now installs updated version 2.3.7. Many thanks to @DeathIsUnknown for the information: #2577
  • DietPi-Software | Deluge: Reworked the installer to better match the Debian package defaults and recommendations/examples from official docs. Deluge now runs as user “debian-deluged”, logs have been moved to “/var/log/deluged/” and the init.d service with its traces are removed, which are all pre-generated by the Debian APT package. The systemd units have been adjusted according to the official Deluge documentation. These changes are applied as well to existing installs during DietPi update, the old user “deluge” and obsolete configurations are removed. Your active configurations and data are preserved, the installer has been as well enhanced to better handle existing installs and never touch existing configs. Note that access to the Deluge console has to be done as user “debian-deluged” (sudo -u debian-deluged deluge-console). A related access issue to the console has been fixed by this as well. Many thanks to @seanmikhaels for reporting this issue:
  • DietPi-Software | AmiBerry: Updated to latest version (2.25), thanks @midwan: #2599
  • DietPi-Software | Netdata: On Debian Stretch/Buster and Raspbian Buster an up-to-date APT package is available, which will now be installed instead of our custom build. Many thanks to @74cmonty for this information: #2446
  • DietPi-Software | DietPi-RAMlog: When installing/enabling RAMlog, the /var/log mountpoint will be now cleaned before mounting the tmpfs on it, while preserving the existing logs metadata. This resolves a warning on early boot stage and frees the disk space consumed by the disk log before.
  • DietPi-Software | rTorrent: Runs now as user “rtorrent” and creates files as group “dietpi” with 775/664 permissions. Enabled Buster support and enhanced config file handling on reinstall: #2633
  • DietPi-Software | Plex Media Server: Now installs the latest version automatically (currently 1.15) which as well includes official ARM binaries. Many thanks to @WolfganP for informing us about this new release: #2553
  • DietPi-Software | Nextcloud: Resolved an admin panel warning about missing ocm/ocs-provider redirects. Many thanks to @minnux for reporting this issue: #2638
  • DietPi-Software | Allo GUI: Updated to version 13. Provides for view the USB status and sound card status on Dietpi Allo web GUI system status page. Many thanks to @sudeep!:

Bug Fixes

  • System | Resolved an issue where /etc/bashrc.d entries could be run multiple times. Many thanks to @jonare77 for reporting this issue: #2529
  • System | Resolved an issue where /etc/rc.local was not executed due to an incompatible legacy rc-local.service. Many thanks to @Remonli for reporting this issue: #2566
  • DietPi-Config | RPi: Resolved an issue where I-Sabre-K2M sound card selection failed. Thanks to @klasLiesen for reporting this issue: #2547
  • DietPi-Config | RPi: Resolved an issue where serial console must be disabled, for Bluetooth to function correctly. This is now done automatically during BT enable: #2607
  • DietPi-Config/Banner | Resolved an issue where wrong adapter state is shown if it is not connected but has an IP assigned. Thanks to @msongz for reporting this issue: #2573
  • DietPi-Drive_Manager | Resolved an issue where RootFS RO would not remain during reboots. Many thanks to @JBatSEEDLING for reporting this issue: #2604
  • DietPi-Software | XU4 + X11: Resolved various issues related to incorrect xorg.conf settings on this device. xorg.conf now used is installed automatically from Meveric’s repo, which auto detects 3.x and 4.x kernel configuration and required settings automatically: #2584 + #2351
  • DietPi-Software | MineOS/Koel: Resolved an issue where installs on ARMv8 devices failed. Many thanks to @DeathIsUnknown for reporting this issue and providing the solution: #1880 (comment)
  • DietPi-Software | GMediaRender: Resolved an issue where the daemon can attach to a wrong IP if multiple network devices are present. As well resolved a failing service start on fresh install if/as the log file does not yet exist. Many thanks to @WilburWalsh for reporting these issues and providing the fix: #2576
  • DietPi-Software | OpenSSH Client: Resolved an issue where uninstalling the OpenSSH client will in case also remove the OpenSSH server.
  • DietPi-Software | Emby Server: We disabled the install option on Jessie ARM systems. This never succeeded since Debian Jessie does not provide the required minimum libc6 version. Many thanks to @mbone for reporting this issue:
  • DietPi-Software | Mopidy: Resolved issue with failed audio playback. Many thanks to @arkhub for reporting this issue: #2536
  • DietPi-Software | WireGuard: Resolved an issue with wrong client DNS entry if loopback is used as DNS entry on server. Many thanks to @swrobel for reporting this issue: #2482
  • DietPi-Software | WireGuard: Resolved an issue where on uninstall the Debian Sid repo was not removed from APT sources. Many thanks to @XRay437 for reporting this issue: #2545
  • DietPi-Software | Java: Resolved possible install failures on ARM. Many thanks to @WTFMaster for reporting this issue: #2524
  • DietPi-Software | Resolved an issue where install failed due to Git repo changes. Additionally is now available on x86_64 and ARMv8 systems as well. Many thanks to @techano for reporting this issue: #2551
  • DietPi-Software | Pi-hole: Resolved an issue where “pihole -up” fails because of wrong file permissions. Many thanks to @jonare77 for resporting this issue: #2516
  • DietPi-Software | MPD: Resolved an issue with failed playback due to permissions. Permissions are now set via systemd service to ensure the MPD user can use both dietpi and audio groups: #2462
  • DietPi-Software | Airsonic: Resolved an issue where during install the FFmpeg transcoder symlink could be placed wrong, leading to a failing Airsonic start. Many thanks to @pecan_pie for reporting this issue:
  • DietPi-Software | DietPi-RAMlog: Fixed an issue where logging mode could be set wrong when uninstalling and reinstalling RAMlog. Many thanks to @abecvar for reporting this issue:
  • DietPi-Software | rTorrent: Resolved an issue where the ruTorrent web UI could not connect to the rTorrent daemon. Many thanks to @Chester007 for reporting this issue:

As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub:

Known/Outstanding Issues

  • DietPi-Config | Enabling WiFi + Ethernet adapters, both on different subnets, breaks WiFi connection in some cases: #2103
  • DietPi-Config | RPi: Enabling OpenGL/VC4 causes sound card selection to be invalid: #2173
  • DietPi-Drive_Manager | encryptfs is currently not supported and will be removed from fstab when executing drive manager: #2078
  • RPi | LXAppearance (on LXDE desktop) hangs on dbus-launch: #1791
  • Odroid C2 | Some WiFi adapters do no work as hotspot: #1955
  • Odroid XU4 | Kodi freezes shortly on video playback: #2584
  • Rock64 | 3.5mm A/V jack is currently not functional: #2522
  • DietPi-Software | Node-RED: Pre-installed modules cannot be updated via web UI: #2073
  • DietPi-Software | Raspimjpeg: With Lighttpd, streaming mjpeg does not work: #1747

For all additional issues that may appear after release, please see the following link for active tickets: