What This Guide Covers
This guide walks through installing Debian 13 (Trixie) on the original Banana Pi board with the Allwinner A20 dual-core Cortex-A7 SoC. Trixie brings a newer glibc, systemd 256+, and kernel 6.x defaults — all of which change the baseline for Allwinner sunxi boards in ways that matter for daily operation.
If you are coming from Debian 11 or 12 on this hardware, some things work better and some things break. This guide tells you which, and what to do about it.
Prerequisites
- Banana Pi (original, Allwinner A20) — confirmed working with the LeMaker v1 board as documented in the Banana Pi hardware specifications
- 5V 2A power supply with a barrel jack or microUSB — underpowered supplies cause silent filesystem corruption under load
- Class 10 or A1-rated microSD card, 8 GB minimum — avoid unknown brands; see the downloads hub for tested configurations
- Ethernet cable — the onboard Gigabit Ethernet (RTL8211E PHY) works out of the box with the sunxi kernel
- A second machine with an SD card reader for flashing
- Optional: USB-to-TTL serial adapter (3.3V) for console access if the boot hangs before the network comes up
Obtaining a Debian 13 Image for Allwinner A20
Official Debian armhf installer images support the sunxi platform, but a pre-built SD card image is faster to get running. Check these sources in order:
- Debian official — the armhf netinst ISO works with u-boot on the Banana Pi, but requires serial console for the installer. Only use this if you are comfortable with manual u-boot setup.
- Armbian Debian Trixie builds — community-maintained images with the sunxi kernel and correct device tree for the Banana Pi. These are the fastest path to a working system.
- LeMaker-provided images — check the downloads hub for any Trixie-era images; these may lag behind upstream but include tested board support packages.
Download the image and its checksum file to the same directory.
Verify the Image and Flash to SD
Verify the checksum
# SHA-256 verification — the exact command depends on your OS
sha256sum -c Armbian_*.sha256
# Expected output:
# Armbian_24.11_Bananapi_trixie_current_6.6.xx.img.xz: OK
If the checksum does not match, re-download. Do not flash an unverified image.
Flash to microSD
# Identify the SD card device — get this wrong and you wipe a real disk
lsblk
# Decompress and flash in one step
xzcat Armbian_*.img.xz | sudo dd of=/dev/sdX bs=1M status=progress conv=fsync
# Force kernel to re-read partition table
sync
sudo partprobe /dev/sdX
First Boot Sequence and What to Expect
- Insert the flashed microSD card
- Connect Ethernet
- Connect power (do not connect HDMI yet if you are using serial console)
- Watch for the green activity LED to start blinking — this indicates u-boot has loaded the kernel
The first boot takes 60–90 seconds. Armbian images will ask you to set a root password and create a user on first login. If you are using a stock Debian image, the default credentials are typically root/1234 — change them immediately.
# Find the Banana Pi on your network
nmap -sn 192.168.1.0/24 | grep -i banana
# Or check your router's DHCP lease table
# Then SSH in:
ssh root@192.168.1.X
Post-Boot Health Checks
Run these checks immediately after first login. Do not start installing packages until all pass.
# 1. Verify you're running the expected kernel
uname -r
# Expected: 6.6.x or 6.12.x (sunxi)
# 2. Check the device tree is correct for Banana Pi
cat /proc/device-tree/model
# Expected: "LeMaker Banana Pi" or "Allwinner A20 Banana Pi"
# 3. Verify both CPU cores are online
nproc
# Expected: 2
cat /sys/devices/system/cpu/online
# Expected: 0-1
# 4. Check available RAM
free -h
# Expected: ~980M total on 1GB board
# 5. Verify Ethernet link
ip link show eth0
# Look for: state UP
# 6. Check root filesystem health
df -h /
# Ensure reasonable free space
# 7. Verify system clock (important for apt)
timedatectl status
# If NTP sync is "no", fix it:
sudo timedatectl set-ntp true
nproc returns 1 instead of 2, check for thermal throttling or a kernel that does not enable the second core by default. Verify with dmesg | grep -i cpu.
2026 Compatibility Notes for Allwinner A20
The Allwinner A20 is a decade-old SoC. Running Debian 13 on it works, but certain components have drifted:
| Component | Status in Trixie | Notes |
|---|---|---|
| CPU (Cortex-A7) | ✅ Fully supported | sunxi device tree in mainline since 3.x |
| Ethernet (RTL8211E) | ✅ Works | stmmac driver, may need firmware-realtek on some configs |
| SATA | ✅ Works | ahci-sunxi driver; hot-plug not reliable |
| HDMI | ⚠️ Partial | sun4i-drm driver; some resolutions fail. Use serial console as primary. |
| USB | ✅ Works | Both ports functional; USB OTG requires manual gadget config |
| GPIO | ⚠️ Changed | sysfs GPIO is deprecated; use libgpiod / gpiod tools |
| IR receiver | ⚠️ May need config | sunxi-ir driver loads but LIRC setup has changed in Trixie |
| Audio (analog) | ⚠️ Partial | sun4i-codec works but ALSA defaults may need manual UCM profile |
Known Driver Quirks and Workarounds
HDMI output blank or wrong resolution
# Check what the DRM driver detects
cat /sys/class/drm/card0-HDMI-A-1/status
cat /sys/class/drm/card0-HDMI-A-1/modes
# Force a specific resolution via kernel cmdline
# Edit /boot/armbianEnv.txt (Armbian) or /boot/boot.cmd:
video=HDMI-A-1:1280x720@60
GPIO access changed from sysfs to gpiod
# Old method (deprecated, may not work in Trixie):
echo 67 > /sys/class/gpio/export
# New method — install gpiod tools:
sudo apt install gpiod
# List available GPIO chips
gpiodetect
# Read a specific pin (chip 0, line 67)
gpioget gpiochip0 67
# Set a pin high
gpioset gpiochip0 67=1
System time wrong after boot (no RTC battery)
# The Banana Pi has no battery-backed RTC
# Ensure NTP is enabled:
sudo timedatectl set-ntp true
# Install fake-hwclock to save time across reboots:
sudo apt install fake-hwclock
sudo systemctl enable fake-hwclock
Kernel Considerations
Debian 13 ships with kernel 6.x. The sunxi support in mainline is mature, but if you encounter issues:
- Stay on the distribution kernel unless you have a specific reason to change. Mainline sunxi support is solid for the A20.
- Check
dmesgfor warnings after every boot — new kernel releases occasionally deprecate or rename sunxi-specific options. - If the Armbian kernel breaks, fall back to the LTS branch:
sudo armbian-config→ System → Alternative kernels.
# Check for kernel errors or warnings
dmesg --level=err,warn | head -40
# Check loaded sunxi modules
lsmod | grep sun
Recovery When Boot Fails
If the Banana Pi does not boot after flashing:
- Check the power LED — solid red means power is present. No LED means the supply or cable is bad.
- Check the green LED — if it never blinks, u-boot is not loading. The SD card may not be flashed correctly or the card reader silently failed.
- Connect a serial console (3.3V TTL on the debug header, 115200 baud) — this shows u-boot output and kernel messages before the network comes up.
- Try a different SD card — cheap cards are the number one cause of boot failure. If the same image works on a different card, the first card is bad.
- Re-flash from scratch — if the partition table looks wrong, wipe the card first:
# Wipe the first 100 MB to clear any old partition tables or boot sectors
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=100
# Then re-flash the image
Related Reading
- Banana Pi product overview — hardware specifications and connectivity
- LeMaker downloads hub — official images and utilities
- Banana Pi quick start guide — first-time setup walkthrough
- Secure cold-storage vault with Banana Pi — encryption and backup project using this hardware