The Lollipop is a single-board computer (SBC) cloud device, with the ability to manage your own cellular internet, wifi, VPN, firewall, web server, data backup and syncing, ad blocker, notes and project management, git, RSS feeds, “read it later” bookmark management, GPS mapping, and more. Some of these features (like GPS and cellular internet) require extra hardware, but the base device consists of an SBC with an SD memory card loaded with Armbian.
You will need a single-board computer (SBC) like an Orange Pi.
For the basic start up and set up of your Orange Pi, you will need one of the following configurations:
NOTE: If you are going to use your SBC wirelessly as a server and a client (example: your laptop will access the internet via your Lollipop, where your Lollipop is connected to a coffee shop’s public wifi), you are going to need TWO wifi adapters. If you’re using the OrangePi PC Plus, it has its own onboard wifi, but you will need to add a second wifi adapter that uses a USB port, such as this OurLink Wifi USB Dongle.
You will also need an SD card formatted with Armbian installed.
NOTE: Raspberry Pi 3 users will need to use Raspbian instead of Armbian.
You will need to download Armbian for the board you’re setting up, and save it to your computer. We highly recommend using an HDMI connection if you’ve never set up a serial connection before, because additional drivers and software are required to get your development computer to communicate with the Lollipop via serial connection. Your “development computer” will be the laptop or desktop computer you use daily, or have borrowed for this purpose.
NOTE: experienced users might want to use the experimental versions, but the rest of us should stick to the supported and stable builds.
You will need to extract (unzip) the Armbian file once it downloads. Armbian is downloaded as a 7z archive (with the file extension .7z), so you may need a special program to extract this file. Try Keka for MacOS, 7-zip for Windows, or 7z for Linux (
apt-get install p7zip-full). Extract the file to a location you can remember (such as your desktop).
To format an SD card on a Mac, open Terminal and use this command:
diskutil eraseVolume FAT32 ARMBIAN /dev/usb1 where ARMBIAN is the permanent name of your drive (so change it if you wish) and /dev/usb1 is the location of your SD card. The easiest way to find the location of your SD card is to open Finder, click on your computer’s name under devices, and you should see your SD card in the list. Right-click (or
command + click) on that SD card, and choose “copy.” When you paste (
command + V) into Terminal, it will paste the path of the device (such as
/Volumes/UNNAMED). After you run
diskutil eraseVolume FAT32 ARMBIAN /dev/usb1, it’s time to install Armbian.
Windows users will need some separate instructions. For now, try Wikihow’s article about formatting with Windows.
This can vary very slightly by distribution, but this article about how to format an SD card in Linux should do the trick.
This is a trick if you just don’t want to be bothered with the previous options. Insert the SD card in your Android phone, then go to settings > storage > removable storage > format. Source: SD card formatting.
If you don’t already have one, you will also need an application/program to properly prepare your formatted SD card. Etcher works on most computers. To use Etcher: Insert the SD card into your computer (using an built-in reader or an external USB reader), load Etcher, select your newly extracted Armbian .img file, select the SD card you want to set up, and click Flash!
When Etcher is finished, you’re ready to insert your Armbian SD card into your Orange Pi. Insert your HDMI cable or serial console, and keyboard or ethernet if you are using it, and then plug in the power cord. The Orange Pi should boot automatically.
If your board does not boot (the screen is blank or you cannot connect via SSH), but the power light is on and your SD card is properly inserted into the Orange Pi (make sure it clicks into place!) your SD card may not have flashed properly. Repeat the process for formatting the SD card and running Etcher, and try again.
Now you’re reading to turn on your Lollipop device for the first time!
If you’re not using a keyboard, connect your Orange Pi (or the board you’re using) with an ethernet cable to your local router and use your development computer to load Terminal (if using a Mac) and run
ssh email@example.com (your board’s IP address! make sure to use the root@IP_address format or else Terminal will tell the Orange Pi that you’re trying to log in with your Mac’s username) OR use PuTTY to open an SSH connection to your Orange Pi. You may need to log into your router’s settings to find the IP address of your Orange Pi.
Both keyboard and ethernet users will continue on the same path here:
At first boot, you will be prompted to log in with the default login (root) and password (1234), and then prompted to change your root password. When you set your root password, make it a good one and don’t forget it! Anyone with root access to your computer will have access to everything on that computer, including the ability to make malicious changes.
Next, you will be prompted to create a new user account and password. This account will have sudo privileges, which is just as powerful (and dangerous) as root access, so you’ll need another secure password. It is good practice to never login as root, so you’ll be using this new user account for everything going forward.
Once you’ve created an account, the desktop environment will load, and it’s time to start setting things up!
NOTE: If you are connected via SSH (running without a display or “headless”), you can also install VNC Viewer on your development computer, and set up VNC (Virtual Network Computing) on your Orange Pi, so you can connect virtually without having to deal with a separate keyboard/monitor/etc setup. This is something you may use many times in the future, so it’s worth taking the time to set it up, even if you’re currently using a dedicated keyboard and display for your Lollipop. More information about VNC.
At this point, you might be ready to jump into the Lollipop base setup code. If you need a little more detail, continue following along here instead.
If you are sticking with the command line via SSH, these steps will hopefully be straightforward. If you are using your new Lollipop with the desktop environment, you will have to open up a terminal window.
It’s good practice to run
sudo apt update at the command line to make sure everything is up to date, and you may need to run
sudo apt upgrade as well (the command line will tell you if there are upgrades but it won’t hurt to run it either way). After updating and upgrading, run
systemctl reboot, give the board a minute or two to reboot, and then reconnect via SSH.
Note: if you get an error like
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory, try the following command:
export LC_ALL="en_US.UTF-8". If you continue to get this error, you can edit the /etc/ssh/ssh_config file (see the next paragraph for more detail about file editing, but you will have to do
sudo nano /etc/ssh/ssh_config) and comment out (add
# to) the
SendEnv LANG LC_* line.
You will have to edit some files. Nano is a simple built-in text editor, but feel free to use your text editor of choice. Examples here will use Nano.
You will be disabling auto-updates in order to save bandwidth and time, and to prevent data overages for those with data caps.
First file to edit:
sudo nano /etc/apt/apt.conf.d/02periodic
and change the line
APT::Periodic::Enable "1"; to
Then enter command
control-x (to exit) and choose
y to save changes. Hit enter to keep the file name the same, and now you’re reading to move on to the next file.
Second file to edit:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades and change the line
APT::Periodic::Update-Package-Lists "1"; to
APT::Periodic::Unattended-Upgrade "1"; to
y to save your changes).
Third file to edit:
sudo nano /etc/ssh/sshd_config and make sure the following is set:
PermitRootLogin no. This is a longer file, so enter
ctrl-w to search for
PermitRootLogin. You may have to
enter again to find the line you’re looking for. Change
no if necessary and then save your changes (
Now restart the service with
systemctl restart sshd.
Now you’re ready to head back to the README and get started on the networking section.
It is highly recommended that once you set up networking on your new Lollipop Cloud, that you follow the README’s suggestion to install Cockpit. After you install Cockpit, you will be able to configure the rest of your desired Lollipop Cloud features through a web browser on your development (or home) computer.
Just in case you need all of our documentation while offline or on a bad network connection, mirror these docs to an internet-connected computer by entering the following at the command line:
git clone https://git.lollipopcloud.solutions/lollipop-cloud/docs.git /root/docs where
/root/docs is where you want these documents to live.
Please create an issue or reach out via our contact page for errors, typos, clarifications, and omissions to improve this documentation. Thanks!