U-Boot 构建并从USB启动
安装 sunxi-fel 工具:
git clone https://github.com/linux-sunxi/sunxi-tools
cd sunxi-tools/
make
Arm Trusted Firmware (arm64)
git clone https://github.com/ARM-software/arm-trusted-firmware.git
cd arm-trusted-firmware
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=<platform> DEBUG=1 bl31
# platform = sun50i-h616
下拉最新的 u-boot
git clone git:
cd u-boot
修改 u-boot
- MQ-Quad 没有以太网接口 执行 make menuconfig 在主页关闭网络支持:【】Networking support
- MQ-Quad 使用 axp313 电源管理芯片 修改drivers/power/axp305.c文件:
# 注释掉 DCDC4 的设置 axp313并没有这路输出
int axp_set_dcdc4(unsigned int mvolt)
{
int ret;
u8 cfg;
#if 0
if (mvolt >= 1600)
cfg = AXP305_DCDC4_1600MV_OFFSET +
axp305_mvolt_to_cfg(mvolt, 1600, 3300, 100);
else
cfg = axp305_mvolt_to_cfg(mvolt, 600, 1500, 20);
if (mvolt == 0)
return pmic_bus_clrbits(AXP305_OUTPUT_CTRL1,
AXP305_OUTPUT_CTRL1_DCDCD_EN);
ret = pmic_bus_write(AXP305_DCDCD_VOLTAGE, cfg);
if (ret)
return ret;
return pmic_bus_setbits(AXP305_OUTPUT_CTRL1,
AXP305_OUTPUT_CTRL1_DCDCD_EN);
#endif
return 0;
}
# 添加 DCDC3 的电压设置
#define AXP305_DCDC3_1200MV_OFFSET 71
int axp_set_dcdc3(unsigned int mvolt)
{
int ret;
u8 cfg;
if (mvolt >= 1220)
{
cfg = AXP305_DCDC3_1200MV_OFFSET +
axp305_mvolt_to_cfg(mvolt, 1220, 1840, 20);
}
else
cfg = axp305_mvolt_to_cfg(mvolt, 500, 1200, 10);
if (mvolt == 0)
return pmic_bus_clrbits(AXP305_OUTPUT_CTRL1,
AXP305_OUTPUT_CTRL1_DCDCD_EN);
ret = pmic_bus_write(AXP305_DCDCD_VOLTAGE, cfg);
if (ret)
return ret;
return pmic_bus_setbits(AXP305_OUTPUT_CTRL1,
0x1f);
}
# 修改芯片版本的检测 以及 设置 DCDC3 的电压为1.5v
int axp_init(void)
{
u8 axp_chip_id;
int ret;
ret = pmic_bus_init();
if (ret)
return ret;
ret = pmic_bus_read(AXP305_CHIP_VERSION, &axp_chip_id);
if (ret)
return ret;
if ((axp_chip_id & AXP305_CHIP_VERSION_MASK) != 0x4b)
return -ENODEV;
printf("pmic id is 0x%x\n",axp_chip_id);
axp_set_dcdc3(1500);
return ret;
}
编译 u-boot
make CROSS_COMPILE=aarch64-linux-gnu- BL31=../arm-trusted-firmware/build/sun50i_h616/debug/bl31.bin orangepi_zero2_defconfig
make CROSS_COMPILE=aarch64-linux-gnu- BL31=../arm-trusted-firmware/build/sun50i_h616/debug/bl31.bin
测试 u-boot
../sunxi-tools/sunxi-fel uboot u-boot-sunxi-with-spl.bin
UART0 中输出 LOG
U-Boot SPL 2022.10-rc3-00069-g67fe8cc001-dirty (Sep 03 2022 - 18:10:41 +0800)
pmic id is 0x4b
DRAM: 1024 MiB
Trying to boot from FEL
NOTICE: BL31: v2.7(debug):v2.7.0-312-g9a5dec669
NOTICE: BL31: Built : 17:14:37, Sep 3 2022
NOTICE: BL31: Detected Allwinner H616 SoC (1823)
NOTICE: BL31: Found U-Boot DTB at 0x4a081ff0, model: OrangePi Zero2
INFO: ARM GICv2 driver initialized
INFO: Configuring SPC Controller
INFO: PMIC: Probing AXP305 on RSB
ERROR: RSB: set run-time address: 0x10003
INFO: Could not init RSB: -65539
INFO: BL31: Platform setup done
INFO: BL31: Initializing runtime services
INFO: BL31: cortex_a53: CPU workaround for 855873 was applied
INFO: BL31: cortex_a53: CPU workaround for 1530924 was applied
INFO: PSCI: Suspend is unavailable
INFO: BL31: Preparing for EL3 exit to normal world
INFO: Entry point address = 0x4a000000
INFO: SPSR = 0x3c9
INFO: Changed devicetree.
U-Boot 2022.10-rc3-00069-g67fe8cc001-dirty (Sep 03 2022 - 18:10:41 +0800) Allwinner Technology
CPU: Allwinner H616 (SUN50I)
Model: OrangePi Zero2
DRAM: 1 GiB
Core: 49 devices, 17 uclasses, devicetree: separate
WDT: Not starting watchdog@30090a0
MMC: mmc@4020000: 0
Loading Environment from FAT... MMC: no card present
** Bad device specification mmc 0 **
In: serial@5000000
Out: serial@5000000
Err: serial@5000000
Hit any key to stop autoboot: 0
MMC: no card present
=>
主线 Kernel 编译
拉取/下载压缩 主线内核
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
tar -xvzf linux-6.0-rc3.tar.gz
修改设备树
/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
reg_vcc3v3: vcc3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
&pio {
vcc-pc-supply = <®_vcc3v3>;
vcc-pf-supply = <®_vcc3v3>;
vcc-pg-supply = <®_vcc3v3>;
vcc-ph-supply = <®_vcc3v3>;
vcc-pi-supply = <®_vcc3v3>;
};
&mmc0 {
vmmc-supply = <®_vcc3v3>;
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
bus-width = <4>;
status = "okay";
};
配置编译
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8 Image
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8 dtbs
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8 modules
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=<any-path-you-like> modules modules_install
构建成功后,可以在提供的 INSTALL_MOD_PATH 目录中找到模块
make ARCH=arm64 INSTALL_HDR_PATH=<any-path-you-like> headers_install
将 INSTALL_HDR_PATH 更改为希望安装到的路径,例如/usr或<some_prefix>/usr 方便后期交叉编译
制作引导脚本(当然也可以在uboot中设置变量并执行booti)
- 制作 boot.cmd 文件, USB 写入内核直接使用固定地址启动
vi boot.cmd
setenv bootargs console=ttyS0,115200
booti 0x40200000 - 0x4fa00000
- 转换打包boot.scr文件:
mkimage -C none -A arm64 -T script -d boot.cmd boot.scr
- booti 讲解:
在u-boot中,bootm是一个可以执行位于memory中的应用程序的命令
booti是bootm命令的一个子集,可用于执行位于memory中的ARM64 kernel Image,其格式如下:
booti addr [initrd[:size]] [fdt]
其中:addr是kernel Image文件所在的memory地址;[initrd[:size]]是initrd在memory中的位置和size,可以不指定,使用“-”代替即可;fdt是flat device tree(就是传说中的dtb文件)在memory中的地址,在ARM64中,它是必选的
测试 USB 启动内核
sunxi-fel -v uboot u-boot-sunxi-with-spl.bin \
write 0x40200000 Image \
write 0x4fa00000 sun50i-a64-pine64-lts.dtb \
write 0x4fc00000 boot.scr \
write 0x4ff00000 rootfs.cpio.lzma.uboot
# 例如:
./sunxi-tools/sunxi-fel -v uboot u-boot/u-boot-sunxi-with-spl.bin \
write 0x40200000 linux-6.0-rc3/arch/arm64/boot/Image \
write 0x4fa00000 linux-6.0-rc3/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dtb \
write 0x4fc00000 boot.scr
从 TF 卡启动 SPL、U-Boot、Kernel
制作启动盘
# 进入磁盘管理
fdisk /dev/sdd
# 多执行几次删除所有分区
d
# 新建分区 (扇区为单位,前面空开20MB用于存放uboot,制作128MB的分区)
n
p
40960
303104
w
# 进行 FAT 格式化
sudo mkfs.fat /dev/sdd1
# 写入 uboot 到 8KB 的位置
sudo dd if=./u-boot/u-boot-sunxi-with-spl.bin of=/dev/sdd bs=8K seek=1
# 挂载 FAT 文件系统
sudo mount /dev/sdd1 /mnt/boot/
# 复制内核以及设备树到FAT分区
sudo cp linux-6.0-rc3/arch/arm64/boot/Image /mnt/boot/
sudo cp linux-6.0-rc3/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dtb /mnt/boot/
# 卸载 FAT 文件系统
sudo umount /mnt/boot
测试 TF 卡启动内核
fatload mmc 0:1 0x40200000 Image
fatload mmc 0:1 0x4fa00000 sun50i-h616-orangepi-zero2.dtb
setenv bootargs 'console=ttyS0,115200 earlycon'
booti 0x40200000 - 0x4fa00000
setenv bootargs 'console=ttyS0,115200'
setenv bootcmd 'fatload mmc 0:1 0x40200000 Image;fatload mmc 0:1 0x4fa00000 sun50i-h616-orangepi-zero2.dtb;booti 0x40200000 - 0x4fa00000'
saveenv
boot
Buildroot 构建
buildroot-2022.02.5
配置编译
make menuconfig
# 配置 Target options
> Target options
Target Architecture (AArch64 (little endian))
Target Binary Format (ELF)
Target Architecture Variant (cortex-A53)
Floating point strategy (VFPv4)
# 配置 Toolchain
> Toolchain
Toolchain type (External toolchain)
Toolchain (Custom toolchain)
Toolchain origin (Pre-installed toolchain)
(/usr/local/arm64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu$ /usr/local/arm64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu) Toolchain path
(aarch64-linux-gnu-) Toolchain prefix //需要按住shift才能删减
External toolchain gcc version (7.x)
External toolchain kernel headers series (4.10.x)
[*] Toolchain has SSP support? (NEW)
[*] Toolchain has RPC support? (NEW)
[*] Toolchain has C++ support?
[*] Enable MMU support (NEW)
# 配置 Filesystem images
-> Filesystem images
-> [*] ext2/3/4 root filesystem //如果是 EMMC 或 SD 卡的话就用 ext3/ext4
-> ext2/3/4 variant = ext4 //选择 ext4 格式
-> exact size =128M //ext4 格式根文件系统 1GB(根据实际情况修改)
-> [*] ubi image containing an ubifs root filesystem //如果使用 NAND 的话就用 ubifs
# 编译
make -j8
补充
- External toolchain kernel headers series 的设置:
cat /usr/aarch64-linux-gnu/include/linux/version.h
制作根文件系统到 TF 卡
# 新建第二分区 128MB 从 303106 扇区开始
sudo fdisk /dev/sdc
n
p
2
303106
+262144
w
# 格式化文件系统为 ext4
sudo mkfs.ext4 /dev/sdc2
# 装载并复制文件系统
sudo mount /dev/sdc2 /mnt/rootfs/
sudo cp ./output/images/rootfs.tar /mnt/rootfs/
sudo tar -vxf /mnt/rootfs/rootfs.tar -C /mnt/rootfs
sudo rm /mnt/rootfs/rootfs.tar
sudo umount /mnt/rootfs
测试文件系统
ext4ls mmc 0:2
setenv bootcmd 'fatload mmc 0:1 0x40200000 Image;fatload mmc 0:1 0x4fa00000 sun50i-h616-orangepi-zero2.dtb;booti 0x40200000 - 0x4fa00000'
setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rw init=/sbin/init debug panic=30'
boot
添加网络支持
因为6.0的内核太新了,很多驱动没支持,所以使用稳定版内核进行驱动的移植
下拉内核
- H616主线内核维护者的内核:git clone -b h616-v13 https://github.com/apritzel/linux
- 使用主线需修改设备树,按照主线内核的修改配置方法
移植 RTL8723DS WiFi 驱动
- git clone https://github.com/lwfinger/rtl8723ds 到 /drivers/net/wireless/realtek/rtl8723ds 目录中
- 修改 rtl8723ds 的 Kconfig 中 ---help--- 为 help
config RTL8723DS
tristate "Realtek 8723D SDIO or SPI WiFi"
help
Help message of RTL8723DS
- 修改 /drivers/net/wireless/realtek/ 目录中的Kconfig、Makefile:
source "drivers/net/wireless/realtek/rtl8723ds/Kconfig"
obj-$(CONFIG_RTL8723DS) += rtl8723ds/
打开 WiFi(RTL8723DS) 支持
# make menuconfig
> Device Drivers
> > Network device support
> > Wireless LAN
> [*] Realtek devices
> <M> Realtek 8723D SDIO or SPI WiFi
# 编译内核模块(在此我已经将 ARCH 以及 CROSS_COMPILE 固定到Makefile中,所以不需要带参)
make modules -j8
Kernel 设备树配置
# 在 reg_vcc3v3 后面添加 WiFi 的电源配置
reg_vcc33_wifi: vcc33-wifi {
compatible = "regulator-fixed";
regulator-name = "vcc33-wifi";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
vin-supply = <®_vcc5v>;
};
reg_vcc_wifi_io: vcc-wifi-io {
compatible = "regulator-fixed";
regulator-name = "vcc-wifi-io";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
vin-supply = <®_vcc33_wifi>;
};
wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
clocks = <&rtc 1>;
clock-names = "osc32k-out";
reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>;
post-power-on-delay-ms = <200>;
};
# 添加 WiFi 的 mmc1 配置
&mmc1 {
vmmc-supply = <®_vcc33_wifi>;
vqmmc-supply = <®_vcc_wifi_io>;
mmc-pwrseq = <&wifi_pwrseq>;
bus-width = <4>;
non-removable;
mmc-ddr-1_8v;
status = "okay";
};
# 编译设备树
make dtbs
Buildrootfs 配置
make menuconfig
# 使用 mdev 动态加载模块
> System configuration
Init system (BusyBox) --->
/dev management (Dynamic using devtmpfs + mdev) --->
# 打开网络支持
> Target packages
> Networking applications
[*] iperf3 // 用于网速测试
[*] lftp // 用于网络文件传输
[*] SFTP protocol // 使能 SFTP 协议
[*] openssh // 使能远程 ssh
[*] wpa_supplicant ---> // 使能 wpa 用于WiFi控制
[*] Install wpa_cli binary
> System tools
[*] htop
make -j8
复制新的文件系统并安装模块
sudo mount /dev/sdd2 /mnt/rootfs
sudo rm -rf /mnt/rootfs/*
sudo cp output/images/rootfs.tar /mnt/rootfs/
sudo tar -xvf /mnt/rootfs/rootfs.tar -C /mnt/rootfs/
make INSTALL_MOD_PATH=/mnt/rootfs/ modules modules_install
sync
sudo umount /mnt/rootfs/
测试网络
# 检查WiFi是否自动挂载
# lsmod
Module Size Used by
ipv6 462848 18
8723ds 1466368 0
cfg80211 380928 1 8723ds
rfkill 36864 2 cfg80211
sunxi_wdt 20480 0
dwmac_sun8i 28672 0
stmmac_platform 20480 1 dwmac_sun8i
stmmac 221184 2 dwmac_sun8i,stmmac_platform
pcs_xpcs 24576 1 stmmac
crct10dif_ce 20480 1
# 配置 WiFi
# vi /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
ssid="you wifi ssid"
psk="you wifi password"
}
# 连接WiFi
# ifconfig wlan0 up
# wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf -B
# udhcpc -i wlan0
# 配置开机自动连接 WiFi
# vi /etc/init.d/S45wifi
#!/bin/sh
#
#
start() {
printf "Starting WiFi: "
ifconfig wlan0 up
wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf -B
udhcpc -i wlan0
echo "OK"
}
stop() {
printf "Stopping WiFi: "
killall udhcpc
killall wpa_supplicant
echo "OK"
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
# chmod +x /etc/init.d/S45wifi
# 网络测速
# iperf3 -c 192.168.10.164
Connecting to host 192.168.10.164, port 5201
[ 5] local 192.168.10.196 port 43126 connected to 192.168.10.164 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 1.75 MBytes 14.7 Mbits/sec 0 93.3 KBytes
[ 5] 1.00-2.00 sec 2.17 MBytes 18.2 Mbits/sec 0 123 KBytes
[ 5] 2.00-3.00 sec 2.42 MBytes 20.3 Mbits/sec 0 151 KBytes
[ 5] 3.00-4.00 sec 2.92 MBytes 24.5 Mbits/sec 0 158 KBytes
[ 5] 4.00-5.00 sec 2.61 MBytes 21.9 Mbits/sec 0 167 KBytes
[ 5] 5.00-6.00 sec 2.61 MBytes 21.9 Mbits/sec 0 167 KBytes
[ 5] 6.00-7.00 sec 2.61 MBytes 21.9 Mbits/sec 0 167 KBytes
[ 5] 7.00-8.00 sec 2.61 MBytes 21.9 Mbits/sec 0 167 KBytes
[ 5] 8.00-9.00 sec 2.61 MBytes 21.9 Mbits/sec 0 167 KBytes
[ 5] 9.00-10.00 sec 2.61 MBytes 21.9 Mbits/sec 0 167 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 24.9 MBytes 20.9 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 24.2 MBytes 20.3 Mbits/sec receiver
iperf Done.
# 远程连接 ssh 配置 sshd_config 文件
# vi /etc/ssh/sshd_config
PermitRootLogin yes //修改
AllowUsers root //添加
# 重启 sshd 服务
# /etc/init.d/S50sshd restart
# 设置 root 密码
# passwd root
# 配置终端
# vi /etc/profile.d/myprofile.sh
#!/bin/sh
PS1='[\u@\h]:\w$ '
export PS1
# chmod +x /etc/profile.d/myprofile.sh
# source /etc/profile.d/myprofile.sh
启动日志
U-Boot SPL 2022.10-rc3-00069-g67fe8cc001-dirty (Sep 03 2022 - 18:10:41 +0800)
pmic id is 0x4b
DRAM: 1024 MiB
Trying to boot from MMC1
NOTICE: BL31: v2.7(debug):v2.7.0-312-g9a5dec669
NOTICE: BL31: Built : 17:14:37, Sep 3 2022
NOTICE: BL31: Detected Allwinner H616 SoC (1823)
NOTICE: BL31: Found U-Boot DTB at 0x4a081ff0, model: OrangePi Zero2
INFO: ARM GICv2 driver initialized
INFO: Configuring SPC Controller
INFO: PMIC: Probing AXP305 on RSB
ERROR: RSB: set run-time address: 0x10003
INFO: Could not init RSB: -65539
INFO: BL31: Platform setup done
INFO: BL31: Initializing runtime services
INFO: BL31: cortex_a53: CPU workaround for 855873 was applied
INFO: BL31: cortex_a53: CPU workaround for 1530924 was applied
INFO: PSCI: Suspend is unavailable
INFO: BL31: Preparing for EL3 exit to normal world
INFO: Entry point address = 0x4a000000
INFO: SPSR = 0x3c9
INFO: Changed devicetree.
U-Boot 2022.10-rc3-00069-g67fe8cc001-dirty (Sep 03 2022 - 18:10:41 +0800) Allwinner Technology
CPU: Allwinner H616 (SUN50I)
Model: OrangePi Zero2
DRAM: 1 GiB
Core: 49 devices, 17 uclasses, devicetree: separate
WDT: Not starting watchdog@30090a0
MMC: mmc@4020000: 0
Loading Environment from FAT... OK
In: serial@5000000
Out: serial@5000000
Err: serial@5000000
Hit any key to stop autoboot: 0
35908096 bytes read in 1489 ms (23 MiB/s)
13222 bytes read in 2 ms (6.3 MiB/s)
Booting using the fdt blob at 0x4fa00000
Loading Device Tree to 0000000049ff9000, end 0000000049fff3a5 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 5.19.0-rc1-609706-gc465e81f8859-dirty (evler@evler-Standard-PC-i440FX-PIIX-1996) (aarch64-linux-gnu-g2
[ 0.000000] Machine model: MQ-Quad_H616
[ 0.000000] efi: UEFI not found.
[]t[ 0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000007fffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x7fdebb40-0x7fdedfff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000040000000-0x000000007fffffff]
[ 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 0x0000000040000000-0x000000004003ffff]
[ 0.000000] node 0: [mem 0x0000000040040000-0x000000007fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000007fffffff]
[ 0.000000] cma: Reserved 32 MiB at 0x000000007cc00000
[ 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 19 pages/cpu s40808 r8192 d28824 u77824
[ 0.000000] pcpu-alloc: s40808 r8192 d28824 u77824 alloc=19*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: ARM erratum 845719
[ 0.000000] Fallback order for Node 0: 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 258048
[ 0.000000] Policy zone: DMA
[ 0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rw init=/sbin/init debug pa0
[ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 959476K/1048576K available (15680K kernel code, 3386K rwdata, 8928K rodata, 6912K init, 577K bss, 56332K re)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, 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=4.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] Tracing 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=4
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] Root IRQ handler: gic_handle_irq
[ 0.000000] GIC: Using split EOI/Deactivate mode
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 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.000000] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000676] Console: colour dummy device 80x25
[ 0.000771] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[ 0.000786] pid_max: default: 32768 minimum: 301
[ 0.000858] LSM: Security Framework initializing
[ 0.000989] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.001005] Mountpoint-cache hash table entries: 2048
Welcome to Buildroot
buildroot login: root
Password:
[root@buildroot]:~$ lsmod
Module Size Used by
ipv6 462848 18
8723ds 1466368 0
cfg80211 380928 1 8723ds
rfkill 36864 2 cfg80211
sunxi_wdt 20480 0
dwmac_sun8i 28672 0
stmmac_platform 20480 1 dwmac_sun8i
stmmac 221184 2 dwmac_sun8i,stmmac_platform
pcs_xpcs 24576 1 stmmac
crct10dif_ce 20480 1
[root@buildroot]:~$ ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr 94:A4:08:D8:1C:EC
inet addr:192.168.10.196 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::96a4:8ff:fed8:1cec/64 Scope:Link
inet6 addr: fd15:3be5:c6ac:0:96a4:8ff:fed8:1cec/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:26 errors:0 dropped:9 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3949 (3.8 KiB) TX bytes:2116 (2.0 KiB)
[root@buildroot]:~$ uname -a
Linux buildroot 5.19.0-rc1-609706-gc465e81f8859-dirty
[root@buildroot]:~$ df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 28.0G 93.7M 26.5G 0% /
devtmpfs 468.5M 0 468.5M 0% /dev
tmpfs 487.9M 0 487.9M 0% /dev/shm
tmpfs 487.9M 36.0K 487.8M 0% /tmp
tmpfs 487.9M 28.0K 487.8M 0% /run
[root@buildroot]:~$ free
total used free shared buff/cache available
Mem: 999156 30656 936852 64 31648 918856
Swap: 0 0 0
[root@buildroot]:~$