您尚未登录。

楼主 #1 2021-01-28 15:07:33

zhang235hai
会员
注册时间: 2020-04-06
已发帖子: 212
积分: 165

记录使用最新Buildroot一键编译V3s可用镜像

环境:WIN10 虚拟机Ubuntu 18.04
安装过程百度搜索即可

sudo apt-get update
sudo apt-get upgrade
经过漫长的等待之后更新完成

之后准备编译环境
sudo apt install gcc build-essential bison flex gettext tcl sharutils libncurses-dev zlib1g-dev exuberant-ctags g++ texinfo patch vim libtool bc git python3 unzip python3-distutils swig python-dev
sudo apt install gcc-arm-linux-gnueabihf

从官网下载Buildroot包
我使用的是
buildroot-2020.02.8.tar.gz
解压缩后开始编译

进入目录
cd buildroot-2020.02.8
生成配置文件
make licheepi_zero_defconfig
进行编译
make

编译完成后在/buildroot-2020.02.8/output/images/目录下顺利得到sdcard.img
使用Win32 Disk Imager将sdcard.img烧写进SD卡
启动后
串口0打印输出如下

U-Boot SPL 2019.10 (Jan 06 2021 - 12:31:54 +0800)
DRAM: 64 MiB
Trying to boot from MMC1


U-Boot 2019.10 (Jan 06 2021 - 12:31:54 +0800) Allwinner Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM:  64 MiB
MMC:   mmc@01c0f000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial@01c28000
Out:   serial@01c28000
Err:   serial@01c28000
Net:   No ethernet found.
starting USB...
No working controllers found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
292 bytes read in 3 ms (94.7 KiB/s)
## Executing script at 41900000
4174456 bytes read in 424 ms (9.4 MiB/s)
9041 bytes read in 5 ms (1.7 MiB/s)
## Flattened Device Tree blob at 41800000
   Booting using the fdt blob at 0x41800000
   Loading Device Tree to 42dfa000, end 42dff350 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.3.5 (zhang@ubuntu) (gcc version 8.4.0 (Buildroot 2020.02.8)) #1 SMP Wed Jan 6 12:33:08 CST 2021
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Lichee Pi Zero with Dock
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 16 MiB at 0x41c00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: Using PSCI v0.1 Function IDs from DT
[    0.000000] percpu: Embedded 15 pages/cpu s30412 r8192 d22836 u61440
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line: console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 38516K/65536K available (6144K kernel code, 431K rwdata, 1648K rodata, 1024K init, 242K bss, 10636K reserved, 16384K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: GICv2 detected, but range too small and irqchip.gicv2_force_probe not set
[    0.000000] random: get_random_bytes called from start_kernel+0x2fc/0x48c 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.000019] Switching to timer-based delay loop, resolution 41ns
[    0.000211] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000443] Console: colour dummy device 80x30
[    0.000763] printk: console [tty0] enabled
[    0.000821] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.000851] pid_max: default: 32768 minimum: 301
[    0.001022] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.001054] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.001927] CPU: Testing write buffer coherency: ok
[    0.002487] /cpus/cpu@0 missing clock-frequency property
[    0.002534] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.003343] Setting up static identity map for 0x40100000 - 0x40100060
[    0.003589] rcu: Hierarchical SRCU implementation.
[    0.004093] smp: Bringing up secondary CPUs ...
[    0.004134] smp: Brought up 1 node, 1 CPU
[    0.004150] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.004165] CPU: All CPU(s) started in HYP mode.
[    0.004176] CPU: Virtualization extensions available.
[    0.005034] devtmpfs: initialized
[    0.007961] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.008309] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.008368] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.009194] pinctrl core: initialized pinctrl subsystem
[    0.010607] NET: Registered protocol family 16
[    0.011797] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.013068] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.013116] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.028422] SCSI subsystem initialized
[    0.029160] usbcore: registered new interface driver usbfs
[    0.029249] usbcore: registered new interface driver hub
[    0.029354] usbcore: registered new device driver usb
[    0.029605] pps_core: LinuxPPS API ver. 1 registered
[    0.029629] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.029669] PTP clock support registered
[    0.029955] Advanced Linux Sound Architecture Driver Initialized.
[    0.031417] clocksource: Switched to clocksource arch_sys_counter
[    0.042293] thermal_sys: Registered thermal governor 'step_wise'
[    0.042642] NET: Registered protocol family 2
[    0.043337] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.043399] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.043438] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.043468] TCP: Hash tables configured (established 1024 bind 1024)
[    0.043625] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.043692] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.043956] NET: Registered protocol family 1
[    0.044942] RPC: Registered named UNIX socket transport module.
[    0.044989] RPC: Registered udp transport module.
[    0.045002] RPC: Registered tcp transport module.
[    0.045015] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.047092] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[    0.055069] NFS: Registering the id_resolver key type
[    0.055149] Key type id_resolver registered
[    0.055167] Key type id_legacy registered
[    0.055300] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.055328] io scheduler mq-deadline registered
[    0.055343] io scheduler kyber registered
[    0.056282] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[    0.060064] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.123816] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.126205] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pb not found, using dummy regulator
[    0.127367] printk: console [ttyS0] disabled
[    0.147695] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 32, base_baud = 1500000) is a U6_16550A
[    0.718210] printk: console [ttyS0] enabled
[    0.747537] libphy: Fixed MDIO Bus: probed
[    0.751752] CAN device driver interface
[    0.756084] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.762687] ehci-platform: EHCI generic platform driver
[    0.768048] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.774300] ohci-platform: OHCI generic platform driver
[    0.780609] input: 1c22800.lradc as /devices/platform/soc/1c22800.lradc/input/input0
[    0.789805] sun6i-rtc 1c20400.rtc: registered as rtc0
[    0.794986] sun6i-rtc 1c20400.rtc: RTC enabled
[    0.799700] i2c /dev entries driver
[    0.804485] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    0.813226] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pf not found, using dummy regulator
[    0.849911] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[    0.857242] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pg not found, using dummy regulator
[    0.892519] sunxi-mmc 1c10000.mmc: initialized, max. request size: 16384 KB
[    0.900562] usbcore: registered new interface driver usbhid
[    0.906248] usbhid: USB HID core driver
[    0.912262] NET: Registered protocol family 17
[    0.916767] can: controller area network core (rev 20170425 abi 9)
[    0.923142] NET: Registered protocol family 29
[    0.927600] can: raw protocol (rev 20170425)
[    0.931918] can: broadcast manager protocol (rev 20170425 t)
[    0.937590] can: netlink gateway (rev 20170425) max_hops=1
[    0.943417] Key type dns_resolver registered
[    0.947851] Registering SWP/SWPB emulation handler
[    0.961006] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    0.972597] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[    0.978386] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[    0.987991] hub 1-0:1.0: USB hub found
[    0.992140] hub 1-0:1.0: 1 port detected
[    0.997564] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01T00:00:04 UTC (4)
[    1.005929] ALSA device list:
[    1.008926]   No soundcards found.
[    1.012878] Waiting for root device /dev/mmcblk0p2...
[    1.018049] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.028467] mmc0: new high speed SD card at address b368
[    1.035794] mmcblk0: mmc0:b368 NCard 961 MiB 
[    1.042780]  mmcblk0: p1 p2
[    1.268435] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.276787] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.283920] devtmpfs: mounted
[    1.288154] Freeing unused kernel memory: 1024K
[    1.292926] Run /sbin/init as init process
[    1.438344] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    1.742277] random: dd: uninitialized urandom read (512 bytes read)

Welcome to Buildroot for the LicheePi Zero
licheepi-zero login:

帐号直接输入root
无密码
顺利进入终端

make menuconfig并不会出现如下的设备驱动选项
Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
想要使用以太网怎么配置呢?

