荔枝派Nano_Linux环境搭建,并修改flash型号

荔枝派Nano_Linux环境搭建,并修改flash型号

0. 前言

  • 作者是在2021年买的荔枝派Nano,发现这个板子的flash 已经换成了 xt25f128b , 之前使用的flash是 W25Q125 , 所以之前的镜像文件烧写进去是无法运行的. 关于这个板子的教程大多都编写于2019年,所以想根据前辈的经验重新汇总一下这块开发板环境搭建,也添加了自己的思想。 后面可能会写一些关于应用开发方面的。
  • 作者的水平有限,如有错误。请批评指正。
  • 阅读此文档配合官方文档一起阅读最佳: http://nano.lichee.pro/

1. 开发环境

  1. 开发的系统
  • 开发的系统为 ubuntu~16.04.12 , 大家选择Ubuntu16就好,bug比较少。尽量不要选择 ubuntu 20 ,bug太多了。
  1. 使用的代码编辑器
  • VScode
  1. 编译环境的搭建

    # 1. 下载 arm_gcc 环境
    wget http://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
    
    
    # 2. 下载完毕进行解压
    tar -vxJf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
    
    # 3. 拷贝安装到 opt 目录下
    sudo cp -r ./gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi /opt/
    
    # 4. 添加系统环境,在最后添加环境变量 
    sudo vim /etc/bash.bashrc
    PATH="$PATH:/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin"
    
    # 5. 使其配置生效
    source /etc/bash.bashrc
    
    # 6. 进行测试,如果失败,检查上面的环境是某设置正确。重新切换用户。在测试
    arm-linux-gnueabi-gcc -v
    
    # 7. 出现下面的消息既安装成功
    COLLECT_GCC=arm-linux-gnueabi-gcc
    COLLECT_LTO_WRAPPER=/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin/../libexec/gcc/arm-linux-gnueabi/7.2.1/lto-wrapper
    ...
    
    
  2. 搭建SPI_flash 烧录环境

    • 我们需要把系统烧录到 spi-flash 里面去,就需要一个烧录工具。 我们使用的工具为 sunxi-tools , 在个工具在 Windows和linux都可以使用
    # 0. 如果无安装git 首先安装git
    sudo apt-get install git
    
    # 1. 拉取 sunxi-tools 这个库
    git clone -b f1c100s-spiflash https://github.com/Icenowy/sunxi-tools.git
    
    # 2.进行安装
    cd sunxi-tools
    make && sudo make install
    
    # 3. 错误处理
    # 3.1 如果出现 fatal error: libusb.h: No such file or directory 错误
    sudo apt-get install libusb-1.0-0-dev
    # 3.2 fel.c:32:18: fatal error: zlib.h: 没有那个文件或目录
    sudo apt-get install  zlib-devel
    
    
    # 4. 不出意外 现在已经安装成功, 可以使用这个软件进行烧写。常用的命令有如下几个
    # 4.1 查看芯片是否开启了下载模式, 如果出现芯片信息既可以烧录
    sudo sunxi-fel ver
    
    # 4.2 烧录到 flash
    sudo xunxi-fel -p spiflash-write [烧录的地址] [烧录的文件]
    
    # 4.3 烧录到 内存中
    sudo xunxi-fel -p write [烧录的内存地址] [烧录的文件]
    
    
  3. 对于github拉取速度慢的解决方法

    • 我们在拉取这些库的时候,大多都在 GitHub 。但是拉取太慢了,我们可以安装一个插件进行加速。

