First Boot Guide

Complete guide to your Pimeleon's first boot experience


First Boot Guide

Welcome to your Pimeleon router's first boot! This guide walks you through what to expect during the initial startup and how to verify everything is working correctly.

What You'll Need

Before powering on your Pimeleon for the first time:

  • Pimeleon device with SD card properly inserted
  • Power supply (5V/2.5A minimum for Pi 3B+, 5V/3A for Pi 4)
  • Ethernet cable connected to your upstream network (internet connection)
  • Computer or mobile device on the same network
  • 5-10 minutes of your time

Optional but Helpful

  • HDMI monitor and cable — Useful for watching boot messages if troubleshooting is needed
  • USB keyboard — For console access if SSH isn't working
  • Patience — First boot takes longer than subsequent boots due to initial configuration

Pre-Boot Checklist

Before you plug in power, verify:

  • SD card is firmly seated (push until it clicks)
  • Ethernet cable connected to WAN port (usually labeled or documented)
  • Power supply is rated for sufficient amperage (2.5A+ for Pi 3B+, 3A+ for Pi 4)
  • No USB devices connected except keyboard (if using)
  • Your upstream router/modem is powered on and working

The First Boot Sequence

Stage 1: Power-On (0-10 seconds)

What you'll see:

  1. Red LED lights up immediately — Power indicator (solid red is good)
  2. Green LED starts blinking — SD card activity (this is excellent!)
  3. If using HDMI: Rainbow splash screen appears briefly

What's happening:

  • Raspberry Pi bootloader initializing
  • Reading boot configuration from SD card
  • Loading Linux kernel into memory

Stage 2: Kernel Boot (10-30 seconds)

What you'll see:

  • Green LED blinks rapidly — Heavy disk activity
  • If using HDMI: Scrolling boot messages (white text on black background)

What's happening:

  • Linux kernel loading and initializing hardware
  • Detecting network interfaces
  • Mounting filesystem and starting system services
  • Setting hostname to pimeleon or pi-router

Normal boot messages you might see:

[    0.000000] Booting Linux on physical CPU 0x0
[    1.234567] eth0: link up, 1000Mbps, full-duplex
[    2.345678] Starting system services...

Stage 3: Service Initialization (30-90 seconds)

What you'll see:

  • Green LED continues blinking — Services starting up
  • Network LED activity on Ethernet port (blinking orange/green)
  • HDMI shows: Service startup messages

What's happening:

  • DNS Services (BIND9, DNS filtering) starting
  • DHCP Server initializing
  • Network Firewall (Shorewall) activating
  • Proxy Services (Tor, Privoxy) launching
  • SSH Server becoming available

Key services starting in order:

  1. Networking — Network interfaces configured
  2. Firewall — Shorewall rules applied
  3. DHCP — IP address assignment service ready
  4. DNS — BIND9 and DNS filtering active
  5. Proxies — Tor and Privoxy chains established
  6. Monitoring — Fail2ban and system monitoring

Stage 4: System Ready (90-120 seconds)

What you'll see:

  • Red LED: Solid (power)
  • Green LED: Occasional blinks (idle system activity)
  • Network LEDs: Active (network traffic flowing)
  • If using HDMI: Login prompt appears

What's happening:

  • All services running and stable
  • Network routing active
  • SSH access available
  • Web interfaces accessible

Login prompt looks like:

pimeleon login: _

First Connection Methods

You have several ways to connect to your Pimeleon:

Find your Pimeleon's IP address:

Option A — Try the hostname:

ssh pi@pimeleon.local

Option B — Check your router's DHCP client list for "pimeleon" or "pi-router"

