A linux builder for the DE10 Nano. It builds the latest uBoot, Linux Kernel and a Buildroot based rootfs to be used on the DE10 Nano. The hardware design is very minimal with the ARM HPS connected only to LEDs and Switches through LWH2F bridge. You can freely modify the hardware design, the scripts will automatically configure uBoot and Device Trees according to Qsys generated design files.
The goal of this repo is to provide an automated environment in which Linux based designs can be made without depending on the GHRD that is provided. To design systems from a 'clean slate' with the latest kernel and bootloader.
Most of the flow is automated. The only step requiring user input is modification of script variables if the arm GNU toolchain is not installed in a standard path.
- Quartus 19 (Older versions will not work)
- SoC EDS 19
arm-linux-gnueabihfGCC toolchain (apt install gcc-arm-linux-gnueabihf)- Build Essentials
- All commands run in Embedded Command Shell
- ~10 GB disk space that you can allocate (the build takes 8.8 GB)
- DE10 Nano
- SDCard (size of card image is 720 MB)
If you did not install in /usr/bin then you need to edit the CROSS_COMPILE variable in uboot.sh and linux.sh. To find out where your toolchain is installed run
which arm-linux-gnueabihf-gccThe Quartus project is in hardware directory. A script called compile.sh will compile the design. It is very minimal. The Qsys for the design is:
There are no FPGA <---> HPS events. Only LWH2F bridge is enabled. All the HPS peripherals are however enabled.
- Create the RTL for your hardware (or use the default)
- Run the
compile.shscript in the hardware directory to makeRBF - Run the
uboot.shscript in top directory to download and build uboot. Also compiles theu-boot.scriptfile. This creates asdfsdirectory which contains the contents for the FAT partition of SDCard (.rbf,u-boot.scr,zImage). - Run the
linux.shscript to download and build the latest kernel and buildroot based rootfs. The default buildroot config isbuildroot.config. Creates arootfsdirectory which contains the contents of ext3 partition. - Finally run
sdimg.shto build an SDCard image. Flash it withdd - Run the Board with the card. The user name is
rootand password isasad
To customize UBoot/Linux/Buildroot, after they have been downloaded/built, you can stop the script, run make menuconfig in the corresponding directories. After customizing, re-run the corresponding linux/uboot.sh file.
bootloader:bsp-editorgenerated filesbootloader/uboot: UBoot sources (from altera-opensource)kernel/source: Linux sources (from altera-opensource)rootfs: ext3 partition files (uncompressed rootfs)sdfs: FAT partition files
40 MB rootfs with default settings
Porting to other boards should be trivial.
- Update the Quartus Project
- Replace the board
.xmlfiles inhardwaredirectory (Look in the GHRD for these) - Change the Uboot config in
uboot.shscript - The rest should remain unchangedupad