在这里插入图片描述在这里插入图片描述

  • 打开GitHub页面,复制加速里面的地址即可。
  1. 怎么使芯片进入烧写模式

    • 当flash 中无 引导数据或者无法找到flash芯片, 既可以进入flash模式。我们可以通过这两方面入手进入烧录模式
    1. 使用 U-boot删除flash中的引导数据

      # 在 u-boot 中使用如下指令进行删除数据
      # 1. 切换到 flash, 其中 0 为选择的flash,50000000 为速度。官方文档这里有错误。注意!
      sf probe 0 50000000
      # 2. 擦除flash, 为什么擦除这段地址,请查看spiflash编译章节
      sf erase 0 0x10000
      
      # 3. 重启
      reset
      
      # 4. 使用 sunxi-fel ver 即可找到芯片
      sudo sunxi-fel ver
      AWUSBFEX soc=00001663(F1C100s) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000
      
    2. 在开机的时候,短接引脚,让芯片找不到flash芯片。

      1. 短接如下两个引脚,上电,短接持续几秒钟。让芯片找不到 flash
        在这里插入图片描述

2. U-boot裁剪编译

  • 新建 f1c100s 文件夹,进去文件夹。再进行如下操作

    mkdir f1c100s
    cd f1c100s
    

2.1 拉取u-boot

# 1.  使用git 拉取 u-boot, 这里可以使用加速
git clone https://github.com/Lichee-Pi/u-boot.git

# 2. 查看分支,并切换到对应分支
git branch -a
git checkout nano-v2018.01

# 3. 进行配置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_spiflash_defconfig

2.2 配置 u-boot

# 1. 进行可视化配置, 进入配置页面
make ARCH=arm menuconfig

# 1.1 如何出现错误,安装如下的包
sudo apt-get install libncurses5-dev libncursesw5-dev

# 2. 如果使用LCD,修改LCD选项
ARM architecture
	Enable graphical uboot console on HDMI, LCD or VGA -> Y
	LCD panel timing details -> x:800,y:480,depth:18,pclk_khz:33000,le:87,ri:40,up:31,lo:13,hs:1,vs:1,sync:3,vmode:0
	# 如果为 480*272 屏幕
	x:480,y:272,depth:18,pclk_khz:10000,le:42,ri:8,up:11,lo:4,hs:1,vs:1,sync:3,vmode:0
	
	LCD panel backlight pwm pin -> PE6 # 具体看原理图

# 3. 修改 boot arguments ,传输到linux的参数
Enable boot arguments -> y
	Boot arguments ->  console=ttyS0,115200 panic=5 rootwait root=/dev/mtdblock3 rw rootfstype=jffs2
    
# 4. 修改bootcmd,启动linux命令。可以具体了解一下 bootcmd 代码的含义,其中拷贝数据启动linux 
Enable a default value for bootcmd -y
	bootcmd -> sf probe 0 50000000; sf read 0x80c00000 0x100000 0x4000; sf read 0x80008000 0x110000 0x400000; bootz 0x80008000 - 0x80C00000

# 5. 保存退出
	
  • 第二步图示

在这里插入图片描述

  • 第 3、 4 步图示

在这里插入图片描述

3.3 修改 flash

# 1. 在代码编辑器中 打开 ./drivers/mtd/spi/spi_flash_ids.c

# 2. 在 170 行左右添加如下代码
{"xt25f128b",	   INFO(0x0b4018, 0x0,	64 * 1024,   256, RD_FULL | WR_QPP | SECT_4K) },

# 3. 保存退出

在这里插入图片描述

3.4 编译、烧写验证 u-boot

  • 编译

    # 编译代码
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j11
    
    # 如果最后出现下面语句,编译成功
     BINMAN  u-boot-sunxi-with-spl.bin
    
    # 错误处理,scripts/Makefile.build:425: recipe for target 'scripts/dtc/pylibfdt' failed
    sudo  apt-get install swig python-dev python3-dev
    
  • 编译成功的文件在 u-boot 目录下的,u-boot-sunxi-with-spl.bin 。 我们把他们烧写的内存或者flash

    # 烧写到flash中
    sudo sunxi-fel -p spiflash-write 0 u-boot-sunxi-with-spl.bin
    
    # 烧写到 sram中,在测试的时候使用
    sudo sunxi-fel uboot u-boot-sunxi-with-spl.bin
    
  • 验证

    # 测试 flash 是否成功,如果出现下面代码既成功
    sf probe 0 50000000
    SF: Detected xt25f128b with page size 256 Bytes, erase size 4 KiB, total 16 MiB
    
    # 测试 读取 
    boot
    