Option C — Use network scanner (if hostname doesn't work):

# From Linux/Mac
nmap -sn 192.168.1.0/24

# From Windows (download Advanced IP Scanner)

Default credentials:

  • Username: pi
  • Password: raspberry (change this immediately!)

First SSH connection:


ssh pi@pimeleon.local
# Or ssh pi@192.168.x.x

# You'll see a security warning (normal for first connection)
The authenticity of host 'pimeleon.local' can't be established.
Are you sure you want to continue connecting (yes/no)? yes

# Enter password: raspberry

Method 2: Web Interface

Access the dashboard:

http://pimeleon.local/admin
# Or http://192.168.x.x/admin

What you'll see:

  • Web dashboard with statistics
  • Query log (may be empty initially)
  • Blocking status (should show "Active")
  • Domain blocklists loaded

If prompted for password:

The admin password was set during image creation. Check your Pimeleon documentation or contact your provider.

Method 3: Console Access (Fallback)

If SSH isn't working:

  1. Connect HDMI monitor and USB keyboard
  2. At login prompt, enter:
    • Username: pi
    • Password: raspberry
  3. You're now at the console — Same as SSH access

Verification Checklist

Let's verify everything is working properly.

1. Check System Status

After logging in via SSH or console:

# View overall system status
systemctl status

# Should show: "State: running"

2. Verify Core Services

Check critical services are running:

# Check all important services at once
systemctl status bind9 pihole-FTL isc-dhcp-server shorewall ssh

# Each service should show:
#   Active: active (running)

Expected output:

● bind9.service - BIND Domain Name Server
   Active: active (running)

● pihole-FTL.service - Pi-hole FTL
   Active: active (running)

● isc-dhcp-server.service - ISC DHCP IPv4 server
   Active: active (running)

● shorewall.service - Shorewall IPv4 firewall
   Active: active (running)

● ssh.service - OpenBSD Secure Shell server
   Active: active (running)

3. Test Network Connectivity

Verify internet connectivity:

# Test external connectivity
ping -c 3 8.8.8.8

# Should receive 3 replies:
# 64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=15.2 ms

Test DNS resolution:

# Test local DNS server
nslookup google.com localhost

# Should return IP addresses for google.com

4. Verify DNS Filtering

Test that ad-blocking is working:

# Try to resolve a known ad domain (should be blocked)
nslookup doubleclick.net localhost

# Should return: 0.0.0.0 (blocked by DNS filtering)

Check DNS filtering statistics:

pihole status

# Should show:
#   [✓] DNS blocking is enabled

5. Check Network Interfaces

Verify network interfaces are up:

ip addr show

# Look for:
#   eth0: UP (WAN interface)
#   wlan0: UP (WiFi Access Point, if configured)

Typical output:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet 192.168.1.50/24 scope global eth0

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet 192.168.76.1/24 scope global wlan0

6. Test Routing Functionality

From your computer (not the Pimeleon):

# Set your computer's DNS to the Pimeleon IP
# On Linux:
sudo systemd-resolve --set-dns=192.168.x.x --interface=eth0

# On macOS:
# System Preferences → Network → Advanced → DNS
# Add Pimeleon IP as DNS server

# On Windows:
# Network Settings → Adapter Settings → Properties
# IPv4 Properties → Use the following DNS server

Test browsing:

  • Open any website — Should load normally
  • Visit ad-heavy site (like news websites) — Ads should be blocked
  • Check web dashboard — Query count should increase

Initial Configuration

Now that your Pimeleon is booted and verified, perform essential first-time configuration.

1. Change Default Password (CRITICAL!)

Change the pi user password:

passwd

# Enter new password twice
# Choose strong password (12+ characters, mixed case, numbers, symbols)

2. Update System Time

Set your timezone:

# List available timezones
timedatectl list-timezones

# Set your timezone (example: US Eastern)
sudo timedatectl set-timezone America/New_York

# Verify correct time
date

3. Set Custom Hostname (Optional)

If you want a different name than "pimeleon":

# Set new hostname
sudo hostnamectl set-hostname my-router-name

# Update /etc/hosts file
sudo nano /etc/hosts
# Change "pimeleon" to your new name

# Reboot to apply
sudo reboot

4. Configure Admin Password

Set or change web interface password:

pihole -a -p

# Enter new password when prompted
# Or press Enter for no password (not recommended)

After first boot, update to latest packages:

# Update package lists
sudo apt update

# Upgrade installed packages (will take 5-10 minutes)
sudo apt upgrade -y

# Reboot to apply kernel updates
sudo reboot

What's Next?

Your Pimeleon is now running and verified! Here's what to do next:

Immediate Next Steps

  1. Configure Network Settings — Set up WiFi, VLANs, or additional interfaces
  2. Customize DNS Filtering — Add custom blocklists or whitelists
  3. Secure Your System — Enable firewall rules and security settings

Learning More

Backup and Maintenance

  • Backup Strategy — Protect your configuration
  • Regular Updates — Check for updates weekly: sudo apt update && sudo apt upgrade
  • Monitor web dashboard — Watch for unusual activity or blocked domains

Troubleshooting

Problem: Bootloader can't find valid kernel

Solutions:

  1. Power off completely
  2. Remove and reseat SD card
  3. Verify SD card integrity (try in computer)
  4. Reflash SD card with Pimeleon image
  5. Try different SD card

Details: Boot Issues Guide

Only Red LED (No Green LED Activity)

Problem: SD card not detected or corrupted

Solutions:

  1. Check SD card is firmly inserted
  2. Try SD card in computer (verify it mounts)
  3. Reflash image to SD card
  4. Try known-good SD card
  5. Test Raspberry Pi with different SD card (rule out hardware failure)

System Boots But No Network Access

Problem: Network interfaces not configured or cable issue

Quick checks:

# Check interface status
ip link show

# Check for IP address
ip addr show eth0

# Restart networking
sudo systemctl restart networking

# Check cable connection (look for link light on Ethernet port)

Common causes:

  • Ethernet cable unplugged or faulty
  • Upstream router/switch not providing DHCP
  • Network interface not enabled in configuration

SSH Connection Refused

Problem: SSH service not running or network issue

Solutions:

  1. Verify SSH is enabled:
    # From console access
    sudo systemctl status ssh
    sudo systemctl start ssh
    
  2. Check firewall rules:
    sudo shorewall status
    
  3. Try different network: Connect directly to computer with crossover cable
  4. Use console access: HDMI + keyboard to debug

Service Failed to Start

Problem: One or more services showing failed status

Diagnosis:

# View detailed error for specific service
sudo journalctl -u service-name -n 50

# Example: Check DNS filtering errors
sudo journalctl -u pihole-FTL -n 50

Common fixes:

# Restart failed service
sudo systemctl restart service-name

# Check configuration file syntax
# (varies by service - consult service-specific docs)

# Review system logs
sudo tail -f /var/log/syslog

Cannot Access Web Dashboard

Problem: Web interface not loading

Checklist:

  1. Verify DNS filtering is running:
    pihole status
    sudo systemctl status pihole-FTL
    
  2. Check you're using correct URL:
    http://pimeleon.local/admin  ← Note the /admin path
    http://192.168.x.x/admin
    
  3. Test from different device on same network
  4. Restart DNS filtering service:
    pihole restartdns
    
  5. Check firewall isn't blocking HTTP:
    sudo shorewall status
    

Performance Expectations

First Boot vs Normal Boot Times

StageFirst BootSubsequent Boots
Power to kernel10s5s
Kernel to login80s30s
Services ready120s45s
Total~2 minutes~45 seconds

Why first boot is slower:

  • Initial service configuration
  • Cache building (DNS, etc.)
  • SSH host key generation
  • System checks and initialization

Expected System Resources

After fresh boot, typical resource usage:

  • CPU: 5-15% (settles to <5% at idle)
  • Memory: 200-400 MB used (of 1GB on Pi 3B+)
  • SD Card: 5-8 GB used (depending on logs)
  • Temperature: 40-50°C idle (with heatsink)

Higher values indicate:

  • Active download/configuration happening
  • Services still initializing (wait a few minutes)
  • Possible issue (if sustained after 5 minutes)

LED Behavior Reference

Normal Operation

LED ColorStateMeaning
RedSolidPower connected (always on)
GreenSlow blinkIdle system, occasional disk activity
GreenRapid blinkHeavy disk I/O (boot, updates)
GreenOffNo SD card or bootloader issue

During Boot

PatternStage
Green blinking rapidly (1st min)Kernel loading
Green blinking moderately (2nd min)Services starting
Green occasional blinks (after 2 min)System ready

Warning Patterns

PatternIssue
Red only, no greenSD card problem
4 green blinks, stopBoot failure
Continuous rapid greenStuck in boot loop
No LEDsNo power

Getting Help

Self-Service Resources

Active Support Channels

  • Discord Server — Real-time chat support
  • GitHub Issues — Bug reports and feature requests
  • Documentation Feedback — Help us improve this guide

Diagnostic Information to Collect

Before asking for help, gather:

# System information
uname -a
cat /etc/os-release

# Service status
systemctl status --failed

# Recent system logs
sudo journalctl -n 100 > ~/boot-logs.txt

# Network configuration
ip addr show > ~/network-info.txt

Share these files when requesting support for faster resolution.


Summary

You've successfully completed your Pimeleon router's first boot!

What you've accomplished:

  • ✓ Verified proper boot sequence
  • ✓ Confirmed all services running
  • ✓ Tested network connectivity
  • ✓ Validated DNS filtering
  • ✓ Changed default credentials
  • ✓ Configured basic settings

Your Pimeleon is now:

  • Routing your network traffic
  • Blocking ads and trackers network-wide
  • Providing encrypted DNS lookups
  • Protecting against malicious domains
  • Ready for advanced configuration

Welcome to cleaner, faster, more private internet!

Next: Quick Setup Guide