Lichee Zero SPI Flash编译实战记录

1、系统
物理机 ubuntu1804
2、创建编译环境
1)下载 gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.xz
wget https://releases.linaro.org/components/toolchain/binaries/latest/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
2)解压并移动到指定目录
tar xvf gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
mv gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf /opt/
3)建立环境变量
sudo gedit /etc/profile
最后一行添加目录
export PATH=/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin:$PATH
更新
source /etc/profile
注销后重新登陆
终端中尝试输入下列命令,检查是否编译环境是否创建成功
arm-linux-gnueabihf-gcc -v
注意:曾经无法创建成功,是因为解压后的文件目录opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf没有执行权限,需要通过chmod 777更改
3、编译u-boot
下载源文件,以下方式下载较慢,可以通过浏览器打开,进入分支后,下载Code压缩包,然后解压
git clone -b v3s-spi-experimental https://github.com/Lichee-Pi/u-boot.git
注意不是此分支git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current
解压进入目录,然后执行配置
按照官方教程提示找不到配置文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero480x272LCD_defconfig
调整了下顺序
ARCH=arm make CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero480x272LCD_defconfig
配置uboot支持flash:
make ARCH=arm menuconfig
uboot或Linux内核可以通过输入"makemenuconfig"来打开图形化配置界面,menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先在Ubuntu中安装ncurses库,命令如下:
sudo apt-get install build-essential
sudo apt-get install libncurses5
sudo apt-get install libncurses5-dev
进入图形界面后
Device Drivers —>
SPI Flash Support —>
[*] Legacy SPI Flash Interface support
[ ] SPI flash Bank/Extended address register support     (16M以上的flash需要开启这个选项)
[*] Macronix SPI flash support    (选择spi flash对应的厂商,我用的是W25Q128这个型号)
[*] Support for SPI Flash on Allwinner SoCs in SPL
如图:
 
添加环境变量
修改u-boot/include/configs/sun8i.h文件,添加以下内容,注意添加的位置在“#include <configs/sunxi-common.h>”的前边。
vi include/configs/sun8i.h
#define CONFIG_BOOTCOMMAND "sf probe 0; sf read 0x41800000 0x100000 0x10000; sf read 0x41000000 0x110000 0x400000; bootz 0x41000000 - 0x41800000"
#define CONFIG_BOOTARGS "console=ttyS0,115200 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2"
环境命令解析:
sf probe 0; //初始化Flash设备(CS拉低)
sf read 0x41800000 0x100000 0x10000; //从flash0x100000(1MB)位置读取dtb放到内存0x41800000偏移处。 //如果是bsp的bin,则是0x41d00000
sf read 0x41000000 0x110000 0x400000; //从flash0x110000(1MB+64KB)位置读取dtb放到内存0x41000000偏移处。
bootz 0x41000000 (内核地址)- 0x41800000(dtb地址) 启动内核
启动参数解析:
console=ttyS0,115200 earlyprintk panic=5 rootwait //在串口0上输出信息
mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2 //spi32766.0是设备名,后面是分区大小,名字,读写属性。
root=31:03表示根文件系统是mtd3;jffs2格式
开始编译,注意dtc版本需要1.4以上版本
u-boot目录下执行:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
会在目录下生成 u-boot-sunxi-with-spl.bin
4、编译内核
下载内核源码,同样如果网速慢,可以在浏览器中下载分支压缩包
git clone -b zero-4.13.y https://github.com/Lichee-Pi/linux.git
解压后进入目录
cd linux
ARCH=arm make licheepi_zero_defconfig
ARCH=arm make menuconfig
进入配置界面,首先添加SPI-NOR的支持:
Device Drivers —>
<*> Memory Technology Device (MTD) support —>
<*> Command line partition table parsing     (该选项用来解析uboot传递过来的flash分区信息)
<*> SPI-NOR device support —>    (选中即可,下级菜单默认)   
 
 
添加对jffs2文件系统的支持:
File systems —>
[*] Miscellaneous filesystems —>
<*> Journalling Flash File System v2 (JFFS2) support
 
