Running Pignus Zero

The Zero image contains the same software set as the Minimal image. It's set up for connectivity via Raspberry Pi Zero's USB port in device mode, making it well suited for the Zero boards.

Installing

Identify the device and write the uncompressed image to the raw device.

Please note this will destory ALL data on the device. Make sure you select the right device, there's no way back!

$ lsblk
NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                                             8:0    0 465.8G  0 disk  
├─sda1                                          8:1    0     3G  0 part  
└─sda2                                          8:2    0 462.8G  0 part  /
mmcblk0                                       179:0    0   3.7G  0 disk  
└─mmcblk0p1                                   179:1    0   3.7M  0 part  /run/media/bgates/32B4-B666
$ su
# umount /dev/mmcblk0p1
# xzcat pignus-zero-23a.xz >/dev/mmcblk0
#

Now your card is ready for use with the Raspberry Pi. You may want to run gparted and reclaim the rest of the free space on your card.

Connecting to the Raspberry Pi

You can now apply power to the device and connect it to your computer. A single USB cable connected to the connector marked "USB" will work. The "ACT" LED will flash and the device will start booting. In up to two minutes, the Raspberry Pi will switch to the USB device mode. You'll see the following lines in your dmesg:

usb 1-3: new high-speed USB device number 110 using xhci_hcd
usb 1-3: new high-speed USB device number 111 using xhci_hcd
usb 1-3: New USB device found, idVendor=0525, idProduct=a4aa
usb 1-3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
cdc_ether 1-3:1.0 usb0: register 'cdc_ether' at usb-0000:00:14.0-3, CDC Ethernet Device, 52:8e:b9:6c:48:ea
cdc_acm 1-3:1.2: ttyACM0: USB ACM device
cdc_ether 1-3:1.0 enp0s20u3: renamed from usb0
IPv6: ADDRCONF(NETDEV_UP): enp0s20u3: link is not ready
IPv6: ADDRCONF(NETDEV_CHANGE): enp0s20u3: link becomes ready

Two new USB devices appeared: the serial port ttyACM0 and a network device usb0.

First, connect to the serial port. Log in as root, set up the password and create a user account for you:

# screen /dev/ttyACM0
Pignus release 23 (Alpha)
Kernel 4.4.0-1.pi2.fc23.armv6hl on an armv6l (ttyGS0)

localhost login: root
Last login: Wed Dec 31 19:03:51 on ttyGS0
[root@localhost ~]# passwd
Changing password for user root.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@localhost ~]# useradd -m rpiuser
[root@localhost ~]# passwd rpiuser
Changing password for user rpiuser.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@localhost ~]# 

Terminate the screen session with CTRL+A followed by K and y.

Now that you have a user account, you can log in through the network. Your Raspberry Pi's address is 10.42.0.1.

$ ssh rpiuser@10.42.0.1
rpiuser@10.42.0.1's password: 
[rpiuser@localhost ~]$ 

Sharing the Internet connection with the Raspberry Pi

By default, the device runs a DHCP server that assigns an IPv4 address to your computer. If you want to share your computer's connection with the Raspberry Pi you need to reverse the setting. First, run the DHCP server on your computer:

$ nmcli c add type ethernet con-name rpi-dhcp ifname enp0s20u3
Connection 'rpi-dhcp' (56a2dc40-58c4-40b8-a009-ee35f8d709c6) successfully added.
$ nmcli c modify rpi-dhcp ipv4.method shared
$ nmcli c up rpi-dhcp
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/35)
$

Then turn on DHCP client on the Raspberry Pi:

# screen /dev/ttyACM0
[root@localhost ~]# nmcli c modify usb0 ipv4.method auto
[root@localhost ~]# nmcli c up usb0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

Were all done. Check access to the Internet:

[root@localhost ~]# ping pignus.computer
PING pignus.computer (77.93.223.108) 56(84) bytes of data.
64 bytes from base48.cz (77.93.223.108): icmp_seq=1 ttl=54 time=14.0 ms
64 bytes from base48.cz (77.93.223.108): icmp_seq=2 ttl=54 time=14.3 ms
...