HiKey downloads

Summary
This page describes a safe download and flashing routine for HiKey images. Most first-boot failures come from incomplete downloads, weak storage, corrupted flash processes, or inadequate power delivery. Following the verification steps below eliminates these variables before you start debugging software issues.
Who this is for
HiKey board owners downloading Linux or Android images, developers flashing custom kernel builds, and anyone troubleshooting boot failures who needs to verify their flash process is correct.
What you'll do
- Choose the correct image for your HiKey model (960 vs 620) and use case (Linux, Android AOSP).
- Verify image integrity using SHA256 checksums before and after decompression.
- Flash to eMMC using fastboot (recommended) or to microSD card using dd/Etcher.
- Set DIP switches correctly for boot mode (Auto boot vs Fastboot).
- Verify first boot with serial console or network access.
- Capture baseline boot logs for future troubleshooting.
Downloads
HiKey images are available from multiple sources. Verify checksums regardless of source to ensure download completed successfully.
- LeMaker downloads hub ' curated images with verified checksums
- 96Boards official releases ' Debian and Ubuntu builds for HiKey 960
- AOSP builds ' Android Open Source Project images for development
Choosing the right image
- HiKey 960 vs HiKey 620: Images are NOT interchangeable. HiKey 960 (Kirin 960, 3GB RAM) and HiKey 620 (Kirin 620, 2GB RAM) require different images. Verify your board model before downloading.
- Linux distributions: Debian (stable, well-tested), Ubuntu (newer packages), Fedora (bleeding-edge), OpenEmbedded/Yocto (custom builds).
- Android: AOSP images for development and testing. Check Android version compatibility with your application requirements.
- Kernel versions: Mainline kernel 4.14+ recommended for HiKey 960 hardware support. Older kernels may lack Mali GPU, UFS storage, or power management drivers.
Download and verification workflow
Step 1: Download image and checksum
# Download image (example):
wget https://example.com/hikey960-debian-bullseye.img.xz
# Download published SHA256 checksum:
wget https://example.com/hikey960-debian-bullseye.img.xz.sha256
Step 2: Verify compressed image
# Linux/macOS:
sha256sum hikey960-debian-bullseye.img.xz
# Compare output with published checksum
# Windows PowerShell:
Get-FileHash .\hikey960-debian-bullseye.img.xz -Algorithm SHA256 | Format-List
Step 3: Decompress image
# Linux/macOS:
xz -d -k hikey960-debian-bullseye.img.xz
# -k keeps original .xz file
# Windows: use 7-Zip or PeaZip
Step 4: Verify decompressed image
sha256sum hikey960-debian-bullseye.img
# Checksum should match published value for .img file
Why verify twice? Compressed file checksum confirms download succeeded. Decompressed file checksum confirms decompression succeeded and no corruption occurred.
Flashing methods
Method 1: Fastboot to eMMC (recommended)
Fastboot flashing is preferred for eMMC as it provides verification and error reporting.
- Install fastboot tools:
# Debian/Ubuntu: sudo apt install fastboot android-tools-fastboot # Fedora: sudo dnf install android-tools # Windows/macOS: download Android Platform Tools from developer.android.com - Set DIP switches to Fastboot mode:
- Switch 1 = OFF
- Switch 2 = OFF
- Switch 3 = ON
- Switch 4 = OFF
- Connect and verify:
# Connect USB-C cable from HiKey to host PC # Power on HiKey (connect USB-C power supply) # Verify fastboot connection: fastboot devices # Should show device serial number - Flash image:
# For partition images: fastboot flash boot boot.img fastboot flash system system.img fastboot flash userdata userdata.img # For single complete image: fastboot flash all hikey960-debian-bullseye.img # Reboot to new image: fastboot reboot - Set DIP switches to Auto boot mode:
- Switch 1 = ON
- Switch 2 = OFF
- Switch 3 = OFF
- Switch 4 = OFF
- Power cycle board (unplug and replug USB-C power)
Method 2: Flash to microSD card
Alternative method for testing or when eMMC is unavailable.
# Linux:
# Identify SD card device:
lsblk
# Flash image (replace /dev/sdX with your SD card device):
sudo dd if=hikey960-debian-bullseye.img of=/dev/sdX bs=4M status=progress conv=fsync
sync
# Verify write succeeded:
sudo blockdev --flushbufs /dev/sdX
lsblk -f /dev/sdX
Windows: Use Balena Etcher (balena.io/etcher) or Rufus (rufus.ie) for GUI flashing.
macOS: Use Balena Etcher or dd command (similar to Linux, device typically /dev/diskN).
First boot checklist
- Verify DIP switches set to Auto boot mode (1=ON, 2=OFF, 3=OFF, 4=OFF)
- Connect Ethernet cable (recommended for first boot)
- Connect HDMI display or serial console (115200 baud, 1.8V logic level)
- Power on board (connect USB-C power supply)
- Wait for boot (first boot may take 2-3 minutes for filesystem initialization)
- Log in (default credentials vary by image ' check distribution documentation)
Verify successful boot
# Check kernel and device tree:
uname -a
# Should show aarch64 and "hikey960" in device tree name
# Check boot messages:
dmesg | grep -i hikey
dmesg | grep -i kirin
# Check critical services:
systemctl --failed
# Check filesystem:
df -h
lsblk
# Check network:
ip a
ping -c4 8.8.8.8
Troubleshooting
- Image won't boot: re-download image and verify checksum; re-flash to different storage (try microSD if eMMC fails); verify DIP switches in Auto boot mode; check USB-C power supply provides sufficient current (12V 2A or 5V 3A minimum); capture serial console output for error messages.
- Fastboot device not detected: try different USB-C port on host PC (USB 3.0 preferred); verify DIP switches in Fastboot mode before powering on; power cycle board after setting switches; check USB-C cable quality (data-capable, not power-only); install fastboot drivers (Windows may need manual driver installation).
- Fastboot flash fails with errors: verify image file is not corrupted (re-check SHA256); try slower flash with
fastboot -wto wipe userdata first; update fastboot tools to latest version; some images require flashing individual partitions instead of single "all" image. - Random hangs or resets during boot: check power supply quality (inadequate power very common cause); try different USB-C cable (poor cable causes voltage drop); remove all USB peripherals and test with minimal configuration; check for thermal issues (add heatsink if board gets very hot).
- No network after boot: verify Ethernet cable connected and link LED active; check
ip afor interface name; checksystemctl status NetworkManagerorsystemctl status systemd-networkd; try static IP configuration to eliminate DHCP issues; if using WiFi, verify module detected withlsusband drivers loaded withlsmod. - eMMC appears corrupted: re-enter Fastboot mode and reflash completely; try different USB-C cable for flashing (poor cable can corrupt writes); verify power supply stable during flash process; eMMC wear: if board heavily used, eMMC may be failing (test with microSD card).
Common mistakes
- Skipping checksum verification and debugging a corrupt download/flash.
- Forgetting to power cycle after changing DIP switches (new boot mode doesn't activate until power cycle).
- Using wrong image for board model (HiKey 960 vs 620 images not interchangeable).
- Flashing with inadequate power supply (causes intermittent write errors).
- Not safely ejecting SD card after dd write (data may still be in write cache).
- Connecting 3.3V or 5V serial adapter directly to HiKey 1.8V UART pins (damages board ' use level shifter).
- Testing with multiple variables changed at once (new image + new peripherals + new network config).
Frequently asked questions
- How do I know if my download completed successfully?
- Verify SHA256 checksum matches published value. If checksums don't match, download is incomplete or corrupted ' delete and re-download.
- Can I use the same image for HiKey 960 and HiKey 620?
- No. The SoCs are completely different (Kirin 960 vs 620). Using wrong image will fail to boot or cause hardware detection errors. Always verify board model before downloading.
- Why does fastboot show "FAILED (remote: unknown command)"?
- Bootloader on your HiKey may not support that fastboot command. Try older fastboot tool version, or reflash bootloader using recovery procedure from 96Boards documentation.
- Should I use eMMC or microSD card?
- eMMC is faster and more reliable for production use. microSD card is easier to swap for testing multiple images. For kernel development, keep stable image on eMMC and test images on SD card.
- How long should first boot take?
- Typically 1-3 minutes. First boot initializes filesystems, generates SSH keys, and may run initial setup scripts. If no activity after 5 minutes, check serial console for errors.
- What if I can't enter Fastboot mode?
- Verify DIP switch settings (1=OFF, 2=OFF, 3=ON, 4=OFF). Power cycle after setting switches. If still no detection, bootloader may be corrupted ' requires recovery flashing via JTAG or special recovery cable (consult 96Boards documentation).
- Can I flash from Windows Subsystem for Linux (WSL)?
- Not recommended. WSL has limited USB device access. Use native Windows fastboot tool or Balena Etcher instead. For dd flashing, use native Linux or macOS.
- Why does my board reset during fastboot flash?
- Almost always power-related. USB-C power supply not providing sufficient current, or poor cable causing voltage drop. Upgrade to 12V 2A PD adapter and high-quality USB-C cable.
Related guides
- HiKey overview and setup guide
- HiKey specifications
- Image files and integrity checks
- ARM Linux Reliable Setup Checklist
Author: LeMaker Documentation Team
Last updated: 2026-01-12