设备树配置
修改dts配置,添加spi flash节点:
gedit arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
添加下面的代码:
&spi0 {
        status ="okay";      
        w25q128:w25q128@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                spi-max-frequency = <50000000>;
                #address-cells = <1>;
                #size-cells = <1>;
        };
};
前几次出现文件系统无法挂载的问题,出现以下提示
jffs2: Node at 0x00000f6c with length 0x00000144 would run over the end of the erase block
[    1.133830] jffs2: Perhaps the file system was created with the wrong erase size?
[    1.141435] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000f70: 0x0144 instead
[    1.150994] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000f74: 0x912a instead
[    1.160547] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000f78: 0x0002 instead
[    1.170127] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000f7c: 0x000d instead
[    1.180689] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000f80: 0x81a4 instead
[    1.190183] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000f84: 0x03e8 instead
[    1.199668] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000f88: 0x11d8 instead
[    1.209151] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000f8c: 0xdec2 instead
[    1.218634] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000f90: 0xdec2 instead
[    1.228102] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000f94: 0xdec2 instead
[    1.237581] jffs2: Further such events for this erase block will not be printed
[    1.245110] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00001000: 0x3fb1 instead
[    1.254615] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00001004: 0x1a28 instead
[    1.264102] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00001008: 0x7f01 instead
[    1.273586] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000100c: 0x505d instead
[    1.283098] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00001010: 0x84c8 instead
[    1.292588] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00001014: 0xd8d1 instead
[    1.302072] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00001018: 0x4001 instead
[    1.311555] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000101c: 0x8485 instead
[    1.321033] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00001020: 0x65b1 instead
[    1.330514] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00001024: 0x5d81 instead
按照官方说明
mkfs.jffs2 使用的最小擦除尺寸是8KB,而spi flash的扇区大小是4KB,所以按照扇区擦除的话,会无法使用,所以必须使用块擦除。
编译内核前先确认下drivers/mtd/spi-nor/spi-nor.c里,自己使用的flash的相关信息
#define SECT_4K BIT(0) /* SPINOR_OP_BE_4K works uniformly */
如果发现信息里有SECT_4K,则会导致jffs2不能正常擦除(64KB),需要去掉该flag。
 
执行编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules_install
编译完成后,zImage在arch/arm/boot/下,驱动模块在out/下,sun8i-v3s-licheepi-zero-dock.dtb在arch/arm/boot/dts/下
5、文件系统
16M SPI Falsh中使用rootfs-brmin.tar.gz
Flash支持jffs2文件系统格式,所以需要使用此该rootfs制作jffs2文件系统镜像、
下载jffs2文件系统制作工具
sudo apt-get install mtd-utils
制作文件系统镜像:
mkdir rootfs
sudo tar xzvf rootfs-brmin.tar.gz -C rootfs
sudo mkfs.jffs2 -s 0x100 -e 0x10000 -p 0xAF0000 -d rootfs/ -o jffs2.img 
#如果使用32M的flash  mx25l25635,则需要做一些修改:
sudo mkfs.jffs2 -s 0x100 -e 0x10000 -p 0x1AF0000 -d rootfs/ -o jffs2.img
-p 指的是rootfs占据的总空间:16M-1M-64K-4M=0xAF0000 或者 32M-1M-64K-4M=0x1AF0000
-s 页大小0x100 256字节
-e 块大小0x10000 64k
jffs2.img是生成的文件系统镜像。
6、制作系统镜像
最后将uboot,dtb,kernel,rootfs打包成一个系统镜像,命令如下:
dd if=/dev/zero of=flashimg.bin bs=16M count=1
dd if=u-boot/u-boot-sunxi-with-spl.bin of=flashimg.bin bs=1K conv=notrunc
dd if=linux-zero-4.13.y/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb of=flashimg.bin bs=1K seek=1024  conv=notrunc
dd if=linux-zero-4.13.y/arch/arm/boot/zImage of=flashimg.bin bs=1K seek=1088  conv=notrunc
dd if=jffs2.img of=flashimg.bin  bs=1K seek=5184  conv=notrunc
第一步:生成一个空文件,大小是16MB
第二步:将uboot添加到文件开头
第三步:将dtb放到1M偏移处
第四步:将kernel放到1M+64K偏移处
第五步:将rootfs放到1M+64K+4M偏移处
偏移大小是seek,单位是KB。
执行完毕后生成镜像文件flashimg.bin
7、烧写镜像
下载sunxiflash烧写工具,安装与下载参考:https://blog.csdn.net/qq_40860568/article/details/100519832
进入fel模式
Zero有一个usb下载模式称为fel模式,进入fel模式有下面几种方式:
TF卡和spi flash 同时没有可启动镜像
也就是说你不插SD卡,且焊接的是新的或者没有有效镜像的spi flash,那就上电自动进入fel下载模式
SD卡中有进入fel模式的特殊固件 fel-sdboot.sunxi
如果你的spiflash已经有了启动镜像,那么需要在TF卡中烧入一个sunxi提供的启动工具(dd if=fel-sdboot.sunxi of=/dev/mmcblk0 bs=1024 seek=8),那么插入该TF卡启动会进入fel模式;
上电时SPI_MISO拉低到GND
通常使用此方法最为方便。该引脚为boot引脚,上电时出于低电平即会进入fel下载模式。
sunxi-fel的操作
进入fel模式后使用usb数据线连接pc和zero,即可进行操作。
sudo sunxi-fel version #查看连接的cpu信息
AWUSBFEX soc=00001681(V3s) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000
sudo sunxi-fel spiflash-info #显示flash信息
Manufacturer: Unknown (C2h), model: 20h, size: 33554432 bytes.
执行如下命令烧入我们前边制作好的镜像文件
sudo sunxi-fel -p spiflash-write 0 flashimg.bin
# -p 显示进度条
# spiflash-info Retrieves basic information
# spiflash-hex[dump] addr length Dumps SPI flash region in hex
# spiflash-read addr length file Write SPI flash contents into file
# spiflash-write addr file Store file contents into SPI flash
SPI flash下载速度约50KB/s,等待5分钟(16MB)或者10分钟(32MB),烧写完成,如果一切顺利,重新上电zero那么就会进入linux系统了,账号是root没有密码。
第一次成功进入登陆界面后,发现root账户登陆不进去,检查发现根文件系统是复制的文件夹,出现确实文件,后来复制压缩包,重新制作镜像后成功登陆。
Welcome to minicom 2.7.1
 
