Get & unpack the toolchain:

  cd /opt
  tar xvJf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
  export PATH="$PATH:/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin"

Get U-Boot:

  git clone
  cd u-boot
  git checkout nano-v2018.01
  make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_spiflash_defconfig

Configure it:

  make ARCH=arm menuconfig

Enable ARM architecture → Enable graphical uboot console on HDMI, LCD or VGA, set LCD panel timing details to:


Set LCD panel backlight pwm pin to PE6.

And compile it:

  make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4

Clone the linux kernel repository

  git clone --depth=1 -b f1c100s-480272lcd-test

Enable JFFS2 filesytem in the menu config

  make ARCH = arm menuconfig

And build the kernel zImage

  make ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- -j4

Write compiled binaries to the SPI flash:

sunxi-fel -p spiflash-write 0 u-boot-sunxi-with-spl.bin
sunxi-fel -p spiflash-write 0x110000 suniv-f1c100s-licheepi-nano-with-lcd.dtb
sunxi-fel -p spiflash-write 0x110000 zImage
sunxi-fel -p spiflash-write 0x510000 rootfs.jffs2    

SPI partitions (dtsi):

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			partition@0 {
				label = "u-boot";
				reg = <0x000000 0x100000>;

			partition@100000 {
				label = "dtb";
				reg = <0x100000 0x10000>;

			partition@110000 {
				label = "kernel";
				reg = <0x110000 0x400000>;

			partition@510000 {
				label = "rootfs";
				reg = <0x510000 0xAF0000>;
  • buildroot-f1c100s.txt
  • Last modified: 2019/06/13 18:42
  • by qyx