嵌入式ARM64 使用buildroot构建最小系统

平台:orangepi4 rockchip rk3399 LPDDR4 4G eMMC 16G

系统:ubuntu 20.04

buildroot是Linux平台上一个构建嵌入式Linux系统的框架,整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序。

通常我们构建一个系统先移植uboot,然后移植linux内核,然后通过busybox再去构建根文件系统,这样做的步骤比较繁琐,每一个操作不好可能都会导致系统起不来的情况,通过buildroot来做的话极大地方便了系统的构建过程。

下载源码:

进入Buildroot - Making Embedded Linux Easy下载最新工程

嵌入式ARM64 使用buildroot构建最小系统_第1张图片

选择最新版本:

嵌入式ARM64 使用buildroot构建最小系统_第2张图片

 解压源码:

tar zxvf buildroot-2021.11.tar.gz 

 进入源码目录查看一下configs目录下的配置文件,我使用的是orangepi4开发板,所以看一下有没有orangepi的配置文件:

 可以看到有一个关于rk3399的配置是orangepi_rk3399_defconfig,但是这个配置不一定能够直接使用。只要按照合适的配置,buildroot会自动生成三种文件:uboot、kernel和rootfs,系统能够运行起来要保证uboot能够跑起来,因为rk3399可以支持三种内存:ddr3 lpddr3 lpddr4,要查看板子使用的是哪一个内存使用对应的uboot才能是系统能够运行起来。具体的选择可以参考我之前的文章uboot移植

配置:

vi configs/orangepi_rk3399_defconfig

嵌入式ARM64 使用buildroot构建最小系统_第3张图片

 可以看到uboot使用的配置是orangepi-rk3399,我将它替换成khadas-edge-rk3399然后执行

make orangepi_rk3399_defconfig
make menuconfig
    Filesystem images--->
        将exact size调整位150M
make -j8

编译:

第一次编译时间比较慢,因为要下载一些代码编译器等等,

嵌入式ARM64 使用buildroot构建最小系统_第4张图片编译成功后会在output/image目录下生成镜像文件:

嵌入式ARM64 使用buildroot构建最小系统_第5张图片

sdcard.img文件生成:

 sdcard.img是用于在sd开启动的文件,可以使用瑞芯微的烧录工具写入,通过./output/build/host-genimage-14/genimage工具生成,查看board/orangepi/orangepi-rk3399/genimage.cfg文件:

image boot.vfat {
        vfat {
                files = {
                        "Image",
                        "rk3399-orangepi.dtb",
                        "extlinux"
                }
        }

        size = 64M
}

image sdcard.img {
        hdimage {
                gpt = true
        }

        partition loader1 {
                image = "idbloader.img"
                offset = 32K
        }

        partition loader2 {
                image = "u-boot.itb"
                offset = 8M
        }

        partition boot {
                partition-type = 0xC
                bootable = "true"
                image = "boot.vfat"
                offset = 16M
        }

        partition rootfs {
                partition-type = 0x83
                image = "rootfs.ext4"
        }
}

这个文件会在support/scripts/genimage.sh脚本中使用,用于生成sdcard.img文件

烧录验证:

通过rkdevelop工具需要使用的文件是 idbloader.img u-boot.itb boot.vfat rootfs.ext2

使用以下命令烧录:

sudo rkdeveloptool db rk3399_loader_v1.25.126.bin
sudo rkdeveloptool wl 0x40 idbloader.img
sudo rkdeveloptool wl 0x4000 u-boot.itb
sudo rkdeveloptool wl 0x8000 boot.vfat
sudo rkdeveloptool wl 0x28000 rootfs.ext2
sudo rkdeveloptool rd

要注意的是需要从mmc的第64扇区开始烧录,如果不小心把mmc的前面64个扇区的数据擦除掉了会导致uboot找不到内核地址从而无法引导内核,我查看了一下前面的扇区部分应该是有一个mbr的分区文件,实际上使用的是GPT的模式,应用的是第二个扇区,如果删掉就导致操作系统引导不正常,我在这里截取了sdcard.img的前部分的数据(只需要三个扇区)保存成一个文件,把这个数据烧入0x00的地址就可以了。