参考https://www.kancloud.cn/lichee/lpi0/327886
执行make uboot-menuconfig
打开
Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
编辑
/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s-licheepi-zero.dts

diff --git a/arch/arm/dts/sun8i-v3s-licheepi-zero.dts b/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
index 3d9168c..b8b9fc3 100644
--- a/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
+++ b/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
@@ -49,6 +49,7 @@
        compatible = "licheepi,licheepi-zero", "allwinner,sun8i-v3s";
 
        aliases {
+               ethernet0 = &emac;
                serial0 = &uart0;
        };
 
@@ -81,3 +82,14 @@
        usb0_id_det-gpio = <&pio 5 6 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
+
+&emac {
+       phy = <&phy0>;
+       phy-mode = "mii";
+       allwinner,use-internal-phy;
+       allwinner,leds-active-low;
+       status = "okay";
+       phy0: ethernet-phy@0 {
+               reg = <1>;
+       };
+};

编辑
/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s.dtsi
/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s.dtsi

diff --git a/arch/arm/dts/sun8i-v3s.dtsi b/arch/arm/dts/sun8i-v3s.dtsi
index ebefc0f..cb81dd5 100644
--- a/arch/arm/dts/sun8i-v3s.dtsi
+++ b/arch/arm/dts/sun8i-v3s.dtsi
@@ -96,6 +96,11 @@
                #size-cells = <1>;
                ranges;
 