在这里插入图片描述

3. Linux裁剪编译

  • 进入 f1c100s 文件夹进行操作

3.1 下载Linux

# 1. 因为 linux太大了,建议只拉取单个分支. 可以使用加速
git clone --depth=1 -b f1c100s-480272lcd-test https://github.com/Icenowy/linux.git

# 2. 下载 .config 文件,放到源码的目录下,如果文件名称有变化。改为 .config
https://fdvad021asfd8q.oss-cn-hangzhou.aliyuncs.com/migrate/.config

3.2 配置linux

# 1. 图形化配置
make ARCH=arm menuconfig

# 2. 配置 spiflash
Device Drivers
	SPI support
		Allwinner A10 SoCs SPI controller ->n # 不选择
		Allwinner A31 SPI Controller -> y

# 3. 配置 MTD
Device Drivers
	Memory Technology Device (MTD) support
		Command line partitioning table parsing -> y
		Caching block device access to MTD devices  -> y

# 4.添加 File systems
File systems
	Miscellaneous filesystems
		Journalling Flash File System v2 (JFFS2) support -> y
		# 下面全选

# 5. 保存退出


# 注意, 要把配置的选项选择为 * 而不是 M

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3 配置flash 和设备树

  • 配置 flash 驱动

    # 1. 打开 ./drivers/mtd/spi-nor/spi-nor.c 1186行. 添加如下代码. 对flash支持
    { "xt25f128b", INFO(0x0b4018, 0, 64 * 1024, 256, 0) },
    
  • 配置设备树

    # 1. 打开 /arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts 文件
    # 2. 修改 显示驱动
    	
    	panel: panel {
    		# 修改为 800*480 的屏幕
    		compatible = "lg,lb070wv8", "simple-panel";
    		#address-cells = <1>;
    		#size-cells = <0>;
    		enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>;
    
    		port@0 {
    			reg = <0>;
    			#address-cells = <1>;
    			#size-cells = <0>;
    
    			panel_input: endpoint@0 {
    				reg = <0>;
    				remote-endpoint = <&tcon0_out_lcd>;
    			};
    		};
    	};
    	
    # 3. 添加对spiflash支持
    &spi0 {
        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins_a>;
        status = "okay";
        spi-max-frequency = <50000000>;
        flash: xt25f128b@0 {
            #address-cells = <1>;
            #size-cells = <1>;
            compatible = "winbond,xt25f128b", "jedec,spi-nor";
            reg = <0>;
            spi-max-frequency = <50000000>;
            partitions {
                compatible = "fixed-partitions";
                #address-cells = <1>;
                #size-cells = <1>;
    
                partition@0 {
                    label = "u-boot";
                    reg = <0x000000 0x100000>;
                    read-only;
                };
    
                partition@100000 {
                    label = "dtb";
                    reg = <0x100000 0x10000>;
                    read-only;
                };
    
                partition@110000 {
                    label = "kernel";
                    reg = <0x110000 0x400000>;
                    read-only;
                };
    
                partition@510000 {
                    label = "rootfs";
                    reg = <0x510000 0xAF0000>;
                };
            };
        };
    };
    
    
  • 编译linux,镜像文件生成在 arch/arm/boot/zImage 设备树文件在 arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb

    # 1. 编译
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j11
    
    
    # 错误处理 fatal error: openssl/bio.h:
    sudo apt-get install libssl-dev
    
  • 单独编译设备树命令为 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs -j11

  • 烧录请查看 SPI-Flash 章节

5.根文件系统编译

  • 进入 f1c100s 文件夹操作