OPTIONS: I18n 
Compiled on Aug 13 2017, 15:25:34.
Port /dev/ttyUSB0, 21:23:29
 
Press CTRL-A Z for help on special keys
 
 
U-Boot SPL 2017.01-rc2 (Dec 10 2020 - 22:41:13)
DRAM: 64 MiB
Trying to boot from sunxi SPI
 
U-Boot 2017.01-rc2 (Dec 10 2020 - 22:41:13 +0800) Allwinner Technology
 
CPU:   Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM:  64 MiB
MMC:   SUNXI SD/MMC: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
 
Setting up a 480x272 lcd console (overscan 0x0)                                 
dotclock: 10000kHz = 10000kHz: (1 * 3MHz * 20) / 6                              
In:    serial@01c28000                                                          
Out:   serial@01c28000                                                          
Err:   serial@01c28000                                                          
                                                                                
                                                                                
U-Boot 2017.01-rc2 (Dec 10 2020 - 22:41:13 +0800) Allwinner Technology          
                                                                                
CPU:   Allwinner V3s (SUN8I 1681)                                               
Model: Lichee Pi Zero                                                           
DRAM:  64 MiB                                                                   
MMC:   SUNXI SD/MMC: 0                                                          
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB 
*** Warning - bad CRC, using default environment                                
                                                                                
Setting up a 480x272 lcd console (overscan 0x0)                                 
dotclock: 10000kHz = 10000kHz: (1 * 3MHz * 20) / 6                              
In:    serial@01c28000                                                          
Out:   serial@01c28000                                                          
Err:   serial@01c28000                                                          
Net:   No ethernet found.                                                       
starting USB...                                                                 
No controllers found                                                            
Hit any key to stop autoboot:  0                                                
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB 
device 0 offset 0x100000, size 0x10000                                          
SF: 65536 bytes @ 0x100000 Read: OK                                             
device 0 offset 0x110000, size 0x400000                                         
SF: 4194304 bytes @ 0x110000 Read: OK                                           
## Flattened Device Tree blob at 41800000                                       
   Booting using the fdt blob at 0x41800000                                     
   Loading Device Tree to 42dfa000, end 42dffecd ... OK                         
                                                                                
Starting kernel ...                                                             
                                                                                
                                                                                
U-Boot SPL 2017.01-rc2 (Dec 10 2020 - 22:41:13)                                 
DRAM: 64 MiB                                                                    
Trying to boot from sunxi SPI                                                   
                                                                                
U-Boot 2017.01-rc2 (Dec 10 2020 - 22:41:13 +0800) Allwinner Technology          
                                                                                
CPU:   Allwinner V3s (SUN8I 1681)                                               
Model: Lichee Pi Zero                                                           
DRAM:  64 MiB                                                                   
MMC:   SUNXI SD/MMC: 0                                                          
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB 
*** Warning - bad CRC, using default environment                                
                                                                                