+               syscon: syscon@01c00000 {
+                       compatible = "allwinner,sun8i-h3-syscon","syscon";
+                       reg = <0x01c00000 0x34>;
+               };
+
                mmc0: mmc@01c0f000 {
                        compatible = "allwinner,sun7i-a20-mmc";
                        reg = <0x01c0f000 0x1000>;
@@ -208,6 +213,17 @@
                        interrupt-controller;
                        #interrupt-cells = <3>;
 
+                       emac_rgmii_pins: emac0@0 {
+                               allwinner,pins = "PD0", "PD1", "PD2", "PD3",
+                                               "PD4", "PD5", "PD7",
+                                               "PD8", "PD9", "PD10",
+                                               "PD12", "PD13", "PD15",
+                                               "PD16", "PD17";
+                               allwinner,function = "emac";
+                               allwinner,drive = <SUN4I_PINCTRL_40_MA>;
+                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+                       };
+
                        uart0_pins_a: uart0@0 {
                                pins = "PB8", "PB9";
                                function = "uart0";
@@ -270,6 +286,20 @@
                        status = "disabled";
                };
 
+               emac: ethernet@1c30000 {
+                       compatible = "allwinner,sun8i-h3-emac";
+                       reg = <0x01c30000 0x104>, <0x01c00030 0x4>;
+                       reg-names = "emac", "syscon";
+                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                       resets = <&ccu RST_BUS_EMAC>, <&ccu RST_BUS_EPHY>;
+                       reset-names = "ahb", "ephy";
+                       clocks = <&ccu CLK_BUS_EMAC>, <&ccu CLK_BUS_EPHY>;
+                       clock-names = "ahb", "ephy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                gic: interrupt-controller@01c81000 {
                        compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
                        reg = <0x01c81000 0x1000>,

重新编译报错,明天继续

arch/arm/dts/sun8i-v3s-licheepi-zero.dtb: ERROR (phandle_references): /soc/spi@1c68000: Reference to non-existent node or label "spi0_pins"

ERROR: Input tree has errors, aborting (use -f to force output)
scripts/Makefile.lib:308: recipe for target 'arch/arm/dts/sun8i-v3s-licheepi-zero.dtb' failed
make[3]: *** [arch/arm/dts/sun8i-v3s-licheepi-zero.dtb] Error 2
dts/Makefile:38: recipe for target 'arch-dtbs' failed
make[2]: *** [arch-dtbs] Error 2
Makefile:1061: recipe for target 'dts/dt.dtb' failed
make[1]: *** [dts/dt.dtb] Error 2
make[1]: Leaving directory '/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10'
package/pkg-generic.mk:266: recipe for target '/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/.stamp_built' failed
make: *** [/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/.stamp_built] Error 2

最近编辑记录 zhang235hai (2021-01-28 16:54:20)

离线

楼主 #3 2021-01-28 16:09:50

zhang235hai
会员
注册时间: 2020-04-06
已发帖子: 212
积分: 165

Re: 记录使用最新Buildroot一键编译V3s可用镜像

raspberryman 说:

我也看到有荔枝派zero的配置文件,但是从来都没用过,没想到真可以编译出能跑的固件,赞!

make menuconfig并不会出现如下的设备驱动选项
Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
想要使用以太网怎么配置呢?

离线

楼主 #6 2021-01-30 10:19:26

zhang235hai
会员
注册时间: 2020-04-06
已发帖子: 212
积分: 165

Re: 记录使用最新Buildroot一键编译V3s可用镜像

不知道为什么我不能继续编辑1楼的内容
接着添加以太网
执行make clean重新编译一遍
接着修改sun8i-v3s-licheepi-zero.dts和sun8i-v3s.dtsi
修改后的内容如下

/*
 * Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole.
 *
 *  a) This file is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License as
 *     published by the Free Software Foundation; either version 2 of the
 *     License, or (at your option) any later version.
 *
 *     This file is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 */

#include <dt-bindings/clock/sun8i-v3s-ccu.h>
#include <dt-bindings/reset/sun8i-v3s-ccu.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/pinctrl/sun4i-a10.h>

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	interrupt-parent = <&gic>;

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			reg = <0>;
			clocks = <&ccu CLK_CPU>;
		};
	};

	timer {
		compatible = "arm,armv7-timer";
		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
	};

	clocks {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		osc24M: osc24M_clk {
			#clock-cells = <0>;
			compatible = "fixed-clock";
			clock-frequency = <24000000>;
			clock-output-names = "osc24M";
		};

		osc32k: osc32k_clk {
			#clock-cells = <0>;
			compatible = "fixed-clock";
			clock-frequency = <32768>;
			clock-output-names = "osc32k";
		};
	};

	soc {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

               syscon: syscon@01c00000 {
                       compatible = "allwinner,sun8i-h3-syscon","syscon";
                       reg = <0x01c00000 0x34>;
               };

		mmc0: mmc@01c0f000 {
			compatible = "allwinner,sun7i-a20-mmc";
			reg = <0x01c0f000 0x1000>;
			clocks = <&ccu CLK_BUS_MMC0>,
				 <&ccu CLK_MMC0>,
				 <&ccu CLK_MMC0_OUTPUT>,
				 <&ccu CLK_MMC0_SAMPLE>;
			clock-names = "ahb",
				      "mmc",
				      "output",
				      "sample";
			resets = <&ccu RST_BUS_MMC0>;
			reset-names = "ahb";
			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		mmc1: mmc@01c10000 {
			compatible = "allwinner,sun7i-a20-mmc";
			reg = <0x01c10000 0x1000>;
			clocks = <&ccu CLK_BUS_MMC1>,
				 <&ccu CLK_MMC1>,
				 <&ccu CLK_MMC1_OUTPUT>,
				 <&ccu CLK_MMC1_SAMPLE>;
			clock-names = "ahb",
				      "mmc",
				      "output",
				      "sample";
			resets = <&ccu RST_BUS_MMC1>;
			reset-names = "ahb";
			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		mmc2: mmc@01c11000 {
			compatible = "allwinner,sun7i-a20-mmc";
			reg = <0x01c11000 0x1000>;
			clocks = <&ccu CLK_BUS_MMC2>,
				 <&ccu CLK_MMC2>,
				 <&ccu CLK_MMC2_OUTPUT>,
				 <&ccu CLK_MMC2_SAMPLE>;
			clock-names = "ahb",
				      "mmc",
				      "output",
				      "sample";
			resets = <&ccu RST_BUS_MMC2>;
			reset-names = "ahb";
			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		usb_otg: usb@01c19000 {
			compatible = "allwinner,sun8i-h3-musb";
			reg = <0x01c19000 0x0400>;
			clocks = <&ccu CLK_BUS_OTG>;
			resets = <&ccu RST_BUS_OTG>;
			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "mc";
			phys = <&usbphy 0>;
			phy-names = "usb";
			extcon = <&usbphy 0>;
			status = "disabled";
		};

		usbphy: phy@01c19400 {
			compatible = "allwinner,sun8i-v3s-usb-phy";
			reg = <0x01c19400 0x2c>,
			      <0x01c1a800 0x4>;
			reg-names = "phy_ctrl",
				    "pmu0";
			clocks = <&ccu CLK_USB_PHY0>;
			clock-names = "usb0_phy";
			resets = <&ccu RST_USB_PHY0>;
			reset-names = "usb0_reset";
			status = "disabled";
			#phy-cells = <1>;
		};

		ccu: clock@01c20000 {
			compatible = "allwinner,sun8i-v3s-ccu";
			reg = <0x01c20000 0x400>;
			clocks = <&osc24M>, <&osc32k>;
			clock-names = "hosc", "losc";
			#clock-cells = <1>;
			#reset-cells = <1>;
		};

		rtc: rtc@01c20400 {
			compatible = "allwinner,sun6i-a31-rtc";
			reg = <0x01c20400 0x54>;
			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
		};

		pio: pinctrl@01c20800 {
			compatible = "allwinner,sun8i-v3s-pinctrl";
			reg = <0x01c20800 0x400>;
			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
			clock-names = "apb", "hosc", "losc";
			gpio-controller;
			#gpio-cells = <3>;
			interrupt-controller;
			#interrupt-cells = <3>;

                       emac_rgmii_pins: emac0@0 {
                               allwinner,pins = "PD0", "PD1", "PD2", "PD3",
                                               "PD4", "PD5", "PD7",
                                               "PD8", "PD9", "PD10",
                                               "PD12", "PD13", "PD15",
                                               "PD16", "PD17";
                               allwinner,function = "emac";
                               allwinner,drive = <SUN4I_PINCTRL_40_MA>;
                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
                       };

			uart0_pins_a: uart0@0 {
				pins = "PB8", "PB9";
				function = "uart0";
				bias-pull-up;
			};

			mmc0_pins_a: mmc0@0 {
				pins = "PF0", "PF1", "PF2", "PF3",
				       "PF4", "PF5";
				function = "mmc0";
				drive-strength = <30>;
				bias-pull-up;
			};
		};

		timer@01c20c00 {
			compatible = "allwinner,sun4i-a10-timer";
			reg = <0x01c20c00 0xa0>;
			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&osc24M>;
		};

		wdt0: watchdog@01c20ca0 {
			compatible = "allwinner,sun6i-a31-wdt";
			reg = <0x01c20ca0 0x20>;
			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
		};

		uart0: serial@01c28000 {
			compatible = "snps,dw-apb-uart";
			reg = <0x01c28000 0x400>;
			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
			reg-shift = <2>;
			reg-io-width = <4>;
			clocks = <&ccu CLK_BUS_UART0>;
			resets = <&ccu RST_BUS_UART0>;
			status = "disabled";
		};

		uart1: serial@01c28400 {
			compatible = "snps,dw-apb-uart";
			reg = <0x01c28400 0x400>;
			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
			reg-shift = <2>;
			reg-io-width = <4>;
			clocks = <&ccu CLK_BUS_UART1>;
			resets = <&ccu RST_BUS_UART1>;
			status = "disabled";
		};

		uart2: serial@01c28800 {
			compatible = "snps,dw-apb-uart";
			reg = <0x01c28800 0x400>;
			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
			reg-shift = <2>;
			reg-io-width = <4>;
			clocks = <&ccu CLK_BUS_UART2>;
			resets = <&ccu RST_BUS_UART2>;
			status = "disabled";
		};

               emac: ethernet@1c30000 {
                       compatible = "allwinner,sun8i-h3-emac";
                       reg = <0x01c30000 0x104>, <0x01c00030 0x4>;
                       reg-names = "emac", "syscon";
                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
                       resets = <&ccu RST_BUS_EMAC>, <&ccu RST_BUS_EPHY>;
                       reset-names = "ahb", "ephy";
                       clocks = <&ccu CLK_BUS_EMAC>, <&ccu CLK_BUS_EPHY>;
                       clock-names = "ahb", "ephy";
                       #address-cells = <1>;
                       #size-cells = <0>;
                       status = "disabled";
               };

		gic: interrupt-controller@01c81000 {
			compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
			reg = <0x01c81000 0x1000>,
			      <0x01c82000 0x1000>,
			      <0x01c84000 0x2000>,
			      <0x01c86000 0x2000>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
		};
	};
};
/*
 * Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole.
 *
 *  a) This file is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License as
 *     published by the Free Software Foundation; either version 2 of the
 *     License, or (at your option) any later version.
 *
 *     This file is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 */

/dts-v1/;
#include "sun8i-v3s.dtsi"
#include "sunxi-common-regulators.dtsi"

/ {
	model = "Lichee Pi Zero";
	compatible = "licheepi,licheepi-zero", "allwinner,sun8i-v3s";

	aliases {
		serial0 = &uart0;
               ethernet0 = &emac;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};
};

&mmc0 {
	pinctrl-0 = <&mmc0_pins_a>;
	pinctrl-names = "default";
	broken-cd;
	bus-width = <4>;
	vmmc-supply = <&reg_vcc3v3>;
	status = "okay";
};

&uart0 {
	pinctrl-0 = <&uart0_pins_a>;
	pinctrl-names = "default";
	status = "okay";
};

&usb_otg {
	dr_mode = "otg";
	status = "okay";
};

&usbphy {
	usb0_id_det-gpio = <&pio 5 6 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&emac {
       phy = <&phy0>;
       phy-mode = "mii";
       allwinner,use-internal-phy;
       allwinner,leds-active-low;
       status = "okay";
       phy0: ethernet-phy@0 {
               reg = <1>;
       };
};

执行make uboot-menuconfig
打开打开Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
保存后make成功
得到烧录文件
识别以太网还是失败了
大家帮找找原因
输出如下

U-Boot SPL 2019.10 (Jan 30 2021 - 10:07:59 +0800)
DRAM: 64 MiB
Trying to boot from FEL


U-Boot 2019.10 (Jan 30 2021 - 10:07:59 +0800) Allwinner Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM:  64 MiB
MMC:   mmc@01c0f000: 0
Loading Environment from FAT... Card did not respond to voltage select!
In:    serial@01c28000
Out:   serial@01c28000
Err:   serial@01c28000
Net:   No ethernet found.
starting USB...
No working controllers found
Hit any key to stop autoboot:  0

为了调试方便,我用了晕哥的在线烧录进内存来运行的模式

最近编辑记录 zhang235hai (2021-01-30 10:23:29)

离线

楼主 #8 2021-01-30 10:26:25

zhang235hai
会员
注册时间: 2020-04-06
已发帖子: 212
积分: 165

Re: 记录使用最新Buildroot一键编译V3s可用镜像

raspberryman 说:

uboot驱动以太网是要烧录吗?

首页» 全志 V3S/F1C100s/X3» V3s/S3/f1c100s通过USB启动Linux,并把SD NAND/TF卡挂载为U盘, 可以dd或Win32DiskImager任烧写
我把我编译得到的u-boot-sunxi-with-spl.bin替换晕哥的文件在线就能运行,但是还是不能识别以太网

离线

楼主 #10 2021-01-30 11:02:37

zhang235hai
会员
注册时间: 2020-04-06
已发帖子: 212
积分: 165

Re: 记录使用最新Buildroot一键编译V3s可用镜像

uboot已经能识别以太网

U-Boot SPL 2019.10 (Jan 30 2021 - 10:31:43 +0800)
DRAM: 64 MiB
Trying to boot from FEL


U-Boot 2019.10 (Jan 30 2021 - 10:31:43 +0800) Allwinner Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM:  64 MiB
MMC:   mmc@01c0f000: 0
Loading Environment from FAT... Card did not respond to voltage select!
In:    serial@01c28000
Out:   serial@01c28000
Err:   serial@01c28000
Net:   failed to get TX clock
eth-1: ethernet@1c30000
starting USB...
No working controllers found
Hit any key to stop autoboot:  0 

需要将以下四个文件全部修改完成
执行打开Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
再次编译得到可用文件u-boot-sunxi-with-spl.rar

/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
/home/zhang/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s-licheepi-zero.dts

/home/zhang/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s.dtsi
/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s.dtsi

最近编辑记录 zhang235hai (2021-01-30 11:17:37)

离线

楼主 #11 2021-01-30 11:33:21

zhang235hai
会员
注册时间: 2020-04-06
已发帖子: 212
积分: 165

Re: 记录使用最新Buildroot一键编译V3s可用镜像

继续参照https://www.kancloud.cn/lichee/lpi0/327886配置linux内核以太网

修改sun8i-v3s.dtsi,内容与uboot中的sun8i-v3s.dtsi一样
/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5/arch/arm/boot/dts/sun8i-v3s.dtsi
/home/zhang/buildroot-2020.02.8/output/build/linux-headers-5.3.5/arch/arm/boot/dts/sun8i-v3s.dtsi

修改sun8i-v3s-licheepi-zero.dts,内容如下
/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
/home/zhang/buildroot-2020.02.8/output/build/linux-headers-5.3.5/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts

/*
 * Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole.
 *
 *  a) This file is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License as
 *     published by the Free Software Foundation; either version 2 of the
 *     License, or (at your option) any later version.
 *
 *     This file is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 */

#include <dt-bindings/clock/sun8i-v3s-ccu.h>
#include <dt-bindings/reset/sun8i-v3s-ccu.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/pinctrl/sun4i-a10.h>

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	interrupt-parent = <&gic>;

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			reg = <0>;
			clocks = <&ccu CLK_CPU>;
		};
	};

	timer {
		compatible = "arm,armv7-timer";
		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
	};

	clocks {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		osc24M: osc24M_clk {
			#clock-cells = <0>;
			compatible = "fixed-clock";
			clock-frequency = <24000000>;
			clock-output-names = "osc24M";
		};

		osc32k: osc32k_clk {
			#clock-cells = <0>;
			compatible = "fixed-clock";
			clock-frequency = <32768>;
			clock-output-names = "osc32k";
		};
	};

	soc {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

               syscon: syscon@01c00000 {
                       compatible = "allwinner,sun8i-h3-syscon","syscon";
                       reg = <0x01c00000 0x34>;
               };

		mmc0: mmc@01c0f000 {
			compatible = "allwinner,sun7i-a20-mmc";
			reg = <0x01c0f000 0x1000>;
			clocks = <&ccu CLK_BUS_MMC0>,
				 <&ccu CLK_MMC0>,
				 <&ccu CLK_MMC0_OUTPUT>,
				 <&ccu CLK_MMC0_SAMPLE>;
			clock-names = "ahb",
				      "mmc",
				      "output",
				      "sample";
			resets = <&ccu RST_BUS_MMC0>;
			reset-names = "ahb";
			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		mmc1: mmc@01c10000 {
			compatible = "allwinner,sun7i-a20-mmc";
			reg = <0x01c10000 0x1000>;
			clocks = <&ccu CLK_BUS_MMC1>,
				 <&ccu CLK_MMC1>,
				 <&ccu CLK_MMC1_OUTPUT>,
				 <&ccu CLK_MMC1_SAMPLE>;
			clock-names = "ahb",
				      "mmc",
				      "output",
				      "sample";
			resets = <&ccu RST_BUS_MMC1>;
			reset-names = "ahb";
			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		mmc2: mmc@01c11000 {
			compatible = "allwinner,sun7i-a20-mmc";
			reg = <0x01c11000 0x1000>;
			clocks = <&ccu CLK_BUS_MMC2>,
				 <&ccu CLK_MMC2>,
				 <&ccu CLK_MMC2_OUTPUT>,
				 <&ccu CLK_MMC2_SAMPLE>;
			clock-names = "ahb",
				      "mmc",
				      "output",
				      "sample";
			resets = <&ccu RST_BUS_MMC2>;
			reset-names = "ahb";
			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		usb_otg: usb@01c19000 {
			compatible = "allwinner,sun8i-h3-musb";
			reg = <0x01c19000 0x0400>;
			clocks = <&ccu CLK_BUS_OTG>;
			resets = <&ccu RST_BUS_OTG>;
			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "mc";
			phys = <&usbphy 0>;
			phy-names = "usb";
			extcon = <&usbphy 0>;
			status = "disabled";
		};

		usbphy: phy@01c19400 {
			compatible = "allwinner,sun8i-v3s-usb-phy";
			reg = <0x01c19400 0x2c>,
			      <0x01c1a800 0x4>;
			reg-names = "phy_ctrl",
				    "pmu0";
			clocks = <&ccu CLK_USB_PHY0>;
			clock-names = "usb0_phy";
			resets = <&ccu RST_USB_PHY0>;
			reset-names = "usb0_reset";
			status = "disabled";
			#phy-cells = <1>;
		};

		ccu: clock@01c20000 {
			compatible = "allwinner,sun8i-v3s-ccu";
			reg = <0x01c20000 0x400>;
			clocks = <&osc24M>, <&osc32k>;
			clock-names = "hosc", "losc";
			#clock-cells = <1>;
			#reset-cells = <1>;
		};

		rtc: rtc@01c20400 {
			compatible = "allwinner,sun6i-a31-rtc";
			reg = <0x01c20400 0x54>;
			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
		};

		pio: pinctrl@01c20800 {
			compatible = "allwinner,sun8i-v3s-pinctrl";
			reg = <0x01c20800 0x400>;
			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
			clock-names = "apb", "hosc", "losc";
			gpio-controller;
			#gpio-cells = <3>;
			interrupt-controller;
			#interrupt-cells = <3>;

                       emac_rgmii_pins: emac0@0 {
                               allwinner,pins = "PD0", "PD1", "PD2", "PD3",
                                               "PD4", "PD5", "PD7",
                                               "PD8", "PD9", "PD10",
                                               "PD12", "PD13", "PD15",
                                               "PD16", "PD17";
                               allwinner,function = "emac";
                               allwinner,drive = <SUN4I_PINCTRL_40_MA>;
                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
                       };

			uart0_pins_a: uart0@0 {
				pins = "PB8", "PB9";
				function = "uart0";
				bias-pull-up;
			};

			mmc0_pins_a: mmc0@0 {
				pins = "PF0", "PF1", "PF2", "PF3",
				       "PF4", "PF5";
				function = "mmc0";
				drive-strength = <30>;
				bias-pull-up;
			};
		};

		timer@01c20c00 {
			compatible = "allwinner,sun4i-a10-timer";
			reg = <0x01c20c00 0xa0>;
			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&osc24M>;
		};

		wdt0: watchdog@01c20ca0 {
			compatible = "allwinner,sun6i-a31-wdt";
			reg = <0x01c20ca0 0x20>;
			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
		};

		uart0: serial@01c28000 {
			compatible = "snps,dw-apb-uart";
			reg = <0x01c28000 0x400>;
			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
			reg-shift = <2>;
			reg-io-width = <4>;
			clocks = <&ccu CLK_BUS_UART0>;
			resets = <&ccu RST_BUS_UART0>;
			status = "disabled";
		};

		uart1: serial@01c28400 {
			compatible = "snps,dw-apb-uart";
			reg = <0x01c28400 0x400>;
			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
			reg-shift = <2>;
			reg-io-width = <4>;
			clocks = <&ccu CLK_BUS_UART1>;
			resets = <&ccu RST_BUS_UART1>;
			status = "disabled";
		};

		uart2: serial@01c28800 {
			compatible = "snps,dw-apb-uart";
			reg = <0x01c28800 0x400>;
			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
			reg-shift = <2>;
			reg-io-width = <4>;
			clocks = <&ccu CLK_BUS_UART2>;
			resets = <&ccu RST_BUS_UART2>;
			status = "disabled";
		};

               emac: ethernet@1c30000 {
                       compatible = "allwinner,sun8i-h3-emac";
                       syscon = <&syscon>;
                       reg = <0x01c30000 0x104>;
                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
                       interrupt-names = "macirq";
                       resets = <&ccu RST_BUS_EMAC>;
                       reset-names = "stmmaceth";
                       clocks = <&ccu CLK_BUS_EMAC>;
                       clock-names = "stmmaceth";
                       #address-cells = <1>;
                       #size-cells = <0>;
                       status = "disabled";

                       mdio: mdio {
                               #address-cells = <1>;
                               #size-cells = <0>;
                               int_mii_phy: ethernet-phy@0 {
                                       compatible = "ethernet-phy-ieee802.3-c22";
                                       reg = <1>;
                                       clocks = <&ccu CLK_BUS_EPHY>;
                                       resets = <&ccu RST_BUS_EPHY>;
                               };
                       };
               };

		gic: interrupt-controller@01c81000 {
			compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
			reg = <0x01c81000 0x1000>,
			      <0x01c82000 0x1000>,
			      <0x01c84000 0x2000>,
			      <0x01c86000 0x2000>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
		};
	};
};

执行make linux-menuconfig配置以太网相关选项
重新编译报错

zhang@ubuntu:~/buildroot-2020.02.8$ make
>>> linux 5.3.5 Configuring
>>> linux 5.3.5 Building
PATH="/home/zhang/buildroot-2020.02.8/output/host/bin:/home/zhang/buildroot-2020.02.8/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" PKG_CONFIG="/home/zhang/buildroot-2020.02.8/output/host/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_LIBDIR="/home/zhang/buildroot-2020.02.8/output/host/lib/pkgconfig:/home/zhang/buildroot-2020.02.8/output/host/share/pkgconfig" BR_BINARIES_DIR=/home/zhang/buildroot-2020.02.8/output/images KCFLAGS=-Wno-attribute-alias /usr/bin/make -j5 HOSTCC="/usr/bin/gcc -O2 -I/home/zhang/buildroot-2020.02.8/output/host/include -L/home/zhang/buildroot-2020.02.8/output/host/lib -Wl,-rpath,/home/zhang/buildroot-2020.02.8/output/host/lib" ARCH=arm INSTALL_MOD_PATH=/home/zhang/buildroot-2020.02.8/output/target CROSS_COMPILE="/home/zhang/buildroot-2020.02.8/output/host/bin/arm-buildroot-linux-uclibcgnueabihf-" DEPMOD=/home/zhang/buildroot-2020.02.8/output/host/sbin/depmod INSTALL_MOD_STRIP=1 -C /home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5 all
make[1]: Entering directory '/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5'
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/confdata.o
  HOSTCC  scripts/kconfig/expr.o
  HOSTCC  scripts/kconfig/lexer.lex.o
  HOSTCC  scripts/kconfig/parser.tab.o
  HOSTCC  scripts/kconfig/preprocess.o
  HOSTCC  scripts/kconfig/symbol.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf  --syncconfig Kconfig
  DTC     arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dtb
  DTC     arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb
Error: arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dts:65.1-7 Label or path lradc not found
FATAL ERROR: Syntax error parsing input tree
scripts/Makefile.lib:306: recipe for target 'arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb' failed
make[2]: *** [arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb] Error 1
make[2]: *** Waiting for unfinished jobs....
Makefile:1265: recipe for target 'dtbs' failed
make[1]: *** [dtbs] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5'
package/pkg-generic.mk:266: recipe for target '/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5/.stamp_built' failed
make: *** [/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5/.stamp_built] Error 2

希望大家指导一下

离线

楼主 #13 2021-01-30 17:15:30

zhang235hai
会员
注册时间: 2020-04-06
已发帖子: 212
积分: 165

Re: 记录使用最新Buildroot一键编译V3s可用镜像

raspberryman 说:

sun8i-v3s-licheepi-zero-dock.dts:65.1-7 Label or path lradc not found

65行出错


65行到结尾如下,貌似是4个按键,音量加,音量减,选择键,开始键,但是这个和我要开启以太网好像没啥关系

&lradc {
	vref-supply = <&reg_vcc3v0>;
	status = "okay";

	button-200 {
		label = "Volume Up";
		linux,code = <KEY_VOLUMEUP>;
		channel = <0>;
		voltage = <200000>;
	};

	button-400 {
		label = "Volume Down";
		linux,code = <KEY_VOLUMEDOWN>;
		channel = <0>;
		voltage = <400000>;
	};

	button-600 {
		label = "Select";
		linux,code = <KEY_SELECT>;
		channel = <0>;
		voltage = <600000>;
	};

	button-800 {
		label = "Start";
		linux,code = <KEY_OK>;
		channel = <0>;
		voltage = <800000>;
	};
};

最近编辑记录 zhang235hai (2021-01-30 17:18:00)

离线

楼主 #15 2021-01-30 17:30:46

zhang235hai
会员
注册时间: 2020-04-06
已发帖子: 212
积分: 165

Re: 记录使用最新Buildroot一键编译V3s可用镜像

raspberryman 说:

可能在dtsi没有注册lradc, 所以不能在此引用。把他注释起来就能通过编译。

是的,你说的没错,注释掉了编译通过了,但是出现了新的问题,系统启动失败了,我把sdcard.img烧录进SD卡,启动信息如下

U-Boot SPL 2019.10 (Jan 30 2021 - 10:31:43 +0800)
DRAM: 64 MiB
Trying to boot from MMC1


U-Boot 2019.10 (Jan 30 2021 - 10:31:43 +0800) Allwinner Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM:  64 MiB
MMC:   mmc@01c0f000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial@01c28000
Out:   serial@01c28000
Err:   serial@01c28000
Net:   failed to get TX clock
eth-1: ethernet@1c30000
starting USB...
No working controllers found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
292 bytes read in 2 ms (142.6 KiB/s)
## Executing script at 41900000
4174464 bytes read in 424 ms (9.4 MiB/s)
6882 bytes read in 5 ms (1.3 MiB/s)
## Flattened Device Tree blob at 41800000
   Booting using the fdt blob at 0x41800000
   Loading Device Tree to 42dfb000, end 42dffae1 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.3.5 (zhang@ubuntu) (gcc version 8.4.0 (Buildroot 2020.02.8)) #1 SMP Sat Jan 30 09:51:07 CST 2021
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Lichee Pi Zero with Dock
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 16 MiB at 0x41c00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: Using PSCI v0.1 Function IDs from DT
[    0.000000] percpu: Embedded 15 pages/cpu s30412 r8192 d22836 u61440
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line: console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 38524K/65536K available (6144K kernel code, 431K rwdata, 1648K rodata, 1024K init, 242K bss, 10628K reserved, 16384K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: GICv2 detected, but range too small and irqchip.gicv2_force_probe not set
[    0.000000] random: get_random_bytes called from start_kernel+0x2fc/0x48c 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.000020] Switching to timer-based delay loop, resolution 41ns
[    0.000188] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000403] Console: colour dummy device 80x30
[    0.000744] printk: console [tty0] enabled
[    0.000801] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.000830] pid_max: default: 32768 minimum: 301
[    0.001018] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.001051] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.001922] CPU: Testing write buffer coherency: ok
[    0.002471] /cpus/cpu@0 missing clock-frequency property
[    0.002521] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.003291] Setting up static identity map for 0x40100000 - 0x40100060
[    0.003534] rcu: Hierarchical SRCU implementation.
[    0.004015] smp: Bringing up secondary CPUs ...
[    0.004053] smp: Brought up 1 node, 1 CPU
[    0.004070] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.004085] CPU: All CPU(s) started in HYP mode.
[    0.004096] CPU: Virtualization extensions available.
[    0.004984] devtmpfs: initialized
[    0.007410] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.007748] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.007800] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.008619] pinctrl core: initialized pinctrl subsystem
[    0.009846] NET: Registered protocol family 16
[    0.011153] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.012436] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.012481] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.027542] SCSI subsystem initialized
[    0.028292] usbcore: registered new interface driver usbfs
[    0.028395] usbcore: registered new interface driver hub
[    0.028507] usbcore: registered new device driver usb
[    0.028756] pps_core: LinuxPPS API ver. 1 registered
[    0.028777] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.028813] PTP clock support registered
[    0.029100] Advanced Linux Sound Architecture Driver Initialized.
[    0.030485] clocksource: Switched to clocksource arch_sys_counter
[    0.041078] thermal_sys: Registered thermal governor 'step_wise'
[    0.041444] NET: Registered protocol family 2
[    0.042131] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.042191] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.042228] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.042260] TCP: Hash tables configured (established 1024 bind 1024)
[    0.042418] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.042483] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.042740] NET: Registered protocol family 1
[    0.043740] RPC: Registered named UNIX socket transport module.
[    0.043786] RPC: Registered udp transport module.
[    0.043800] RPC: Registered tcp transport module.
[    0.043813] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.045826] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[    0.053784] NFS: Registering the id_resolver key type
[    0.053863] Key type id_resolver registered
[    0.053878] Key type id_legacy registered
[    0.054006] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.054034] io scheduler mq-deadline registered
[    0.054048] io scheduler kyber registered
[    0.054946] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[    0.058745] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.121865] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.124242] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pb not found, using dummy regulator
[    0.125446] printk: console [ttyS0] disabled
[    0.145782] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 31, base_baud = 1500000) is a U6_16550A
[    0.716411] printk: console [ttyS0] enabled
[    0.723379] libphy: Fixed MDIO Bus: probed
[    0.727513] CAN device driver interface
[    0.732041] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[    0.737862] dwmac-sun8i 1c30000.ethernet: No regulator found
[    0.744134] dwmac-sun8i 1c30000.ethernet: Current syscon value is not the default 38000 (expect 58000)
[    0.753546] 8<--- cut here ---
[    0.756611] Unable to handle kernel NULL pointer dereference at virtual address 00000008
[    0.764726] pgd = (ptrval)
[    0.767437] [00000008] *pgd=00000000
[    0.771038] Internal error: Oops: 5 [#1] SMP ARM
[    0.775656] Modules linked in:
[    0.778720] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.3.5 #1
[    0.784550] Hardware name: Allwinner sun8i Family
[    0.789272] PC is at sun8i_dwmac_setup+0x37c/0x3f8
[    0.794071] LR is at of_find_property+0x44/0x4c
[    0.798601] pc : [<c04cb258>]    lr : [<c056253c>]    psr: a0000053
[    0.804866] sp : c3839d10  ip : 00000000  fp : 00000000
[    0.810090] r10: 00000000  r9 : c3fef930  r8 : c3b15500
[    0.815314] r7 : c3b10440  r6 : c0a04c48  r5 : c3b14500  r4 : c39a5340
[    0.821839] r3 : 85672ee0  r2 : 85672ee0  r1 : a0000053  r0 : ffffffea
[    0.828368] Flags: NzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
[    0.835589] Control: 10c5387d  Table: 4000406a  DAC: 00000051
[    0.841335] Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
[    0.847341] Stack: (0xc3839d10 to 0xc383a000)
[    0.851702] 9d00:                                     00000000 c013752c 00078000 c38a9210
[    0.859882] 9d20: c3b11064 00038000 c0844870 85672ee0 00000000 00000000 c3b15500 00000000
[    0.868062] 9d40: 00000000 c3b14500 00000000 00000000 c39ab840 c04c7634 c3b14000 c3b14000
[    0.876242] 9d60: c3811c8c c3b14000 c3b16000 c0a4ed7c c38a9210 c0aa2a7c c3b14500 c3b15000
[    0.884422] 9d80: c39ab840 c04bb5c4 00000000 a0000053 c3b0e1c0 c03b7a90 00000000 c0a04c48
[    0.892602] 9da0: 00000000 c38a9200 c39ab840 c38a9210 c3b10440 c3896e00 00000007 c04cb8c4
[    0.900781] 9dc0: 0000001f 00000000 00000000 00000000 00000000 c08158e8 00000001 c0285a44
[    0.908961] 9de0: c38aa000 c02856cc c4818000 c2dfc188 00000020 fffffffa 00000020 85672ee0
[    0.917141] 9e00: c08158e8 c38a9210 00000000 c0a4ee70 00000000 00000000 c0a4ee70 00000000
[    0.925321] 9e20: 00000007 c0453734 c0aa145c c38a9210 c0aa1460 00000000 00000000 c04519c4
[    0.933501] 9e40: c38a9210 c0a4ee70 c0a4ee70 c0451fd8 00000000 c09004a8 000000cb c0451d24
[    0.941681] 9e60: 000000cb c05633b0 c075cb3c c38a9210 00000000 c0a4ee70 c0451fd8 00000000
[    0.949861] 9e80: c09004a8 000000cb 00000007 c0451fd0 00000000 c0a4ee70 c38a9210 c0452030
[    0.958042] 9ea0: c389e9b4 c0a04c48 c0a4ee70 c044fe6c c09004a8 c3808f58 c389e9b4 85672ee0
[    0.966222] 9ec0: c0a4c670 c0a4ee70 c3b10080 c0a4c670 00000000 c0450ecc c082ea94 ffffe000
[    0.974402] 9ee0: c0a4ee70 c0a4ee70 c0a04c48 ffffe000 c091ea74 c0452860 c0a6c000 c0a04c48
[    0.982582] 9f00: ffffe000 c01026e8 c3fffed5 c013b1a4 c089a924 c0834c00 00000000 00000006
[    0.990762] 9f20: 00000006 c07f05e8 00000000 c0a04c48 c07fa880 c07f065c 00000000 c3fffed3
[    0.998942] 9f40: 00000000 85672ee0 00000000 00000006 c0a6c000 85672ee0 c094db34 c0a6c000
[    1.007122] 9f60: c0a6c000 c0939854 c0939834 c0900f04 00000006 00000006 00000000 c09004a8
[    1.015301] 9f80: 00000000 00000000 c06a89a0 00000000 00000000 00000000 00000000 00000000
[    1.023481] 9fa0: 00000000 c06a89a8 00000000 c01010e8 00000000 00000000 00000000 00000000
[    1.031660] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    1.039839] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    1.048039] [<c04cb258>] (sun8i_dwmac_setup) from [<c04c7634>] (stmmac_hwif_init+0x78/0x264)
[    1.056485] [<c04c7634>] (stmmac_hwif_init) from [<c04bb5c4>] (stmmac_dvr_probe+0x1e0/0xd74)
[    1.064929] [<c04bb5c4>] (stmmac_dvr_probe) from [<c04cb8c4>] (sun8i_dwmac_probe+0x1e0/0x48c)
[    1.073464] [<c04cb8c4>] (sun8i_dwmac_probe) from [<c0453734>] (platform_drv_probe+0x48/0x98)
[    1.081994] [<c0453734>] (platform_drv_probe) from [<c04519c4>] (really_probe+0xf0/0x2c8)
[    1.090175] [<c04519c4>] (really_probe) from [<c0451d24>] (driver_probe_device+0x60/0x16c)
[    1.098442] [<c0451d24>] (driver_probe_device) from [<c0451fd0>] (device_driver_attach+0x58/0x60)
[    1.107316] [<c0451fd0>] (device_driver_attach) from [<c0452030>] (__driver_attach+0x58/0xcc)
[    1.115845] [<c0452030>] (__driver_attach) from [<c044fe6c>] (bus_for_each_dev+0x74/0xb4)
[    1.124026] [<c044fe6c>] (bus_for_each_dev) from [<c0450ecc>] (bus_add_driver+0x1b4/0x1d4)
[    1.132293] [<c0450ecc>] (bus_add_driver) from [<c0452860>] (driver_register+0x74/0x108)
[    1.140390] [<c0452860>] (driver_register) from [<c01026e8>] (do_one_initcall+0x7c/0x1c8)
[    1.148580] [<c01026e8>] (do_one_initcall) from [<c0900f04>] (kernel_init_freeable+0x138/0x1d4)
[    1.157286] [<c0900f04>] (kernel_init_freeable) from [<c06a89a8>] (kernel_init+0x8/0x110)
[    1.165467] [<c06a89a8>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[    1.173035] Exception stack(0xc3839fb0 to 0xc3839ff8)
[    1.178087] 9fa0:                                     00000000 00000000 00000000 00000000
[    1.186267] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    1.194444] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    1.201063] Code: e34c1082 e1a0400b ebfe11b4 eaffffb1 (e59a2008) 
[    1.207249] ---[ end trace 8aaa0ba895678c76 ]---
[    1.211935] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    1.219603] Rebooting in 5 seconds..
[    7.223275] Reboot failed -- System halted