5.1 下载 Buildroot 代码包

  • 在 https://buildroot.org/download.html 可以下载到最新的代码包
  • 解压这个代码包 tar -xzvf buildroot-2021.02.tar.gz1

5.2 配置

# 1. 打开图形化界面
make menuconfig

# 2. 选择处理器
Target options
	Target Architecture (ARM (little endian))
	Target Variant arm926t

# 3. 启动软链接等
System configuration
	Use syslinks to /usr ....  # 启动 链接
    Enable root login   		# root 登录
    Run a getty after boot 		# 输入密码
    remount root filesystem     # 重新挂载根文件系统到可读写

在这里插入图片描述

在这里插入图片描述

5.3 进行编译

# 编译比较慢,可以配老婆/女朋友聊聊天。 如果编译不成功 make clean 重来
make
  • 编译完成的根目录在 output/images/rootfs.tar . 复制出来解压
# 复制出来
cp output/images/rootfs.tar ../
# 创建跟目录文件夹
mkdir rootfs
# 解压到这个文件夹
tar -xvf rootfs.tar -C rootfs/

# 安装 jffs2 
sudo apt-get install mtd-utils

# 制作镜像, 得到 jffs2.img 可以烧录到开发板
mkfs.jffs2 -s 0x100 -e 0x10000 --pad=0xAF0000 -d rootfs/ -o jffs2.img

6.SPI-Flash编译和烧写

6.1 根据我们的配置我们对SPI的分区是下面这样的

分区序号分区大小分区作用地址空间及分区名
mtd01MB (0x100000)spl+uboot0x0000000-0x0100000 : “uboot”
mtd164KB (0x10000)dtb文件0x0100000-0x0110000 : “dtb”
mtd24MB (0x400000)linux内核0x0110000-0x0510000 : “kernel”
mtd3剩余 (0xAF0000)根文件系统0x0510000-0x1000000 : “rootfs”
  • 我们把 u-boot 烧写到第一分区

    sudo sunxi-fel -p spiflash-write 0 u-boot-sunxi-with-spl.bin
    
  • 我们把 dtb 文件烧写到第二分区

    sudo sunxi-fel -p spiflash-write 0x0100000 suniv-f1c100s-licheepi-nano.dtb
    
  • 我们把 zImage 镜像文件烧写到第三分区

    sudo sunxi-fel -p spiflash-write 0x0110000 zImage
    
  • 我们把 根文件系统 烧写到第四分区

    sudo sunxi-fel -p spiflash-write 0x0510000 jffs2.img
    
  • 这样系统就可以正常启动,但是这样太麻烦了。我们打包成一个文件

6.2 通过脚本打包成一个文件

  • 前提,以下脚本必须按照上面的目录要求进行。

    ls
    
    buildroot-2021.02  linux  u-boot
    
  • 脚本文件,放到 f1c100s 目录下, output 为最后输出的文件

    • linux 脚本写的不多有点粗糙
    • ./buildroot-2021.02 这个文件夹名称根据你下载的版本改变
    #! /bin/bash
    
    rm -rf ./output
    mkdir ./output
    rm -rf ./rootfs
    mkdir ./rootfs
    
    dd if=/dev/zero of=flashimg.bin bs=1M count=16 &&\
    dd if=./u-boot/u-boot-sunxi-with-spl.bin of=flashimg.bin bs=1K conv=notrunc &&\
    dd if=./linux/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb of=flashimg.bin bs=1K seek=1024  conv=notrunc &&\
    dd if=./linux/arch/arm/boot/zImage of=flashimg.bin bs=1K seek=1088  conv=notrunc &&\
    
    tar -xf ./buildroot-2021.02/output/images/rootfs.tar -C ./rootfs &&\
    
    mkfs.jffs2 -s 0x100 -e 0x10000 --pad=0xAF0000 -d rootfs/ -o jffs2.img &&\
    
    dd if=jffs2.img of=flashimg.bin bs=1K seek=5184  conv=notrunc
    mv flashimg.bin ./output
    rm -rf jffs2.img
    
    
  • 烧录到开发板

    sudo sunxi-fel -p spiflash-write 0 flashimg.bin
    
  • 开机信息,登录账户 root

