This guide assumes you're using linux or some kind of OS with a shell, you can use Windows with some modifications.
Download the latest NanoPi R1, extract the zip file.
Image will look something like nanopi-r1_eflasher_friendlycore-xenial_4.14_armhf_20191230.img
to an sdcard.
sudo dd if=./nanopi-r1_eflasher_friendlycore-xenial_4.14_armhf_20191230.img of=/dev/your_sd_card bs=4096
You can follow my guide to doing this with OpenWRT, it is exactly the same.
After you're done, it should boot directly to the bash shell with the pi
user.
I had a lot of trouble with this installed, so I removed it.
sudo su -
systemctl stop NetworkManager
systemctl disable NetworkManager
reboot
Note: My wifi interface is wlan0
, I'm not sure if this is the same across all devices or not. Do iwconfig
to find yours if you have trouble.
sudo su -
killall wpa_supplicant
ifconfig wlan0 up
iwlist wlan0 scan | grep ESSID
Note above, I'm killing wpa_supplicant
, if you reboot mid-instructions you'll need to kill it again.
Add quotes around your essid and passphrase if they have spaces.
wpa_passphrase your-ESSID your-passphrase | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf
vi /etc/wpa_supplicant/wpa_supplicant.conf
Edit to look like this, though this assumes you're using WPA2 which you probably should be. You may have to modify this further if you've got something custom. I don't know a whole lot about configuring these things, so use stackoverflow if you can't connect.
network={
ssid="YOUR_SSID"
#psk="YOUR_SECRET_PASSWORD"
scan_ssid=1
proto=WPA2
key_mgmt=WPA-PSK
psk=YOUR_PASSWORD_HASH
}
wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0
This shouldn't return a fail, if it does you'll need to google around.
If it works, you can connect to it in the background.
wpa_supplicant -B -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0
dhclient wlan0
ifconfig wlan0
ping google.com -c3
cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service
vi /etc/systemd/system/wpa_supplicant.service
Find:
ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
Replace With:
ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant/wpa_supplicant.conf
ExecStop=/usr/bin/killall wpa_supplicant
Restart=always
Find:
Alias=dbus-fi.epitest.hostap.WPASupplicant.service
Replace With:
#Alias=dbus-fi.epitest.hostap.WPASupplicant.service
systemctl enable wpa_supplicant.service
systemctl start wpa_supplicant.service
vi /etc/systemd/system/dhclient.service
Add this:
[Unit]
Description= DHCP Client
Before=network.target
[Service]
Type=forking
ExecStart=/sbin/dhclient wlan0 -v
ExecStop=/sbin/dhclient wlan0 -r
Restart=always
[Install]
WantedBy=multi-user.target
systemctl enable dhclient.service
systemctl restart dhclient
# List Them
timedatectl list-timezones
# Set One
sudo timedatectl set-timezone America/New_York
# Verify
timedatectl
apt install chrony -y
Generating locales takes a long time on this little computer, you can remove the ones you don't want. The list you put at the end of this command is what you want to KEEP, I'm only keeping en_US.utf8.
locale-gen --purge en_US.utf8
apt update && apt upgrade -y
Change the pi
user password.
passwd pi
Just like this, but you probably don't want to add me to your machine.
useradd -m pjobson
usermod -a -G sudo pjobson
chsh --shell /bin/bash pjobson
From your client machine you should be able to ssh into the NanoPi now.
ssh pjobson@10.10.10.230
These little computers don't have much storage, maybe add some with a USB stick. Insert the stick.
Use fdisk to find your drive and modify it. Hopefully you're using a new one or don't care what's on it, because we're gonna wipe it.
If your drive is NOT /dev/sda
do not copy/pasta this! You'll want to do all of this as root or with sudo
.
fdisk -l
fdisk /dev/sda
If you're unfailiar with fdisk here's what you want to do:
- d to delete all partitions
- g to set to gpt
- n to create new
- Partition number (1-128, default 1): 1
- First sector (2048-31266782, default 2048): 2048
- Last sector, +sectors or +size{K,M,G,T,P} (2048-31266782, default 31266782): 31266782
Your last sector will vary, mine is a 16GB stick.
mkfs.ext4 /dev/sda1
I put my home directory stuff on the SD card, this is how I did it.
Again with the root user or sudo
.
cd /home
mkdir /tmp/hometemp /tmp/hometemp/usbstick
tar czvf /tmp/hometemp/home.tar.gz .
cd /tmp/hometemp
mount /dev/sda1 /tmp/hometemp/usbstick
cd /tmp/usbstick
tar xzvf ../home.tar.gz
ls -la
umount /tmp/hometemp/usbstick
vi /etc/fstab
Add this:
/dev/sda1 /home ext4 defaults 0 2
rm -rf /home/*
mount -a
ls -la /home
This should show your users' directories.
reboot
sudo apt install curl
sudo curl -sSL https://install.pi-hole.net | bash
Go through the setup wizard at the end it'll show you a URL and password, browse there, put the password down somewhere.