晕哥最近搞了个活动:
V3s(荔枝派核心板) + 以太网 + AP6398(2.4/5G)双模路由器,本站(bbs.aw-ol.com)满100分免费赠送一台
https://bbs.aw-ol.com/topic/580
与晕哥搞了个关系拿到了一台, 想着先拆壳看看log信息啥的之后在备份固件做个分析, 没想到root账号没有密码, 直接敲回车就能登录. 先发一个开机的log:
U-Boot SPL 2017.01-rc2-g8851dbc-dirty (Feb 08 2018 - 09:49:31)
DRAM: 64 MiB
Trying to boot from sunxi SPI
U-Boot 2017.01-rc2-g8851dbc-dirty (Feb 08 2018 - 09:49:31 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
U-Boot 2017.01-rc2-g8851dbc-dirty (Feb 08 2018 - 09:49:31 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
Net: phy interface0
eth0: ethernet@1c30000
starting USB...
No controllers found
Please choose the operation:
4: Boot to normal cli.
9: Load Boot Loader code then write to Flash via TFTP. 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x140000, size 0x300000
SF: 3145728 bytes @ 0x140000 Read: OK
## Booting kernel from Legacy Image at 41000000 ...
Image Name: ARM OpenWrt Linux-4.14.14
Image Type: ARM Linux Multi-File Image (lzma compressed)
Data Size: 1654992 Bytes = 1.6 MiB
Load Address: 40008000
Entry Point: 40008000
Contents:
Image 0: 1627278 Bytes = 1.6 MiB
Image 1: 13848 Bytes = 13.5 KiB
Image 2: 13848 Bytes = 13.5 KiB
Verifying Checksum ... OK
## Flattened Device Tree from multi component Image at 41000000
Booting using the fdt at 0x41190af8
of_flat_tree at 0x41190af8 size 0x00003618
Uncompressing Multi-File Image ... Decomp 40008000 and 41000050,len 1627278 and 8388608
LZMA: Image address............... 0x41000050
LZMA: Properties address.......... 0x41000050
LZMA: Uncompressed size address... 0x41000055
LZMA: Compressed data address..... 0x4100005d
LZMA: Destination address......... 0x40008000
OK
using: FDT 13848
Loading Device Tree to 42df9000, end 42dff617 ... OK
## Transferring control to Linux (at address 40008000)...
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.14.14 (Master of Quallink.cn@Quallink.cn) (gcc version 5.4.0 (LEDE GCC 5.4.0 unknown)) #0 SMP Tue Jul 24 07:25:26 2018
[ 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: QLNK4105
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] random: fast init done
[ 0.000000] percpu: Embedded 14 pages/cpu @c3f5f000 s28544 r8192 d20608 u57344
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS0,115200 earlyprintk panic=5 rootwait rootfstype=squashfs,jffs2
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Memory: 58256K/65536K available (3347K kernel code, 181K rwdata, 988K rodata, 1024K init, 227K bss, 7280K reserved, 0K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xc4800000 - 0xff800000 ( 944 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0444c08 (4340 kB)
[ 0.000000] .init : 0xc0600000 - 0xc0700000 (1024 kB)
[ 0.000000] .data : 0xc0700000 - 0xc072d540 ( 182 kB)
[ 0.000000] .bss : 0xc072d540 - 0xc07663b4 ( 228 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[ 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] arch_timer: cp15 timer(s) running at 24.00MHz (virt).
[ 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.000217] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000344] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000361] pid_max: default: 32768 minimum: 301
[ 0.000532] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000547] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.001099] CPU: Testing write buffer coherency: ok
[ 0.001486] /cpus/cpu@0 missing clock-frequency property
[ 0.001510] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.001922] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.002090] Hierarchical SRCU implementation.
[ 0.002598] smp: Bringing up secondary CPUs ...
[ 0.002612] smp: Brought up 1 node, 1 CPU
[ 0.002621] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.002628] CPU: All CPU(s) started in SVC mode.
[ 0.006374] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.006653] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.006681] futex hash table entries: 256 (order: 2, 16384 bytes)
[ 0.006876] pinctrl core: initialized pinctrl subsystem
[ 0.007820] NET: Registered protocol family 16
[ 0.008215] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.032355] clocksource: Switched to clocksource arch_sys_counter
[ 0.033440] NET: Registered protocol family 2
[ 0.034124] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.034156] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.034179] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.034311] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 0.034359] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 0.034576] NET: Registered protocol family 1
[ 0.036626] No memory allocated for crashlog
[ 0.038445] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.042323] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.042536] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.054210] io scheduler noop registered
[ 0.054230] io scheduler deadline registered (default)
[ 0.054898] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[ 0.058475] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.061838] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.063656] console [ttyS0] disabled
[ 0.083899] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 34, base_baud = 1500000) is a U6_16550A
[ 0.558671] console [ttyS0] enabled
[ 0.577327] m25p80 spi0.0: w25q128 (16384 Kbytes)
[ 0.582096] 6 ofpart partitions found on MTD device spi0.0
[ 0.587626] Creating 6 MTD partitions on "spi0.0":
[ 0.592447] 0x000000000000-0x000000100000 : "u-boot"
[ 0.598289] 0x000000100000-0x000000110000 : "u-boot-env"
[ 0.604395] 0x000000110000-0x000000120000 : "dtb"
[ 0.609760] 0x000000120000-0x000000130000 : "factory"
[ 0.615592] 0x000000130000-0x000000140000 : "misc"
[ 0.621060] 0x000000140000-0x000001000000 : "firmware"
[ 0.655634] 2 uimage-fw partitions found on MTD device firmware
[ 0.661581] 0x000000140000-0x0000002d4110 : "kernel"
[ 0.667450] 0x0000002d4110-0x000001000000 : "rootfs"
[ 0.673169] mtd: device 7 (rootfs) set to be root filesystem
[ 0.679936] 1 squashfs-split partitions found on MTD device rootfs
[ 0.686235] 0x0000008d0000-0x000001000000 : "rootfs_data"
[ 0.693039] libphy: Fixed MDIO Bus: probed
[ 0.698302] Read mac from flash cc:4b:73:4f:d5:8a
[ 0.703727] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[ 0.709528] dwmac-sun8i 1c30000.ethernet: No regulator found
[ 0.715321] dwmac-sun8i 1c30000.ethernet: Will use internal PHY
[ 0.721317] Sync mac address to ethernet
[ 0.725399] dwmac-sun8i 1c30000.ethernet: Current syscon value is not the default 148000 (expect 38000)
[ 0.735181] dwmac-sun8i 1c30000.ethernet: Chain mode enabled
[ 0.740845] dwmac-sun8i 1c30000.ethernet: No HW DMA feature register supported
[ 0.748177] dwmac-sun8i 1c30000.ethernet: Normal descriptors
[ 0.753857] dwmac-sun8i 1c30000.ethernet: RX Checksum Offload Engine supported
[ 0.761072] dwmac-sun8i 1c30000.ethernet: COE Type 2
[ 0.766043] dwmac-sun8i 1c30000.ethernet: TX Checksum insertion supported
[ 0.773027] libphy: stmmac: probed
[ 0.779685] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 0.842271] sunxi-mmc 1c0f000.mmc: base:0xc48aa000 irq:23
[ 0.902254] sunxi-mmc 1c10000.mmc: base:0xc48ae000 irq:24
[ 0.909041] NET: Registered protocol family 17
[ 0.913699] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[ 0.926679] 8021q: 802.1Q VLAN Support v1.8
[ 0.930943] Registering SWP/SWPB emulation handler
[ 0.945456] hctosys: unable to open rtc device (rtc0)
[ 0.950920] vcc3v0: disabling
[ 0.953997] vcc5v0: disabling
[ 0.961460] VFS: Mounted root (squashfs filesystem) readonly on device 31:7.
[ 0.970921] Freeing unused kernel memory: 1024K
[ 1.062638] random: crng init done
[ 1.371124] init: Console is alive
[ 1.375031] init: - watchdog -
[ 2.206732] usbcore: registered new interface driver usbfs
[ 2.212457] usbcore: registered new interface driver hub
[ 2.217884] usbcore: registered new device driver usb
[ 2.228731] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 2.240253] SCSI subsystem initialized
[ 2.247986] ehci-platform: EHCI generic platform driver
[ 2.253777] ehci-platform 1c1a000.usb: EHCI Host Controller
[ 2.259450] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus number 1
[ 2.267417] ehci-platform 1c1a000.usb: irq 26, io mem 0x01c1a000
[ 2.302304] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00
[ 2.309411] hub 1-0:1.0: USB hub found
[ 2.313655] hub 1-0:1.0: 1 port detected
[ 2.320115] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 2.327906] ohci-platform: OHCI generic platform driver
[ 2.333663] ohci-platform 1c1a400.usb: Generic Platform OHCI controller
[ 2.340321] ohci-platform 1c1a400.usb: new USB bus registered, assigned bus number 2
[ 2.348297] ohci-platform 1c1a400.usb: irq 27, io mem 0x01c1a400
[ 2.427284] hub 2-0:1.0: USB hub found
[ 2.431376] hub 2-0:1.0: 1 port detected
[ 2.442064] usbcore: registered new interface driver usb-storage
[ 2.449677] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 2.469209] init: - preinit -
[ 2.992758] Generic PHY stmmac-0:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)
[ 3.004826] dwmac-sun8i 1c30000.ethernet eth0: No MAC Management Counters available
[ 3.012571] dwmac-sun8i 1c30000.ethernet eth0: PTP not supported by HW
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[ 5.266313] jffs2: notice: (516) jffs2_build_xattr_subsystem: complete building xattr subsystem, 3 of xdatum (2 unchecked, 1 orphan) and 6 of xref (4 dead, 0 orphan) found.
[ 5.283939] mount_root: switching to jffs2 overlay
[ 5.293166] overlayfs: upper fs does not support tmpfile.
[ 5.304155] urandom-seed: Seeding with /etc/urandom.seed
[ 5.385867] procd: - early -
[ 5.388883] procd: - watchdog -
[ 6.015076] procd: - ubus -
[ 6.173229] procd: - init -
Please press Enter to activate this console.
[ 6.420269] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[ 6.431738] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 6.437576] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 3
[ 6.450951] hub 3-0:1.0: USB hub found
[ 6.462700] hub 3-0:1.0: 1 port detected
[ 6.488877] Bridge firewalling registered
[ 6.502035] usbcore: registered new interface driver cdc_wdm
[ 6.523336] Loading modules backported from Linux version wt-2017-11-01-0-gfe248fc2c180
[ 6.531346] Backport generated by backports.git v4.14-rc2-1-31-g86cf0e5d
[ 6.558713] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 6.585970] nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
[ 6.689625] Netfilter messages via NETLINK v0.30.
[ 6.709565] usbcore: registered new interface driver r8152
[ 6.751468] usbcore: registered new interface driver usbserial
[ 6.757577] usbcore: registered new interface driver usbserial_generic
[ 6.764220] usbserial: USB Serial support registered for generic
[ 6.838118] xt_time: kernel timezone is -0000
[ 6.880884] Ebtables v2.0 registered
[ 6.887227] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 6.898288] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 6.931653] PPP generic driver version 2.4.2
[ 6.939553] NET: Registered protocol family 24
[ 6.947830] usbcore: registered new interface driver qmi_wwan
[ 7.046384] dhd_module_init: in Dongle Host Driver, version 1.579.77.41.6 (r)
[ 7.053673] ======== dhd_wlan_init_plat_data ========
[ 7.058769] dhd_wlan_init_gpio: oob_irq=43, oob_irq_flags=0x414
[ 7.064717] ======== dhd_wlan_init_plat_data ========
[ 7.069780] dhd_wlan_init_gpio: oob_irq=42, oob_irq_flags=0x414
[ 7.075711] dhd_wifi_platform_load: Enter
[ 7.079753] Power-up adapter 'DHD adapter 0'
[ 7.084154] wifi_platform_set_power = 1
[ 7.087987] ======== PULL WL_REG_ON(136) HIGH! ========
[ 7.612241] wifi_platform_bus_enumerate device present 1
[ 7.837412] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 7.844454] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 7.851449] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 7.859677] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[ 7.868456] mmc1: queuing unknown CIS tuple 0x81 (9 bytes)
[ 7.925793] mmc1: new high speed SDIO card at address 0001
[ 7.949656] Power-up adapter 'DHD adapter 1'
[ 7.955738] wifi_platform_set_power = 1
[ 7.959587] ======== PULL WL_REG_ON(140) HIGH! ========
[ 8.482236] wifi_platform_bus_enumerate device present 1
[ 8.503827] bcmsdh_register: register client driver
[ 8.509626] bcmsdh_sdmmc: bcmsdh_sdmmc_probe Enter c28ad800 and bf4eeb20 ven 02d0, device 4359, func 1
[ 8.519712] bcmsdh_sdmmc: bcmsdh_sdmmc_probe Enter c28ad600 and bf4eeb20 ven 02d0, device 4359, func 2
[ 8.529113] found adapter info 'DHD adapter 0' and c2897080
[ 8.534707] func c28ad600 ,adp c2897080,bus num (host idx)=1, slot num (rca)=1
[ 8.542061] sdioh_attach: set sd_f2_blocksize 256
[ 8.546973] sdioh_attach: sd clock rate = 0
[ 8.551346] dhdsdio_probe : no mutex held. set lock
[ 8.556385] F1 signature read @0x18000000=0x17294359
[ 8.563866] F1 signature OK, socitype:0x1 chip:0x4359 rev:0x9 pkg:0x2
[ 8.570782] DHD: dongle ram size is set to 917504(orig 917504) at 0x160000
[ 8.577788] dhd_conf_set_chiprev: chip=0x4359, chiprev=9
[ 8.583135] Finale to /lib/firmware/brcm/fw_bcm4359c0_ag.bin
[ 8.588868] Final interface wlan0
[ 8.592797] CFG80211-ERROR) wl_setup_wiphy :
[ 8.592805] Registering Vendor80211
[ 8.612456] wl_escan_attach: Enter c31ef800 and c2a880a4
[ 8.618008] wl_escan_init: Enter c2b00000
[ 8.632505] wl_create_event_handler(): thread:dhd_escan0:354 started
[ 8.638960] tsk Enter, tsk = 0xc2b40148
[ 8.643024] dhd_init_logstrs_array: Failed to open the file /tmp/logstrs.bin
[ 8.655201] dhd_attach(): thread:dhd_dog0:357 started
[ 8.665740] dhd_attach(): thread:dhd_dpc0:359 started
[ 8.699836] dhd_attach(): thread:dhd_rxf0:35a started
[ 8.705024] dhd_deferred_work_init: work queue initialized
[ 8.710619] dhd_bus_set_default_min_res_mask: Unhandled chip id
[ 8.716883] sdioh_cis_read: func_cis_ptr[0]=0x10ac
[ 8.735792] Dongle Host Driver, version 1.579.77.41.6 (r)
[ 8.741991] wl_ext_iapsta_attach_netdev: bssidx=0
[ 8.746824] Register interface [wlan0] MAC: cc:4b:73:4f:d5:8a and fw 1
[ 8.746824]
[ 8.754939] dhdsdio_probe : the lock is released.
[ 8.759820] dhd_module_init: Exit err=0
[ 8.805670] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 8.834352] usbcore: registered new interface driver option
[ 8.840037] usbserial: USB Serial support registered for GSM modem (1-port)
[ 8.868258] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 13.316963] Generic PHY stmmac-0:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)
[ 13.329071] dwmac-sun8i 1c30000.ethernet eth0: No MAC Management Counters available
[ 13.336850] dwmac-sun8i 1c30000.ethernet eth0: PTP not supported by HW
[ 13.417385] br-lan: port 1(eth0) entered blocking state
[ 13.422770] br-lan: port 1(eth0) entered disabled state
[ 13.428332] device eth0 entered promiscuous mode
[ 13.701221] dhd_open: Enter c31ef800
[ 13.705027] Finale to /lib/firmware/brcm/fw_bcm4359c0_ag.bin
[ 13.743940] dhd_os_open_image: /lib/firmware/brcm/config_4359c0_ag.txt (18 bytes) open success
[ 13.782493] dhd_conf_read_sdio_params: dhd_slpauto = 0
[ 13.787657] dhd_conf_read_pm_params: PM = 0
[ 13.791863] Final fw_path=/lib/firmware/brcm/fw_bcm4359c0_ag.bin
[ 13.797983] Final nv_path=/lib/firmware/brcm/nvrma_4359c0_ag.txt
[ 13.804010] Final clm_path=/lib/firmware/brcm/clm.blob
[ 13.809141] Final conf_path=/lib/firmware/brcm/config_4359c0_ag.txt
[ 13.929787] dhd_os_open_image: /lib/firmware/brcm/fw_bcm4359c0_ag.bin (516576 bytes) open success
[ 14.651808] dhd_os_open_image: /lib/firmware/brcm/nvrma_4359c0_ag.txt (5802 bytes) open success
[ 14.672960] NVRAM version: AP6398SR3_NVRAM_V1.0_20171106.txt
[ 14.688193] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
[ 14.859365] dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
[ 14.869022] si_get_pmu_reg_addr: addrRET: 18000670
[ 14.879995] bcmsdh_oob_intr_register: HW_OOB irq=43 flags=0x414
[ 14.895533] dhd_sync_with_dongle: Enter
[ 14.899774] sdpcm_shared address 0x001A568C
[ 14.905972] sdpcm_shared address 0x001A568C
[ 14.910489] dhd_preinit_ioctls: Set tcpack_sup_mode 1
[ 14.915668] dhd_deepsleep: all off ON
[ 15.132492] dhd_enable_packet_filter: enter, value = 0
[ 15.159728] dhd_apply_default_clm: Ignore clm file /lib/firmware/brcm/clm.blob
[ 15.187876] dhd_preinit_ioctls APSTA for P2P failed ret= -5
[ 15.210927] Firmware up: op_mode=0x0405, MAC=cc:4b:73:4f:d5:8a
[ 15.230844] dhdcdc_set_ioctl: SET PM to 2
[ 15.279642] dhd_preinit_ioctls Set scancache failed -23
[ 15.335494] Driver: 1.579.77.41.6 (r)
[ 15.335494] Firmware: wl0: Jul 28 2018 19:45:19 version 9.87.51.11 (r) FWID 01-cd33d333
[ 15.335494] CLM: 9.7.5
[ 15.350213] dhd_txglom_enable: enable 0
[ 15.354106] dhd_conf_set_txglom_params: txglom_mode=multi-desc, use_rxchain=0
[ 15.361233] dhd_conf_set_txglom_params: txglomsize=0, deferred_tx_len=0
[ 15.367862] dhd_conf_set_txglom_params: tx_in_rx=1, txinrx_thres=128, dhd_txminmax=-1
[ 15.375696] dhd_conf_set_txglom_params: tx_max_offset=0, txctl_tmo_fix=300
[ 15.382582] dhd_conf_get_disable_proptx: fw_proptx=0, disable_proptx=1
[ 15.496772] dhd_preinit_ioctls: SensorHub diabled 0
[ 15.508116] dhd_preinit_ioctls failed to set ShubHub disable
[ 15.534160] dhd_ndo_get_version: failed, retcode = -23
[ 15.556628] failed to set WNM capabilities
[ 15.581462] dhd_conf_set_country: set country CN, revision 38
[ 15.595296] Country code: CN (CN/38)
[ 15.614036] dhdcdc_set_ioctl: SET PM to 0
[ 15.636048] Time taken for FW download and F2 ready is: 1740 msec
[ 15.732042] dhd_open: Exit ret=0
[ 16.732143] dhd_set_monitor: if 0 val 1851876211,cur (null)
[ 16.803874] dhd_set_monitor: if 0 val 979594359,cur c250a800
[ 16.809545] dhd_set_monitor: Mismatched params, return
[ 17.014108] dhdcdc_set_ioctl: SET PM to 0
[ 17.324127] dhd_set_monitor: if 0 val 3,cur c250a800
[ 17.329106] dhd_set_monitor: Mismatched params, return
[ 17.531523] CFG80211-ERROR) wl_cfg80211_event :
[ 17.531539] ignore event 54, not interested
[ 17.541152] CFG80211-ERROR) wl_cfg80211_post_ifcreate :
[ 17.541171] mac_ptr:c313cb9e name:(null) role:1 nl80211_iftype:3 00:00:00:00:00:00
[ 17.561107] CFG80211-ERROR) wl_cfg80211_post_ifcreate :
[ 17.561120] Applying updated mac address to firmware
[ 17.571560] wl_ext_iapsta_attach_netdev: bssidx=1
[ 17.589309] Register interface [wl0.2] MAC: cc:4b:73:4f:d5:8a and fw 1
[ 17.589309]
[ 17.607208] Post ifcreate ops done. Returning
[ 18.605153] dhd_set_mac_addr_handler: MACID is overwritten
[ 18.647363] wl_notify_connect_status_ap: ** AP/GO Link up event **
[ 19.056563] br-lan: port 2(wl0.2) entered blocking state
[ 19.061970] br-lan: port 2(wl0.2) entered disabled state
[ 19.067772] device wl0.2 entered promiscuous mode
[ 19.072614] br-lan: port 2(wl0.2) entered blocking state
[ 19.077927] br-lan: port 2(wl0.2) entered forwarding state
[ 19.085870] CFG80211-ERROR) wl_cfg80211_scan :
[ 19.085891] Enter c29001a0 and c2900bc0 dev c31ef800
[ 19.095568] CFG80211-ERROR) __wl_cfg80211_scan :
[ 19.095578] Enter wiphy (c29001a0) cfg c2900bc0 NDEV c31ef800
[ 19.134304] wl_run_escan: LEGACY_SCAN sync ID: 0, bssidx: 0
[ 19.661776] br-lan: port 1(eth0) entered disabled state
[ 20.678499] Generic PHY stmmac-0:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)
[ 20.690624] dwmac-sun8i 1c30000.ethernet eth0: No MAC Management Counters available
[ 20.698425] dwmac-sun8i 1c30000.ethernet eth0: PTP not supported by HW
[ 67.446545] device mon0 entered promiscuous mode
[ 79.938882] CFG80211-ERROR) wl_cfg80211_scan :
[ 79.938905] Enter c29001a0 and c2900bc0 dev c31ef800
[ 79.948510] CFG80211-ERROR) __wl_cfg80211_scan :
[ 79.948518] Enter wiphy (c29001a0) cfg c2900bc0 NDEV c31ef800
[ 79.962863] wl_run_escan: LEGACY_SCAN sync ID: 1, bssidx: 0
[ 140.769157] CFG80211-ERROR) wl_cfg80211_scan :
[ 140.769180] Enter c29001a0 and c2900bc0 dev c31ef800
[ 140.778833] CFG80211-ERROR) __wl_cfg80211_scan :
[ 140.778841] Enter wiphy (c29001a0) cfg c2900bc0 NDEV c31ef800
[ 140.804472] wl_run_escan: LEGACY_SCAN sync ID: 2, bssidx: 0
[ 201.611547] CFG80211-ERROR) wl_cfg80211_scan :
[ 201.611570] Enter c29001a0 and c2900bc0 dev c31ef800
[ 201.621190] CFG80211-ERROR) __wl_cfg80211_scan :
[ 201.621198] Enter wiphy (c29001a0) cfg c2900bc0 NDEV c31ef800
[ 201.635312] wl_run_escan: LEGACY_SCAN sync ID: 3, bssidx: 0
[ 262.440293] CFG80211-ERROR) wl_cfg80211_scan :
[ 262.440315] Enter c29001a0 and c2900bc0 dev c31ef800
[ 262.449935] CFG80211-ERROR) __wl_cfg80211_scan :
[ 262.449943] Enter wiphy (c29001a0) cfg c2900bc0 NDEV c31ef800
[ 262.463833] wl_run_escan: LEGACY_SCAN sync ID: 4, bssidx: 0
[ 323.278796] CFG80211-ERROR) wl_cfg80211_scan :
[ 323.278817] Enter c29001a0 and c2900bc0 dev c31ef800
[ 323.288422] CFG80211-ERROR) __wl_cfg80211_scan :
[ 323.288431] Enter wiphy (c29001a0) cfg c2900bc0 NDEV c31ef800
[ 323.302411] wl_run_escan: LEGACY_SCAN sync ID: 5, bssidx: 0
[ 384.112576] CFG80211-ERROR) wl_cfg80211_scan :
[ 384.112598] Enter c29001a0 and c2900bc0 dev c31ef800
[ 384.122155] CFG80211-ERROR) __wl_cfg80211_scan :
[ 384.122162] Enter wiphy (c29001a0) cfg c2900bc0 NDEV c31ef800
[ 384.155264] wl_run_escan: LEGACY_SCAN sync ID: 6, bssidx: 0
uci: Entry not found
BusyBox v1.25.1 () built-in shell (ash)
-----------------------------------------------------
QMontor CLI Mode
-----------------------------------------------------
root@Dev-CC4B734FD58A:/#
从 log里面看到型号, 在官方网址中搜到了一个相似的产品: http://quallink.cn/qlnk4107.html
最近编辑记录 qianfan (2021-11-22 08:44:23)
离线
看外观是一样的啊
官网上有4107和4106, 这个是4105, 在官网上没有. 差不多的东西.
这个外壳可以在淘宝上买到, 十块以内一个.
离线
找了个usb micro贴片座子焊上, 找一条usb数据线, 把插头的塑料皮削薄点, 可以完美插入Lichee Zero中.
看了下板上有个标着flash的两个点, 万用表量了下, 是短接flash的2脚miso与gnd的. 短接可以进入BROM.
使用sunxi-fel可以读出spi flash的信息, 顺手将固件dump出来.
➜ qlnk4105 sudo sunxi-fel spiflash-info
Manufacturer: Winbond (EFh), model: 40h, size: 16777216 bytes.
➜ qlnk4105 sudo sunxi-fel spiflash-read 0 16777216 dump.bin
➜ qlnk4105 ls
dump.bin
使用gz压缩, 上传了一份:
dump.bin.gz
导出之后使用binwalk看下信息:
➜ qlnk4105 binwalk dump.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
281324 0x44AEC device tree image (dtb)
302204 0x49C7C SHA256 hash constants, little endian
344596 0x54214 CRC32 polynomial table, little endian
485312 0x767C0 device tree image (dtb)
1114112 0x110000 device tree image (dtb)
1310720 0x140000 uImage header, header size: 64 bytes, header CRC: 0x75A697B1, created: 2018-07-24 07:25:26, image size: 1654992 bytes, Data Address: 0x40008000, Entry Point: 0x40008000, data CRC: 0x8B67582D, OS: Linux, CPU: ARM, image type: Multi-File Image, compression type: lzma, image name: "ARM OpenWrt Linux-4.14.14"
1310800 0x140050 LZMA compressed data, properties: 0x6D, dictionary size: 8388608 bytes, uncompressed size: 7492928 bytes
2938080 0x2CD4E0 device tree image (dtb)
2951928 0x2D0AF8 device tree image (dtb)
2965776 0x2D4110 Squashfs filesystem, little endian, version 4.0, compression:xz, size: 6218380 bytes, 1695 inodes, blocksize: 262144 bytes, created: 2018-08-02 09:04:02
9240576 0x8D0000 JFFS2 filesystem, little endian
使用fdtdump搜搜dtb:
➜ qlnk4105 fdtdump -s dump.bin
**** fdtdump is a low-level debugging tool, not meant for general use.
**** If you want to decompile a dtb, you probably want
**** dtc -I dtb -O dts <filename>
dump.bin: found fdt at offset 0x767c0
/dts-v1/;
// magic: 0xd00dfeed
// totalsize: 0x1f24 (7972)
// off_dt_struct: 0x38
// off_dt_strings: 0x1c2c
// off_mem_rsvmap: 0x28
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
// size_dt_strings: 0x2f8
// size_dt_struct: 0x1bf4
/ {
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
interrupt-parent = <0x00000001>;
model = "Lichee Pi Zero";
compatible = "licheepi,licheepi-zero", "allwinner,sun8i-v3s";
cpus {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
cpu@0 {
compatible = "arm,cortex-a7";
device_type = "cpu";
reg = <0x00000000>;
clocks = <0x00000002 0x0000000e>;
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <0x00000001 0x0000000d 0x00000f08 0x00000001 0x0000000e 0x00000f08 0x00000001 0x0000000b 0x00000f08 0x00000001 0x0000000a 0x00000f08>;
};
clocks {
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
ranges;
osc24M_clk {
#clock-cells = <0x00000000>;
compatible = "fixed-clock";
clock-frequency = <0x016e3600>;
clock-output-names = "osc24M";
linux,phandle = <0x00000007>;
phandle = <0x00000007>;
};
osc32k_clk {
#clock-cells = <0x00000000>;
compatible = "fixed-clock";
clock-frequency = <0x00008000>;
clock-output-names = "osc32k";
linux,phandle = <0x00000008>;
phandle = <0x00000008>;
};
};
soc {
compatible = "simple-bus";
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
ranges;
syscon@01c00000 {
compatible = "allwinner,sun8i-h3-syscon", "syscon";
reg = <0x01c00000 0x00000034>;
};
mmc@01c0f000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c0f000 0x00001000>;
clocks = <0x00000002 0x00000016 0x00000002 0x0000002d 0x00000002 0x0000002f 0x00000002 0x0000002e>;
clock-names = "ahb", "mmc", "output", "sample";
resets = <0x00000002 0x00000007>;
reset-names = "ahb";
interrupts = <0x00000000 0x0000003c 0x00000004>;
status = "okay";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
pinctrl-0 = <0x00000003>;
pinctrl-names = "default";
broken-cd;
bus-width = <0x00000004>;
vmmc-supply = <0x00000004>;
};
mmc@01c10000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c10000 0x00001000>;
clocks = <0x00000002 0x00000017 0x00000002 0x00000030 0x00000002 0x00000032 0x00000002 0x00000031>;
clock-names = "ahb", "mmc", "output", "sample";
resets = <0x00000002 0x00000008>;
reset-names = "ahb";
interrupts = <0x00000000 0x0000003d 0x00000004>;
status = "disabled";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
};
mmc@01c11000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c11000 0x00001000>;
clocks = <0x00000002 0x00000018 0x00000002 0x00000033 0x00000002 0x00000035 0x00000002 0x00000034>;
clock-names = "ahb", "mmc", "output", "sample";
resets = <0x00000002 0x00000009>;
reset-names = "ahb";
interrupts = <0x00000000 0x0000003e 0x00000004>;
status = "disabled";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
};
usb@01c19000 {
compatible = "allwinner,sun8i-h3-musb";
reg = <0x01c19000 0x00000400>;
clocks = <0x00000002 0x0000001d>;
resets = <0x00000002 0x00000011>;
interrupts = <0x00000000 0x00000047 0x00000004>;
interrupt-names = "mc";
phys = <0x00000005 0x00000000>;
phy-names = "usb";
extcon = <0x00000005 0x00000000>;
status = "okay";
dr_mode = "otg";
};
phy@01c19400 {
compatible = "allwinner,sun8i-v3s-usb-phy";
reg = <0x01c19400 0x0000002c 0x01c1a800 0x00000004>;
reg-names = "phy_ctrl", "pmu0";
clocks = <0x00000002 0x00000038>;
clock-names = "usb0_phy";
resets = <0x00000002 0x00000000>;
reset-names = "usb0_reset";
status = "okay";
#phy-cells = <0x00000001>;
usb0_id_det-gpio = <0x00000006 0x00000005 0x00000006 0x00000000>;
linux,phandle = <0x00000005>;
phandle = <0x00000005>;
};
clock@01c20000 {
compatible = "allwinner,sun8i-v3s-ccu";
reg = <0x01c20000 0x00000400>;
clocks = <0x00000007 0x00000008>;
clock-names = "hosc", "losc";
#clock-cells = <0x00000001>;
#reset-cells = <0x00000001>;
linux,phandle = <0x00000002>;
phandle = <0x00000002>;
};
rtc@01c20400 {
compatible = "allwinner,sun6i-a31-rtc";
reg = <0x01c20400 0x00000054>;
interrupts = <0x00000000 0x00000028 0x00000004 0x00000000 0x00000029 0x00000004>;
};
pinctrl@01c20800 {
compatible = "allwinner,sun8i-v3s-pinctrl";
reg = <0x01c20800 0x00000400>;
interrupts = <0x00000000 0x0000000f 0x00000004 0x00000000 0x00000011 0x00000004>;
clocks = <0x00000002 0x00000025 0x00000007 0x00000008>;
clock-names = "apb", "hosc", "losc";
gpio-controller;
#gpio-cells = <0x00000003>;
interrupt-controller;
#interrupt-cells = <0x00000003>;
linux,phandle = <0x00000006>;
phandle = <0x00000006>;
emac0@0 {
allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD7", "PD8", "PD9", "PD10", "PD12", "PD13", "PD15", "PD16", "PD17";
allwinner,function = "emac";
allwinner,drive = <0x00000003>;
allwinner,pull = <0x00000000>;
};
uart0@0 {
pins = "PB8", "PB9";
function = "uart0";
bias-pull-up;
linux,phandle = <0x00000009>;
phandle = <0x00000009>;
};
mmc0@0 {
pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
function = "mmc0";
drive-strength = <0x0000001e>;
bias-pull-up;
linux,phandle = <0x00000003>;
phandle = <0x00000003>;
};
spi0 {
pins = "PC0", "PC1", "PC2", "PC3";
function = "spi0";
linux,phandle = <0x0000000a>;
phandle = <0x0000000a>;
};
ahci_pwr_pin@0 {
allwinner,pins = "PB8";
allwinner,function = "gpio_out";
allwinner,drive = <0x00000000>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000000c>;
phandle = <0x0000000c>;
};
usb0_vbus_pin@0 {
allwinner,pins = "PB9";
allwinner,function = "gpio_out";
allwinner,drive = <0x00000000>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000000d>;
phandle = <0x0000000d>;
};
usb1_vbus_pin@0 {
allwinner,pins = "PH6";
allwinner,function = "gpio_out";
allwinner,drive = <0x00000000>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000000e>;
phandle = <0x0000000e>;
};
usb2_vbus_pin@0 {
allwinner,pins = "PH3";
allwinner,function = "gpio_out";
allwinner,drive = <0x00000000>;
allwinner,pull = <0x00000000>;
linux,phandle = <0x0000000f>;
phandle = <0x0000000f>;
};
};
timer@01c20c00 {
compatible = "allwinner,sun4i-a10-timer";
reg = <0x01c20c00 0x000000a0>;
interrupts = <0x00000000 0x00000012 0x00000004 0x00000000 0x00000013 0x00000004>;
clocks = <0x00000007>;
};
watchdog@01c20ca0 {
compatible = "allwinner,sun6i-a31-wdt";
reg = <0x01c20ca0 0x00000020>;
interrupts = <0x00000000 0x00000019 0x00000004>;
};
serial@01c28000 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28000 0x00000400>;
interrupts = <0x00000000 0x00000000 0x00000004>;
reg-shift = <0x00000002>;
reg-io-width = <0x00000004>;
clocks = <0x00000002 0x00000028>;
resets = <0x00000002 0x00000031>;
status = "okay";
pinctrl-0 = <0x00000009>;
pinctrl-names = "default";
};
serial@01c28400 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28400 0x00000400>;
interrupts = <0x00000000 0x00000001 0x00000004>;
reg-shift = <0x00000002>;
reg-io-width = <0x00000004>;
clocks = <0x00000002 0x00000029>;
resets = <0x00000002 0x00000032>;
status = "disabled";
};
serial@01c28800 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28800 0x00000400>;
interrupts = <0x00000000 0x00000002 0x00000004>;
reg-shift = <0x00000002>;
reg-io-width = <0x00000004>;
clocks = <0x00000002 0x0000002a>;
resets = <0x00000002 0x00000033>;
status = "disabled";
};
spi@1c68000 {
compatible = "allwinner,sun8i-h3-spi";
reg = <0x01c68000 0x00001000>;
interrupts = <0x00000000 0x00000041 0x00000004>;
clocks = <0x00000002 0x0000001c 0x00000002 0x00000037>;
clock-names = "ahb", "mod";
pinctrl-names = "default";
pinctrl-0 = <0x0000000a>;
resets = <0x00000002 0x0000000f>;
status = "okay";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
};
ethernet@1c30000 {
compatible = "allwinner,sun8i-h3-emac";
reg = <0x01c30000 0x00000104 0x01c00030 0x00000004>;
reg-names = "emac", "syscon";
interrupts = <0x00000000 0x00000052 0x00000004>;
resets = <0x00000002 0x0000000c 0x00000002 0x00000027>;
reset-names = "ahb", "ephy";
clocks = <0x00000002 0x0000001a 0x00000002 0x0000002b>;
clock-names = "ahb", "ephy";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
status = "okay";
phy = <0x0000000b>;
phy-mode = "mii";
allwinner,use-internal-phy;
allwinner,leds-active-low;
ethernet-phy@0 {
reg = <0x00000001>;
linux,phandle = <0x0000000b>;
phandle = <0x0000000b>;
};
};
interrupt-controller@01c81000 {
compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
reg = <0x01c81000 0x00001000 0x01c82000 0x00001000 0x01c84000 0x00002000 0x01c86000 0x00002000>;
interrupt-controller;
#interrupt-cells = <0x00000003>;
interrupts = <0x00000001 0x00000009 0x00000f04>;
linux,phandle = <0x00000001>;
phandle = <0x00000001>;
};
};
ahci-5v {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <0x0000000c>;
regulator-name = "ahci-5v";
regulator-min-microvolt = <0x004c4b40>;
regulator-max-microvolt = <0x004c4b40>;
regulator-boot-on;
enable-active-high;
gpio = <0x00000006 0x00000001 0x00000008 0x00000000>;
status = "disabled";
};
usb0-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <0x0000000d>;
regulator-name = "usb0-vbus";
regulator-min-microvolt = <0x004c4b40>;
regulator-max-microvolt = <0x004c4b40>;
enable-active-high;
gpio = <0x00000006 0x00000001 0x00000009 0x00000000>;
status = "disabled";
};
usb1-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <0x0000000e>;
regulator-name = "usb1-vbus";
regulator-min-microvolt = <0x004c4b40>;
regulator-max-microvolt = <0x004c4b40>;
regulator-boot-on;
enable-active-high;
gpio = <0x00000006 0x00000007 0x00000006 0x00000000>;
status = "disabled";
};
usb2-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <0x0000000f>;
regulator-name = "usb2-vbus";
regulator-min-microvolt = <0x004c4b40>;
regulator-max-microvolt = <0x004c4b40>;
regulator-boot-on;
enable-active-high;
gpio = <0x00000006 0x00000007 0x00000003 0x00000000>;
status = "disabled";
};
vcc3v0 {
compatible = "regulator-fixed";
regulator-name = "vcc3v0";
regulator-min-microvolt = <0x002dc6c0>;
regulator-max-microvolt = <0x002dc6c0>;
};
vcc3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc3v3";
regulator-min-microvolt = <0x00325aa0>;
regulator-max-microvolt = <0x00325aa0>;
linux,phandle = <0x00000004>;
phandle = <0x00000004>;
};
vcc5v0 {
compatible = "regulator-fixed";
regulator-name = "vcc5v0";
regulator-min-microvolt = <0x004c4b40>;
regulator-max-microvolt = <0x004c4b40>;
};
binman {
filename = "u-boot-sunxi-with-spl.bin";
pad-byte = <0x000000ff>;
blob {
filename = "spl/sunxi-spl.bin";
};
u-boot-img {
pos = <0x00008000>;
};
};
aliases {
serial0 = "/soc/serial@01c28000";
ethernet0 = "/soc/ethernet@1c30000";
spi0 = "/soc/spi@1c68000";
};
chosen {
stdout-path = "serial0:115200n8";
};
};
看了下这个dtb应该是u-boot的dtb, 不是linux的, 根据binwalk的信息, 跳过u-boot部分重新扫描:
➜ qlnk4105 dd if=dump.bin of=1.dtb bs=1114112 skip=1
14+1 records in
14+1 records out
15663104 bytes (16 MB, 15 MiB) copied, 0.0180448 s, 868 MB/s
➜ qlnk4105 fdtdump -s 1.dtb
**** fdtdump is a low-level debugging tool, not meant for general use.
**** If you want to decompile a dtb, you probably want
**** dtc -I dtb -O dts <filename>
1.dtb: found fdt at offset 0
/dts-v1/;
// magic: 0xd00dfeed
// totalsize: 0x2e6e (11886)
// off_dt_struct: 0x38
// off_dt_strings: 0x2adc
// off_mem_rsvmap: 0x28
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
// size_dt_strings: 0x392
// size_dt_struct: 0x2aa4
/ {
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
interrupt-parent = <0x00000001>;
model = "Lichee Pi Zero";
compatible = "licheepi,licheepi-zero", "allwinner,sun8i-v3s";
chosen {
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
ranges;
stdout-path = "serial0:115200n8";
framebuffer@0 {
compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
allwinner,pipeline = "de0-lcd0";
clocks = <0x00000002 0x00000021 0x00000003 0x00000000 0x00000003 0x00000006 0x00000002 0x00000040>;
status = "disabled";
};
};
cpus {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
cpu@0 {
compatible = "arm,cortex-a7";
device_type = "cpu";
reg = <0x00000000>;
clocks = <0x00000002 0x0000000e>;
};
};
display-engine {
compatible = "allwinner,sun8i-v3s-display-engine";
allwinner,pipelines = <0x00000004>;
status = "disabled";
};
timer {
compatible = "arm,armv7-timer";
interrupts = <0x00000001 0x0000000d 0x00000f08 0x00000001 0x0000000e 0x00000f08 0x00000001 0x0000000b 0x00000f08 0x00000001 0x0000000a 0x00000f08>;
};
clocks {
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
ranges;
osc24M_clk {
#clock-cells = <0x00000000>;
compatible = "fixed-clock";
clock-frequency = <0x016e3600>;
clock-output-names = "osc24M";
linux,phandle = <0x0000000c>;
phandle = <0x0000000c>;
};
osc32k_clk {
#clock-cells = <0x00000000>;
compatible = "fixed-clock";
clock-frequency = <0x00008000>;
clock-output-names = "osc32k";
linux,phandle = <0x0000000d>;
phandle = <0x0000000d>;
};
};
soc {
compatible = "simple-bus";
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
ranges;
clock@1000000 {
compatible = "allwinner,sun8i-v3s-de2-clk";
reg = <0x01000000 0x00100000>;
clocks = <0x00000002 0x0000003f 0x00000002 0x00000023>;
clock-names = "mod", "bus";
resets = <0x00000002 0x00000022>;
#clock-cells = <0x00000001>;
#reset-cells = <0x00000001>;
linux,phandle = <0x00000003>;
phandle = <0x00000003>;
};
mixer@1100000 {
compatible = "allwinner,sun8i-v3s-de2-mixer";
reg = <0x01100000 0x00100000>;
clocks = <0x00000003 0x00000000 0x00000003 0x00000006>;
clock-names = "bus", "mod";
resets = <0x00000003 0x00000000>;
assigned-clocks = <0x00000003 0x00000006>;
assigned-clock-rates = <0x08f0d180>;
linux,phandle = <0x00000004>;
phandle = <0x00000004>;
ports {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
port@1 {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
reg = <0x00000001>;
endpoint@0 {
reg = <0x00000000>;
remote-endpoint = <0x00000005>;
linux,phandle = <0x00000006>;
phandle = <0x00000006>;
};
};
};
};
syscon@1c00000 {
compatible = "allwinner,sun8i-v3s-system-controller", "syscon";
reg = <0x01c00000 0x00001000>;
linux,phandle = <0x00000012>;
phandle = <0x00000012>;
};
lcd-controller@1c0c000 {
compatible = "allwinner,sun8i-v3s-tcon";
reg = <0x01c0c000 0x00001000>;
interrupts = <0x00000000 0x00000056 0x00000004>;
clocks = <0x00000002 0x00000021 0x00000002 0x00000040>;
clock-names = "ahb", "tcon-ch0";
clock-output-names = "tcon-pixel-clock";
resets = <0x00000002 0x0000001b>;
reset-names = "lcd";
status = "disabled";
ports {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
port@0 {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
reg = <0x00000000>;
endpoint@0 {
reg = <0x00000000>;
remote-endpoint = <0x00000006>;
linux,phandle = <0x00000005>;
phandle = <0x00000005>;
};
};
port@1 {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
reg = <0x00000001>;
};
};
};
dma-controller@01c02000 {
compatible = "allwinner,sun8i-v3s-dma";
reg = <0x01c02000 0x00001000>;
interrupts = <0x00000000 0x00000032 0x00000004>;
clocks = <0x00000002 0x00000015>;
resets = <0x00000002 0x00000006>;
#dma-cells = <0x00000001>;
linux,phandle = <0x0000000e>;
phandle = <0x0000000e>;
};
mmc@01c0f000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c0f000 0x00001000>;
clocks = <0x00000002 0x00000016 0x00000002 0x0000002d 0x00000002 0x0000002f 0x00000002 0x0000002e>;
clock-names = "ahb", "mmc", "output", "sample";
resets = <0x00000002 0x00000007>;
reset-names = "ahb";
interrupts = <0x00000000 0x0000003c 0x00000004>;
status = "okay";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
pinctrl-0 = <0x00000007>;
pinctrl-names = "default";
broken-cd;
bus-width = <0x00000004>;
vmmc-supply = <0x00000008>;
};
mmc@01c10000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c10000 0x00001000>;
clocks = <0x00000002 0x00000017 0x00000002 0x00000030 0x00000002 0x00000032 0x00000002 0x00000031>;
clock-names = "ahb", "mmc", "output", "sample";
resets = <0x00000002 0x00000008>;
reset-names = "ahb";
interrupts = <0x00000000 0x0000003d 0x00000004>;
pinctrl-names = "default";
pinctrl-0 = <0x00000009>;
status = "disabled";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
};
mmc@01c11000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c11000 0x00001000>;
clocks = <0x00000002 0x00000018 0x00000002 0x00000033 0x00000002 0x00000035 0x00000002 0x00000034>;
clock-names = "ahb", "mmc", "output", "sample";
resets = <0x00000002 0x00000009>;
reset-names = "ahb";
interrupts = <0x00000000 0x0000003e 0x00000004>;
status = "disabled";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
};
usb@01c19000 {
compatible = "allwinner,sun8i-h3-musb";
reg = <0x01c19000 0x00000400>;
clocks = <0x00000002 0x0000001d>;
resets = <0x00000002 0x00000011>;
interrupts = <0x00000000 0x00000047 0x00000004>;
interrupt-names = "mc";
phys = <0x0000000a 0x00000000>;
phy-names = "usb";
extcon = <0x0000000a 0x00000000>;
status = "okay";
dr_mode = "otg";
};
phy@01c19400 {
compatible = "allwinner,sun8i-v3s-usb-phy";
reg = <0x01c19400 0x0000002c 0x01c1a800 0x00000004>;
reg-names = "phy_ctrl", "pmu0";
clocks = <0x00000002 0x00000038>;
clock-names = "usb0_phy";
resets = <0x00000002 0x00000000>;
reset-names = "usb0_reset";
status = "okay";
#phy-cells = <0x00000001>;
usb0_id_det-gpio = <0x0000000b 0x00000005 0x00000006 0x00000000>;
linux,phandle = <0x0000000a>;
phandle = <0x0000000a>;
};
usb@01c1a000 {
compatible = "allwinner,sun8i-v3s-ehci", "generic-ehci";
reg = <0x01c1a000 0x00000100>;
interrupts = <0x00000000 0x00000048 0x00000004>;
clocks = <0x00000002 0x0000001e 0x00000002 0x0000001f>;
resets = <0x00000002 0x00000012 0x00000002 0x00000016>;
status = "okay";
};
usb@01c1a400 {
compatible = "allwinner,sun8i-v3s-ohci", "generic-ohci";
reg = <0x01c1a400 0x00000100>;
interrupts = <0x00000000 0x00000049 0x00000004>;
clocks = <0x00000002 0x0000001e 0x00000002 0x0000001f 0x00000002 0x00000039>;
resets = <0x00000002 0x00000012 0x00000002 0x00000016>;
status = "okay";
};
clock@01c20000 {
compatible = "allwinner,sun8i-v3s-ccu";
reg = <0x01c20000 0x00000400>;
clocks = <0x0000000c 0x0000000d>;
clock-names = "hosc", "losc";
#clock-cells = <0x00000001>;
#reset-cells = <0x00000001>;
linux,phandle = <0x00000002>;
phandle = <0x00000002>;
};
rtc@01c20400 {
compatible = "allwinner,sun6i-a31-rtc";
reg = <0x01c20400 0x00000054>;
interrupts = <0x00000000 0x00000028 0x00000004 0x00000000 0x00000029 0x00000004>;
};
pinctrl@01c20800 {
compatible = "allwinner,sun8i-v3s-pinctrl";
reg = <0x01c20800 0x00000400>;
interrupts = <0x00000000 0x0000000f 0x00000004 0x00000000 0x00000011 0x00000004>;
clocks = <0x00000002 0x00000025 0x0000000c 0x0000000d>;
clock-names = "apb", "hosc", "losc";
gpio-controller;
#gpio-cells = <0x00000003>;
interrupt-controller;
#interrupt-cells = <0x00000003>;
linux,phandle = <0x0000000b>;
phandle = <0x0000000b>;
i2c0 {
pins = "PB6", "PB7";
function = "i2c0";
linux,phandle = <0x00000011>;
phandle = <0x00000011>;
};
pwm0 {
pins = "PB4";
function = "pwm0";
};
uart0@0 {
pins = "PB8", "PB9";
function = "uart0";
linux,phandle = <0x00000010>;
phandle = <0x00000010>;
};
lcd-rgb666-pe {
pins = "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "PE18", "PE19", "PE23", "PE24";
function = "lcd";
};
mmc0@0 {
pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
function = "mmc0";
drive-strength = <0x0000001e>;
bias-pull-up;
linux,phandle = <0x00000007>;
phandle = <0x00000007>;
};
mmc1 {
pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5";
function = "mmc1";
drive-strength = <0x0000001e>;
bias-pull-up;
linux,phandle = <0x00000009>;
phandle = <0x00000009>;
};
spi0 {
pins = "PC0", "PC1", "PC2", "PC3";
function = "spi0";
linux,phandle = <0x00000014>;
phandle = <0x00000014>;
};
};
timer@01c20c00 {
compatible = "allwinner,sun4i-a10-timer";
reg = <0x01c20c00 0x000000a0>;
interrupts = <0x00000000 0x00000012 0x00000004 0x00000000 0x00000013 0x00000004>;
clocks = <0x0000000c>;
};
watchdog@01c20ca0 {
compatible = "allwinner,sun6i-a31-wdt";
reg = <0x01c20ca0 0x00000020>;
interrupts = <0x00000000 0x00000019 0x00000004>;
};
pwm@1c21400 {
compatible = "allwinner,sun8i-v3s-pwm", "allwinner,sun7i-a20-pwm";
reg = <0x01c21400 0x00000400>;
clocks = <0x0000000c>;
#pwm-cells = <0x00000003>;
status = "disabled";
};
lradc@1c22800 {
compatible = "allwinner,sun4i-a10-lradc-keys";
reg = <0x01c22800 0x00000400>;
interrupts = <0x00000000 0x0000001e 0x00000004>;
status = "disabled";
};
codec@01c22c00 {
#sound-dai-cells = <0x00000000>;
compatible = "allwinner,sun8i-v3s-codec";
reg = <0x01c22c00 0x00000400>;
interrupts = <0x00000000 0x0000001d 0x00000004>;
clocks = <0x00000002 0x00000024 0x00000002 0x00000046>;
clock-names = "apb", "codec";
resets = <0x00000002 0x00000028>;
dmas = <0x0000000e 0x0000000f 0x0000000e 0x0000000f>;
dma-names = "rx", "tx";
allwinner,codec-analog-controls = <0x0000000f>;
status = "disabled";
};
codec-analog@01c23000 {
compatible = "allwinner,sun8i-v3s-codec-analog";
reg = <0x01c23000 0x00000004>;
linux,phandle = <0x0000000f>;
phandle = <0x0000000f>;
};
serial@01c28000 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28000 0x00000400>;
interrupts = <0x00000000 0x00000000 0x00000004>;
reg-shift = <0x00000002>;
reg-io-width = <0x00000004>;
clocks = <0x00000002 0x00000028>;
resets = <0x00000002 0x00000031>;
status = "okay";
pinctrl-0 = <0x00000010>;
pinctrl-names = "default";
};
serial@01c28400 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28400 0x00000400>;
interrupts = <0x00000000 0x00000001 0x00000004>;
reg-shift = <0x00000002>;
reg-io-width = <0x00000004>;
clocks = <0x00000002 0x00000029>;
resets = <0x00000002 0x00000032>;
status = "disabled";
};
serial@01c28800 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28800 0x00000400>;
interrupts = <0x00000000 0x00000002 0x00000004>;
reg-shift = <0x00000002>;
reg-io-width = <0x00000004>;
clocks = <0x00000002 0x0000002a>;
resets = <0x00000002 0x00000033>;
status = "disabled";
};
i2c@01c2ac00 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x01c2ac00 0x00000400>;
interrupts = <0x00000000 0x00000006 0x00000004>;
clocks = <0x00000002 0x00000026>;
resets = <0x00000002 0x0000002e>;
pinctrl-names = "default";
pinctrl-0 = <0x00000011>;
status = "okay";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
ns2009@48 {
compatible = "nsiway,ns2009";
reg = <0x00000048>;
};
};
i2c@01c2b000 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x01c2b000 0x00000400>;
interrupts = <0x00000000 0x00000007 0x00000004>;
clocks = <0x00000002 0x00000027>;
resets = <0x00000002 0x0000002f>;
status = "disabled";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
};
ethernet@1c30000 {
compatible = "allwinner,sun8i-v3s-emac";
syscon = <0x00000012>;
reg = <0x01c30000 0x00010000>;
interrupts = <0x00000000 0x00000052 0x00000004>;
interrupt-names = "macirq";
resets = <0x00000002 0x0000000c>;
reset-names = "stmmaceth";
clocks = <0x00000002 0x0000001a>;
clock-names = "stmmaceth";
phy-handle = <0x00000013>;
phy-mode = "mii";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
status = "disabled";
mdio {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0x00000001>;
clocks = <0x00000002 0x0000002b>;
resets = <0x00000002 0x00000027>;
phy-is-integrated;
linux,phandle = <0x00000013>;
phandle = <0x00000013>;
};
};
};
spi@1c68000 {
compatible = "allwinner,sun8i-h3-spi";
reg = <0x01c68000 0x00001000>;
interrupts = <0x00000000 0x00000041 0x00000004>;
clocks = <0x00000002 0x0000001c 0x00000002 0x00000037>;
clock-names = "ahb", "mod";
pinctrl-names = "default";
pinctrl-0 = <0x00000014>;
resets = <0x00000002 0x0000000f>;
status = "okay";
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
mx25l25635e@0 {
compatible = "jedec,spi-nor";
reg = <0x00000000>;
spi-max-frequency = <0x02faf080>;
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
m25p,fast-read;
m25p,chunked-io = <0x00000020>;
partition@0 {
label = "u-boot";
reg = <0x00000000 0x00100000>;
read-only;
};
partition@100000 {
label = "u-boot-env";
reg = <0x00100000 0x00010000>;
};
partition@110000 {
label = "dtb";
reg = <0x00110000 0x00010000>;
read-only;
};
partition@120000 {
label = "factory";
reg = <0x01220000 0x00010000>;
read-only;
};
partition@130000 {
label = "misc";
reg = <0x00130000 0x00010000>;
read-only;
};
partition@140000 {
label = "firmware";
reg = <0x00140000 0x00ec0000>;
};
};
};
interrupt-controller@01c81000 {
compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
reg = <0x01c81000 0x00001000 0x01c82000 0x00001000 0x01c84000 0x00002000 0x01c86000 0x00002000>;
interrupt-controller;
#interrupt-cells = <0x00000003>;
interrupts = <0x00000001 0x00000009 0x00000f04>;
linux,phandle = <0x00000001>;
phandle = <0x00000001>;
};
};
ahci-5v {
compatible = "regulator-fixed";
regulator-name = "ahci-5v";
regulator-min-microvolt = <0x004c4b40>;
regulator-max-microvolt = <0x004c4b40>;
regulator-boot-on;
enable-active-high;
gpio = <0x0000000b 0x00000001 0x00000008 0x00000000>;
status = "disabled";
};
usb0-vbus {
compatible = "regulator-fixed";
regulator-name = "usb0-vbus";
regulator-min-microvolt = <0x004c4b40>;
regulator-max-microvolt = <0x004c4b40>;
enable-active-high;
gpio = <0x0000000b 0x00000001 0x00000009 0x00000000>;
status = "disabled";
};
usb1-vbus {
compatible = "regulator-fixed";
regulator-name = "usb1-vbus";
regulator-min-microvolt = <0x004c4b40>;
regulator-max-microvolt = <0x004c4b40>;
regulator-boot-on;
enable-active-high;
gpio = <0x0000000b 0x00000007 0x00000006 0x00000000>;
status = "disabled";
};
usb2-vbus {
compatible = "regulator-fixed";
regulator-name = "usb2-vbus";
regulator-min-microvolt = <0x004c4b40>;
regulator-max-microvolt = <0x004c4b40>;
regulator-boot-on;
enable-active-high;
gpio = <0x0000000b 0x00000007 0x00000003 0x00000000>;
status = "disabled";
};
vcc3v0 {
compatible = "regulator-fixed";
regulator-name = "vcc3v0";
regulator-min-microvolt = <0x002dc6c0>;
regulator-max-microvolt = <0x002dc6c0>;
};
vcc3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc3v3";
regulator-min-microvolt = <0x00325aa0>;
regulator-max-microvolt = <0x00325aa0>;
linux,phandle = <0x00000008>;
phandle = <0x00000008>;
};
vcc5v0 {
compatible = "regulator-fixed";
regulator-name = "vcc5v0";
regulator-min-microvolt = <0x004c4b40>;
regulator-max-microvolt = <0x004c4b40>;
};
aliases {
serial0 = "/soc/serial@01c28000";
};
leds {
compatible = "gpio-leds";
blue_led {
label = "licheepi:blue:usr";
gpios = <0x0000000b 0x00000006 0x00000001 0x00000001>;
};
green_led {
label = "licheepi:green:usr";
gpios = <0x0000000b 0x00000006 0x00000000 0x00000001>;
default-state = "on";
};
red_led {
label = "licheepi:red:usr";
gpios = <0x0000000b 0x00000006 0x00000002 0x00000001>;
};
};
};
最近编辑记录 qianfan (2021-11-22 10:30:37)
离线
这个研究也太迅猛了, 看了下log是OpenWRT系统?
这个倒是可以用于学习如何快速搭建产品模型。好简洁的PCB。
是openwrt, 之前没搞过这个, 正好好好学习下.
看到文件系统和内核uImage文件打包到一块了, 直接使用bootm启动, 还有这种骚操作.
离线