Setting up a 480x272 lcd console (overscan 0x0)                                 
dotclock: 10000kHz = 10000kHz: (1 * 3MHz * 20) / 6                              
In:    serial@01c28000                                                          
Out:   serial@01c28000                                                          
Err:   serial@01c28000                                                          
                                                                                
                                                                                
U-Boot 2017.01-rc2 (Dec 10 2020 - 22:41:13 +0800) Allwinner Technology          
                                                                                
CPU:   Allwinner V3s (SUN8I 1681)                                               
Model: Lichee Pi Zero                                                           
DRAM:  64 MiB                                                                   
MMC:   SUNXI SD/MMC: 0                                                          
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB 
*** Warning - bad CRC, using default environment                                
                                                                                
Setting up a 480x272 lcd console (overscan 0x0)                                 
dotclock: 10000kHz = 10000kHz: (1 * 3MHz * 20) / 6                              
In:    serial@01c28000                                                          
Out:   serial@01c28000                                                          
Err:   serial@01c28000                                                          
Net:   No ethernet found.                                                       
starting USB...                                                                 
No controllers found                                                            
Hit any key to stop autoboot:  0                                                
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB 
device 0 offset 0x100000, size 0x10000                                          
SF: 65536 bytes @ 0x100000 Read: OK                                             
device 0 offset 0x110000, size 0x400000                                         
SF: 4194304 bytes @ 0x110000 Read: OK                                           
## Flattened Device Tree blob at 41800000                                       
   Booting using the fdt blob at 0x41800000                                     
   Loading Device Tree to 42dfa000, end 42dffecd ... OK                         
                                                                                
Starting kernel ...                                                             
                                                                                