U-Boot SPL 2019.10 (Jan 30 2021 - 10:31:43 +0800)
DRAM: 64 MiB
Trying to boot from MMC1


U-Boot 2019.10 (Jan 30 2021 - 10:31:43 +0800) Allwinner Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM:  64 MiB
MMC:   mmc@01c0f000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial@01c28000
Out:   serial@01c28000
Err:   serial@01c28000
Net:   failed to get TX clock
eth-1: ethernet@1c30000
starting USB...
No working controllers found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
292 bytes read in 3 ms (94.7 KiB/s)
## Executing script at 41900000
4174464 bytes read in 424 ms (9.4 MiB/s)
6882 bytes read in 5 ms (1.3 MiB/s)
## Flattened Device Tree blob at 41800000
   Booting using the fdt blob at 0x41800000
   Loading Device Tree to 42dfb000, end 42dffae1 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.3.5 (zhang@ubuntu) (gcc version 8.4.0 (Buildroot 2020.02.8)) #1 SMP Sat Jan 30 09:51:07 CST 2021
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Lichee Pi Zero with Dock
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 16 MiB at 0x41c00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: Using PSCI v0.1 Function IDs from DT
[    0.000000] percpu: Embedded 15 pages/cpu s30412 r8192 d22836 u61440
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line: console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 38524K/65536K available (6144K kernel code, 431K rwdata, 1648K rodata, 1024K init, 242K bss, 10628K reserved, 16384K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: GICv2 detected, but range too small and irqchip.gicv2_force_probe not set
[    0.000000] random: get_random_bytes called from start_kernel+0x2fc/0x48c 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.000019] Switching to timer-based delay loop, resolution 41ns
[    0.000192] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000406] Console: colour dummy device 80x30
[    0.000757] printk: console [tty0] enabled
[    0.000815] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.000845] pid_max: default: 32768 minimum: 301
[    0.001031] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.001065] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.001941] CPU: Testing write buffer coherency: ok
[    0.002496] /cpus/cpu@0 missing clock-frequency property
[    0.002542] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.003320] Setting up static identity map for 0x40100000 - 0x40100060
[    0.003556] rcu: Hierarchical SRCU implementation.
[    0.004038] smp: Bringing up secondary CPUs ...
[    0.004078] smp: Brought up 1 node, 1 CPU
[    0.004094] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.004108] CPU: All CPU(s) started in HYP mode.
[    0.004120] CPU: Virtualization extensions available.
[    0.005009] devtmpfs: initialized
[    0.007431] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.007774] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.007826] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.008652] pinctrl core: initialized pinctrl subsystem
[    0.009864] NET: Registered protocol family 16
[    0.011175] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.012470] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.012516] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.027603] SCSI subsystem initialized
[    0.028342] usbcore: registered new interface driver usbfs
[    0.028443] usbcore: registered new interface driver hub
[    0.028562] usbcore: registered new device driver usb
[    0.028806] pps_core: LinuxPPS API ver. 1 registered
[    0.028832] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.028871] PTP clock support registered
[    0.029156] Advanced Linux Sound Architecture Driver Initialized.
[    0.030540] clocksource: Switched to clocksource arch_sys_counter
[    0.041119] thermal_sys: Registered thermal governor 'step_wise'
[    0.041479] NET: Registered protocol family 2
[    0.042162] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.042225] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.042263] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.042294] TCP: Hash tables configured (established 1024 bind 1024)
[    0.042454] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.042518] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.042777] NET: Registered protocol family 1
[    0.043768] RPC: Registered named UNIX socket transport module.
[    0.043814] RPC: Registered udp transport module.
[    0.043829] RPC: Registered tcp transport module.
[    0.043842] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.045854] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[    0.053812] NFS: Registering the id_resolver key type
[    0.053892] Key type id_resolver registered
[    0.053907] Key type id_legacy registered
[    0.054040] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.054069] io scheduler mq-deadline registered
[    0.054085] io scheduler kyber registered
[    0.054981] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[    0.058778] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.121863] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.124218] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pb not found, using dummy regulator
[    0.125410] printk: console [ttyS0] disabled
[    0.145743] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 31, base_baud = 1500000) is a U6_16550A
[    0.716345] printk: console [ttyS0] enabled
[    0.723292] libphy: Fixed MDIO Bus: probed
[    0.727425] CAN device driver interface
[    0.731956] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[    0.737777] dwmac-sun8i 1c30000.ethernet: No regulator found
[    0.744043] dwmac-sun8i 1c30000.ethernet: Current syscon value is not the default 38000 (expect 58000)
[    0.753458] 8<--- cut here ---
[    0.756525] Unable to handle kernel NULL pointer dereference at virtual address 00000008
[    0.764637] pgd = (ptrval)
[    0.767348] [00000008] *pgd=00000000
[    0.770947] Internal error: Oops: 5 [#1] SMP ARM
[    0.775566] Modules linked in:
[    0.778630] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.3.5 #1
[    0.784460] Hardware name: Allwinner sun8i Family
[    0.789182] PC is at sun8i_dwmac_setup+0x37c/0x3f8
[    0.793981] LR is at of_find_property+0x44/0x4c
[    0.798511] pc : [<c04cb258>]    lr : [<c056253c>]    psr: a0000053
[    0.804775] sp : c3839d10  ip : 00000000  fp : 00000000
[    0.809999] r10: 00000000  r9 : c3fef930  r8 : c3b15500
[    0.815223] r7 : c3b10440  r6 : c0a04c48  r5 : c3b14500  r4 : c39a5340
[    0.821749] r3 : 85672ee0  r2 : 85672ee0  r1 : a0000053  r0 : ffffffea
[    0.828277] Flags: NzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
[    0.835499] Control: 10c5387d  Table: 4000406a  DAC: 00000051
[    0.841244] Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
[    0.847250] Stack: (0xc3839d10 to 0xc383a000)
[    0.851611] 9d00:                                     00000000 c013752c 00078000 c38a9210
[    0.859791] 9d20: c3b11064 00038000 c0844870 85672ee0 00000000 00000000 c3b15500 00000000
[    0.867971] 9d40: 00000000 c3b14500 00000000 00000000 c39ab840 c04c7634 c3b14000 c3b14000
[    0.876151] 9d60: c3811c8c c3b14000 c3b16000 c0a4ed7c c38a9210 c0aa2a7c c3b14500 c3b15000
[    0.884331] 9d80: c39ab840 c04bb5c4 00000000 a0000053 c3b0e1c0 c03b7a90 00000000 c0a04c48
[    0.892511] 9da0: 00000000 c38a9200 c39ab840 c38a9210 c3b10440 c3896e00 00000007 c04cb8c4
[    0.900690] 9dc0: 0000001f 00000000 00000000 00000000 00000000 c08158e8 00000001 c0285a44
[    0.908870] 9de0: c38aa000 c02856cc c4818000 c2dfc188 00000020 fffffffa 00000020 85672ee0
[    0.917050] 9e00: c08158e8 c38a9210 00000000 c0a4ee70 00000000 00000000 c0a4ee70 00000000
[    0.925230] 9e20: 00000007 c0453734 c0aa145c c38a9210 c0aa1460 00000000 00000000 c04519c4
[    0.933410] 9e40: c38a9210 c0a4ee70 c0a4ee70 c0451fd8 00000000 c09004a8 000000cb c0451d24
[    0.941590] 9e60: 000000cb c05633b0 c075cb3c c38a9210 00000000 c0a4ee70 c0451fd8 00000000
[    0.949770] 9e80: c09004a8 000000cb 00000007 c0451fd0 00000000 c0a4ee70 c38a9210 c0452030
[    0.957950] 9ea0: c389e9b4 c0a04c48 c0a4ee70 c044fe6c c09004a8 c3808f58 c389e9b4 85672ee0
[    0.966130] 9ec0: c0a4c670 c0a4ee70 c3b10080 c0a4c670 00000000 c0450ecc c082ea94 ffffe000
[    0.974311] 9ee0: c0a4ee70 c0a4ee70 c0a04c48 ffffe000 c091ea74 c0452860 c0a6c000 c0a04c48
[    0.982491] 9f00: ffffe000 c01026e8 c3fffed5 c013b1a4 c089a924 c0834c00 00000000 00000006
[    0.990671] 9f20: 00000006 c07f05e8 00000000 c0a04c48 c07fa880 c07f065c 00000000 c3fffed3
[    0.998851] 9f40: 00000000 85672ee0 00000000 00000006 c0a6c000 85672ee0 c094db34 c0a6c000
[    1.007030] 9f60: c0a6c000 c0939854 c0939834 c0900f04 00000006 00000006 00000000 c09004a8
[    1.015210] 9f80: 00000000 00000000 c06a89a0 00000000 00000000 00000000 00000000 00000000
[    1.023389] 9fa0: 00000000 c06a89a8 00000000 c01010e8 00000000 00000000 00000000 00000000
[    1.031569] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    1.039748] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    1.047948] [<c04cb258>] (sun8i_dwmac_setup) from [<c04c7634>] (stmmac_hwif_init+0x78/0x264)
[    1.056395] [<c04c7634>] (stmmac_hwif_init) from [<c04bb5c4>] (stmmac_dvr_probe+0x1e0/0xd74)
[    1.064838] [<c04bb5c4>] (stmmac_dvr_probe) from [<c04cb8c4>] (sun8i_dwmac_probe+0x1e0/0x48c)
[    1.073371] [<c04cb8c4>] (sun8i_dwmac_probe) from [<c0453734>] (platform_drv_probe+0x48/0x98)
[    1.081902] [<c0453734>] (platform_drv_probe) from [<c04519c4>] (really_probe+0xf0/0x2c8)
[    1.090083] [<c04519c4>] (really_probe) from [<c0451d24>] (driver_probe_device+0x60/0x16c)
[    1.098349] [<c0451d24>] (driver_probe_device) from [<c0451fd0>] (device_driver_attach+0x58/0x60)
[    1.107223] [<c0451fd0>] (device_driver_attach) from [<c0452030>] (__driver_attach+0x58/0xcc)
[    1.115751] [<c0452030>] (__driver_attach) from [<c044fe6c>] (bus_for_each_dev+0x74/0xb4)
[    1.123931] [<c044fe6c>] (bus_for_each_dev) from [<c0450ecc>] (bus_add_driver+0x1b4/0x1d4)
[    1.132198] [<c0450ecc>] (bus_add_driver) from [<c0452860>] (driver_register+0x74/0x108)
[    1.140296] [<c0452860>] (driver_register) from [<c01026e8>] (do_one_initcall+0x7c/0x1c8)
[    1.148486] [<c01026e8>] (do_one_initcall) from [<c0900f04>] (kernel_init_freeable+0x138/0x1d4)
[    1.157191] [<c0900f04>] (kernel_init_freeable) from [<c06a89a8>] (kernel_init+0x8/0x110)
[    1.165374] [<c06a89a8>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[    1.172942] Exception stack(0xc3839fb0 to 0xc3839ff8)
[    1.177995] 9fa0:                                     00000000 00000000 00000000 00000000
[    1.186174] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    1.194352] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    1.200971] Code: e34c1082 e1a0400b ebfe11b4 eaffffb1 (e59a2008) 
[    1.207161] ---[ end trace 62acf0dde808fb34 ]---
[    1.211842] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    1.219511] Rebooting in 5 seconds..
[    7.223183] Reboot failed -- System halted