启动开发板:

U-Boot TPL 2020.07 (Dec 03 2021 - 17:19:14)
Channel 0: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Channel 1: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
256B stride
lpddr4_set_rate: change freq to 400000000 mhz 0, 1
lpddr4_set_rate: change freq to 800000000 mhz 1, 0
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2020.07 (Dec 03 2021 - 17:19:14 +0800)
Trying to boot from MMC2


U-Boot 2020.07 (Dec 03 2021 - 17:19:14 +0800)

SoC: Rockchip rk3399
Reset cause: POR
Model: Khadas Edge
DRAM:  3.9 GiB
MMC:   mmc@fe310000: 2, mmc@fe320000: 1, sdhci@fe330000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial@ff1a0000
Out:   serial@ff1a0000
Err:   serial@ff1a0000
Model: Khadas Edge
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:3...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
156 bytes read in 14 ms (10.7 KiB/s)
1:      RK3399_ROCKPRO64 linux
Retrieving file: /Image
30009856 bytes read in 2882 ms (9.9 MiB/s)
append: earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rw rootwait
Retrieving file: /rk3399-orangepi.dtb
57862 bytes read in 19 ms (2.9 MiB/s)
Moving Image from 0x2080000 to 0x2200000, end=3f20000
## Flattened Device Tree blob at 01f00000
   Booting using the fdt blob at 0x1f00000
   Loading Device Tree to 00000000f5f1b000, end 00000000f5f2c205 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.8.2 (work@work-B85M-D3V) (aarch64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2021.08.2) 10.3.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT Thu Dec 2 17:45:56 CST 2021
