First Login

Tue Feb 4, 2025

Pi

The first partition, the /boot partition, has a special file that gets auto-merged with wifi settings on each boot.

This means you can add wifi settings from a Windows computer by writing to the file wpa_supplicant_additions.txt stanzas like:

#this is wpa_supplicant_additions.txt - create that file if it doesn't exist. 
#This should be in the same folder as config.txt.

#lines starting with # are ignored
#each network={...} is a separate wifi network configuration
#ssid is the 'name' of your wifi network
#psk is the password. If you don't have a password on your wifi, you can use key_mgmt=NONE instead of psk.
#priorities are supported, so you can make sure it connects to your
# house, or if that's not there, your phone hotspot, or if that's not
# there, something else. Higher priorities are searched for first. Equal
# priorities are equally likely to be chosen.

#PorkAlpine runs bog-standard wpa_supplicant(8), so the man pages are helpful for advanced usage in the config: wpa_supplicant.conf(5).
# (that's `man 5 wpa_supplicant.conf` if you're one of today's 10k for manual pages)

network = {
    ssid="Sperry"
    psk="lunarfingerprint"
    priority=500
}
network = {
    ssid="Marios iPhone"
    psk="1234567890"
    priority=100
}
network={
    ssid="OpenWrt"
    key_mgmt=NONE
    priority=10
}

First boot

First boot can take a little longer than you might expect, particularly on armhf platforms with slow microSD cards.

During first boot, the last partition and the filesystem on it are automatically enlarged to take up the remaining free space of the disk.

The first boot also is when the system automatically creates SSH host keys and that sort of thing.

As a result, this first boot can take some time.

Each boot

The pi platforms don’t have a real-time clock on the board. They lose track of what time it is.

Other distros fake the time when they boot up based on inspecting the filesystem for the last known-good time.

PorkAlpine currently does not. It will think it is 1970 until it gets a time from the network, which will make everything that uses SSL break until that time. This is a small fraction of the boot time, but SSH is available while its going on so if you’re quick to login it may still surprise you when a command fails.

Users and login

Default credentials:

user password
root porkalpine
v porkalpine

SSH is enabled by default, and as standard on port 22, so don’t put this on the public internet right off the bat. By default, root cannot login over ssh without an ssh key.

PorkAlpine will ask for DHCP on eth0 (ethernet) and wlan0 (wifi) if available. IPv6 support is whatever Alpine gives you out of the box - PRs very welcome. (My ISP still hasn’t deployed IPv6 and has no plans to, so I’m not interested in dealing with it myself right now.)

If you have local dns support using hostnames provided by dhcp clients - most of you won’t, but OpenWRT users and a few others will - you can just ssh v@porkalpine and expect it to work. Otherwise you’ll need the IP. You can check your router’s clients page.

Ideally you would immediately add an ssh key to both users, change both users passwords, and then turn off SSH password authentication.

You can su to root with the password, or install sudo or doas as you prefer during further setup.

Eventually I will add sudo simply for friendliness to those used to it, but right now I figure anyone using porkalpine will probably login as root.

Default Programs

  • basics like busybox, wpa_supplicant, coreutils, etc
  • openssh
  • python3
  • vim, bash, git, screen, curl (It’s my distro, I get my comforts)
  • mmdvmhost, mmdvmcal, m17gateway
  • more coming very soon! (mmdvm_micro_dash, mmdvm_easy_flash, dmrgateway, tarsat, …)

Notable Default Configuration

  • rtl-sdr dvb driver blacklisting
  • wifi power saving disabled (check /etc/local.d/

Man pages

By default, man, the standard manual program, is not installed. You may want to install it:

/home/v # apk add mandoc mandoc-doc

You may also want to install the man pages for other commands - identify them by finding the package name ending in -doc and then install them.

/home/v # apk search wpa_supplicant
wpa_supplicant-2.10-r11
wpa_supplicant-doc-2.10-r11
wpa_supplicant-openrc-2.10-r11
/home/v # apk add wpa_supplicant-doc
(1/1) Installing wpa_supplicant-doc (2.10-r11)
OK: 515 MiB in 188 packages
/home/v #