离线

楼主 #19 2021-02-03 09:43:02

zhang235hai
会员
注册时间: 2020-04-06
已发帖子: 212
积分: 165

Re: 记录使用最新Buildroot一键编译V3s可用镜像

xfdr0805 说:
zhang235hai 说:

uboot已经能识别以太网

U-Boot SPL 2019.10 (Jan 30 2021 - 10:31:43 +0800)
DRAM: 64 MiB
Trying to boot from FEL


U-Boot 2019.10 (Jan 30 2021 - 10:31:43 +0800) Allwinner Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM:  64 MiB
MMC:   mmc@01c0f000: 0
Loading Environment from FAT... Card did not respond to voltage select!
In:    serial@01c28000
Out:   serial@01c28000
Err:   serial@01c28000
Net:   failed to get TX clock
eth-1: ethernet@1c30000
starting USB...
No working controllers found
Hit any key to stop autoboot:  0 

需要将以下四个文件全部修改完成
执行打开Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
再次编译得到可用文件u-boot-sunxi-with-spl.rar

/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
/home/zhang/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s-licheepi-zero.dts

/home/zhang/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s.dtsi
/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s.dtsi

能识别以太网,实际是不能用的,U-boot还不能驱动以太网

net:   failed to get TX clock  这里有错误,楼主解决了吗?


追踪到sun8i_emac.c文件中

	if (ret) {
		dev_err(dev, "failed to get TX clock\n");
		return ret;
	}

但是不知道怎么解决

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn