平台: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下载最新工程
选择最新版本:
解压源码:
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
可以看到uboot使用的配置是orangepi-rk3399,我将它替换成khadas-edge-rk3399然后执行
make orangepi_rk3399_defconfig
make menuconfig
Filesystem images--->
将exact size调整位150M
make -j8
第一次编译时间比较慢,因为要下载一些代码编译器等等,
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
#