Why I Started Using This Tool

After mapping out every peripheral on the DE10-Nano in the last post, I figured flashing the board and booting it would be the quick, "five minute" episode before the real projects start. It wasn't — and not for the reason I expected. I went to Terasic's download page assuming the newest-dated file would be the image to grab. It turned out to be a documentation and reference-design bundle, not an OS image at all. I wanted to write up what I actually found — including where the real flashable image lives — so nobody following this series wastes time flashing the wrong thing.

What It Does

Terasic's DE10-Nano download page splits into a few pieces: per-hardware-revision "System CD" zips (Datasheet, Demonstration, Manual, and Tools folders — including the actual GHRD reference design as Quartus source code), and separate image folders like AngstromImage, AzureImage, and linux_BSP. The real ready-to-flash Linux image — a single file built back in 2017 — lives in AngstromImage. It contains everything needed to boot: a FAT partition with the preloader, U-Boot, the Linux kernel, a device tree, and the compiled FPGA configuration file, plus an ext3 partition with the actual Angstrom Linux root filesystem. Flash it with a tool like balenaEtcher, boot it over a serial console, and you land on a working Linux system with an onboard demo that can sweep LEDs, read switches, and pull ADC readings — proof that hardware and software are already talking to each other before you've written a single line of your own code.

Where to Actually Download It

The bootable image lives in Terasic's AngstromImage download folder, not in any of the System CD zips:

Extract the .tgz to get a single .img, then write it to an 8 GB+ Micro SD card with balenaEtcher (or dd). Set the board's MSEL DIP switches to the SD-card boot mode from the User Manual, plug a USB cable into the UART-to-USB port, and open a serial terminal at 115200 8N1.

Example Boot Output

Power on, and the preloader → U-Boot → kernel chain scrolls past, ending at the Angstrom banner and a login prompt:

U-Boot SPL 2013.01.01 (Mar 31 2017 - 12:57:56)
BOARD : Altera SOCFPGA Cyclone V Board
...
U-Boot 2013.01.01 (Mar 31 2017 - 12:58:03)

CPU   : Altera SOCFPGA Platform
BOARD : Altera SOCFPGA Cyclone V Board
...
Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.1.33-ltsi-altera (...)

 .---O---.
 |       |                  .-.           o o
 |   |   |-----.-----.-----.| |   .----..-----.-----.
 |       |     | __  |  ---'| '--.|  .-'|     |     |
 |   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
 '---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                 -'  |
                 '---'

The Angstrom Distribution de10-nano ttyS0

Angstrom v2016.12 - Kernel 4.1.33-ltsi-altera

de10-nano login: root
Password:
root@de10-nano:~# ls
Desktop
root@de10-nano:~# pwd
/home/root
root@de10-nano:~# uname -a
Linux de10-nano 4.1.33-ltsi-altera #1 SMP Fri Mar 31 ... armv7l GNU/Linux

The root account has no password by default — just press Enter. From here the FPGA is already configured from the image's .rbf file, so the onboard demo (reachable at http://de10-nano.local/ once Ethernet is up) can sweep the LEDs, read the slide switches, and stream ADC channels without any code of your own.

Final Verdict

This ended up being a more useful episode than "flash the SD card" usually is, precisely because I got it wrong on the first try. It's tempting to assume the newest file on a vendor's download page is the one you want — this board taught me that's not always true, and that it pays to actually open a download and check what's inside before writing it to anything. If you're picking up a DE10-Nano yourself: find your board's printed hardware revision, but go looking for your actual bootable image in the AngstromImage folder rather than the shiny recently-updated System CD zips, and know that if you eventually want something newer than a 2017 build, the linux_BSP tooling and community Yocto projects are where that path starts. It's a small distinction, but it's exactly the kind of thing that turns a confusing "why won't this boot" session into a non-issue.