Network Issues¶
Troubleshooting network connectivity problems on your PicoCalc.
Quick Diagnostics¶
Start with these basic checks:
# Check network interfaces
ip addr show
# Check if interfaces are up
ip link show
# Test basic connectivity (if you know a working IP)
ping 8.8.8.8
# Test DNS resolution
ping google.com
# Check routing
ip route show
USB Networking Issues¶
For detailed USB networking troubleshooting, see the USB Networking Guide.
Quick USB Network Checks¶
# Check if USB gadget service is running
systemctl status usb-gadget-network
# Check usb0 interface
ip addr show usb0
# Restart USB gadget
sudo systemctl restart usb-gadget-network
Common USB networking issues:
- Device not appearing on host: Check USB cable (must be data cable), verify service is running
- Cannot ping device: Verify IP configuration on both host and device
- No DHCP: Check that host has internet sharing enabled
- Module errors: Verify kernel modules are loaded with
lsmod | grep -E 'libcomposite|rndis|ecm'
See USB Networking Troubleshooting for detailed solutions.
WiFi Not Working¶
WiFi Interface Not Found¶
Check if the WiFi interface exists:
If no WiFi interface is found:
- Check if the module is loaded:
- Load the WiFi driver module:
- Check system logs:
Cannot Connect to Network¶
Using iwctl:
# Enter iwctl interactive mode
iwctl
# Scan for networks
station wlan0 scan
# List available networks
station wlan0 get-networks
# Connect to network
station wlan0 connect "NetworkName"
If connection fails:
- Check signal strength: Move closer to the access point
- Verify password: Ensure correct passphrase
- Check network mode: Some routers may need 2.4GHz mode enabled
- Check logs:
WiFi Disconnects Frequently¶
Common causes:
- Power management: Disable WiFi power saving:
-
Weak signal: Move closer to access point or add external antenna
-
Channel interference: Try changing router channel (especially on 2.4GHz)
-
Driver issues: Check for kernel messages:
WiFi Adapter in Invalid State¶
Symptoms:
- Access points don't appear in WiFi scan results
iwctl station wlan0 scanreturns empty list- WiFi USB adapter doesn't appear in
lsusboutput - Network interface exists but doesn't respond to commands
Cause: The WiFi adapter or module enters an invalid state, preventing normal operation. This can happen after power cycling, resets, or other transient hardware issues.
Solutions:
Option 1: Complete power cycle (most reliable)
A simple reboot (reboot) or sudo systemctl restart iwd often does not work for invalid adapter states. A complete power off is required:
- Power off the Picocalc:
- Press the power button and boot normally
- The adapter hardware will fully reinitialize
Option 2: Remove and re-insert USB adapter (for external adapters)
If you have an external USB WiFi adapter, physical disconnection can help reset the hardware:
- Unplug the USB WiFi adapter
- Wait 10-15 seconds
- Re-insert the adapter
Adapter May Get a New Name
In rare cases, a corrupted adapter may be assigned a new interface name upon re-insertion. Instead of wlan0, it may appear as wlan1 in ip addr, dmesg, or other tools. iwd will still connect correctly since its configuration is adapter-independent. To restore the original device naming, reboot or perform a complete power cycle.
Option 3: Software module reload (unreliable for stuck adapters)
Software-only solutions may not work when the adapter itself is in an invalid state, but you can try:
# This may not work if the adapter hardware is truly stuck
# Identify the WiFi driver module (e.g., rtl8188fu, aic8800)
lsmod | grep -E 'rtl|aic'
# Attempt to reload the module (replace with your driver name)
sudo modprobe -r rtl8xxxu
sudo modprobe rtl8xxxu
# Or try restarting the iwd service
sudo systemctl restart iwd
If software reload doesn't resolve the issue within a few minutes, proceed to Option 1 (complete power cycle).
DNS Problems¶
Cannot Resolve Hostnames¶
Test DNS resolution:
# Check DNS servers
cat /etc/resolv.conf
# Test DNS lookup
nslookup google.com
# Or use dig
dig google.com
Fix DNS issues:
- Manually set DNS servers in
/etc/resolv.conf:
-
For WiFi with iwd: DNS should be set automatically via DHCP
-
For USB networking:
- With internet sharing, DNS should come from DHCP
- For static config, manually set DNS as above
DNS Lookup Slow¶
- Try alternative DNS servers (Cloudflare, Google, Quad9)
- Check if DNS server is accessible:
Connection Timeouts¶
SSH Connection Times Out¶
If SSH to your PicoCalc times out:
- Verify connectivity:
- Check if SSH is running:
- Check firewall (if enabled):
- Try verbose SSH to see where it fails:
Internet Access Times Out¶
If you can't reach external sites:
- Check default route:
- Test local gateway:
- Test external IP:
- Test DNS:
This helps identify if the issue is:
- Local network (can't reach gateway)
- Internet routing (can reach gateway but not internet)
- DNS (can reach IPs but not resolve names)
Advanced Diagnostics¶
Network Interface Details¶
# Detailed interface info
ethtool usb0 # or wlan0
# Interface statistics
ip -s link show usb0
# Routing table
ip route show table all
Network Traffic Analysis¶
# Monitor traffic on interface
sudo tcpdump -i usb0
# Show active connections
ss -tunap
# Network statistics
netstat -s
Service Status¶
# Check network-related services
systemctl status systemd-networkd
systemctl status iwd
systemctl status usb-gadget-network
systemctl status sshd
# View service logs
journalctl -u systemd-networkd -b
journalctl -u iwd -b
Getting Help¶
If you're still experiencing issues:
- Gather diagnostic information:
# Save to a file
{
echo "=== Network Interfaces ==="
ip addr show
echo "=== Routes ==="
ip route show
echo "=== DNS ==="
cat /etc/resolv.conf
echo "=== Service Status ==="
systemctl status usb-gadget-network systemd-networkd iwd
} > network-diag.txt
- Check the documentation:
- USB Networking Guide
- First Boot - WiFi setup
-
Ask the community:
- Discord
- Forum
- GitHub Issues
See Also¶
- USB Networking Guide - Complete USB networking documentation
- Basic Usage - General usage information
- Common Issues - Other troubleshooting topics