嵌入式ARM64 Linux内核编译及根文件系统构建
这篇文章主要讲三个方面内容:编译最新的linux内核使用busybox构建根文件系统运行系统使用的系统环境是Ubuntu20.041. 编译linux内核安装arm64交叉编译器:sudo apt-get install gcc-aarch64-linux-gnu下载内核源码:wget -c https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.
这篇文章主要讲三个方面内容:
编译最新的linux内核
使用busybox构建根文件系统
平台:orangepi4 rockchip rk3399 LPDDR4 4G eMMC 16G
系统:ubuntu 20.04
1. 编译linux内核
安装arm64交叉编译器:
sudo apt-get install gcc-aarch64-linux-gnu
下载内核源码:
wget -c https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.6.tar.xz
解压源码:
tar -xJf linux-5.15.6.tar.xz
配置内核:
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
按照默认的配置就行了,我们采用的是Image + dtb的内核格式,所以不用指定某一个CPU
编译内核:
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8
编译成功后会得到arch/arm64/boot/Image文件及boot/dst/rockchip/xxx.dtb文件
2. 编译busybox
下载busybox源码:
wget -c https://busybox.net/downloads/busybox-1.34.1.tar.bz2
解压busybox源码:
tar -jxf busybox-1.34.1.tar.bz2
配置busybox源码:
make CROSS_COMPILE=aarch64-linux-gnu- menuconfig
Settings->
[*]Build static binary (no shared libs)
编译并安装busybox:
make CROSS_COMPILE=aarch64-linux-gnu- install
默认被安装到_install目录下面
构建根文件系统目录:
执行以下脚本补充一些必要的文件或目录:
#!/bin/sh
cd _install
mkdir etc dev mnt
mkdir -p proc sys tmp mnt
mkdir -p etc/init.d/
cat>etc/fstab<<EOF
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
EOF
cat>etc/init.d/rcS<<EOF
echo -e "Welcome to tinyLinux"
/bin/mount -a
echo -e "Remounting the root filesystem"
mount -o remount,rw /
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
EOF
chmod 755 etc/init.d/rcS
cat>etc/inittab<<EOF
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::cttlaltdel:/bin/umount -a -r
EOF
chmod 755 etc/inittab
cd dev
mknod console c 5 1
mknod null c 1 3
mknod tty1 c 4 1
此时文件系统目录构建完成
制作根文件系统镜像:
执行以下脚本:
#!/bin/bash
dd if=/dev/zero of=./rootfs.ext3 bs=1M count=32
mkfs.ext3 rootfs.ext3
mkdir fs
sudo mount -o loop rootfs.ext3 ./fs
sudo cp -rf ./_install/* ./fs
sudo umount ./fs
gzip --best -c rootfs.ext3 > rootfs.img.gz
执行成功后得到rootfs.ext3文件
3. 运行系统
通过瑞芯微官方说明我们需要制作一个Distro的boot/kernel镜像才可以运行内核,首先要找到一个dtb的配置文件,因为我的板子的内存是LPDDR4的,所以这里选用了一个支持LPDDR4的单板的配置rk3399-khadas-edge.dtb,然后就是构建一个extlinux.conf文件,进入内核源码目录执行:
#!/bin/sh
mkdir boot
cp arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtb boot/rk3399.dtb
cp arch/arm64/boot/Image boot/
mkdir boot/extlinux
cat>boot/extlinux/extlinux.conf<<EOF
label rockchip-kernel-5.15
kernel /Image
fdt /rk3399.dtb
append earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=B921B045-1D rootwait rootfstype=ext4 init=/sbin/init
EOF
得到下面的文件
使用以下脚本创建内核镜像:
创建fat格式镜像:
#!/bin/sh
dd if=/dev/zero of=boot.img bs=1M count=32
sudo mkfs.fat boot.img
mkdir tmp
sudo mount boot.img tmp/
sudo cp -r boot/* tmp/
sudo umount tmp
创建ext2格式镜像:
genext2fs -b 32768 -B $((32*1024*1024/32768)) -d boot/ -i 8192 -U boot.img
执行成功后得到boot.img文件
完成后需要在uboot命令下面执行以下命令更新gpt:
gpt write mmc 0 $partitions
启动开发板连接usb然后是开发板进入maskrom模式(具体步骤及uboot参考uboot移植(基于原生u-boot代码RK3399平台)_anqi8955的专栏-CSDN博客)
运行以下脚步进行烧录:
sudo rkdeveloptool db rk3399_loader_v1.25.126.bin
sudo rkdeveloptool ul rk3399_loader_v1.25.126.bin
sudo rkdeveloptool wl 0x4000 uboot.img
sudo rkdeveloptool wl 0x6000 trust.img
sudo rkdeveloptool wl 0x8000 boot.img
sudo rkdeveloptool wl 0x40000 rootfs.ext3
sudo rkdeveloptool rd
烧录完成后启动开发板:
U-Boot TPL 2021.04 (Dec 07 2021 - 00:28:19)
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 2021.04 (Dec 07 2021 - 00:28:19 -0800)
Trying to boot from MMC2
U-Boot 2021.04 (Dec 07 2021 - 00:28:19 -0800)
SoC: Rockchip rk3399
Reset cause: RST
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:
Warning: ethernet@fe300000 (eth0) using random MAC address - 86:31:84:ef:10:2d
eth0: ethernet@fe300000
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:4...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
181 bytes read in 15 ms (11.7 KiB/s)
1: rockchip-kernel-5.15.6
Retrieving file: /Image
33288704 bytes read in 4012 ms (7.9 MiB/s)
append: earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=B921B045-1D rootwait rootfstype=ext4 init=/sbin/init
Retrieving file: /rk3399.dtb
57862 bytes read in 25 ms (2.2 MiB/s)
Moving Image from 0x2080000 to 0x2200000, end=4250000
## Flattened Device Tree blob at 01f00000
Booting using the fdt blob at 0x1f00000
Loading Device Tree to 00000000f5f1a000, end 00000000f5f2b205 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 5.15.6 (work@work-B85M-D3V) (aarch64-linux-gnu-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #3 SMP PREEMPT Tue Dec 7 18:45:12 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] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000000f7ffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0xf77e1c00-0xf77e3fff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000200000-0x00000000f7ffffff]
[ 0.000000] DMA32 empty
[ 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] cma: Reserved 32 MiB at 0x00000000f0000000
[ 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 20 pages/cpu s41112 r8192 d32616 u81920
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: GIC system register CPU interface
[ 0.000000] CPU features: detected: ARM erratum 845719
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 999432
[ 0.000000] Policy zone: DMA
[ 0.000000] Kernel command line: earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=B921B045-1D rootwait rootfstype=ext4 init=/sbin/init
[ 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] Memory: 3916844K/4061184K available (14848K kernel code, 3068K rwdata, 8244K rodata, 6208K init, 496K bss, 111572K 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] Root IRQ handler: gic_handle_irq
[ 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 @480000 (flat, esz 8, psz 64K, shr 0)
[ 0.000000] ITS: using cache flushing for cmd queue
[ 0.000000] GICv3: using LPI property table @0x0000000000440000
[ 0.000000] GIC: using cache flushing for LPI property table
[ 0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000000450000
[ 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+0x478/0x660 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.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.004712] Console: colour dummy device 80x25
[ 0.005154] printk: console [tty0] enabled
[ 0.005559] printk: bootconsole [uart8250] disabled
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 5.15.6 (work@work-B85M-D3V) (aarch64-linux-gnu-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #3 SMP PREEMPT Tue Dec 7 18:45:12 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] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000000f7ffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0xf77e1c00-0xf77e3fff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000200000-0x00000000f7ffffff]
[ 0.000000] DMA32 empty
[ 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] cma: Reserved 32 MiB at 0x00000000f0000000
[ 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 20 pages/cpu s41112 r8192 d32616 u81920
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: GIC system register CPU interface
[ 0.000000] CPU features: detected: ARM erratum 845719
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 999432
[ 0.000000] Policy zone: DMA
[ 0.000000] Kernel command line: earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=B921B045-1D rootwait rootfstype=ext4 init=/sbin/init
[ 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] Memory: 3916844K/4061184K available (14848K kernel code, 3068K rwdata, 8244K rodata, 6208K init, 496K bss, 111572K 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] Root IRQ handler: gic_handle_irq
[ 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 @480000 (flat, esz 8, psz 64K, shr 0)
[ 0.000000] ITS: using cache flushing for cmd queue
[ 0.000000] GICv3: using LPI property table @0x0000000000440000
[ 0.000000] GIC: using cache flushing for LPI property table
[ 0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000000450000
[ 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+0x478/0x660 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.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.004712] Console: colour dummy device 80x25
[ 0.005154] printk: console [tty0] enabled
[ 0.005559] printk: bootconsole [uart8250] disabled
[ 0.006149] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[ 0.006190] pid_max: default: 32768 minimum: 301
[ 0.006311] LSM: Security Framework initializing
[ 0.006428] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.006481] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.008974] rcu: Hierarchical SRCU implementation.
[ 0.009342] Platform MSI: interrupt-controller@fee20000 domain created
[ 0.009812] PCI/MSI: /interrupt-controller@fee00000/interrupt-controller@fee20000 domain created
[ 0.010153] fsl-mc MSI: interrupt-controller@fee20000 domain created
[ 0.016602] EFI services will not be available.
[ 0.017086] smp: Bringing up secondary CPUs ...
[ 0.017778] Detected VIPT I-cache on CPU1
[ 0.017824] GICv3: CPU1: found redistributor 1 region 0:0x00000000fef20000
[ 0.017849] GICv3: CPU1: using allocated LPI pending table @0x0000000000460000
[ 0.017919] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[ 0.018694] Detected VIPT I-cache on CPU2
[ 0.018731] GICv3: CPU2: found redistributor 2 region 0:0x00000000fef40000
[ 0.018751] GICv3: CPU2: using allocated LPI pending table @0x0000000000470000
[ 0.018797] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[ 0.019490] Detected VIPT I-cache on CPU3
[ 0.019524] GICv3: CPU3: found redistributor 3 region 0:0x00000000fef60000
[ 0.019543] GICv3: CPU3: using allocated LPI pending table @0x0000000000500000
[ 0.019586] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[ 0.020280] CPU features: detected: Spectre-v2
[ 0.020293] CPU features: detected: Spectre-v3a
[ 0.020307] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[ 0.020314] Detected PIPT I-cache on CPU4
[ 0.020346] GICv3: CPU4: found redistributor 100 region 0:0x00000000fef80000
[ 0.020365] GICv3: CPU4: using allocated LPI pending table @0x0000000000510000
[ 0.020410] CPU4: Booted secondary processor 0x0000000100 [0x410fd082]
[ 0.021140] Detected PIPT I-cache on CPU5
[ 0.021171] GICv3: CPU5: found redistributor 101 region 0:0x00000000fefa0000
[ 0.021189] GICv3: CPU5: using allocated LPI pending table @0x0000000000520000
[ 0.021226] CPU5: Booted secondary processor 0x0000000101 [0x410fd082]
[ 0.021349] smp: Brought up 1 node, 6 CPUs
[ 0.021713] SMP: Total of 6 processors activated.
[ 0.021735] CPU features: detected: 32-bit EL0 Support
[ 0.021755] CPU features: detected: 32-bit EL1 Support
[ 0.021778] CPU features: detected: CRC32 instructions
[ 0.039136] CPU: All CPU(s) started at EL2
[ 0.039213] alternatives: patching kernel code
[ 0.042607] devtmpfs: initialized
[ 0.052736] KASLR disabled due to lack of seed
[ 0.052942] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.052978] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[ 0.053991] pinctrl core: initialized pinctrl subsystem
[ 0.055032] DMI not present or invalid.
[ 0.055594] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.057817] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[ 0.058118] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[ 0.058473] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.058543] audit: initializing netlink subsys (disabled)
[ 0.058729] audit: type=2000 audit(0.056:1): state=initialized audit_enabled=0 res=1
[ 0.060063] thermal_sys: Registered thermal governor 'step_wise'
[ 0.060073] thermal_sys: Registered thermal governor 'power_allocator'
[ 0.060586] cpuidle: using governor menu
[ 0.060848] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.061040] ASID allocator initialised with 65536 entries
[ 0.063073] Serial: AMBA PL011 UART driver
[ 0.090354] OF: amba_device_add() failed (-19) for /dma-controller@ff6d0000
[ 0.090553] OF: amba_device_add() failed (-19) for /dma-controller@ff6e0000
[ 0.092857] platform ff770000.syscon:phy@f780: Fixing up cyclic dependency with fe330000.mmc
[ 0.100760] platform ff940000.hdmi: Fixing up cyclic dependency with ff8f0000.vop
[ 0.100844] platform ff940000.hdmi: Fixing up cyclic dependency with ff900000.vop
[ 0.108809] rockchip-gpio ff720000.gpio0: probed /pinctrl/gpio0@ff720000
[ 0.109561] rockchip-gpio ff730000.gpio1: probed /pinctrl/gpio1@ff730000
[ 0.110218] rockchip-gpio ff780000.gpio2: probed /pinctrl/gpio2@ff780000
[ 0.110814] rockchip-gpio ff788000.gpio3: probed /pinctrl/gpio3@ff788000
[ 0.111395] rockchip-gpio ff790000.gpio4: probed /pinctrl/gpio4@ff790000
[ 0.129112] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.129144] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[ 0.129162] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.129180] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[ 0.130871] cryptd: max_cpu_qlen set to 1000
[ 0.134321] ACPI: Interpreter disabled.
[ 0.138020] vsys_3v3: supplied by vsys
[ 0.138316] vsys_5v0: supplied by vsys
[ 0.139313] iommu: Default domain type: Translated
[ 0.139334] iommu: DMA domain TLB invalidation policy: strict mode
[ 0.141785] vgaarb: loaded
[ 0.142084] SCSI subsystem initialized
[ 0.142503] usbcore: registered new interface driver usbfs
[ 0.142562] usbcore: registered new interface driver hub
[ 0.142611] usbcore: registered new device driver usb
[ 0.144212] pps_core: LinuxPPS API ver. 1 registered
[ 0.144229] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.144258] PTP clock support registered
[ 0.144495] EDAC MC: Ver: 3.0.0
[ 0.147305] FPGA manager framework
[ 0.147414] Advanced Linux Sound Architecture Driver Initialized.
[ 0.148363] clocksource: Switched to clocksource arch_sys_counter
[ 0.148542] VFS: Disk quotas dquot_6.6.0
[ 0.148613] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.148902] pnp: PnP ACPI: disabled
[ 0.157115] NET: Registered PF_INET protocol family
[ 0.157434] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[ 0.160220] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[ 0.160393] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 0.160757] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[ 0.161436] TCP: Hash tables configured (established 32768 bind 32768)
[ 0.161585] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 0.161737] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 0.162019] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.162586] RPC: Registered named UNIX socket transport module.
[ 0.162607] RPC: Registered udp transport module.
[ 0.162621] RPC: Registered tcp transport module.
[ 0.162633] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.162653] PCI: CLS 0 bytes, default 64
[ 0.163857] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[ 0.164286] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[ 0.164921] kvm [1]: IPA Size Limit: 40 bits
[ 0.166442] kvm [1]: vgic-v2@fff20000
[ 0.166484] kvm [1]: GIC system register CPU interface enabled
[ 0.166717] kvm [1]: vgic interrupt IRQ18
[ 0.166978] kvm [1]: Hyp mode initialized successfully
[ 0.172475] Initialise system trusted keyrings
[ 0.172661] workingset: timestamp_bits=42 max_order=20 bucket_order=0
[ 0.179353] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.180062] NFS: Registering the id_resolver key type
[ 0.180103] Key type id_resolver registered
[ 0.180119] Key type id_legacy registered
[ 0.180215] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 0.180235] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[ 0.180456] 9p: Installing v9fs 9p2000 file system support
[ 0.245797] Key type asymmetric registered
[ 0.245817] Asymmetric key parser 'x509' registered
[ 0.245896] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[ 0.245918] io scheduler mq-deadline registered
[ 0.245932] io scheduler kyber registered
[ 0.257277] rockchip-usb2phy ff770000.syscon:usb2phy@e450: failed to create phy
[ 0.258210] rockchip-usb2phy ff770000.syscon:usb2phy@e460: failed to create phy
[ 0.275676] EINJ: ACPI disabled.
[ 0.303092] vdd_log: supplied by regulator-dummy
[ 0.309847] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.312614] ff180000.serial: ttyS0 at MMIO 0xff180000 (irq = 37, base_baud = 1500000) is a 16550A
[ 0.312796] serial serial0: tty port ttyS0 registered
[ 0.313665] ff1a0000.serial: ttyS2 at MMIO 0xff1a0000 (irq = 38, base_baud = 1500000) is a 16550A
[ 0.417842] printk: console [ttyS2] enabled
[ 0.420781] SuperH (H)SCI(F) driver initialized
[ 0.422309] msm_serial: driver initialized
[ 0.426005] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 0.433967] brd: module loaded
[ 0.441037] loop: module loaded
[ 0.443075] megasas: 07.717.02.00-rc1
[ 0.446610] SPI driver mtd_dataflash has no spi_device_id for atmel,at45
[ 0.447214] SPI driver mtd_dataflash has no spi_device_id for atmel,dataflash
[ 0.453833] libphy: Fixed MDIO Bus: probed
[ 0.456283] tun: Universal TUN/TAP device driver, 1.6
[ 0.458370] thunder_xcv, ver 1.0
[ 0.458703] thunder_bgx, ver 1.0
[ 0.459029] nicpf, ver 1.0
[ 0.461813] hclge is initializing
[ 0.462133] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[ 0.462778] hns3: Copyright (c) 2017 Huawei Corporation.
[ 0.463306] e1000: Intel(R) PRO/1000 Network Driver
[ 0.463745] e1000: Copyright (c) 1999-2006 Intel Corporation.
[ 0.464294] e1000e: Intel(R) PRO/1000 Network Driver
[ 0.464757] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 0.465332] igb: Intel(R) Gigabit Ethernet Network Driver
[ 0.465816] igb: Copyright (c) 2007-2014 Intel Corporation.
[ 0.466344] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[ 0.466902] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[ 0.468087] sky2: driver version 1.30
[ 0.470567] VFIO - User Level meta-driver version: 0.3
[ 0.478849] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.479443] ehci-pci: EHCI PCI platform driver
[ 0.479882] ehci-platform: EHCI generic platform driver
[ 0.480662] ehci-orion: EHCI orion driver
[ 0.481235] ehci-exynos: EHCI Exynos driver
[ 0.481793] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.482364] ohci-pci: OHCI PCI platform driver
[ 0.482806] ohci-platform: OHCI generic platform driver
[ 0.483519] ohci-exynos: OHCI Exynos driver
[ 0.485079] usbcore: registered new interface driver usb-storage
[ 0.490891] i2c_dev: i2c /dev entries driver
[ 0.495803] rk808 4-001b: failed to read the chip id at 0x17
[ 0.501342] fan53555-regulator 4-0040: Failed to get chip ID!
[ 0.502766] fan53555-regulator 4-0041: Failed to get chip ID!
[ 0.511568] dw_wdt ff848000.watchdog: No valid TOPs array specified
[ 0.516952] sdhci: Secure Digital Host Controller Interface driver
[ 0.517516] sdhci: Copyright(c) Pierre Ossman
[ 0.518820] SPI driver mmc_spi has no spi_device_id for mmc-spi-slot
[ 0.519997] Synopsys Designware Multimedia Card Interface Driver
[ 0.522621] dwmmc_rockchip fe320000.mmc: IDMAC supports 32-bit address mode.
[ 0.522925] sdhci-pltfm: SDHCI platform and OF driver helper
[ 0.523303] dwmmc_rockchip fe320000.mmc: Using internal DMA controller.
[ 0.524416] dwmmc_rockchip fe320000.mmc: Version ID is 270a
[ 0.524997] dwmmc_rockchip fe320000.mmc: DW MMC controller at irq 29,32 bit host data width,256 deep fifo
[ 0.526076] dwmmc_rockchip fe320000.mmc: Got CD GPIO
[ 0.526973] mmc2: CQHCI version 5.10
[ 0.528306] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.531043] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[ 0.532658] usbcore: registered new interface driver usbhid
[ 0.533163] usbhid: USB HID core driver
[ 0.539872] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 0.544189] NET: Registered PF_PACKET protocol family
[ 0.544873] 9pnet: Installing 9P2000 support
[ 0.545309] Key type dns_resolver registered
[ 0.546193] Loading compiled-in X.509 certificates
[ 0.553864] mmc2: SDHCI controller on fe330000.mmc [fe330000.mmc] using ADMA
[ 0.583629] vcc3v3_pcie: supplied by vsys_3v3
[ 0.585086] vcc5v0_host: supplied by vsys_5v0
[ 0.606863] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[ 0.607420] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[ 0.608276] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000000002010010
[ 0.609199] xhci-hcd xhci-hcd.0.auto: irq 70, io mem 0xfe800000
[ 0.610981] hub 1-0:1.0: USB hub found
[ 0.611383] hub 1-0:1.0: 1 port detected
[ 0.612144] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[ 0.612692] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[ 0.613405] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
[ 0.614099] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[ 0.615655] hub 2-0:1.0: USB hub found
[ 0.616046] hub 2-0:1.0: 1 port detected
[ 0.620462] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 0.621011] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
[ 0.621882] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000000002010010
[ 0.622807] xhci-hcd xhci-hcd.1.auto: irq 71, io mem 0xfe900000
[ 0.624617] hub 3-0:1.0: USB hub found
[ 0.625010] hub 3-0:1.0: 1 port detected
[ 0.625804] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 0.626323] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
[ 0.627039] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[ 0.627714] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[ 0.628973] mmc2: Command Queue Engine enabled
[ 0.629401] mmc2: new HS400 Enhanced strobe MMC card at address 0001
[ 0.629487] hub 4-0:1.0: USB hub found
[ 0.630359] hub 4-0:1.0: 1 port detected
[ 0.630826] mmcblk2: mmc2:0001 AJTD4R 14.6 GiB
[ 0.635681] ehci-platform fe380000.usb: EHCI Host Controller
[ 0.636034] mmcblk2: p1 p2 p3 p4 p5
[ 0.636249] ehci-platform fe380000.usb: new USB bus registered, assigned bus number 5
[ 0.637441] ehci-platform fe380000.usb: irq 31, io mem 0xfe380000
[ 0.638137] mmcblk2boot0: mmc2:0001 AJTD4R 4.00 MiB
[ 0.640115] mmcblk2boot1: mmc2:0001 AJTD4R 4.00 MiB
[ 0.642173] mmcblk2rpmb: mmc2:0001 AJTD4R 4.00 MiB, chardev (234:0)
[ 0.652541] ehci-platform fe380000.usb: USB 2.0 started, EHCI 1.00
[ 0.654081] hub 5-0:1.0: USB hub found
[ 0.654469] hub 5-0:1.0: 1 port detected
[ 0.659767] ehci-platform fe3c0000.usb: EHCI Host Controller
[ 0.660335] ehci-platform fe3c0000.usb: new USB bus registered, assigned bus number 6
[ 0.661219] ehci-platform fe3c0000.usb: irq 33, io mem 0xfe3c0000
[ 0.676643] ehci-platform fe3c0000.usb: USB 2.0 started, EHCI 1.00
[ 0.678312] hub 6-0:1.0: USB hub found
[ 0.678707] hub 6-0:1.0: 1 port detected
[ 0.681762] ohci-platform fe3a0000.usb: Generic Platform OHCI controller
[ 0.682417] ohci-platform fe3a0000.usb: new USB bus registered, assigned bus number 7
[ 0.683298] ohci-platform fe3a0000.usb: irq 32, io mem 0xfe3a0000
[ 0.745746] hub 7-0:1.0: USB hub found
[ 0.746159] hub 7-0:1.0: 1 port detected
[ 0.749252] ohci-platform fe3e0000.usb: Generic Platform OHCI controller
[ 0.749905] ohci-platform fe3e0000.usb: new USB bus registered, assigned bus number 8
[ 0.750767] ohci-platform fe3e0000.usb: irq 34, io mem 0xfe3e0000
[ 0.813774] hub 8-0:1.0: USB hub found
[ 0.814187] hub 8-0:1.0: 1 port detected
[ 0.841410] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[ 0.843985] ALSA device list:
[ 0.844279] No soundcards found.
[ 0.844871] dw-apb-uart ff1a0000.serial: forbid DMA for kernel console
[ 0.860223] EXT4-fs (mmcblk2p5): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[ 0.861235] VFS: Mounted root (ext4 filesystem) readonly on device 179:5.
[ 0.862324] devtmpfs: mounted
[ 0.866320] Freeing unused kernel memory: 6208K
[ 0.896691] Run /sbin/init as init process
Bad inittab entry at line 4
Welcome to tinyLinux
[ 0.924682] tmpfs: Unknown parameter ' defaults'
mount: mounting tmpfs on /tmp failed: Invalid argument
Remounting the root filesystem
[ 0.930444] EXT4-fs (mmcblk2p5): re-mounted. Opts: (null). Quota mode: none.
/etc/init.d/rcS: line 7: can't create /proc/sys/kernel/hotplug: nonexistent directory
Please press Enter to activate this console.
/ #
/ #
更多推荐
所有评论(0)