Recently I reviewed the Orange Pi Zero 2 and thought it was a fantastic board. I really like the amount of polish that the Orange Pi line of products have as it is the closest I have seen to anything approaching a Raspberry Pi experience. We also benchmarked the Orange Pi Zero 2 and determined it’s a very capable board.
I recently got a Orange Pi i96 (thanks munecito!) and this board is very exciting because it was purchased on sale for ~$10! That is insanely cheap. The reason it’s so cheap is because it’s a headless board that doesn’t contain any display-out ports.
If you are going to be using the board headless anyway (I use most of my SBCs headlessly) you may be able to save a fortune with this board. Let’s get started!
Hardware Used
The Orange Pi i96 is a low-cost board from the Orange Pi line of SBCs. It uses the RDA8810 SoC and has 256MB LPDDR2 SDRAM. It’s well suited for headless tasks and is astonishingly cheap.
Links: Amazon.com*, AliExpress.com*, Amazon.ca*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.sg*
The Geekworm copper heatsink set is designed to fit many different single board computers. It uses thermal conductive adhesive which many “cheap” heatsink kits for SBCs don’t have. Eliminates hotspots and reduces throttling. Can be further enhanced by powered cooling over the heatsinks.
Links: Amazon.com*, Amazon.ca*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*
The Orange Pi official mouse uses 2.4GHz wireless to give you a wireless mouse experience with the Orange Pi
Links: Amazon.com*, AliExpress*
The Orange Pi monitor is meant to be a portable monitor you can take anywhere. It has a resolution of 1080P and features a hinge in the back that folds out to support the monitor.
Links: Amazon.com*, AliExpress*
Getting Started
EDIT: I now recommend using my fixed Orange Pi i96 image as it will fix your USB port to be able to operate at full speed and give you a much newer OS of Debian Bullseye.
Alternatively you may use the official images (not recommended for this board). If you’d like to use the official images instead head to the official Orange Pi downloads page:
Now select the Orange Pi i96 from the list. I will be using Ubuntu Linux for this guide but you may use Armbian as well.
If you are wanting to try Android I highly recommend seeing my Orange Pi Android Installation Guide as the installation process is different than Linux.
Writing the Image
The images are typically distributed as a .tar.gz file. The name of the Ubuntu image tar.gz file at time of writing was OrangePi_i96_ubuntu_xenial_server_linux3.10.62_v0.0.4.tar.gz.
We will need to extract this file. If you are using Windows then grab 7-zip to be able to extract a .tar.gz file.
Inside this file will be a .img file. Since I downloaded the Ubuntu image the name of my file was OrangePi_i96_ubuntu_xenial_server_linux3.10.62_v0.0.4.img. This is the image that we are going to write to our SD card.
There are several choices to write the image to your SD card. If you are on Windows I recommend Win32DiskImager. Etcher is also available for Windows/Linux/Mac OS X.
Write the image to the SD card using your preferred software.
First Startup
Before starting up you should make sure that the Orange Pi’s switches are in these positions (indicating to boot from SD card):
We’re ready to put the SD card into the Orange Pi i96. But how are we going to connect to the device? There’s no network port and the device isn’t configured to connect to our WiFi yet.
Connection Option #1
If you happen to have a USB to Ethernet adapter that is the easiest way to connect to the device for initial configuration:
Connection Option #2
If you have a TTL to USB serial debug adapter* you can use that as well. See the OrangePi instructions for that method.
Initial Configuration
orangepi-config Utility
Once you’ve connected it’s time to do some basic configuration. We will use the tool orangepi-config:
sudo orangepi-config
You may now set the WiFi settings, etc. The orangepi-config is just like raspi-config if you’ve ever used that on a Raspberry Pi.
Don’t reboot before doing the next section.
Fix Second Startup (Debian / Ubuntu)
You will notice if you reboot the device it will often not come up the second startup. This is especially likely if you performed a sudo apt dist-upgrade.
To prevent this I recommend removing the alsautils package. This will impact sound functionality on the board but as I was not using it and intended to use this more as a headless board this was fine for me.
sudo apt purge alsa-utils
If you need to have the sound working on the board there is an alternate solution available here.
This is not necessary in my Legendary image as it has kernel fixes for these issues (highly recommended)
Set Timezone
Replace my timezone with yours in the following commands:
rm /etc/localtime ln -s /usr/share/zoneinfo/America/Denver /etc/localtime
Setup Locales
Setting the locales isn’t in orangepi-config (such as it is in raspi-config) but here’s a quick way to set them:
sudo apt install locales -y sudo dpkg-reconfigure locales
Setup Wireless CRDA Regulatory Domain
For the wireless to function very well at all you need to set the wireless regulatory domain.
If you are not using my image then you will first need to install the crda package with:
sudo apt install crda -y
Now we can set the regulatory domain by editing the following file:
sudo nano /etc/default/crda
At the bottom of the file there is this line:
REGDOMAIN=
Put the 2 letter country code for your country. Mine is “US”. Once finished press Ctrl+X then Y to save the file.
Optional – Upgrade Debian OS to Buster/Bullseye
Note that this will not upgrade the kernel. You can upgrade everything else though including all the way up to Bullseye. You should do this one release at a time and start with “Stretch” and then do “Bullseye” afterward.
If you are using the Debian installation you can upgrade to Buster by editing your /etc/apt/sources.list file.
Change all instances of “stretch” in the file to “buster” and then do the following:
sudo apt update && sudo apt dist-upgrade -y
Once this has completed reboot the system (make sure you’ve done my fix second reboot section first by purging alsa-utils). Verify you are on Buster with
cat /etc/os-release
for example:
root@orangepii96:/# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 10 (buster)" NAME="Debian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
Now you can upgrade to Bullseye. It’s almost the same as upgrading from Stretch to Buster but there has been a change in the security updates server format. Here is a working “Bullseye” apt sources file for the Debian Orange Pi i96 image:
root@orangepii96:/# cat /etc/apt/sources.list deb http://ftp.debian.org/debian bullseye main contrib non-free #deb-src http://ftp2.cn.debian.org/debian bullseye main contrib non-free deb http://ftp.debian.org/debian bullseye-updates main contrib non-free #deb-src http://ftp2.cn.debian.org/debian bullseye-updates main contrib non-free deb http://security.debian.org/ bullseye-security main contrib non-free #deb-src http://security.debian.org/ bullseye-security main contrib non-free
Once you’ve changed the files do a sudo apt update and make sure you don’t see any errors. If everything looks okay start the Bullseye upgrade with:
sudo apt full-upgrade -y
After a reboot you should be on Bullseye! We can verify this with cat /etc/os-release:
orangepi@orangepii96:~$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" NAME="Debian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" orangepi@orangepii96:~$ uname -a Linux orangepii96 3.10.62-rel5.0.2+ #4 PREEMPT Wed Mar 18 18:49:25 CST 2020 armv7l GNU/Linux
Notice that the kernel has not changed at all (as cautioned at the beginning of the section) but everything else on the system will be Bullseye!
Performance Benchmarking
I benchmarked the board using a SanDisk Extreme SD card on my Pi Benchmarks web site. This gives us comparable results between boards and there are over 30,000 benchmarks submitted for various boards / storage devices.
I had a total score of 497. This was below average or off from an average Raspberry Pi setup by about 47%.
To be clear the storage performance on the board is relatively low compared to the Orange Pi Zero 2 or a Raspberry Pi (Zero or 4). That is to be expected for a price of around ~$7-$10.
I’m not sure I would say this is a disappointing result though. We are talking about a board that is a single digit number of dollars. For the price point that is fantastic performance! In fact for the price point it’s a wonder that it works at all.
Conclusion
It’s a great board. At a price point of $7-$10 it reminds me of the really, really old Raspberry Pi Zero days where you could actually get a Raspberry Pi for around that price point.
The Zero 2 is a significantly more powerful board. It benchmarked much higher than the i96 but it also costs significantly more. If you need more power that board will be a better choice. If you’ve never had an Orange Pi before I would recommend the Zero 2 first as this board is quite a bit trickier and has more outdated software available for it.
The version of Ubuntu on this board is also quite old (Ubuntu 16.04 / Xenial) compared to the Orange Pi Zero 2 which is actually running a modern 5.X kernel whereas this one is a 3.X kernel. Make sure that is not going to be a problem or you will want to step up to a higher Orange Pi. The i96 is definitely meant for simple services / projects that don’t need a lot of power. It’s perfect for those.
If you need a headless board then the Orange Pi i96 may very well fit the bill for you, the price is certainly right! Don’t skip the heatsinks though. It got very warm during testing (warm enough to freeze once during consecutive benchmarks) and Orange Pis are known to get quite hot!
Other Resources
I highly recommend using the Legendary i96 Debian Bullseye image available here
I’ve also reviewed the Orange Pi portable monitor here
Don’t miss my Orange Pi Zero 2 Review / Tips / Guide for another great board (with display connections)
I’ve also reviewed the Orange Pi 3 LTS which is roughly equivalent in power to a 2GB Pi 4
If you’re trying to set up Android definitely see my Orange Pi Android Installation Guide
For the fastest storage options check out my Linux storage benchmarking script
Looks like 6.5.1 kernel exists:
Firmware for OrangePI i96. Kernel 6.5.1
Time to see if it works with the Debian Bullseye build.
Very interesting, let me know what you find!
upgraded debian on orangepii96 to “Debian GNU/Linux 12 (bookworm)”, and now sshd crashes with the error
Fatal glibc error: cannot get entropy for arc4random
uname -a
Linux orangepii96 3.10.62-rel5.0.2-legendary-v1.37+ #2 PREEMPT Wed Mar 22 13:44:45 MDT 2023 armv7l GNU/Linux
my google-fu reveals nothing … any ideas?
Hey Octarine,
I’d guess that it means that the kernel is too old or is missing some features needed to run Bookworm. I haven’t tried building one for Bookworm yet but it would probably need to be tweaked and tested for it. Since the original kernel has been discontinued this will be harder and harder with each new version.
Even Bullseye needed quite a bit of work to get working properly. I’d definitely be open to any pull requests if anyone tries to get Bookworm working with the kernel!
thanks James, I’ll keep an eye out for a new kernel
and thanks for the awesome project!
OpenSSH uses arc4random OpenBSD’s method of getting entropy. It requires sys_getrandom syscall support from the kernel, which was introduced only in 3.17.
I ended up switching to dropbear.
thanks ValdikSS – that took all of 10 minutes!
I’m trying to rebuild this image as default one is so huuuge with all kinds of stuff installed. I would like to use it as in the early days – in the nand. I stil have my dietpi currently in there so it acts like a dual-boot recovery 😛 . It is said that it won’t build on ubuntu, but on what it builds?
I’m trying to build it on debian12 and got everything set up asi there is not too much guide. But then trying to build it it will complain it can’t find libs, but they are there:
i96/test/OrangePiRDA/toolchain/gcc-linaro-1.13.1-2012.02-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Hey Janno,
The main setup (from Orange Pi) should install the toolchain. One wrinkle though is I think they are starting to discontinue the board. It’s possible those downloads may not be working anymore.
If that’s the case I’d have a hard time rebuilding it myself. Maybe I need to preserve my entire OrangePiRDA folder.
I would make sure that you’ve let Orange Pi’s tools download and set up OrangePiRDA before running the script though. Debian should build still as I don’t think they’re making anymore changes to the code (meaning it should be the same as the last time I built it).
Hopefully that helps!
The download works. The files are also there. It is more like some path setting is broken – the compiler won’t find the files. libstdc++.so.6 file is available in the toolchain folders.
Hey Janno,
I’d punch the errors you’re getting into google and see if it points you to some additional library/dependency that needs to be installed. It has been a while since I’ve done it so I’d have to rebuild my toolchain as well to build it.
Hopefully that helps!
I fix this problem by installing apt install lib32stdc++6
Great fix, thanks for sharing!