[    0.000000] Booting Linux on physical CPU 0x0                                
[    0.000000] Linux version 4.13.16-licheepi-zero (hero@hero-Lenovo-3000-G430)0
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d  
[    0.000000] CPU: div instructions available: patching division code          
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructie
[    0.000000] OF: fdt: Machine model: Lichee Pi Zero with Dock                 
[    0.000000] Memory policy: Data cache writealloc                             
[    0.000000] percpu: Embedded 16 pages/cpu @c3edf000 s33868 r8192 d23476 u6556
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pa9
[    0.000000] Kernel command line: console=ttyS0,115200 earlyprintk panic=5 ro2
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)              
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)    
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)     
[    0.000000] Memory: 54568K/65024K available (6144K kernel code, 217K rwdata,)
[    0.000000] Virtual kernel memory layout:                                    
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)                
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)                
[    0.000000]     vmalloc : 0xc4000000 - 0xff800000   ( 952 MB)                
[    0.000000]     lowmem  : 0xc0000000 - 0xc3f80000   (  63 MB)                
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)                
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)                
[    0.000000]       .text : 0xc0008000 - 0xc0700000   (7136 kB)                
[    0.000000]       .init : 0xc0900000 - 0xc0a00000   (1024 kB)                
[    0.000000]       .data : 0xc0a00000 - 0xc0a367c0   ( 218 kB)                
[    0.000000]        .bss : 0xc0a3daf0 - 0xc0a7fcac   ( 265 kB)                
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1       
[    0.000000] Hierarchical RCU implementation.                                 
[    0.000000]  RCU event tracing is enabled.                                   
[    0.000000]  RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.            
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1     
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16                  
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (virt).            
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycless
[    0.000008] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398s
[    0.000021] Switching to timer-based delay loop, resolution 41ns             
[    0.000187] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, maxs
[    0.000413] Console: colour dummy device 80x30                               
[    0.000447] Calibrating delay loop (skipped), value calculated using timer f)
[    0.000461] pid_max: default: 32768 minimum: 301                             
[    0.000590] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)      
[    0.000603] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) 
[    0.001187] CPU: Testing write buffer coherency: ok                          
[    0.001552] /cpus/cpu@0 missing clock-frequency property                     
[    0.001574] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000                 
[    0.002005] Setting up static identity map for 0x40100000 - 0x40100060       
[    0.002178] Hierarchical SRCU implementation.                                
[    0.002689] smp: Bringing up secondary CPUs ...                              
[    0.002702] smp: Brought up 1 node, 1 CPU                                    
[    0.002712] SMP: Total of 1 processors activated (48.00 BogoMIPS).           
[    0.002719] CPU: All CPU(s) started in SVC mode.                             
[    0.003460] devtmpfs: initialized                                            
[    0.006596] VFP support v0.3: implementor 41 architecture 2 part 30 variant 5
[    0.006882] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, ms
[    0.006907] futex hash table entries: 256 (order: 2, 16384 bytes)            
[    0.007071] pinctrl core: initialized pinctrl subsystem                      
[    0.007932] random: get_random_u32 called from bucket_table_alloc+0xf4/0x2440
[    0.008067] NET: Registered protocol family 16                               
[    0.008539] DMA: preallocated 256 KiB pool for atomic coherent allocations   
[    0.009657] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint.
[    0.009675] hw-breakpoint: maximum watchpoint size is 8 bytes.               
[    0.022929] SCSI subsystem initialized                                       
[    0.023227] usbcore: registered new interface driver usbfs                   
[    0.023293] usbcore: registered new interface driver hub                     
[    0.023388] usbcore: registered new device driver usb                        
[    0.023632] pps_core: LinuxPPS API ver. 1 registered                         
[    0.023642] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giom>
[    0.023663] PTP clock support registered                                     
[    0.023889] Advanced Linux Sound Architecture Driver Initialized.            
[    0.025735] clocksource: Switched to clocksource arch_sys_counter            
[    0.036536] NET: Registered protocol family 2                                
[    0.037124] TCP established hash table entries: 1024 (order: 0, 4096 bytes)  
[    0.037158] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)         
[    0.037181] TCP: Hash tables configured (established 1024 bind 1024)         
[    0.037305] UDP hash table entries: 256 (order: 1, 8192 bytes)               
[    0.037352] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)          
[    0.037562] NET: Registered protocol family 1                                
[    0.038136] RPC: Registered named UNIX socket transport module.              
[    0.038157] RPC: Registered udp transport module.                            
[    0.038163] RPC: Registered tcp transport module.                            
[    0.038169] RPC: Registered tcp NFSv4.1 backchannel transport module.        
[    0.040244] workingset: timestamp_bits=30 max_order=14 bucket_order=0        
[    0.049180] NFS: Registering the id_resolver key type                        
[    0.049229] Key type id_resolver registered                                  
[    0.049237] Key type id_legacy registered                                    
[    0.049281] jffs2: version 2.2. (NAND) �© 2001-2006 Red Hat, Inc.            
[    0.050801] random: fast init done                                           
[    0.053668] Block layer SCSI generic (bsg) driver version 0.4 loaded (major )
[    0.053691] io scheduler noop registered                                     
[    0.053699] io scheduler deadline registered                                 
[    0.053971] io scheduler cfq registered (default)                            
[    0.053984] io scheduler mq-deadline registered                              
[    0.053990] io scheduler kyber registered                                    
[    0.058302] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver  
[    0.127514] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled         
[    0.130741] console [ttyS0] disabled                                         
[    0.151012] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 36, base_baud = 1A
[    0.741148] console [ttyS0] enabled                                          
[    0.749164] m25p80 spi32766.0: w25q128 (16384 Kbytes)                        
[    0.754248] spi32766.0: parser cmdlinepart: 4                                
[    0.758690] 4 cmdlinepart partitions found on MTD device spi32766.0          
[    0.764950] Creating 4 MTD partitions on "spi32766.0":                       
[    0.770116] 0x000000000000-0x000000100000 : "uboot"                          
[    0.775622] 0x000000100000-0x000000110000 : "dtb"                            
[    0.780837] 0x000000110000-0x000000510000 : "kernel"                         
[    0.786234] 0x000000510000-0x000001000000 : "rootfs"                         
[    0.791984] libphy: Fixed MDIO Bus: probed                                   
[    0.796672] dwmac-sun8i 1c30000.ethernet: PTP uses main clock                
[    0.802464] dwmac-sun8i 1c30000.ethernet: No regulator found                 
[    0.808244] dwmac-sun8i 1c30000.ethernet: Will use internal PHY              
[    0.814396] dwmac-sun8i 1c30000.ethernet: Chain mode enabled                 
[    0.820105] dwmac-sun8i 1c30000.ethernet: No HW DMA feature register supportd
[    0.827336] dwmac-sun8i 1c30000.ethernet: Normal descriptors                 
[    0.832988] dwmac-sun8i 1c30000.ethernet: RX Checksum Offload Engine supportd
[    0.840214] dwmac-sun8i 1c30000.ethernet: COE Type 2                         
[    0.845171] dwmac-sun8i 1c30000.ethernet: TX Checksum insertion supported    
[    0.852146] libphy: stmmac: probed                                           
[    0.857478] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver       
[    0.864015] ehci-platform: EHCI generic platform driver                      
[    0.869639] ehci-platform 1c1a000.usb: EHCI Host Controller                  
[    0.875254] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus 1
[    0.883236] ehci-platform 1c1a000.usb: irq 26, io mem 0x01c1a000             
[    0.915750] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00            
[    0.923018] hub 1-0:1.0: USB hub found                                       
[    0.926973] hub 1-0:1.0: 1 port detected                                     
[    0.931493] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver           
[    0.937789] ohci-platform: OHCI generic platform driver                      
[    0.943357] ohci-platform 1c1a400.usb: Generic Platform OHCI controller      
[    0.950099] ohci-platform 1c1a400.usb: new USB bus registered, assigned bus 2
[    0.958048] ohci-platform 1c1a400.usb: irq 27, io mem 0x01c1a400             
[    1.030873] hub 2-0:1.0: USB hub found                                       
[    1.034693] hub 2-0:1.0: 1 port detected                                     
[    1.042311] udc-core: couldn't find an available UDC - added [g_cdc] to lists
[    1.051883] input: 1c22800.lradc as /devices/platform/soc/1c22800.lradc/inpu0
[    1.060794] sun6i-rtc 1c20400.rtc: rtc core: registered rtc-sun6i as rtc0    
[    1.067699] sun6i-rtc 1c20400.rtc: RTC enabled                               
[    1.072236] i2c /dev entries driver                                          
[    1.077097] input: ns2009_ts as /devices/platform/soc/1c2ac00.i2c/i2c-0/0-001
[    1.086588] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, no)
[    1.155785] sunxi-mmc 1c0f000.mmc: base:0xc407b000 irq:23                    
[    1.215766] sunxi-mmc 1c10000.mmc: base:0xc4144000 irq:24                    
[    1.222171] usbcore: registered new interface driver usbhid                  
[    1.227830] usbhid: USB HID core driver                                      
[    1.233276] sun4i-codec 1c22c00.codec: ASoC: /soc/codec-analog@01c23000 not d
[    1.241314] sun4i-codec 1c22c00.codec: Failed to register our card           
[    1.248780] NET: Registered protocol family 17                               
[    1.253359] Key type dns_resolver registered                                 
[    1.257895] Registering SWP/SWPB emulation handler                           
[    1.270298] simple-framebuffer 43f80000.framebuffer: framebuffer at 0x43f8000
[    1.280914] simple-framebuffer 43f80000.framebuffer: format=x8r8g8b8, mode=40
[    1.293186] Console: switching to colour frame buffer device 60x34           
[    1.301651] simple-framebuffer 43f80000.framebuffer: fb0: simplefb registere!
[    1.310217] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto sr
[    1.321573] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver                
[    1.327414] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus3
[    1.336654] hub 3-0:1.0: USB hub found                                       
[    1.340542] hub 3-0:1.0: 1 port detected                                     
[    1.345600] using random self ethernet address                               
[    1.350155] using random host ethernet address                               
[    1.355703] usb0: HOST MAC 52:8e:e2:88:95:0b                                 
[    1.360117] usb0: MAC 9a:a2:05:7a:79:6c                                      
[    1.363997] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day8
[    1.371516] g_cdc gadget: g_cdc ready                                        
[    1.377836] sun4i-codec 1c22c00.codec: Codec <-> 1c22c00.codec mapping ok    
[    1.387564] sun6i-rtc 1c20400.rtc: setting system clock to 1970-12-31 02:05:)
[    1.396394] vcc3v3: disabling                                                
[    1.399368] vcc5v0: disabling                                                
[    1.402332] ALSA device list:                                                
[    1.405295]   #0: V3s Audio Codec                                            
[    1.446985] random: crng init done                                           
[    1.981287] VFS: Mounted root (jffs2 filesystem) on device 31:3.             
[    1.988532] devtmpfs: mounted                                                
[    1.992717] Freeing unused kernel memory: 1024K                              
[    2.877327] g_cdc gadget: high-speed config #1: CDC Composite (ECM + ACM)    
Starting logging: OK                                                            
Starting mdev...                                                                
modprobe: can't change directory to '/lib/modules': No such file or directory   
Initializing random number generator... done.                                   
Starting network: OK                                                            
                                                                                
Welcome to Lichee Pi                                                            
Lichee login: root                                                              
# passwd root                                                                   
Changing password for root                                                      
New password:                                                                   
Bad password: too short                                                         
Retype password:                                                                
passwd: password for root changed by root                                       
# reboot
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值