[    0.000000] Machine model: Khadas Edge
[    0.000000] earlycon: uart8250 at MMIO32 0x00000000ff1a0000 (options '')
[    0.000000] printk: bootconsole [uart8250] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 32 MiB at 0x00000000f6000000
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] NUMA: NODE_DATA [mem 0xf57de100-0xf57dffff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000200000-0x000000003fffffff]
[    0.000000]   DMA32    [mem 0x0000000040000000-0x00000000f7ffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 23 pages/cpu s53912 r8192 d32104 u94208
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 999432
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rw rootwait
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x3bfff000-0x3ffff000] (64MB)
[    0.000000] Memory: 3852104K/4061184K available (14076K kernel code, 2170K rwdata, 7436K rodata, 5568K init, 481K bss, 176312K reserved, 32768K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=6.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=6
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000fef00000
[    0.000000] ITS [mem 0xfee20000-0xfee3ffff]
[    0.000000] ITS@0x00000000fee20000: allocated 65536 Devices @f0c80000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x00000000f0c40000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x00000000f0c50000
[    0.000000] GICv3: GIC: PPI partition interrupt-partition-0[0] { /cpus/cpu@0[0] /cpus/cpu@1[1] /cpus/cpu@2[2] /cpus/cpu@3[3] }
[    0.000000] GICv3: GIC: PPI partition interrupt-partition-1[1] { /cpus/cpu@100[4] /cpus/cpu@101[5] }
[    0.000000] random: get_random_bytes called from start_kernel+0x310/0x4e4 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000007] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.003479] Console: colour dummy device 80x25
[    0.003910] printk: console [tty0] enabled
[    0.004313] printk: bootconsole [uart8250] disabled
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.8.2 (work@work-B85M-D3V) (aarch64-buildroot-linux-uclibc-gcc.br_real (Buildroot 2021.08.2) 10.3.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT Thu Dec 2 17:45:56 CST 2021
[    0.000000] Machine model: Khadas Edge
[    0.000000] earlycon: uart8250 at MMIO32 0x00000000ff1a0000 (options '')
[    0.000000] printk: bootconsole [uart8250] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 32 MiB at 0x00000000f6000000
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] NUMA: NODE_DATA [mem 0xf57de100-0xf57dffff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000200000-0x000000003fffffff]
[    0.000000]   DMA32    [mem 0x0000000040000000-0x00000000f7ffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 23 pages/cpu s53912 r8192 d32104 u94208
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 999432
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rw rootwait
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x3bfff000-0x3ffff000] (64MB)
[    0.000000] Memory: 3852104K/4061184K available (14076K kernel code, 2170K rwdata, 7436K rodata, 5568K init, 481K bss, 176312K reserved, 32768K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=6.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=6
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000fef00000
[    0.000000] ITS [mem 0xfee20000-0xfee3ffff]
[    0.000000] ITS@0x00000000fee20000: allocated 65536 Devices @f0c80000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x00000000f0c40000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x00000000f0c50000
[    0.000000] GICv3: GIC: PPI partition interrupt-partition-0[0] { /cpus/cpu@0[0] /cpus/cpu@1[1] /cpus/cpu@2[2] /cpus/cpu@3[3] }
[    0.000000] GICv3: GIC: PPI partition interrupt-partition-1[1] { /cpus/cpu@100[4] /cpus/cpu@101[5] }
[    0.000000] random: get_random_bytes called from start_kernel+0x310/0x4e4 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000007] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.003479] Console: colour dummy device 80x25
[    0.003910] printk: console [tty0] enabled
[    0.004313] printk: bootconsole [uart8250] disabled
[    0.004914] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.004948] pid_max: default: 32768 minimum: 301
[    0.005091] LSM: Security Framework initializing
[    0.005207] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.005252] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.007612] rcu: Hierarchical SRCU implementation.
[    0.007953] Platform MSI: interrupt-controller@fee20000 domain created
[    0.008352] PCI/MSI: /interrupt-controller@fee00000/interrupt-controller@fee20000 domain created
[    0.008644] fsl-mc MSI: /interrupt-controller@fee00000/interrupt-controller@fee20000 domain created
[    0.014282] EFI services will not be available.
[    0.014737] smp: Bringing up secondary CPUs ...
[    0.015413] Detected VIPT I-cache on CPU1
[    0.015458] GICv3: CPU1: found redistributor 1 region 0:0x00000000fef20000
[    0.015475] GICv3: CPU1: using allocated LPI pending table @0x00000000f0c60000
[    0.015528] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.016307] Detected VIPT I-cache on CPU2
[    0.016340] GICv3: CPU2: found redistributor 2 region 0:0x00000000fef40000
[    0.016354] GICv3: CPU2: using allocated LPI pending table @0x00000000f0c70000
[    0.016388] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.017073] Detected VIPT I-cache on CPU3
[    0.017104] GICv3: CPU3: found redistributor 3 region 0:0x00000000fef60000
[    0.017117] GICv3: CPU3: using allocated LPI pending table @0x00000000f0d00000
[    0.017150] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.017814] CPU features: detected: EL2 vector hardening
[    0.017839] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.017847] Detected PIPT I-cache on CPU4
[    0.017881] GICv3: CPU4: found redistributor 100 region 0:0x00000000fef80000
[    0.017894] GICv3: CPU4: using allocated LPI pending table @0x00000000f0d10000
[    0.017930] CPU4: Booted secondary processor 0x0000000100 [0x410fd082]
[    0.018604] Detected PIPT I-cache on CPU5
[    0.018631] GICv3: CPU5: found redistributor 101 region 0:0x00000000fefa0000
[    0.018644] GICv3: CPU5: using allocated LPI pending table @0x00000000f0d20000
[    0.018672] CPU5: Booted secondary processor 0x0000000101 [0x410fd082]
[    0.018777] smp: Brought up 1 node, 6 CPUs
[    0.019108] SMP: Total of 6 processors activated.
[    0.019129] CPU features: detected: 32-bit EL0 Support
[    0.019149] CPU features: detected: CRC32 instructions
[    0.019169] CPU features: detected: 32-bit EL1 Support
[    0.037095] CPU: All CPU(s) started at EL2
[    0.037161] alternatives: patching kernel code
[    0.040482] devtmpfs: initialized
[    0.050245] KASLR disabled due to lack of seed
[    0.050814] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.050846] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    0.051826] pinctrl core: initialized pinctrl subsystem
[    0.053162] thermal_sys: Registered thermal governor 'step_wise'
[    0.053166] thermal_sys: Registered thermal governor 'power_allocator'
[    0.053707] DMI not present or invalid.
[    0.054253] NET: Registered protocol family 16
[    0.054940] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.055106] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.055267] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.055322] audit: initializing netlink subsys (disabled)
[    0.055529] audit: type=2000 audit(0.052:1): state=initialized audit_enabled=0 res=1
[    0.056863] cpuidle: using governor menu
[    0.057068] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.057233] ASID allocator initialised with 65536 entries
[    0.059046] Serial: AMBA PL011 UART driver
[    0.122265] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.122289] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.122305] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.122320] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.123992] cryptd: max_cpu_qlen set to 1000
[    0.127371] ACPI: Interpreter disabled.
[    0.130516] vsys_3v3: supplied by vsys
[    0.130798] vsys_5v0: supplied by vsys
[    0.130957] vcc3v3_pcie: supplied by vsys_3v3
[    0.131765] iommu: Default domain type: Translated 
[    0.133981] vgaarb: loaded
[    0.134314] SCSI subsystem initialized
[    0.134723] usbcore: registered new interface driver usbfs
[    0.134772] usbcore: registered new interface driver hub
[    0.134862] usbcore: registered new device driver usb
[    0.136114] pps_core: LinuxPPS API ver. 1 registered
[    0.136129] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti 
[    0.136155] PTP clock support registered
[    0.136364] EDAC MC: Ver: 3.0.0
[    0.138323] FPGA manager framework
[    0.138417] Advanced Linux Sound Architecture Driver Initialized.
[    0.139214] clocksource: Switched to clocksource arch_sys_counter
[    0.139443] VFS: Disk quotas dquot_6.6.0
[    0.139515] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.139714] pnp: PnP ACPI: disabled
[    0.147390] NET: Registered protocol family 2
[    0.147806] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.147897] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.148254] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    0.148928] TCP: Hash tables configured (established 32768 bind 32768)
[    0.149062] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.149206] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.149481] NET: Registered protocol family 1
[    0.149988] RPC: Registered named UNIX socket transport module.
[    0.150004] RPC: Registered udp transport module.
[    0.150016] RPC: Registered tcp transport module.
[    0.150027] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.150046] PCI: CLS 0 bytes, default 64
[    0.150978] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.151331] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[    0.151854] kvm [1]: IPA Size Limit: 40bits
[    0.152760] kvm [1]: vgic-v2@fff20000
[    0.152799] kvm [1]: GIC system register CPU interface enabled
[    0.152988] kvm [1]: vgic interrupt IRQ10
[    0.153206] kvm [1]: Hyp mode initialized successfully
[    0.158287] Initialise system trusted keyrings
[    0.158452] workingset: timestamp_bits=44 max_order=20 bucket_order=0
[    0.164969] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.165711] NFS: Registering the id_resolver key type
[    0.165745] Key type id_resolver registered
[    0.165758] Key type id_legacy registered
[    0.165778] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.165936] 9p: Installing v9fs 9p2000 file system support
[    0.229977] Key type asymmetric registered
[    0.229993] Asymmetric key parser 'x509' registered
[    0.230034] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.230051] io scheduler mq-deadline registered
[    0.230063] io scheduler kyber registered
[    0.237117] vcc5v0_host: supplied by vsys_5v0
[    0.254625] EINJ: ACPI disabled.
[    0.264994] dma-pl330 ff6d0000.dma-controller: Loaded driver for PL330 DMAC-241330
[    0.265020] dma-pl330 ff6d0000.dma-controller:       DBUFF-32x8bytes Num_Chans-6 Num_Peri-12 Num_Events-12
[    0.266187] dma-pl330 ff6e0000.dma-controller: Loaded driver for PL330 DMAC-241330
[    0.266210] dma-pl330 ff6e0000.dma-controller:       DBUFF-128x8bytes Num_Chans-8 Num_Peri-20 Num_Events-16
[    0.274510] pwm-regulator: supplied by regulator-dummy
[    0.280773] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.283067] ff180000.serial: ttyS0 at MMIO 0xff180000 (irq = 29, base_baud = 1500000) is a 16550A
[    0.283270] serial serial0: tty port ttyS0 registered
[    0.283794] ff1a0000.serial: ttyS2 at MMIO 0xff1a0000 (irq = 30, base_baud = 1500000) is a 16550A
[    0.382979] printk: console [ttyS2] enabled
[    0.385287] SuperH (H)SCI(F) driver initialized
[    0.386647] msm_serial: driver initialized
[    0.389596] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.398284] loop: module loaded
[    0.399932] megasas: 07.714.04.00-rc1
[    0.406878] spi-nor spi0.0: unrecognized JEDEC id bytes: ff ff ff ff ff ff
[    0.410325] libphy: Fixed MDIO Bus: probed
[    0.411402] tun: Universal TUN/TAP device driver, 1.6
[    0.413110] thunder_xcv, ver 1.0
[    0.413438] thunder_bgx, ver 1.0
[    0.413765] nicpf, ver 1.0
[    0.415919] hclge is initializing
[    0.416270] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    0.416912] hns3: Copyright (c) 2017 Huawei Corporation.
[    0.417434] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
[    0.418058] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    0.418603] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    0.419139] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.419707] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.6.0-k
[    0.420323] igb: Copyright (c) 2007-2014 Intel Corporation.
[    0.420853] igbvf: Intel(R) Gigabit Virtual Function Network Driver - version 2.4.0-k
[    0.421547] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    0.422656] sky2: driver version 1.30
[    0.424494] VFIO - User Level meta-driver version: 0.3
[    0.433573] OF: graph: no port node found in /syscon@ff770000/usb2phy@e450/otg-port
[    0.445181] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.445772] ehci-pci: EHCI PCI platform driver
[    0.446202] ehci-platform: EHCI generic platform driver
[    0.448918] ehci-platform fe380000.usb: EHCI Host Controller
[    0.449450] ehci-platform fe380000.usb: new USB bus registered, assigned bus number 1
[    0.450251] ehci-platform fe380000.usb: irq 23, io mem 0xfe380000
[    0.467122] ehci-platform fe380000.usb: USB 2.0 started, EHCI 1.00
[    0.468282] hub 1-0:1.0: USB hub found
[    0.468648] hub 1-0:1.0: 1 port detected
[    0.471519] ehci-platform fe3c0000.usb: EHCI Host Controller
[    0.472042] ehci-platform fe3c0000.usb: new USB bus registered, assigned bus number 2
[    0.472828] ehci-platform fe3c0000.usb: irq 25, io mem 0xfe3c0000
[    0.487120] ehci-platform fe3c0000.usb: USB 2.0 started, EHCI 1.00
[    0.488182] hub 2-0:1.0: USB hub found
[    0.488547] hub 2-0:1.0: 1 port detected
[    0.489405] ehci-orion: EHCI orion driver
[    0.489991] ehci-exynos: EHCI Exynos driver
[    0.490526] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.491117] ohci-pci: OHCI PCI platform driver
[    0.491569] ohci-platform: OHCI generic platform driver
[    0.492231] ohci-platform fe3a0000.usb: Generic Platform OHCI controller
[    0.492847] ohci-platform fe3a0000.usb: new USB bus registered, assigned bus number 3
[    0.493641] ohci-platform fe3a0000.usb: irq 24, io mem 0xfe3a0000
[    0.555741] hub 3-0:1.0: USB hub found
[    0.556108] hub 3-0:1.0: 1 port detected
[    0.556870] ohci-platform fe3e0000.usb: Generic Platform OHCI controller
[    0.557480] ohci-platform fe3e0000.usb: new USB bus registered, assigned bus number 4
[    0.558258] ohci-platform fe3e0000.usb: irq 26, io mem 0xfe3e0000
[    0.619766] hub 4-0:1.0: USB hub found
[    0.620131] hub 4-0:1.0: 1 port detected
[    0.620979] ohci-exynos: OHCI Exynos driver
[    0.622160] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    0.622667] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 5
[    0.623505] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000000002010010
[    0.624354] xhci-hcd xhci-hcd.0.auto: irq 225, io mem 0xfe800000
[    0.625588] hub 5-0:1.0: USB hub found
[    0.625953] hub 5-0:1.0: 1 port detected
[    0.626577] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    0.627077] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 6
[    0.627812] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
[    0.628445] usb usb6: We don't know the algorithms for LPM for this host, disabling LPM.
[    0.629652] hub 6-0:1.0: USB hub found
[    0.630015] hub 6-0:1.0: 1 port detected
[    0.630779] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    0.631304] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 7
[    0.632112] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000000002010010
[    0.632990] xhci-hcd xhci-hcd.1.auto: irq 226, io mem 0xfe900000
[    0.634185] hub 7-0:1.0: USB hub found
[    0.634550] hub 7-0:1.0: 1 port detected
[    0.635210] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    0.635711] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 8
[    0.636403] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[    0.637032] usb usb8: We don't know the algorithms for LPM for this host, disabling LPM.
[    0.638240] hub 8-0:1.0: USB hub found
[    0.638604] hub 8-0:1.0: 1 port detected
[    0.639708] usbcore: registered new interface driver usb-storage
[    0.644745] i2c /dev entries driver
[    0.649177] rk808 4-001b: failed to read the chip id at 0x17
[    0.652657] fan53555-regulator 4-0040: Failed to get chip ID!
[    0.654534] fan53555-regulator 4-0041: Failed to get chip ID!
[    0.666318] sdhci: Secure Digital Host Controller Interface driver
[    0.666875] sdhci: Copyright(c) Pierre Ossman
[    0.668046] Synopsys Designware Multimedia Card Interface Driver
[    0.669901] dwmmc_rockchip fe310000.mmc: IDMAC supports 32-bit address mode.
[    0.670548] dwmmc_rockchip fe310000.mmc: Using internal DMA controller.
[    0.671177] dwmmc_rockchip fe310000.mmc: Version ID is 270a
[    0.671719] dwmmc_rockchip fe310000.mmc: DW MMC controller at irq 20,32 bit host data width,256 deep fifo
[    0.673184] dwmmc_rockchip fe320000.mmc: IDMAC supports 32-bit address mode.
[    0.673828] dwmmc_rockchip fe320000.mmc: Using internal DMA controller.
[    0.674423] dwmmc_rockchip fe320000.mmc: Version ID is 270a
[    0.674954] dwmmc_rockchip fe320000.mmc: DW MMC controller at irq 21,32 bit host data width,256 deep fifo
[    0.675909] dwmmc_rockchip fe320000.mmc: Got CD GPIO
[    0.687302] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    0.702876] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.705353] mmc1: CQHCI version 5.10
[    0.731315] mmc1: SDHCI controller on fe330000.mmc [fe330000.mmc] using ADMA
[    0.735166] ledtrig-cpu: registered to indicate activity on CPUs
[    0.739211] usbcore: registered new interface driver usbhid
[    0.739727] usbhid: USB HID core driver
[    0.749269] NET: Registered protocol family 17
[    0.749854] 9pnet: Installing 9P2000 support
[    0.750292] Key type dns_resolver registered
[    0.750969] registered taskstats version 1
[    0.751390] Loading compiled-in X.509 certificates
[    0.790424] dwmmc_rockchip fe310000.mmc: IDMAC supports 32-bit address mode.
[    0.791140] dwmmc_rockchip fe310000.mmc: Using internal DMA controller.
[    0.791741] dwmmc_rockchip fe310000.mmc: Version ID is 270a
[    0.792267] dwmmc_rockchip fe310000.mmc: DW MMC controller at irq 20,32 bit host data width,256 deep fifo
[    0.798708] dwmmc_rockchip fe310000.mmc: IDMAC supports 32-bit address mode.
[    0.799394] dwmmc_rockchip fe310000.mmc: Using internal DMA controller.
[    0.799993] dwmmc_rockchip fe310000.mmc: Version ID is 270a
[    0.800521] dwmmc_rockchip fe310000.mmc: DW MMC controller at irq 20,32 bit host data width,256 deep fifo
[    0.801821] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.802741] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.803491] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.804209] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.804925] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.805641] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.806355] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.807152] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.807851] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.808547] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.809262] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.810007] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.810825] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.811557] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.812273] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.813041] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.813840] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.814554] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.815285] debugfs: Directory 'power-domain' with parent 'pm_genpd' already present!
[    0.817924] mmc1: Command Queue Engine enabled
[    0.818341] mmc1: new HS400 Enhanced strobe MMC card at address 0001
[    0.819196] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[    0.820007] mmcblk1: mmc1:0001 AJTD4R 14.6 GiB 
[    0.820567] mmcblk1boot0: mmc1:0001 AJTD4R partition 1 4.00 MiB
[    0.821228] mmcblk1boot1: mmc1:0001 AJTD4R partition 2 4.00 MiB
[    0.822442] mmcblk1rpmb: mmc1:0001 AJTD4R partition 3 4.00 MiB, chardev (234:0)
[    0.824795] ALSA device list:
[    0.825076]   No soundcards found.
[    0.825613] dw-apb-uart ff1a0000.serial: forbid DMA for kernel console
[    0.827587] GPT:Primary header thinks Alt. header is not at the end of the disk.
[    0.828261] GPT:471079 != 30535679
[    0.828568] GPT:Alternate GPT header not at the end of the disk.
[    0.829103] GPT:471079 != 30535679
[    0.829409] GPT: Use GNU Parted to correct GPT errors.
[    0.829904]  mmcblk1: p1 p2 p3 p4
[    0.831626] dwmmc_rockchip fe310000.mmc: IDMAC supports 32-bit address mode.
[    0.832285] dwmmc_rockchip fe310000.mmc: Using internal DMA controller.
[    0.832884] dwmmc_rockchip fe310000.mmc: Version ID is 270a
[    0.833410] dwmmc_rockchip fe310000.mmc: DW MMC controller at irq 20,32 bit host data width,256 deep fifo
[    0.839705] dwmmc_rockchip fe310000.mmc: IDMAC supports 32-bit address mode.
[    0.840393] dwmmc_rockchip fe310000.mmc: Using internal DMA controller.
[    0.840991] dwmmc_rockchip fe310000.mmc: Version ID is 270a
[    0.841511] dwmmc_rockchip fe310000.mmc: DW MMC controller at irq 20,32 bit host data width,256 deep fifo
[    0.862287] EXT4-fs (mmcblk1p4): recovery complete
[    0.863475] EXT4-fs (mmcblk1p4): mounted filesystem with ordered data mode. Opts: (null)
[    0.864241] VFS: Mounted root (ext4 filesystem) on device 179:4.
[    0.865261] devtmpfs: mounted
[    0.869142] Freeing unused kernel memory: 5568K
[    0.875441] Run /sbin/init as init process
[    0.899317] EXT4-fs (mmcblk1p4): re-mounted. Opts: (null)
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Initializing random number generator: OK
Saving random seed: [    0.998912] random: dd: uninitialized urandom read (512 bytes read)
OK
Starting network: OK

Welcome to ORANGEPI-RK3399
rk3399-khadas-edge login: root
# 

你可能感兴趣的:(linux,linux,嵌入式,u-boot,arm)