1
0
Fork 0
Tool used to create custom Debian GNU/Linux images for Raspberry Pi
This repository has been archived on 2023-03-27. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Braiden Vasco 09aa02f67c Assign device names by part-UUID 2017-07-10 00:28:06 +00:00
files Assign device names by part-UUID 2017-07-10 00:28:06 +00:00
keys Rename Raspbian archive keyring 2017-07-09 18:25:07 +00:00
patches Disable swap 2017-07-09 19:24:45 +00:00
.gitignore Separate mount point 2017-07-03 00:34:07 +00:00
LICENSE Add myself to license 2017-06-30 21:25:30 +00:00
README.md Add build docs 2017-07-09 16:59:16 +00:00
build.sh Assign device names by part-UUID 2017-07-10 00:28:06 +00:00
depends Fix dependency executable name 2017-07-07 17:08:32 +00:00

README.md

barnacleos/build

Tool used to create the BarnacleOS images. Based on pi-gen tool used to create the official raspberrypi.org Raspbian images.

Table of contents

Dependencies

On Debian-based systems:

apt-get install bash quilt parted qemu-user-static debootstrap zerofree zip \
dosfstools libcap2-bin grep rsync

The file depends contains a list of tools needed. The format of this file is <tool>[:<debian-package>].

Build

Run sudo ./build.sh to build the image. The following files will be created:

  • rootfs/ - the root file system (/ and /boot/ partitions)
  • deploy/YYYY-MM-DD-BarnacleOS.img - the image to write to SD card
  • deploy/YYYY-MM-DD-BarnacleOS.zip - ZIP archive with the image

Network interfaces

Each network interface of Raspberry Pi can be used to connect to the Internet or to be the gateway for the internal network. The barnaconfig utility can be used to configure the role of each network interface.

However some initial configuration may be required to use the default BarnacleOS image, such as Wi-Fi drivers installation. It can be done via SSH. Network interfaces eth0 and eth1 have default configurations to help you to connect.

eth0

eth0 is configured by default to get IPv4 address from router via DHCP without any assumptions about subnet configuration. You can just plug your Raspberry Pi to router with Ethernet cable, discover which address was given to it in router's web interface or with nmap utility and connect to it via SSH.

Let's say your router has address 192.168.0.1, subnet is 192.168.0.0/24 (netmask 255.255.255.0), your computer has address 192.168.0.2. Do the following:

$ sudo apt-get install nmap
$ nmap -sn 192.168.0.0/24
Starting Nmap 6.47 ( http://nmap.org ) at 2017-07-09 15:39 UTC
Nmap scan report for 192.168.0.1
Host is up (0.0039s latency).
Nmap scan report for 192.168.0.2
Host is up (0.00078s latency).
Nmap scan report for 192.168.0.3
Host is up (0.00104s latence).
Nmap done: 256 IP addresses (3 hosts up) scanned in 7.97 seconds

So your Raspbbery Pi has address 192.168.0.3. Connect to it via SSH:

$ ssh user@192.168.0.3

eth1

eth1 is configured by default to be the gateway and the DHCP server for the IPv4 subnet 192.168.82.0/24 (netmask 255.255.255.0, the internal network) with static address 192.168.82.1. If your Raspberry Pi has two Ethernet ports, you can just plug your computer to it, run DHCP client on the corresponding network interface and connect to it via SSH.

Let's say your computer has network interface eth42 which is plugged to Raspberry Pi. Do the following to connect to Raspberry Pi via SSH:

$ printf "allow-hotplug eth42\niface eth42 inet dhcp\n" | sudo tee /etc/network/interfaces.d/eth42
$ sudo ifup eth42
$ ssh user@192.168.82.1

System configuration

The following information can be helpful when you connect to BarnacleOS router and configure it:

  • Root login via SSH is disabled
  • Root password is disabled
  • User user has access via SSH with password password
  • SSH host keys are generated at first startup, so fingerprint is different for each installation of the same image
  • User has passwordless sudo

Internal network

BarnacleOS is the typical IPv4 router with it's own internal network. Multiple devices can be connected to it. DHCP server assigns IPv4 addresses to devices. As a gateway, it sends all traffic from internal network to the Internet through the Tor network. The local traffic is not encrypted. Here is the internal network configuration:

  • Hostname: barnacleos
  • FQDN: barnacleos.local
  • Subnet: 192.168.82.0/24 (netmask 255.255.255.0)
  • Gateway: 192.168.82.1
  • Broadcast: 192.168.82.255
  • IP range: 192.168.82.2 to 192.168.82.254