U-Boot 2018.01-05679-g013ca45-dirty (Mar 17 2021 - 00:36:06 +0800) Allwinner Technology

CPU:   Allwinner F Series (SUNIV)
Model: Lichee Pi Nano
DRAM:  32 MiB
MMC:   SUNXI SD/MMC: 0
SF: Detected xt25f128b with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

Setting up a 800x480 lcd console (overscan 0x0)
In:    serial@1c25000
Out:   serial@1c25000
Err:   serial@1c25000
Net:   No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot:  0 
SF: Detected xt25f128b with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x4000
SF: 16384 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
## Flattened Device Tree blob at 80c00000
   Booting using the fdt blob at 0x80c00000
   Loading Device Tree to 80e5f000, end 80e63f36 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.15.0-rc8-licheepi-nano+ (playerpencil@Ubuntu16) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #1 Wed Mar 17 01:14:44 CST 2021
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt: Machine model: Lichee Pi Nano
[    0.000000] Memory policy: Data cache writeback
[    0.000000] random: fast init done
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line:  console=ttyS0,115200 panic=5 rootwait root=/dev/mtdblock3 rw rootfstype=jffs2
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Memory: 22672K/32768K available (6144K kernel code, 238K rwdata, 1416K rodata, 1024K init, 246K bss, 10096K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xc2800000 - 0xff800000   ( 976 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc2000000   (  32 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (7136 kB)
[    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
[    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 239 kB)
[    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 247 kB)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000051] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000121] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000748] Console: colour dummy device 80x30
[    0.000840] Calibrating delay loop... 203.16 BogoMIPS (lpj=1015808)
[    0.070248] pid_max: default: 32768 minimum: 301
[    0.070558] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.070599] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.072017] CPU: Testing write buffer coherency: ok
[    0.073938] Setting up static identity map for 0x80100000 - 0x80100058
[    0.076654] devtmpfs: initialized
[    0.083454] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.083530] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.083819] pinctrl core: initialized pinctrl subsystem
[    0.085968] NET: Registered protocol family 16
[    0.087904] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.089809] cpuidle: using governor menu
[    0.116692] SCSI subsystem initialized
[    0.117080] usbcore: registered new interface driver usbfs
[    0.117246] usbcore: registered new interface driver hub
[    0.117467] usbcore: registered new device driver usb
[    0.117942] pps_core: LinuxPPS API ver. 1 registered
[    0.117970] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.118043] PTP clock support registered
[    0.118603] Advanced Linux Sound Architecture Driver Initialized.
[    0.120335] clocksource: Switched to clocksource timer
[    0.148640] NET: Registered protocol family 2
[    0.150177] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.150260] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.150442] TCP: Hash tables configured (established 1024 bind 1024)
[    0.150834] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.150900] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.151435] NET: Registered protocol family 1
[    0.152818] RPC: Registered named UNIX socket transport module.
[    0.152863] RPC: Registered udp transport module.
[    0.152880] RPC: Registered tcp transport module.
[    0.152895] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.155215] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.157229] Initialise system trusted keyrings
[    0.157870] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[    0.175815] NFS: Registering the id_resolver key type
[    0.175921] Key type id_resolver registered
[    0.175941] Key type id_legacy registered
[    0.176059] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.192100] Key type asymmetric registered
[    0.192146] Asymmetric key parser 'x509' registered
[    0.192377] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.192410] io scheduler noop registered
[    0.192428] io scheduler deadline registered
[    0.193248] io scheduler cfq registered (default)
[    0.193281] io scheduler mq-deadline registered
[    0.193300] io scheduler kyber registered
[    0.194509] sun4i-usb-phy 1c13400.phy: Couldn't request ID GPIO
[    0.204389] suniv-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.386119] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.393509] console [ttyS0] disabled
[    0.413789] 1c25000.serial: ttyS0 at MMIO 0x1c25000 (irq = 23, base_baud = 6250000) is a 16550A
[    0.889166] console [ttyS0] enabled
[    0.899813] panel-simple panel: panel supply power not found, using dummy regulator
[    0.909395] SCSI Media Changer driver v0.25 
[    0.917566] m25p80 spi0.0: xt25f128b (16384 Kbytes)
[    0.922649] 4 ofpart partitions found on MTD device spi0.0
[    0.928136] Creating 4 MTD partitions on "spi0.0":
[    0.933016] 0x000000000000-0x000000100000 : "u-boot"
[    0.940987] 0x000000100000-0x000000110000 : "dtb"
[    0.948385] 0x000000110000-0x000000510000 : "kernel"
[    0.956221] 0x000000510000-0x000001000000 : "rootfs"
[    0.964610] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.971265] ehci-platform: EHCI generic platform driver
[    0.976810] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.983128] ohci-platform: OHCI generic platform driver
[    0.988821] usbcore: registered new interface driver usb-storage
[    0.995934] udc-core: couldn't find an available UDC - added [g_cdc] to list of pending drivers
[    1.005025] i2c /dev entries driver
[    1.070473] sunxi-mmc 1c0f000.mmc: base:0xc4d37647 irq:19
[    1.078081] usbcore: registered new interface driver usbhid
[    1.083789] usbhid: USB HID core driver
[    1.106345] NET: Registered protocol family 17
[    1.111220] Key type dns_resolver registered
[    1.118010] Loading compiled-in X.509 certificates
[    1.134738] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc0739e58)
[    1.143698] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc073913c)
[    1.151486] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.158089] [drm] No driver support for vblank timestamp query.
[    1.296722] Console: switching to colour frame buffer device 100x30
[    1.336517] sun4i-drm display-engine: fb0:  frame buffer device
[    1.343691] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[    1.352938] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    1.364950] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[    1.370886] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[    1.381194] hub 1-0:1.0: USB hub found
[    1.385147] hub 1-0:1.0: 1 port detected
[    1.390855] using random self ethernet address
[    1.395390] using random host ethernet address
[    1.401855] usb0: HOST MAC aa:7c:d7:6f:5a:af
[    1.406248] usb0: MAC 8e:9a:1f:ff:57:07
[    1.410232] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day 2008
[    1.417820] g_cdc gadget: g_cdc ready
[    1.422591] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    1.440498] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    1.447313] vcc3v3: disabling
[    1.450295] ALSA device list:
[    1.453359]   #0: Loopback 1
[    1.457206] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    1.465965] cfg80211: failed to load regulatory.db
[    1.574584] random: crng init done
[    1.938746] jffs2: notice: (1) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[    1.958685] VFS: Mounted root (jffs2 filesystem) on device 31:3.
[    1.967379] devtmpfs: mounted
[    1.977103] Freeing unused kernel memory: 1024K
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Saving random seed: OK
Starting network: OK

Welcome to Buildroot
buildroot login: root
#

到此为止,我们的系统的搭建就完成了。下一篇文章我们就从应用开发说起。

7. 参考文章

  • http://nano.lichee.pro/ 官方文档
  • https://blog.csdn.net/lan120576664 lan120576664
  • https://cn.bbs.sipeed.com/d/171-nanoxtx25f128-spi-flash-u-bootflash/2 flash文章
  • https://licheezero.readthedocs.io/ 这篇文档

移植好的文件可以加我的微信或者通过以下链接获取:
微信: PlayerPencil
文件下载: https://download.csdn.net/download/weixin_41656917/15856809

对你有帮助的话,请作者喝杯奶茶

在这里插入图片描述

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值