Technical data

CPU: Allwinner H3 ARM Cortex-A7 Quad-Core 32 bit
RAM: 1GB
Storage: 1 microSD card slot + 8GB eMMC
1x Gigabit LAN (using on-chip Phy)
1x 100mBit LAN (using internal USB bus)
2x USB 2.0
1x 802.11 b/g/n Wifi

There is also a 512MB Version which is not recommended.

How to install IPFire on the NanoPi R1

Download the latest legacy armv6l IPFire image, (you need at least core135)
unpack file with xzcat or other compatible archiver

xzcat ipfire-2.27.2gb-ext4.armv6l-full-coreXXX.img.xz > /dev/mmcblk?
#   (or /dev/sd? depends on your card-reader)

Flash image to a MicroSD Card with dd, Etcher or Win32 Disk Imager

Prepare the serial console

To connect the NanoPi R1 to a computer you need a Serial-TTL to USB-Cable.

IPFire does not use the internal debug port so you do not need to open the NanoPi R1 case. The console is routed to the external uart port.


Connect a USB-TTL uart cable like this:
G - Ground - Black
V - Volts - don't connect
T - R1 Transmit - PC rxd Receive Data - White (or yellow)
R - R1 Receive - PC txd Transmit Data - Green (or orange)

Now you can use the same procedure as other serial devices to setup.
minicom --device /dev/ttyUSB0
Set for baud: 115,200 parity:8 data:N stop:1

eMMC

The default bootloader in the image boots from mmc0 (SD-Card), however the eMMC (Flash-ROM) is connected to mmc2. To boot from the eMMC you need a special u-boot that switches mmc0 to mmc2.
To install IPFire on eMMC first build the uSD card and set it up with a basic configuration that gives it an Internet connection. Then re-download the Image (or copy it to /root/ after first boot in the R1 to the card). Unpack it over the eMMC and then switch the bootloader.

wget https://downloads.ipfire.org/releases/ipfire-2.x/2.27-coreXXX/`ipfire-2.27.2gb-ext4.armv6l-full-coreXXX.img.xz`
xzcat ipfire-2.27.2gb-ext4.armv6l-full-core`XXX`.img.xz > /dev/mmcblk2
dd if=/usr/share/u-boot/nanopi-r1/u-boot-sunxi-with-spl.bin of=/dev/mmcblk2 bs=1K seek=8

You should now be able to boot from eMMC and without SD Card in place.
If you have done the above steps correctly but still cannot boot, you may try to "enable eMMC writing to the boot section" by removing the eMMC boot partitions write protection.

echo 0 > /sys/block/mmcblk2boot0/force_ro
echo 0 > /sys/block/mmcblk2boot1/force_ro

Additional NIC info

GREEN: "USB: Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter" = 10/100Mbps LAN
RED: "of: dwmac-sun8i" = 1Gb WAN
BLUE: "sdio: brcmfmac" = b/g/n WLAN

Note: A USB 3.0 ethernet adapter plugged into the USB 2.0 port might get 240Mb