<feed xmlns="http://www.w3.org/2005/Atom">
  <title></title>
  <link href="https://brianredbeard.com/index.xml" rel="self"/>
  <link href="https://brianredbeard.com/"/>
  <updated>2026-02-01T00:00:00-08:00</updated>
  <id>https://brianredbeard.com/</id>
  <generator>Hugo -- gohugo.io</generator>
  <entry>
    <title type="html"><![CDATA[CI Haiku]]></title>
    <link href="https://brianredbeard.com/blog/ci-haiku/"/>
    <id>https://brianredbeard.com/blog/ci-haiku/</id>
    <published>2026-02-01T00:00:00-08:00</published>
    <updated>2026-02-01T00:00:00-08:00</updated>
    
    <content type="html"><![CDATA[<p>c/i job runner</p>
<p>warning message in testing</p>
<p>words are never seen</p>
]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Odd Flex Scaleway]]></title>
    <link href="https://brianredbeard.com/blog/odd-flex-scaleway/"/>
    <id>https://brianredbeard.com/blog/odd-flex-scaleway/</id>
    <published>2025-07-26T23:31:59-07:00</published>
    <updated>2025-07-26T23:31:59-07:00</updated>
    
    <content type="html"><![CDATA[<p>I recently needed to do some MacOS development.  Thank god for Scaleway.  I
opened a ticket with AWS to get my <code>mac2.metal</code> quota limit raised from 0 to 2.
It's been two days without getting access to the service, but Scaleway had a
simple clickthrough.  I'm happy to pay to play.  This isn't some rocket science,
I just want to simulate my &quot;runner&quot; while also being able to troubleshoot it in
realtime.</p>
<p>That aside, I found it interesting that someone on the Scaleway team scheduled a
copy of Fail2Ban utilizing Python 2.7 into the image.  Seems like a really weird
route to go.</p>
<pre tabindex="0"><code>i    0   365     1   0 12:31AM ??         0:08.57 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/fail2ban-server -s /opt/local/var/run/fail2ban/fail2ban.sock -p /opt/local/var/run/fail2ban/fail2ban.pid -b
</code></pre><p>Honestly, I have to laugh. In mid-2025, spinning up a macOS cloud instance and
finding Fail2ban running under Python 2.7 feels a bit like discovering a floppy
drive welded onto a Cybertruck. Python 2.7’s been dead for years (official EOL:
January 2020), and any security-conscious admin has nightmares about legacy
interpreters lurking in the shadows.</p>
<p>Let’s review what this means: Fail2ban itself is a solid piece of software for
blocking sketchy login attempts, but the moment it’s paired with an unsupported
interpreter, all bets are off security-wise. There's a non-zero chance—let's be
honest, it's nearing 100%—that the shipped Fail2ban version is also years out of
date, missing critical patches.</p>
<p>It feels like someone at Scaleway just went with whatever the MacPorts default
was... sometime in 2018? Maybe the maintenance scripts just keep copying the same
disk image release-to-release, propping up Python 2.7 like a weekend-at-Bernie’s
sysadmin situation.</p>
<p>To be clear, I’m all for turnkey dev-VMs. But if you’re selling a premium
service to folks presumably handling code and secrets, maybe press that update
button once a decade? Or try, I don’t know, Python 3—if only for the faint
illusion of caring about security.</p>
<p>Meanwhile, I’ll take it as a reminder to verify everything on any cloud box, no
matter how shiny or expensive. “Works out of the box” should never mean “shipped
straight fuck it YOLO running as root.”</p>
<p>Again though!  At the end of the day Scaleway wins because they didn't get in my
way, they just handed me a machine which needed XCode Command Line updates and a
bit of screwing around with Homebrew to get to a solid state.</p>
<p>Now I can go back to working on crosstool-ng.</p>
]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Bambulab X1C v1.00.00.52 Boot Log]]></title>
    <link href="https://brianredbeard.com/blog/bbl-boot-log/"/>
    <id>https://brianredbeard.com/blog/bbl-boot-log/</id>
    <published>2025-06-12T17:05:27-07:00</published>
    <updated>2025-06-12T17:05:27-07:00</updated>
    
    <content type="html"><![CDATA[<p>Sitting on the back burner of my &quot;get around to it&quot; list has been messing with
the firmware of the Bambulab X1 Carbon.  I knew from the start that Bambulab was
up to shenanigans (at best) and malfesance at worst.  So the firmware on my
device has <em>never</em> been updated.  I'm sure there is a treasure trove of GPL
violations (beyond the GPL violations in BambuSlicer due to failing to open
source the network connectivity code).</p>
<p>About a week ago I decided to do some poking at the problem.  Almost immediately
I was annoyed because they're playing games with the UART.  If one hooks up a
UART connection to the labeled port on the board <em>seemingly</em> there is no output.
I found this a bit hard to believe and so I hooked up the oscilloscope and began
to take a look.</p>
<p>I started by measuring the minimum width of the UART pulses.  Zooming in on the
start bit, i saw a duration of 680 ns.</p>
<p>If the start bit duration is 680 ns, the baud rate is calculated as the reciprocal of the bit time:</p>
<span class="katex"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mtext>Baud Rate</mtext><mo>=</mo><mfrac><mn>1</mn><mrow><mn>680</mn><mo>×</mo><msup><mn>10</mn><mrow><mo>−</mo><mn>9</mn></mrow></msup><mtext> </mtext><mtext>seconds</mtext></mrow></mfrac><mo>≈</mo><mn>1</mn><mo separator="true">,</mo><mn>470</mn><mo separator="true">,</mo><mn>588</mn><mtext> </mtext><mtext>baud</mtext></mrow><annotation encoding="application/x-tex"> \text{Baud Rate} = \frac{1}{680 \times 10^{-9} \, \text{seconds}} \approx 1,470,588 \, \text{baud} </annotation></semantics></math></span><p>This corresponds to approximately <strong>1.47 Mbps</strong>.</p>
<p>I assumed that the <em>actual</em> bit rate was more likely 1.50 Mbps... Putting those
values into the built-in protocol decoder I was able to verify that this was
correct.  I was able to catch output during the memory training phase where
<code>DDR3, 328MHz</code> where mentioned, validating I was on the correct track.</p>
<p>I went back to my FTDI FT232H adapter, put in the correct settings, but still
wasn't able to see the output.  Something funky was going on...</p>
<p>Fast forward a few days.  I wonder if my <a href="https://glasgow-embedded.org/">Glasgow</a> would have any more lluck?</p>
<p>Turns out I did.  After a bit of futzing I was able to get the following output.</p>
<p>Through trial and error I've found that the logic level to 3.2v (the voltage
level detected when I used the sense pin) and confirmed the baud rate is 1500000
(<code>glasgow run uart -V 3.2 -b 1500000</code>).</p>
<p>There is some garbage at the beginning of the transaction which seems to be
causing problems with the FT232H.  As long as I start with the power to the 3D
printer off, launch <code>glasgow</code>, and then power on the printer, I'm able to get
output which can be decoded.</p>
<p>Here's the boot output for Firmware version <code>1.00.00.52</code>.  Note: The first line
is a warning from Glasgow about the binary data received.</p>
<pre tabindex="0"><code>W: g.applet.interface.uart: 7872 receive errors detected           
DDR Version V1.08 20210825                                                                                                                                                                                                                 
DDR3, 328MHz                                                                                                                                                                                                                               
BW=16 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=512MB
change to: 328MHz                      
change to: 528MHz          
change to: 784MHz            
change to: 924MHz(final freq)
out                                                                                                                  
U-Boot SPL board init                     
U-Boot SPL 2017.09-ge0859633cf #ci.slave (Sep 13 2022 - 22:53:54)
Trying to boot from MMC1                   
SPL: A/B-slot: _a, successful: 0, tries-remain: 7                                                                    
## Verified-boot: 1                                                                                                  
sha256,rsa2048:dev## Verified-boot: 1                                                                                
+                                                      
rollback index: 0 &gt;= 0(min), OK       
## Checking optee 0x08400000 (gzip @0x08600000) ... sha256(b34d996c76...) + sha256(bae962097a...) + OK
## Checking uboot 0x00600000 (gzip @0x00800000) ... sha256(fd80a78d3d...) + sha256(bba8d6dcd1...) + OK               
## Checking fdt 0x006bdfb8 ... sha256(96b900e6c3...) + OK
Jumping to U-Boot(0x00600000) via OP-TEE(0x08400000)      
Total: 85.896 ms   
                                                          
I/TC:                                             
I/TC: cpu feature:0x0                                                                                                                                                                                                                      
I/TC: RV1126 SoC                                                                                                     
I/TC: cpu_st=0xe0                                                                                                    
I/TC: Next entry point address: 0x00600000                                                                           
I/TC: OP-TEE version: 3.13.0-515-g7b4275734 #zhangzj (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)) #1 Wed Aug  4 03:30:34 UTC 2021 arm
I/TC: Primary CPU initializing                                                                                       
I/TC: Primary CPU switching to normal world boot


U-Boot 2017.09-ge0859633cf #ci.slave (Sep 13 2022 - 22:53:54 +0800), Build: jenkins-DB_RK-1135

Model: Rockchip RV1126 Evaluation Board
PreSerial: 2, raw, 0xff570000
DRAM:  509.7 MiB
Sysmem: init
Relocation Offset: 00000000
Relocation fdt: 1bbf9d88 - 1bbfedd0
CR: M/C/I
Using default environment

Cmd interface: disabled
dwmmc@ffc50000: 0, dwmmc@ffc60000: 1
Bootdev(atags): mmc 0
optee api revision: 2.0
MMC0: HS200, 200Mhz
PartType: EFI
A/B-slot: _a, successful: 0, tries-remain: 7
TEEC: Waring: Could not find security partition
## Verified-boot: 1
MMC0: HS200, 200Mhz
PartType: EFI
boot mode: None
conf: sha256,rsa2048:dev+
resource: sha256+
FIT: signed, conf required
DTB: rv1126-bl-p001-v5_c#_saradc_ch1=683#_saradc_ch2=505.dtb
HASH(c): OK
I2c0 speed: 400000Hz
PMIC:  RK8090 (on=0x40, off=0x00)
vdd_vepu_npu init 800000 uV
vdd_arm 800000 uV
io-domain: OK
Can&#39;t get crtc id, default set to id = 0
Could not find baseparameter partition
Model: Bamboo Lab 3D Printer P001 v05 Board panel_a
Rockchip UBOOT DRM driver version: v1.0.1
Using display timing dts
dsi@ffb30000:  detailed mode clock 71000 kHz, flags[a]
    H: 0720 0790 0810 0870
    V: 1280 1300 1304 1331
bus_format: 100e
final DSI-Link bandwidth: 480 Mbps x 4
CLK: (sync kernel. arm: enter 816000 KHz, init 816000 KHz, kernel 0N/A)
  apll 816000 KHz
  dpll 462000 KHz
  gpll 1188000 KHz
  cpll 500000 KHz
  hpll 1400000 KHz
  aclk_pdbus 500000 KHz
  hclk_pdbus 198000 KHz
  pclk_pdbus 99000 KHz
  aclk_pdphp 297000 KHz
  hclk_pdphp 198000 KHz
  hclk_pdaudio 148500 KHz
  hclk_pdcore 198000 KHz
  pclk_pdpmu 99000 KHz
Net:   eth0: ethernet@ffc40000
Hit key to stop autoboot(&#39;CTRL+C&#39;):  0
## Booting FIT Image at 0x1b365140 with size 0x00691c00
Fdt Ramdisk skip relocation
## Loading kernel from FIT Image at 1b365140 ...
   Using &#39;conf&#39; configuration
## Verified-boot: 1
   Verifying Hash Integrity ... sha256,rsa2048:dev+ OK
   Verifying Rollback-index ... Initial otp index as 0
0 &gt;= 0(min), OK
   Trying &#39;kernel&#39; kernel subimage
     Description:  unavailable
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x1b37cd40
     Data Size:    6790928 Bytes = 6.5 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x02008000
     Entry Point:  0x02008000
     Hash algo:    sha256
     Hash value:   3d5bc548f4ba36e6f5b722fd9fd6d5b45043bf25043775b8a93200e947260b4c
   Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 1b365140 ...
   Using &#39;conf&#39; configuration
   Trying &#39;fdt&#39; fdt subimage
     Description:  unavailable
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x1b365f40
     Data Size:    93210 Bytes = 91 KiB
     Architecture: ARM
     Load Address: 0x08300000
     Hash algo:    sha256
     Hash value:   33b90ee0bf9a12df2511d3d7e6baa0a01665713aae1330256acb4f8505c7ef31
   Verifying Hash Integrity ... sha256+ OK
   Loading fdt from 0x08300000 to 0x08300000
   Booting using the fdt blob at 0x08300000
   Loading Kernel Image from 0x1b37cd40 to 0x02008000 ... OK
  &#39;reserved-memory&#39; iotrace@7c00000: addr=7c00000 size=400000
  &#39;reserved-memory&#39; ramoops@8000000: addr=8000000 size=100000
   Using Device Tree in place at 08300000, end 0831a8fa
failed to reserve drm-cubic-lut memory
Adding bank: 0x00000000 - 0x08400000 (size: 0x08400000)
Adding bank: 0x08648000 - 0x20000000 (size: 0x179b8000)
Total: 1254.104 ms

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0xf00
[    0.000000] Linux version 4.19.111 (ci.slave@glock13) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)) #1 SMP PREEMPT Tue Sep 13 22:29:57 CST 2022
[    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: Bamboo Lab 3D Printer P001 v05 Board panel_a
[    0.000000] earlycon: uart8250 at MMIO32 0xff570000 (options &#39;&#39;)
[    0.000000] bootconsole [uart8250] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Reserved memory: created CMA memory pool at 0x1f800000, size 8 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Reserved memory: created CMA memory pool at 0x1c400000, size 24 MiB
[    0.000000] OF: reserved mem: initialized node isp, compatible id shared-dma-pool
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] percpu: Embedded 15 pages/cpu s32268 r8192 d20980 u61440
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 128440
[    0.000000] Kernel command line: user_debug=31 storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal boot_reason=cold mp_state=production fuse.programmed=1 androidboot.slot_suffix=_a root=PARTUUID=ec80b46b-853f-47c
c-a948-39e36bb85d34 rootwait earlycon=uart8250,mmio32,0xff570000 console=ttyFIQ0 rootfstype=ext4 snd_aloop.index=7
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 459496K/517856K available (9216K kernel code, 432K rwdata, 2180K rodata, 1024K init, 304K bss, 25592K reserved, 32768K 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 : 0xd0800000 - 0xff800000   ( 752 MB)
[    0.000000]     lowmem  : 0xb0000000 - 0xd0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xafe00000 - 0xb0000000   (   2 MB)
[    0.000000]     modules : 0xaf000000 - 0xafe00000   (  14 MB)
[    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (10208 kB)
[    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
[    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 433 kB)
[    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 305 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000]  Tasks RCU enabled.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] random: random: get_random_bytes called from start_kernel+0x324/0x4a4 with crng_init=0
[    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.000009] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000706] Switching to timer-based delay loop, resolution 41ns
[    0.002491] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=24000)
[    0.003387] pid_max: default: 4096 minimum: 301
[    0.004015] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.004596] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.005915] CPU: Testing write buffer coherency: ok
[    0.006763] /cpus/cpu@f00 missing clock-frequency property
[    0.007259] /cpus/cpu@f01 missing clock-frequency property
[    0.007784] /cpus/cpu@f02 missing clock-frequency property
[    0.008277] /cpus/cpu@f03 missing clock-frequency property
[    0.008763] CPU0: thread -1, cpu 0, socket 15, mpidr 80000f00
[    0.010050] Setting up static identity map for 0x100000 - 0x100060
[    0.010754] rcu: Hierarchical SRCU implementation.
[    0.012005] smp: Bringing up secondary CPUs ...
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
I/TC: Secondary CPU 3 initializing
I/TC: Secondary CPU 3 switching to normal world boot
[    0.013972] CPU1: thread -1, cpu 1, socket 15, mpidr 80000f01
[    0.015717] CPU2: thread -1, cpu 2, socket 15, mpidr 80000f02
[    0.017359] CPU3: thread -1, cpu 3, socket 15, mpidr 80000f03
[    0.017505] smp: Brought up 1 node, 4 CPUs
[    0.019427] SMP: Total of 4 processors activated (192.00 BogoMIPS).
[    0.019987] CPU: All CPU(s) started in SVC mode.
[    0.021237] devtmpfs: initialized
[    0.048191] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.049578] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.050515] futex hash table entries: 16 (order: -2, 1024 bytes)
[    0.051168] pinctrl core: initialized pinctrl subsystem
[    0.052883] NET: Registered protocol family 16
[    0.054134] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.056205] register kpanic driver ok
[    0.056569] register iotrace driver ok
[    0.057400] cpuidle: using governor menu
[    0.057789] Registered FIQ tty driver
[    0.058784] hw-breakpoint: Failed to enable monitor mode on CPU 0.
[    0.061737] console [pstore-1] enabled
[    0.062348] pstore: Registered ramoops as persistent store backend
[    0.062930] ramoops: attached 0x100000@0x8000000, ecc: 0/0
[    0.066601] kpanic ffc50000.kpanic: using Device Tree
[    0.067074] kpanic ffc50000.kpanic: emmc base 0xd0948000
[    0.067584] kpanic ffc50000.kpanic: cru base 0xd081d000
[    0.068091] kernel panic handler initialized
[    0.068751] iotrace iotrace: using Device Tree
[    0.069251] iotrace iotrace: part_base[0]: 0xd098001c, offset[0]: 0x0
[    0.069852] iotrace iotrace: part_base[1]: 0xd0a8000c, offset[1]: 0x0
[    0.070447] iotrace iotrace: part_base[2]: 0xd0b7fffc, offset[2]: 0x0
[    0.071039] iotrace iotrace: part_base[3]: 0xd0c7ffec, offset[3]: 0x0
[    0.071612] iotrace iotrace: reserve start phy: 0x7c00000, size: 0x400000,
[    0.071612] iotrace buffer start vaddr: 0xd098001c, buffer end vaddr: 0xd0d7ffdc, buffer size 0x3fffc0, total cnt is 349520 ,part_cnt is 87380
[    0.073341] iotrace iotrace: no magic, do not has records
[    0.118652] cryptd: max_cpu_qlen set to 1000
[    0.119956] fiq debugger fiq mode enabled
[[    0.120750] console [ttyFIQ0] enabled
    0.120750] console [ttyFIQ0] enabled
[    0.121449] bootconsole [uart8250] disabled
[    0.121449] bootconsole [uart8250] disabled
[    0.122114] Registered fiq debugger ttyFIQ0
[    0.124441] vccio_sdio: regulator get failed, ret=-517
[    0.124679] vdd_logic: supplied by vcc5v0_sys
[    0.125709] rk_iommu ffb00f00.iommu: version = 1
[    0.126368] rk_iommu ffb60e00.iommu: version = 1
[    0.127067] rk_iommu ffb80480.iommu: version = 1
[    0.127508] rk_iommu ffb90800.iommu: version = 1
[    0.127940] rk_iommu ffbb0f00.iommu: version = 1
[    0.128878] SCSI subsystem initialized
[    0.129183] usbcore: registered new interface driver usbfs
[    0.129287] usbcore: registered new interface driver hub
[    0.129403] usbcore: registered new device driver usb
[    0.129508] media: Linux media interface: v0.10
[    0.129609] videodev: Linux video capture interface: v2.00
[    0.129685] pps_core: LinuxPPS API ver. 1 registered
[    0.129710] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti &lt;giometti@linux.it&gt;
[    0.129755] PTP clock support registered
[    0.131149] Advanced Linux Sound Architecture Driver Initialized.
[    0.131879] Bluetooth: Core ver 2.22
[    0.131971] NET: Registered protocol family 31
[    0.131996] Bluetooth: HCI device and connection manager initialized
[    0.132026] Bluetooth: HCI socket layer initialized
[    0.132054] Bluetooth: L2CAP socket layer initialized
[    0.132114] Bluetooth: SCO socket layer initialized
[    0.132741] rockchip-cpuinfo cpuinfo: SoC            : 11260000
[    0.132776] rockchip-cpuinfo cpuinfo: Serial         : 218fd8dc7f66acdc
[    0.133943] clocksource: Switched to clocksource arch_sys_counter
[    0.136691] NET: Registered protocol family 2
[    0.137579] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
[    0.137640] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.137734] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    0.137846] TCP: Hash tables configured (established 4096 bind 4096)
[    0.138054] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.138109] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.138327] NET: Registered protocol family 1
[    0.140435] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    0.143118] Initialise system trusted keyrings
[    0.143408] workingset: timestamp_bits=29 max_order=17 bucket_order=0
[    0.151215] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.154075] Key type asymmetric registered
[    0.154109] Asymmetric key parser &#39;x509&#39; registered
[    0.154182] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[    0.154211] io scheduler noop registered
[    0.154233] io scheduler deadline registered
[    0.154411] io scheduler cfq registered (default)
[    0.154440] io scheduler mq-deadline registered
[    0.154463] io scheduler kyber registered
[    0.154617] io scheduler bfq registered
[    0.158657] phy phy-ff4c0000.usb2-phy.1: Failed to get VBUS supply regulator
[    0.160596] rockchip-usb2phy-naneng ff4c8000.usb2-phy: failed to create phy
[    0.163377] pwm-backlight backlight: backlight supply power not found, using dummy regulator
[    0.163508] pwm-backlight backlight: Linked as a consumer to regulator.0
[    0.163898] mpp_service mpp-srv: 92c80ddf68f6 author: Yandong Lin 2021-08-10 video: rockchip: mpp: workaround patch for rv1126 iommu issue
[    0.163964] mpp_service mpp-srv: probe start
[    0.164960] iommu: Adding device ffb80000.rkvdec to group 2
[    0.165020] mpp_rkvdec ffb80000.rkvdec: Linked as a consumer to ffb80480.iommu
[    0.165228] mpp_rkvdec ffb80000.rkvdec: probing start
[    0.165860] mpp_rkvdec ffb80000.rkvdec: shared_niu_a is not found!
[    0.165895] rkvdec_init:1190: No niu aclk reset resource define
[    0.165966] mpp_rkvdec ffb80000.rkvdec: shared_niu_h is not found!
[    0.165991] rkvdec_init:1193: No niu hclk reset resource define
[    0.166352] mpp_rkvdec ffb80000.rkvdec: probing finish
[    0.167164] iommu: Adding device ffbb0000.rkvenc to group 4
[    0.167222] mpp_rkvenc ffbb0000.rkvenc: Linked as a consumer to ffbb0f00.iommu
[    0.167525] mpp_rkvenc ffbb0000.rkvenc: probing start
[    0.168163] mpp_rkvenc ffbb0000.rkvenc: venc regulator not ready, retry
[    0.168200] rkvenc_init:1202: failed to add venc devfreq
[    0.169362] iommu: Adding device ffb90400.vdpu to group 3
[    0.169423] mpp_vdpu2 ffb90400.vdpu: Linked as a consumer to ffb90800.iommu
[    0.169531] mpp_vdpu2 ffb90400.vdpu: probe device
[    0.170086] mpp_vdpu2 ffb90400.vdpu: reset_group-&gt;rw_sem_on=0
[    0.170134] mpp_vdpu2 ffb90400.vdpu: reset_group-&gt;rw_sem_on=0
[    0.170387] mpp_vdpu2 ffb90400.vdpu: probing finish
[    0.171039] iommu: Adding device ffb90000.vepu to group 3
[    0.171099] mpp_vepu2 ffb90000.vepu: Linked as a consumer to ffb90800.iommu
[    0.171227] mpp_vepu2 ffb90000.vepu: probe device
[    0.171716] mpp_vepu2 ffb90000.vepu: reset_group-&gt;rw_sem_on=0
[    0.171748] mpp_vepu2 ffb90000.vepu: reset_group-&gt;rw_sem_on=0
[    0.172009] mpp_vepu2 ffb90000.vepu: probing finish
[    0.172543] mpp_service mpp-srv: probe success
[    0.177905] dma-pl330 ff4e0000.dma-controller: Loaded driver for PL330 DMAC-241330
[    0.178000] dma-pl330 ff4e0000.dma-controller:       DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
[    0.180024] rockchip-system-monitor rockchip-system-monitor: system monitor probe
[    0.181644] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
[    0.182507] ff410000.serial: ttyS1 at MMIO 0xff410000 (irq = 30, base_baud = 1500000) is a 16550A
[    0.183327] ff560000.serial: ttyS0 at MMIO 0xff560000 (irq = 33, base_baud = 1500000) is a 16550A
[    0.185416] random: fast init done
[    0.185818] random: crng init done
[    0.186317] iommu: Adding device ffb00000.vop to group 0
[    0.186379] rockchip-vop ffb00000.vop: Linked as a consumer to ffb00f00.iommu
[    0.190394] rockchip-drm display-subsystem: Linked as a consumer to ffb00000.vop
[    0.191377] rockchip-drm display-subsystem: Linked as a consumer to ffb30000.dsi
[    0.192654] rockchip-drm display-subsystem: devfreq is not set
[    0.193170] rockchip-drm display-subsystem: bound ffb00000.vop (ops 0xb0a44600)
[    0.193236] dw-mipi-dsi ffb30000.dsi: [drm:dw_mipi_dsi_bind] *ERROR* Failed to find panel or bridge: -517
[    0.193274] rockchip-drm display-subsystem: failed to bind ffb30000.dsi (ops 0xb0a4ad34): -517
[    0.193542] rockchip-drm display-subsystem: master bind failed: -517
[    0.199681] zram: Added device: zram0
[    0.201702] libphy: Fixed MDIO Bus: probed
[    0.204553] dwc3 ffd00000.dwc3: Failed to get clk &#39;ref&#39;: -2
[    0.210029] ehci_hcd: USB 2.0 &#39;Enhanced&#39; Host Controller (EHCI) Driver
[    0.210069] ehci-platform: EHCI generic platform driver
[    0.210764] ohci_hcd: USB 1.1 &#39;Open&#39; Host Controller (OHCI) Driver
[    0.210821] ohci-platform: OHCI generic platform driver
[    0.211507] usbcore: registered new interface driver usb-storage
[    0.211914] [tlsc] tlsc6x_init: ++
[    0.212275] i2c /dev entries driver
[    0.214207] rk808 0-0020: chip id: 0x8090
[    0.214317] rk808 0-0020: No cache defaults, reading back from HW
[    0.220755] rk808 0-0020: source: on=0x40, off=0x00
[    0.220797] rk808 0-0020: support dcdc3 fb mode:-22, -1330211820
[    0.220821] rk808 0-0020: support pmic reset mode:0,0
[    0.225245] rk808-regulator rk808-regulator: there is no dvs0 gpio
[    0.225367] rk808-regulator rk808-regulator: there is no dvs1 gpio
[    0.225472] DCDC_REG1: supplied by vcc5v0_sys
[    0.226221] DCDC_REG2: supplied by vcc5v0_sys
[    0.226845] DCDC_REG3: supplied by vcc5v0_sys
[    0.227406] DCDC_REG4: supplied by vcc5v0_sys
[    0.227915] DCDC_REG5: supplied by vcc5v0_sys
[    0.228568] LDO_REG1: supplied by vcc_buck5
[    0.229204] LDO_REG2: supplied by vcc_buck5
[    0.229702] LDO_REG3: supplied by vcc_buck5
[    0.230226] LDO_REG4: supplied by vcc_buck5
[    0.230730] LDO_REG5: supplied by vcc_buck5
[    0.231371] LDO_REG6: supplied by vcc_buck5
[    0.232165] LDO_REG7: supplied by vcc5v0_sys
[    0.232761] LDO_REG8: supplied by vcc5v0_sys
[    0.233403] LDO_REG9: supplied by vcc5v0_sys
[    0.234077] SWITCH_REG1: supplied by vcc5v0_sys
[    0.234544] SWITCH_REG2: supplied by vcc3v3_sys
[    0.236805] input: rk805 pwrkey as /devices/platform/ff3f0000.i2c/i2c-0/0-0020/rk805-pwrkey/input/input0
[    0.239857] rk808-rtc rk808-rtc: registered as rtc0
[    0.240460] rk808-rtc rk808-rtc: setting system clock to 2017-08-04 09:00:02 UTC (1501837202)
[    0.243077] [tlsc]tlsc6x_probe: Enter
[    0.243114] [tlsc]tlsc6x_parse_dt: Enter
[    0.243203] tpd-firmware-update:0
[    0.243230] tlsc6x_ts 5-002e: tpd-firmware-update undefined!
[    0.243256] tlsc6x_ts 5-002e: have-virtualkey undefined!
[    0.243279] [tlsc]tlsc6x_hw_init: Enter
[    0.243340] [tlsc]tlsc6x_tpd_reset: Enter
[    0.243362] [tlsc]tlsc6x_tpd_reset_force: Enter
[    0.327985] [tlsc]tlsc6x_tpd_reset: Enter
[    0.328015] [tlsc]tlsc6x_tpd_reset_force: Enter
[    0.412982] [tlsc]tlsc6x_tp_dect: Enter
[    0.467718] [tlsc] g_mccode is 0x1
[    0.467749] [tlsc]tlsx6x_3536get_running_cfg: Enter
[    0.467765] [tlsc]tlsx6x_comb_get_running_cfg: Enter
[    0.473978] [tlsc]tlsc6x_upgrade_romcfg_array: Enter
[    0.474009] [tlsc] g_tlsc6x_cfg_ver is 0x80e224a
[    0.474023] [tlsc]tlsc6x_tpcfg_ver_comp: Enter
[    0.474038] [tlsc] Tlsc6x:auto update skip:no updated version!
[    0.479994] [tlsc]tlsc6x_tpd_reset: Enter
[    0.480023] [tlsc]tlsc6x_tpd_reset_force: Enter
[    0.565258] input: tlsc6x_touch as /devices/virtual/input/input1
[    0.565832] input: proximity_tp as /devices/virtual/input/input2
[    0.566400] [tlsc] The irq node num is 101
[    0.566634] tlsc6x_ts 5-002e: Create proc entry success!
[    0.569456] rkcifhw ffae0000.rkcif: no iommu attached, using non-iommu buffers
[    0.569515] rkcifhw ffae0000.rkcif: assigned reserved memory node isp
[    0.569662] rkcif rkcif_dvp: rkcif driver version: v00.01.0a
[    0.569764] rkcif rkcif_dvp: attach to cif hw node
[    0.569786] rkcif rkcif_dvp: rkcif wait line 0
[    0.570993] OF: graph: no port node found in /rkcif_dvp
[    0.571018] rkcif_dvp: cif_subdev_notifier: no subdev be found!
[    0.571034] rkcif_dvp: Failed to register subdev notifier(-19)
[    0.572018] rkcif rkcif_dvp: detach to cif hw node
[    0.574119] rkisp_hw ffb50000.rkisp: is_thunderboot: 0
[    0.574160] rkisp_hw ffb50000.rkisp: Missing rockchip,grf property
[    0.574484] rkisp_hw ffb50000.rkisp: iommu is disabled, using non-iommu buffers
[    0.574534] rkisp_hw ffb50000.rkisp: assigned reserved memory node isp
[    0.574846] rkisp rkisp-vir0: rkisp driver version: v01.06.02
[    0.575135] rkisp rkisp-vir0: No memory-region-thunderboot specified
[    0.575390] rkisp rkisp-vir0: Entity type for entity rkisp-isp-subdev was not initialized!
[    0.575435] rkisp rkisp-vir0: Entity type for entity rkisp-csi-subdev was not initialized!
[    0.575467] rkisp rkisp-vir0: Entity type for entity rkisp-bridge-ispp was not initialized!
[    0.579327] iommu: Adding device ffb60000.rkispp to group 1
[    0.579398] rkispp_hw ffb60000.rkispp: Linked as a consumer to ffb60e00.iommu
[    0.579810] rkispp_hw ffb60000.rkispp: max input:0x0@0fps
[    0.579858] rkispp_hw ffb60000.rkispp: can&#39;t request region for resource [mem 0xffb60000-0xffb7ffff]
[    0.580138] rkispp_hw ffb60000.rkispp: failed to get cru reset
[    0.580421] rkispp rkispp-vir0: rkispp driver version: v01.06.02
[    0.583289] usbcore: registered new interface driver uvcvideo
[    0.583322] USB Video Class driver (1.1.1)
[    0.583695] vccio_sdio: supplied by vcc_1v8
[    0.583880] rockchip-iodomain fe020000.syscon:io-domains: Linked as a consumer to regulator.2
[    0.583964] rockchip-iodomain fe020000.syscon:io-domains: vccio1(1800000 uV) supplied by vccio_sdio
[    0.584096] rockchip-iodomain fe020000.syscon:io-domains: Linked as a consumer to regulator.16
[    0.584156] rockchip-iodomain fe020000.syscon:io-domains: vccio2(3300000 uV) supplied by vccio_sd
[    0.584275] rockchip-iodomain fe020000.syscon:io-domains: Linked as a consumer to regulator.12
[    0.584328] rockchip-iodomain fe020000.syscon:io-domains: vccio3(1800000 uV) supplied by vcc_1v8
[    0.584481] rockchip-iodomain fe020000.syscon:io-domains: vccio4(1800000 uV) supplied by vcc_1v8
[    0.584620] rockchip-iodomain fe020000.syscon:io-domains: Linked as a consumer to regulator.7
[    0.584675] rockchip-iodomain fe020000.syscon:io-domains: vccio5(3300000 uV) supplied by vcc3v3_sys
[    0.584843] rockchip-iodomain fe020000.syscon:io-domains: pmuio0(3300000 uV) supplied by vcc3v3_sys
[    0.585029] rockchip-iodomain fe020000.syscon:io-domains: pmuio1(3300000 uV) supplied by vcc3v3_sys
[    0.587758] rockchip-thermal ff5f0000.tsadc: tsadc trimmed value = 2
[    0.588187] rockchip-thermal ff5f0000.tsadc: tsadc is probed successfully!
[    0.588689] rockchip-thermal ff5f8000.tsadc: tsadc trimmed value = 2
[    0.588993] rockchip-thermal ff5f8000.tsadc: tsadc is probed successfully!
[    0.589894] dw_wdt ff680000.watchdog: No valid TOPs array specified
[    0.590586] Bluetooth: HCI UART driver ver 2.3
[    0.590619] Bluetooth: HCI UART protocol H4 registered
[    0.590970] cpu cpu0: bin=0
[    0.591033] cpu cpu0: leakage=1.875
[    0.591174] cpu cpu0: Linked as a consumer to regulator.5
[    0.602994] cpu cpu0: temp=53300, pvtm=97082 (96874 + 208)
[    0.603113] cpu cpu0: pvtm-volt-sel=1
[    0.603214] cpu cpu0: Dropping the link to regulator.5
[    0.603287] cpu cpu0: bin-scale=5
[    0.603657] cpu cpu0: Linked as a consumer to regulator.5
[    0.603744] cpu cpu0: Dropping the link to regulator.5
[    0.604025] cpu cpu0: Linked as a consumer to regulator.5
[    0.605307] cpu cpu0: avs=0
[    0.605759] cpu cpu0: l=-2147483648 h=2147483647 hyst=0 l_limit=0 h_limit=0 h_table=0
[    0.605809] cpu cpu0: failed to read out thermal zone (-22)
[    0.606704] cpu cpu0: failed to find power_model node
[    0.606830] cpuidle: enable-method property &#39;psci&#39; found operations
[    0.607112] cpuidle: enable-method property &#39;psci&#39; found operations
[    0.607188] cpuidle: enable-method property &#39;psci&#39; found operations
[    0.607259] cpuidle: enable-method property &#39;psci&#39; found operations
[    0.607875] Synopsys Designware Multimedia Card Interface Driver
[    0.608361] dwmmc_rockchip ffc50000.dwmmc: IDMAC supports 32-bit address mode.
[    0.608391] dwmmc_rockchip ffc50000.dwmmc: Using internal DMA controller.
[    0.608405] dwmmc_rockchip ffc50000.dwmmc: Version ID is 270a
[    0.608458] dwmmc_rockchip ffc50000.dwmmc: DW MMC controller at irq 58,32 bit host data width,256 deep fifo
[    0.608570] mmc_host mmc0: card is non-removable.
[    0.621673] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    0.636050] dwmmc_rockchip ffc60000.dwmmc: IDMAC supports 32-bit address mode.
[    0.636146] dwmmc_rockchip ffc60000.dwmmc: Using internal DMA controller.
[    0.636190] dwmmc_rockchip ffc60000.dwmmc: Version ID is 270a
[    0.636340] dwmmc_rockchip ffc60000.dwmmc: DW MMC controller at irq 59,32 bit host data width,256 deep fifo
[    0.636649] dwmmc_rockchip ffc60000.dwmmc: Linked as a consumer to regulator.16
[    0.650206] mmc_host mmc2: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    0.664794] dwmmc_rockchip ffc70000.dwmmc: IDMAC supports 32-bit address mode.
[    0.664908] dwmmc_rockchip ffc70000.dwmmc: Using internal DMA controller.
[    0.665140] dwmmc_rockchip ffc70000.dwmmc: Version ID is 270a
[    0.665301] dwmmc_rockchip ffc70000.dwmmc: DW MMC controller at irq 60,32 bit host data width,256 deep fifo
[    0.665693] dwmmc_rockchip ffc70000.dwmmc: allocated mmc-pwrseq
[    0.665853] mmc_host mmc1: card is non-removable.
[    0.672173] mmc_host mmc0: Bus speed (slot 0) = 198000000Hz (slot req 200000000Hz, actual 198000000HZ div = 0)
[    0.672280] dwmmc_rockchip ffc50000.dwmmc: Successfully tuned phase to 90
[    0.673445] mmc0: new HS200 MMC card at address 0001
[    0.675855] mmcblk0: mmc0:0001 4FTE4R 3.64 GiB
[    0.677048] mmcblk0boot0: mmc0:0001 4FTE4R partition 1 4.00 MiB
[    0.678161] mmcblk0boot1: mmc0:0001 4FTE4R partition 2 4.00 MiB
[    0.678285] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    0.678487] mmcblk0rpmb: mmc0:0001 4FTE4R partition 3 512 KiB, chardev (242:0)
[    0.689669]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13
[    0.693038] usbcore: registered new interface driver usbhid
[    0.693090] usbhid: USB HID core driver
[    0.695829] rockchip-saradc ff5e0000.saradc: Linked as a consumer to regulator.12
[    0.697409] optee: probing for conduit method from DT.
[    0.697468] optee: revision 3.13 (7b427573)
[    0.700434] optee: initialized driver
[    0.700515] rksfc_base v1.1 2016-01-08
[    0.701196] rksfc ffc90000.sfc: rksfc_probe clk rate = 79200000
[    0.701321] rkflash_dev_init enter
[    0.701349] sfc nor id: 0 0 0
[    0.701368] rkflash[1] is invalid
[    0.701371] rkflash_dev_init enter
[    0.701421] sfc_nand id: 0 0 0
[    0.701441] rkflash[2] is invalid
[    0.710110] rk817-codec rk817-codec: rk817_codec_parse_dt_property() Can not get child: codec
[    0.710182] rk817-codec rk817-codec: rk817_platform_probe() parse device tree property error -19
[    0.713291] NET: Registered protocol family 17
[    0.713376] NET: Registered protocol family 15
[    0.714053] Bluetooth: RFCOMM TTY layer initialized
[    0.714113] Bluetooth: RFCOMM socket layer initialized
[    0.714186] Bluetooth: RFCOMM ver 1.11
[    0.714228] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    0.714264] Bluetooth: HIDP socket layer initialized
[    0.714303] [BT_RFKILL]: Enter rfkill_rk_init
[    0.714326] [WLAN_RFKILL]: Enter rfkill_wlan_init
[    0.714858] [WLAN_RFKILL]: Enter rfkill_wlan_probe
[    0.715019] [WLAN_RFKILL]: wlan_platdata_parse_dt: wifi_chip_type = ap6212a
[    0.715064] [WLAN_RFKILL]: wlan_platdata_parse_dt: enable wifi power control.
[    0.715078] [WLAN_RFKILL]: wlan_platdata_parse_dt: wifi power controled by gpio.
[    0.715166] [WLAN_RFKILL]: wlan_platdata_parse_dt: WIFI,host_wake_irq = 8, flags = 0.
[    0.715239] [WLAN_RFKILL]: rfkill_wlan_probe: init gpio
[    0.715257] [WLAN_RFKILL]: Exit rfkill_wlan_probe
[    0.715293] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    0.715890] [BT_RFKILL]: bluetooth_platdata_parse_dt: get property: uart_rts_gpios = 48.
[    0.716035] [BT_RFKILL]: bluetooth_platdata_parse_dt: get property: BT,reset_gpio = 101.
[    0.716085] [BT_RFKILL]: bluetooth_platdata_parse_dt: get property: BT,wake_gpio = 102.
[    0.716130] [BT_RFKILL]: bluetooth_platdata_parse_dt: get property: BT,wake_host_irq = 100.
[    0.716165] [BT_RFKILL]: bluetooth_platdata_parse_dt: clk_get failed!!!.
[    0.716251] [BT_RFKILL]: Request irq for bt wakeup host
[    0.716436] [BT_RFKILL]: ** disable irq
[    0.716686] [BT_RFKILL]: bt_default device registered.
[    0.718121] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    0.718136] flash vendor_init_thread!
[    0.718166] flash vendor storage:20170308 ret = -1
[    0.718880] ov2740 1-0036: driver version: 00.01.01
[    0.719184] ov2740 1-0036: Failed to get power-gpios
[    0.719356] ov2740 1-0036: Failed to get pwdn-gpios
[    0.719567] ov2740 1-0036: Linked as a consumer to regulator.15
[    0.719696] ov2740 1-0036: Linked as a consumer to regulator.13
[    0.719831] ov2740 1-0036: Linked as a consumer to regulator.14
[    0.720409] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    0.720734] clk_mipicsi_out2io_fracdiv p_rate(297000000) is low than rate(24000000)*20, use integer or half-div
[    0.723846] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    0.729341] mmc1: queuing unknown CIS tuple 0x81 (9 bytes)
[    0.737998] mmc_host mmc2: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
[    0.780367] ov2740 1-0036: Found cameraID 0x002740
[    0.780523] rockchip-mipi-dphy-rx ff4b0000.csi-dphy: match m00_f_ov2740 1-0036:bus type 4
[    0.781911] Registering SWP/SWPB emulation handler
[    0.788203] Loading compiled-in X.509 certificates
[    0.792143] rga2: Driver loaded successfully ver:3.2.56726
[    0.792726] rga2: Module initialized.
[    0.809850] vendor storage:20190527 ret = 0
[    0.829803] phy phy-ff4c8000.usb2-phy.2: Linked as a consumer to regulator.18
[    0.833830] mpp_rkvenc ffbb0000.rkvenc: probing start
[    0.834873] mpp_rkvenc ffbb0000.rkvenc: Linked as a consumer to regulator.4
[    0.835070] mpp_rkvenc ffbb0000.rkvenc: bin=0
[    0.835144] mpp_rkvenc ffbb0000.rkvenc: leakage=1.625
[    0.835260] mpp_rkvenc ffbb0000.rkvenc: Failed to get pvtm
[    0.835314] mpp_rkvenc ffbb0000.rkvenc: bin-scale=37
[    0.835795] mpp_rkvenc ffbb0000.rkvenc: avs=0
[    0.836247] mpp_rkvenc ffbb0000.rkvenc: failed to find power_model node
[    0.836294] mpp_rkvenc ffbb0000.rkvenc: failed to initialize power model
[    0.836637] mpp_rkvenc ffbb0000.rkvenc: l=-2147483648 h=2147483647 hyst=0 l_limit=0 h_limit=0 h_table=0
[    0.836691] mpp_rkvenc ffbb0000.rkvenc: failed to read out thermal zone (-22)
[    0.837776] mpp_rkvenc ffbb0000.rkvenc: probing finish
[    0.840298] rockchip-drm display-subsystem: devfreq is not set
[    0.840862] rockchip-drm display-subsystem: bound ffb00000.vop (ops 0xb0a44600)
[    0.841000] dw-mipi-dsi ffb30000.dsi: [drm:dw_mipi_dsi_bind] *ERROR* Failed to find panel or bridge: -517
[    0.841057] rockchip-drm display-subsystem: failed to bind ffb30000.dsi (ops 0xb0a4ad34): -517
[    0.841383] rockchip-drm display-subsystem: master bind failed: -517
[    0.842211] panel-simple-dsi ffb30000.dsi.0: Linked as a consumer to regulator.12
[    0.842276] panel-simple-dsi ffb30000.dsi.0: ffb30000.dsi.0 supply vsp not found, using dummy regulator
[    0.842495] panel-simple-dsi ffb30000.dsi.0: Linked as a consumer to regulator.0
[    0.842562] panel-simple-dsi ffb30000.dsi.0: ffb30000.dsi.0 supply vsn not found, using dummy regulator
[    0.845965] ehci-platform ffe00000.usb: EHCI Host Controller
[    0.846053] ehci-platform ffe00000.usb: new USB bus registered, assigned bus number 1
[    0.846252] ehci-platform ffe00000.usb: irq 63, io mem 0xffe00000
[    0.853053] ehci-platform ffe00000.usb: USB 2.0 started, EHCI 1.00
[    0.853570] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[    0.853637] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.853668] usb usb1: Product: EHCI Host Controller
[    0.853710] usb usb1: Manufacturer: Linux 4.19.111 ehci_hcd
[    0.853781] usb usb1: SerialNumber: ffe00000.usb
[    0.855276] hub 1-0:1.0: USB hub found
[    0.855414] hub 1-0:1.0: 1 port detected
[    0.857544] ohci-platform ffe10000.usb: Generic Platform OHCI controller
[    0.857658] ohci-platform ffe10000.usb: new USB bus registered, assigned bus number 2
[    0.858080] ohci-platform ffe10000.usb: irq 64, io mem 0xffe10000
[    0.914618] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 4.19
[    0.914680] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.914697] usb usb2: Product: Generic Platform OHCI controller
[    0.914712] usb usb2: Manufacturer: Linux 4.19.111 ohci_hcd
[    0.914726] usb usb2: SerialNumber: ffe10000.usb
[    0.916815] hub 2-0:1.0: USB hub found
[    0.916997] hub 2-0:1.0: 1 port detected
[    0.920609] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[    0.922365] rockchip-drm display-subsystem: devfreq is not set
[    0.923171] rockchip-drm display-subsystem: bound ffb00000.vop (ops 0xb0a44600)
[    0.923374] rockchip-drm display-subsystem: bound ffb30000.dsi (ops 0xb0a4ad34)
[    0.923425] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    0.923447] [drm] No driver support for vblank timestamp query.
[    0.935131] rockchip-drm display-subsystem: fb0:  frame buffer device
[    0.937629] mmc1: new high speed SDIO card at address 0001
[    0.937967] [drm] Initialized rockchip 2.0.0 20140818 for display-subsystem on minor 0
[    0.940182] dhd_module_init: in Dongle Host Driver, version 1.579.77.41.22 (r-20191105-2)(20191120-1)
[    0.940247] ======== dhd_wlan_init_plat_data ========
[    0.940256] [WLAN_RFKILL]: rockchip_wifi_get_oob_irq: Enter
[    0.940343] dhd_wlan_init_gpio: WL_HOST_WAKE=-1, oob_irq=106, oob_irq_flags=0x414
[    0.940362] dhd_wlan_init_gpio: WL_REG_ON=-1
[    0.940425] dhd_wifi_platform_load: Enter
[    0.940444] Power-up adapter &#39;DHD generic adapter&#39;
[    0.941010] wifi_platform_set_power = 1
[    0.941027] ======== PULL WL_REG_ON(-1) HIGH! ========
[    0.941039] [WLAN_RFKILL]: rockchip_wifi_power: 1
[    0.941051] [WLAN_RFKILL]: wifi turn on power [GPIO-1-0]
[    0.941084] input: gpio-keys as /devices/platform/gpio-keys/input/input3
[    0.942095] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    0.944738] cfg80211: Loaded X.509 cert &#39;sforshee: 00b28ddf47aef9cea7&#39;
[    0.944836] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    0.944852] cfg80211: failed to load regulatory.db
[    0.945311] rkisp rkisp-vir0: clear unready subdev num: 1
[    0.945901] rkisp0: Async subdev notifier completed
[    0.946030] ALSA device list:
[    0.946047]   #7: Loopback 1
[    0.950582] EXT4-fs (mmcblk0p10): mounted filesystem with ordered data mode. Opts: (null)
[    0.950668] VFS: Mounted root (ext4 filesystem) readonly on device 179:10.
[    0.954905] devtmpfs: mounted
[    0.955807] Freeing unused kernel memory: 1024K
[    0.955959] Run /sbin/init as init process
[    0.956878] dwmmc_rockchip ffc60000.dwmmc: Successfully tuned phase to 10
[    0.956980] mmc2: new ultra high speed SDR104 SDHC card at address 0001
[    0.958307] mmcblk2: mmc2:0001 SD32G 28.9 GiB
[    0.959892]  mmcblk2: p1
[    1.008422] EXT4-fs (mmcblk0p10): re-mounted. Opts: (null)
1+0 records in
1+0 records out
32 bytes copied, 0.00139008 s, 23.0 kB/s
1+0 records in
1+0 records out
32 bytes copied, 0.000818417 s, 39.1 kB/s
Fri Jun 13 08:20:12 CST 2025
1+0 records in
1+0 records out
512 bytes copied, 0.00114013 s, 449 kB/s
sign is -
hour is 08
min is 00
colon is :
check time zone success
NAME=Buildroot
VERSION=2018.02-rc3-gbde6186c
ID=buildroot
VERSION_ID=2018.02-rc3
PRETTY_NAME=&#34;Buildroot 2018.02-rc3&#34;
Starting logging: Jun 12 16:20:12 BL-P001 syslog.info syslogd started: BusyBox v1.27.2
OK
[    1.181137] usb 1-1: new high-speed USB device number 2 using ehci-platform
Jun 12 16:20:12 BL-P001 user.notice kernel: klogd started: BusyBox v1.27.2 (2022-09-13 22:33:08 CST)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] Booting Linux on physical CPU 0xf00
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.000000] Linux version 4.19.111 (ci.slave@glock13) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)) #1 SMP PREEMPT Tue Sep 13 22:29:57 CST 2022
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] CPU: div instructions available: patching division code
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] OF: fdt: Machine model: Bamboo Lab 3D Printer P001 v05 Board panel_a
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] earlycon: uart8250 at MMIO32 0xff570000 (options &#39;&#39;)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] bootconsole [uart8250] enabled
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] Memory policy: Data cache writealloc
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] Reserved memory: created CMA memory pool at 0x1f800000, size 8 MiB
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
1+0 records in
1+0 records out
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.000000]   Normal zone: 0 pages reserved
32 bytes copied, 0.00105496 s, 30.3 kB/s
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 128440
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.000000] Kernel command line: user_debug=31 storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal boot_reason=cold mp_state=production fuse.programmed=1 androidboot.sl
ot_suffix=_a root=PARTUUID=ec80b46b-
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] Memory: 459496K/517856K available (9216K kernel code, 432K rwdata, 2180K rodata, 1024K init, 304K bss, 25592K reserved, 32768K cma-reserved, 0K highmem)
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.000000] Virtual kernel memory layout:
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.000000]     vmalloc : 0xd0800000 - 0xff800000   ( 752 MB)
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.000000]     lowmem  : 0xb0000000 - 0xd0000000   ( 512 MB)
1+0 records in
1+0 records out
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (10208 kB)
512 bytes copied, 0.00176108 s, 291 kB/s
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.000000] random: random: get_random_bytes called from start_kernel+0x324/0x4a4 with crng_init=0
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (virt).
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000009] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.000706] Switching to timer-based delay loop, resolution 41ns
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.002491] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=24000)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.003387] pid_max: default: 4096 minimum: 301
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.004015] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.004596] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.005915] CPU: Testing write buffer coherency: ok
Jun 12 16:20:12 BL-P001 user.err kernel: [    0.006763] /cpus/cpu@f00 missing clock-frequency property
Jun 12 16:20:12 BL-P001 user.err kernel: [    0.007259] /cpus/cpu@f01 missing clock-frequency property
sign is -
hour is 08
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.010050] Setting up static identity map for 0x100000 - 0x100060
min is 00
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.012005] smp: Bringing up secondary CPUs ...
colon is :
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.015717] CPU2: thread -1, cpu 2, socket 15, mpidr 80000f02
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.017359] CPU3: thread -1, cpu 3, socket 15, mpidr 80000f03
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.017505] smp: Brought up 1 node, 4 CPUs
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.019427] SMP: Total of 4 processors activated (192.00 BogoMIPS).
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.019987] CPU: All CPU(s) started in SVC mode.
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.021237] devtmpfs: initialized
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.048191] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.049578] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.050515] futex hash table entries: 16 (order: -2, 1024 bytes)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.051168] pinctrl core: initialized pinctrl subsystem
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.052883] NET: Registered protocol family 16
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.054134] DMA: preallocated 256 KiB pool for atomic coherent allocations
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.056205] register kpanic driver ok
check time zone success
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.062348] pstore: Registered ramoops as persistent store backend
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.062930] ramoops: attached 0x100000@0x8000000, ecc: 0/0
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.066601] kpanic ffc50000.kpanic: using Device Tree
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.067074] kpanic ffc50000.kpanic: emmc base 0xd0948000
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.067584] kpanic ffc50000.kpanic: cru base 0xd081d000
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.068091] kernel panic handler initialized
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.068751] iotrace iotrace: using Device Tree
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.069251] iotrace iotrace: part_base[0]: 0xd098001c, offset[0]: 0x0
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.069852] iotrace iotrace: part_base[1]: 0xd0a8000c, offset[1]: 0x0
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.070447] iotrace iotrace: part_base[2]: 0xd0b7fffc, offset[2]: 0x0
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.071039] iotrace iotrace: part_base[3]: 0xd0c7ffec, offset[3]: 0x0
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.071612] iotrace iotrace: reserve start phy: 0x7c00000, size: 0x400000,
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.071612] iotrace buffer start vaddr: 0xd098001c, buffer end vaddr: 0xd0d7ffdc, buffer size 0x3fffc0, total cnt is 349520 ,part_cnt is 87380
insmod NPU modules: Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.098273] gpio gpiochip1: (gpio1): added GPIO chardev (254:1)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.098388] gpiochip_setup_dev: registered GPIOs 32 to 63 on device: gpiochip1 (gpio1)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.098594] gpio gpiochip2: (gpio2): added GPIO chardev (254:2)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.098717] gpiochip_setup_dev: registered GPIOs 64 to 95 on device: gpiochip2 (gpio2)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.098966] gpio gpiochip3: (gpio3): added GPIO chardev (254:3)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.099091] gpiochip_setup_dev: registered GPIOs 96 to 127 on device: gpiochip3 (gpio3)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.099297] gpio gpiochip4: (gpio4): added GPIO chardev (254:4)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.099418] gpiochip_setup_dev: registered GPIOs 128 to 129 on device: gpiochip4 (gpio4)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.118652] cryptd: max_cpu_qlen set to 1000
[    1.249992Jun 12 16:20:12 BL-P001 user.info kernel: [    0.119956] fiq debu]gger fiq mode enabled
 wifi_pJun 12 16:20:12 BL-P001 user.info kernel: [    0.120750] clonsole [ttyFIQ0] enabled
atfoJun 12 16:20:12 BL-P001 user.rinfo kernel: [    0.121449] bomotconsole [uart8250] disabled_
Jun 12 16:20:12 BL-P001 usebr.info kernel: [    0.122114] Registered fiq debugger ttyFIQ0
usJun 12 16:20:12 BL-P001 user._debug kernel: [    0.123729] of_get_named_gpiod_flags: can&#39;t parse &#39;gpio&#39; property of neode &#39;/vccsys[0]&#39;
Jun 12 16:20n:12 BL-P001 user.debug kerneul: [    0.124203] of_get_nammed_gpiod_flags: can&#39;t parse e&#39;gpio&#39; property of node &#39;/vcrc-1v8[0]&#39;
Jun 12 16:20:12 BaL-P001 user.err kernel: [   t 0.124441] vccio_sdio: reguleator get failed, ret=-517
 dJun 12 16:20:12 BL-P001 user.deebug kernel: [    0.124650] ofv_get_named_gpiod_flags: can&#39;t iparse &#39;gpio&#39; property of node &#39;/vdd_logic[0]&#39;
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.124679] vdd_logic: supplied by vcc5v0_sys
Jun 12 16:20:12 BL-P001
[ user.info kernel: [    0.12  5709] rk_iommu ffb00f00.iomm u: version = 1
Jun 12 16:20 :12 BL-P001 user.info kernel1: [    0.126368] rk_iommu ffb60e00.iommu: version = 1
.250Jun 12 16:20:12 BL-P001 user.info kernel: [    0.127067] 0rk_iommu ffb80480.iommu: ver2sion = 1
Jun 12 16:20:12 BL7-P001 user.info kernel: [   ] 0.127508] rk_iommu ffb90800.iommu: version = 1
Jun 12 16 :20:12 BL-P001 user.info kernel: [    0.127940] rk_iommu f=====fbb0f00.iommu: version = 1
===Jun 12 16:20:12 BL-P001 user. notice kernel: [    0.128878C] SCSI subsystem initialized
ardJun 12 16:20:12 BL-P001 user.info k ernel: [    0.129183] usbcorde: registered new interface driveer usbfs
Jun 12 16:20:12 BLte001 user.info kernel: [    0.12928c7] usbcore: registered new intetrface driver hub
ion to detecJun 12 16:20:12 BL-P001 user.info kernel: [    0.129403] usbcotre: registered new device driver usb
Jun 12 16:20:12 BL-P001 use r.info kernel: [    0.129508] media: Linux media interfaceS: v0.10
DIO card! ========
[ Jun 12 16:20:12 BL-P001 user. info kernel: [    0.129609] videodev: Linux video captu  1.2re interface: v2.00
50036] mmJun 12 16:20:12 BL-P001 user.info kernel: [    0.129685] pps_ccore: LinuxPPS API ver. 1 registered
1:mmc host rescan start!
[    1.256478] galcore: loading out-of-Jturne e1 2m o1d6u:l2e0 :t1a2i nts kernel.
[    B1.263501] gL-P001 user.info kernel: [    0.129710] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 aRodolfo Giometti &lt;giometti@linlux.it&gt;
1ore: npu inJiutn.
2[  1 6 : 20:12 BL-P001 user.info kernel: [ 1.   0.129755] PTP clock suppo2rt registered
64365] gaJlucno r12 16:20:12 BL-P001 user.infoe kernel: [    0.131149] Advanc:ed Linux Sound Architecture Driver Initialized.
Jun 12 16: s20:12 BL-P001 user.info kernel: [    0.131879] Bluetooth: Coret ver 2.22
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.131971a] NET: Registered protocol farmily 31
t npu probe.
0Jun 12 16:20:12 BL-P001 user.info kernel: [    0.132026] Bluetooth: HCI socket layer in]itializedection manager initialized
 galcore ffbc0000.npu: LiJun 12 16:20:12 BL-P001 user.ninfo kernel: [    0.132054] Bluketooth: L2CAP socket layer inietialized
n as a consumer to regulJun 12 16:20:12 BL-P001 autsoerr..4i
f[o    k e1r.n2e6l4:7 2[8 ]   0.132114] Bluetooth: SCO soncket layer initialized
Jun 12 16:20:12p BL-P001 user.info kernel: [u    0.132741] rockchip-cpuinfo: cpuinfo: SoC               : 11260000
 platJun 12 16:20:12 BL-P001 user.finfo kernel: [    0.132776] rockchip-cpuinfo cpuinfo: Seriaol                : 218fd8dc7f66acdc
Jun 12r 16:20:12 BL-P001 user.info kmernel: [    0.133943] clocks_ource: Switched to clocksourgece arch_sys_counter
Jun 12 t_16:20:12 BL-P001 user.info kiernel: [    0.136691] NET: Registered protocol family 2
rq iJun 12 16:20:12 BL-P001 userr.info kernel: [    0.137579]q tcp_listen_portaddr_hash has=h table entries: 512 (order:  60, 6144 bytes)
 [    0.137640] TCP establish.info kernel:
ed hash table entries: 4096 [(order: 2, 16384 bytes)
    1.Jun 12 16:20:12 BL-P001 user.2info kernel: [    0.137734] TCP bind hash table entries: 406496 (order: 3, 32768 bytes)
7Jun 12 16:20:12 BL-P001 user.i4nfo kernel: [    0.137846] TC0P: Hash tables configured] npu (established 4096 bind 4096)
Jun 12 16:20:12 BL-P001 user.in:fo kernel: [    0.138054] UDP hash table entries: 256 (order:  1, 8192 bytes)
platform_get_Jun 12 16:20:12 BL-P001 user.inrfo kernel: [    0.138109] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
esource registeJun 12 16:20:12 BL-P001 user.rinfo kernel: [    0.138327]Me NET: Registered protocol fmBamily 1
Jun 12 16:20:12 BL-aP001 user.info kernel: [    s0.140435] hw perfevents: enaebled with armv7_cortex_a7 PM =U driver, 5 counters available
Jun 12 16:20:12 BL-P001 usfer.notice kernel: [    0.143f118] Initialise system trustbed keyrings
Jun 12 16:20:12c BL-P001 user.info kernel: [0    0.143408] workingset: timestamp_bits=29 max_order=17 bucket_order=0
Jun 12 16:20:12 BL-P001 user.info kernel: [0    0.151215] squashfs: version 4.0 (2009/01/31) Phillip L0ougher
Jun 12 16:20:12 BL-P0001 user.notice kernel: [    ,0.154075] Key type asymmetri c registered
Jun 12 16:20:12reBL-P001 user.notice kernel: [gi    0.154109] Asymmetric key parser &#39;x509&#39; registered
sterJun 12 16:20:12 BL-P001 user.info kernel: [    0.154182] BlMck layer SCSI generic (bsg) edriver version 0.4 loaded (mmajor 244)
OK
Jun 12 16:20:Si2 BL-P001 user.info kernel: [z    0.154211] io scheduler noeop registered
Jun 12 16:20:12  BL-P001 user.info kernel: [    0.154233] io scheduler deadli= e registered
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.154411] io scheduler cfq registered (default)
4000
[  Jun 12 16:20:12 BL-P001 user.i nfo kernel: [    0.154440] io  scheduler mq-deadline registered
Jun 12 16:20:12 BL-P001 1user.info kernel: [    0.154463] io scheduler kyber registe.red
Jun 12 16:20:12 BL-P001 u2ser.info kernel: [    0.154617] io scheduler bfq registered
/usr/bin/modetest
Jun 12 16:20:12 BL-P001 user.debug ker6nel: [    0.157783] of_get_named_gpiod_flags: parsed &#39;vup-g4pios&#39; property of node &#39;/usb27-phy@ff4c0000[0]&#39; - status (0)
Jun 12 16:20:12 BL-P001 user5.debug kernel: [    0.157813] gpio gpi]ochip0: Persistence not suppor ted for GPIO 17
Jun 12 16:2G0:12 BL-P001 user.warn kernel: l[    0.158657] phy phy-ff4c0000.usb2-phy.1: Failed to get VBUS supply regulator
Jun 12 16:20:12 BL-P001 cuser.debug kernel: [    0.1604o28] rockchip-usb2phy-naneng ff4c8000.usb2-phy: GPIO lookup for consumer vup
Jun 12 16:20:12r BL-P001 user.debug kernel: [e    0.160441] rockchip-usb2phy-naneng ff4c8000.usb2-phy: u sing device tree for GPIO lookup
Jun 12 16:20:12 BL-P001 user.debuvg kernel: [    0.160467] of_gete_named_gpiod_flags: can&#39;t parse &#39;vup-gpios&#39; property of node &#39;/usb2r-phy@ff4c8000[0]&#39;
Jun 12 16:20:12 BL-P00s1 user.debug kernel: [    0.1i60488] of_get_named_gpiod_flags: can&#39;t parse &#39;vup-gpio&#39; property of node &#39;/usb2-phy@ff4c800 0[0]&#39;
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.6.4160501] rockchip-usb2phy-naneng ff4c8000.usb2-phy: using l.6ookup tables for GPIO lookup.
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.160512] rockchip-usb2phy-naneng ff4c85000.usb2-phy: No GPIO consume.r vup found
Jun 12 16:20:12 B3L-P001 user.err kernel: [    0.160596] rockchip-usb2phy-nan5eng ff4c8000.usb2-phy: failed1 to create phy
163265] pwm-backlight backlig.debug kernel: [    0.18
ht: GPIO lookup for consumer enable
Jun 12 16:20:12 BL-P001[ user.debug kernel: [    0.16 3278] pwm-backlight backlight: using device tree for GPIO l ookup
Jun 12 16:20:12 BL-P001  user.debug kernel: [    0.16 3318] of_get_named_gpiod_flags: parsed &#39;enable-gpios&#39; property of node &#39;/backlight[0]&#39; - 1status (0)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.163345] gpio gpiochip1: Pe.rsistence not supported for 2GPIO 31
Jun 12 16:20:12 BL-6P001 user.debug kernel: [    0.163351] no flags found for4 enable
Jun 12 16:20:12 BL-75P001 user.warn kernel: [   8 0.163377] pwm-backlight backlight: backlight supply power not found, using dummy regu]lator
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.163508] pwm-backlight backlight: Linked as a consumer to re gulator.0
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.163898] mpp_service mpp-srGv: 92c80ddf68f6 author: Yandaong Lin 2021-08-10 video: rockchip: mpp: workaround patchl for rv1126 iommu issue
core Jun 12 16:20:12 BL-P001 usero.info kernel: [    0.163964]p mpp_service mpp-srv: probet start
Jun 12 16:20:12 BL-P0i01 user.info kernel: [    0.o164960] iommu: Adding device ffb80000.rkvdec to group 2
 Linked as a consumer to ffbrs.info kernel: [    0.165020] mpp_rkvdec ffb80000.rkvdec::
80480.iommu
[    1.264766]   irqLineJun 12 16:20:12 BL-P001 user.info kernel: [    0.165228] mpp_rkvdec ffb80000.rkvdec: p robing start
Jun 12 16:20:12 BL-P001 user.err kernel: [    0.165 860] mpp_rkvdec ffb80000.rkvdec: shared_niu_a is not found!
Jun 12 16:20:12 BL-P001 user .err kernel: [    0.165895] rkvde  _init:1190: No niu aclk rese t resource define
     = 62
Jun 12 16:20:12 BL-P001 user.err [   kernel: [    0.165966] mpp_rkvdec ffb80000.rkvdec: shared_niu_h  is not found!
1.264774]   regJun 12 16:20:12 BL-P001 user.err istekernel: [    0.165991] rkvdec_inirMt:1193: No niu hclk reset resource define
0mBase   = 0xFFBJun 12 16:20:12 BL-P001 user.info kernel: [    0.166352] mpp_rkvdec ffb8C0000.rkvdec: probing finish
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.167164]0 iommu: Adding device ffbb0000.rkvenc to group 4
00
[    1.26478Jun 12 16:20:12 BL-P001 user.info kernel: [    0.167222] mpp_rkvenc ffbb0000.rkvenc: Linked as a2 consumer to ffbb0f00.iommu
]  Jun 12 16:20:12 BL-P001 user.info kernel: [    0.167525]  mpp_rkvenc ffbb0000.rkvenc:reg probing start
isterMemSize   = 0x0Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.168163] mpp_rkvenc ffbb0000.rkvenc: venc regulator not ready, retry
0Jun 12 16:20:12 BL-P001 user.err kernel: [    0.168200] rkvenc_init:1202: failed to add v0enc devfreq
Jun 12 16:20:12 0BL-P001 user.info kernel: [ 40   0.169362] iommu: Adding device ffb90400.vdpu to group 3
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.169423] mpp_vdpu2 ffb90400.vdpu: Linked0 as a consumer to ffb90800.iommu
ser.info kernel: [    0.1695
31] mpp_vdpu2 ffb90400.vdpu:[ probe device
Jun 12 16:20:12 BL-P001 user.info kernel: [     0.170086] mpp_vdpu2 ffb90  400.vdpu: reset_group-&gt;rw_sem_on=0
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.17 0134] mpp_vdpu2 ffb90400.vdpu1: reset_group-&gt;rw_sem_on=0
.2Jun 12 16:20:12 BL-P001 user.6info kernel: [    0.170387] mp4p_vdpu2 ffb90400.vdpu: probi7ng finish
Jun 12 16:20:12 BL-P001 user.info kernel: [    09.171039] iommu: Adding device1 ffb90000.vepu to group 3
]   Jun 12 16:20:12 BL-P001 user.info kernel: [    0.171099] mpp_vepuc2 ffb90000.vepu: Linked as a consumer to ffb90800.iommu
ontJun 12 16:20:12 BL-P001 user.iinfo kernel: [    0.171227] mgpp_vepu2 ffb90000.vepu: probuoe device
info kernel: [    0.171716] m16:20:12 BL-P001 user.
pp_vepu2 ffb90000.vepu: reset[ _group-&gt;rw_sem_on=0
9  1.2647Jun 12 16:20:12 BL-P001 user.info kernel: [    0.171748] mpp_vepu2 ffb90000.v9epu: reset_group-&gt;rw_sem_on=0
Jun 12 16:20:12 BL-P001 user].info kernel: [    0.172009] mpp_vepu2 ffb90000.vepu: probing   finish
Jun 12 16:20:12 BL-P 001 user.info kernel: [    0.1c72543] mpp_service mpp-srv: porobe success
Jun 12 16:20:12 BL-P001 user.info kernel: [  n  0.177905] dma-pl330 ff4e000t0.dma-controller: Loaded drivier for PL330 DMAC-241330
guousJun 12 16:20:12 BL-P001 user.info kernel: [    0.178000] dma-pl330B ff4e0000.dma-controller:       DBUaFF-128x8bytes Num_Chans-8 Num_sPeri-32 Num_Events-16
or probeJun 12 16:20:12 BL-P001 user.xnfo kernel: [    0.180024] roc0kchip-system-monitor rockchip-system-monitor: system monit
Jun 12 16:20:12 BL-P001 user.
debug kernel: [    0.180553] [of_get_named_gpiod_flags: pa rsed &#39;time_sync_gpio&#39; proper ty of node &#39;/time_sync[0]&#39; - status (0)
1+0 records in
1 +0 records out
Jun 12 16:20: 12 BL-P001 user.info kernel: [    0.186317] iommu: Adding 1device ffb00000.vop to group 0
3226 bytes copied, 0.00202971 s, 15.84 kB/sJun 12 16:20:12 BL-P001 user.info kernel: [    0.192654] rock8chip-drm display-subsystem: devfr0eq is not set

6]   externalJun 12 16:20:12 BL-P001 user.Sinfo kernel: [    0.193170] roickchip-drm display-subsystemz: bound ffb00000.vop (ops 0xbea44600)
Jun 12 16:20:12 BL-P001 user.err kernel: [    0.193236]  dw-mipi-dsi ffb30000.dsi: [d rm:dw_mipi_dsi_bind] *ERROR*  Failed to find panel or bridg e: -517
Jun 12 16:20:12 BL-P 001 user.err kernel: [    0.19 3274] rockchip-drm display-sub=system: failed to bind ffb30000.dsi (ops 0xb0a4ad34): -517
 Jun 12 16:20:12 BL-P001 user.i0nfo kernel: [    0.193542] rockchip-drm display-subsystem: xmaster bind failed: -517
00000Jun 12 16:20:12 BL-P001 user.0info kernel: [    0.199681] 0zram: Added device: zram0
0
[Jun 12 16:20:12 BL-P001 user.d bug kernel: [    0.201644] mdio_bus fixed-0: GPIO lookup for c onsumer reset
Jun 12 16:20:12 B L-P001 user.debug kernel: [     0.201655] mdio_bus fixed-0: u1sing lookup tables for GPIO loo.kup
264814]   externalBase      Jun 12 16:20:12 BL-P001 user.d=ebug kernel: [    0.201665] mdio_bus fixed-0: No GPIO consumer  reset found
0x0
[    1.264821Jun 12 16:20:12 BL-P001 user.info kernel: [    0.201702] libph]y: Fixed MDIO Bus: probed
   exclJun 12 16:20:12 BL-P001 user.eurr kernel: [    0.204553] dwc3 ffd00000.dwc3: Failed to get clk &#39;sref&#39;: -2
_hcd: USB 2.0 &#39;Enhanced&#39; Host C6:20:12 BL-P001 user.i0nfo kernel: [    0.210029] ehci
ontroller (EHCI) Driver
[    1.2Jun 12 16:20:12 64B828L]- P 0 0e1 user.info kernel: [    0.210069] ehci-platform: EHCI generic pxlatform driver
clusiveBase     1+0 records in
1+0 records out= 0
Jun 12 16:20:12 BL-P001 userx.notice kernel: [    0.211914] [tlsc]0 tlsc6x_init: ++
pied, 0.00121042 s, 423 kB/s
[
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.221771]  gpiochip_setup_dev: register ed GPIOs 511 to 511 on device: gpiochip5 (rk817-gpio)
 1.26Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.221885] gpio gpiochip5: (rk817-gpio): cre4ted GPIO range 0-&gt;0 ==&gt; rk835] 805-pinctrl PIN 0-&gt;0
  bankSizJun 12 16:20:12 BL-P001 user.edebug kernel: [    0.225145]  rk808 0-0020: GPIO lookup f or consumer dvs
        = 0x00Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.225157] rk808 0-0020: using device tree for 0PIO lookup
Jun 12 16:20:12 B0L-P001 user.debug kernel: [   0 0.225189] of_get_named_gpiod0_flags: can&#39;t parse &#39;dvs-gpios0&#39; property of node &#39;/i2c@ff3f00000/pmic@20[0]&#39;
2 BL-P001 user.debug kernel: [    0.225212] of_get_named_gpiod_
flags: can&#39;t parse &#39;dvs-gpio&#39; [property of node &#39;/i2c@ff3f0000/pmic@20[0]&#39;
Jun 12 1 6 : 2 01:12 BL-P001 user.debug kernel:. [    0.225224] rk808 0-0020: 2using lookup tables for GPIO6 lookup
Jun 12 16:20:12 BL-P0401 user.debug kernel: [    0.225234] rk808 0-0020: No GPIO consumer dvs found
843]   fastCJun 12 16:20:12 BL-P001 user.ilnfo kernel: [    0.225245] rk8e08-regulator rk808-regulator:a there is no dvs0 gpio
r    Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.225286] rk 08 0-0020: GPIO lookup for co nsumer dvs
   = -1
[    1.264Jun 12 16:20:12 BL-P001 user.85debug kernel: [    0.225294] 1rk808 0-0020: using device tr]ee for GPIO lookup
   compresJun 12 16:20:12 BL-P001 user.sdebug kernel: [    0.225317] of_get_named_gpiod_flags: can&#39;t parse &#39;dvs-gpios&#39; property oif node &#39;/i2c@ff3f0000/pmic@2o0[1]&#39;
sign is -
 un 12 16:2n0:12 BL-P001 user.debug kern el: [    0.225337] of_get_named_gpiod_flags: can&#39;t parse   &#39;dvs-gpio&#39; property of node  &#39;/i2c@ff3f0000/pmic@20[1]&#39;
hour is 08
min is 00
colo n is :
Jun 12 16:20:12 BL-P0=01 user.info kernel: [    0.2 7915] DCDC_REG5: supplied by 1vcc5v0_sys
 vcc_buck520:12 BL-P001 user.info kernel: [    0.5228568] LDO_REG1: supplied by
Jun 12 16:20:12 BL-P0
01 user.info kernel: [    0.229204] LDO_REG2: supplied by vcc _buck5
Jun 12 16:20:12 BL-P0 01 user.info kernel: [    0.2 29702] LDO_REG3: supplied by  cc_buck5
Jun 12 16:20:12 BL-P1001 user.info kernel: [    0.230226] LDO_REG4: supplied by vcc_buck5
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.230730] LDO_REG5: supplied by vcc_buc2k5
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.2313761] LDO_REG6: supplied by vcc_b4uck5
Jun 12 16:20:12 BL-P0018 user.info kernel: [    0.23602165] LDO_REG7: supplied by v]cc5v0_sys
s  powerManagement   =Jun 12 16:20:12 BL-P001 user. info kernel: [    0.232761] LD1O_REG8: supplied by vcc5v0_sy
Jun 12 16:20:12 BL-P001 use
r.info kernel: [    0.233403] [LDO_REG9: supplied by vcc5v0_sys
Jun 12 16:20:12 BL-P001 use r.info kernel: [    0.234077] SWITCH_REG1: supplied by vcc5v 0_sys
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.234544] SWITCH_REG2: supplied by  vcc3v3_sys
Jun 12 16:20:12 BL -P001 user.info kernel: [    0.236805] input: rk805 pwrkey a.s /devices/platform/ff3f000026.i2c/i2c-0/0-0020/rk805-pwrk4y/input/input0
Jun 12 16:2806:12 BL-P001 user.info kernel: [    0.239857] rk808-rtc rk808]-rtc: registered as rtc0
   baseJun 12 16:20:12 BL-P001 user.info kernel: [    0.240460] rk808-rtc rk808-rtc: setting Asystem clock to 2017-08-04 0dd9:00:02 UTC (1501837202)
chreck time zone success
Jun 1e2 16:20:12 BL-P001 user.err kesrnel: [    0.243230] tlsc6x_ts 5-002e: tpd-firmware-update undefsined!
Jun 12 16:20:12 BL-P001  user.err kernel: [    0.243256] tlsc6x_ts 5-002e: have-virtualkey undefined!
      = 0x0000000Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.243279] [tls0c]tlsc6x_hw_init: Enter

[   Jun 12 16:20:12 BL-P001 user.n otice kernel: [    0.243340] [1tlsc]tlsc6x_tpd_reset: Enter
.264876]   Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.243362] [tlspc]tlsc6x_tpd_reset_force: Enterh
Jun 12 16:20:12 BL-P001 useyr.notice kernel: [    0.32798s5] [tlsc]tlsc6x_tpd_reset: Enter
Jun 12 16:20:12 BL-P001 Siuser.notice kernel: [    0.32z8015] [tlsc]tlsc6x_tpd_reset_forece: Enter
Jun 12 16:20:12 BL-P001 user.notice kernel: [     0.412982] [tlsc]tlsc6x_tp_de ct: Enter
Jun 12 16:20:12 BL-P001 user.notice kernel: [     0.467718] [tlsc] g_mccode is  0x1
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.467749] [tlsc]tlsx6x_3536get_run  ning_cfg: Enter
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.467765] [tlsc]tlsx6  x_comb_get_running_cfg: Enter
Jun 12 16:20:12 BL-P001 user .notice kernel: [    0.473978 ] [tlsc]tlsc6x_upgrade_romcfg=_array: Enter
Jun 12 16:20:12  BL-P001 user.notice kernel: 0[    0.474009] [tlsc] g_tlsc6xx_cfg_ver is 0x80e224a
000000Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.474023] [tlsc]tlsc6x_tpcfg_ver_comp:0 Enter
.474038] [tlsc] Tlsc6x:auto update skip:no updated versio
n!
Populating /dev using ud[ev: Jun 12 16:20:12 BL-P001 u ser.info kernel: [    0.56663 4] tlsc6x_ts 5-002e: Create p roc entry success!
Jun 12 16:20:12 BL-P001 user.info kernel: [     0.569456] rkcifhw ffae00100.rkcif: no iommu attached,.2using non-iommu buffers
64884Jun 12 16:20:12 BL-P001 user.info kernel: [    0.569515] r]kcifhw ffae0000.rkcif: assigne d reserved memory node isp
 Jun 12 16:20:12 BL-P001 user. info kernel: [    0.569662] rrkcif rkcif_dvp: rkcif driver version: v00.01.0a
Jun 12 16:e20:12 BL-P001 user.info kernel: c[    0.569764] rkcif rkcif_dvp: attach to cif hw node
overJun 12 16:20:12 BL-P001 user.yinfo kernel: [    0.569786]  rkcif rkcif_dvp: rkcif wait l ine 0
Jun 12 16:20:12 BL-P001 user.err kernel: [    0.570993] OF: graph: no port node f ound in /rkcif_dvp
      = 1
Jun 12 16:20:12 BL-P001 user.[warn kernel: [    0.571018]  rkcif_dvp: cif_subdev_notifier: no subdev be found!
Jun 12 16 :20:12 BL-P001 user.err kernel: [    0.571034] rkcif_dvp:   1.264Failed to register subdev notifier(-19)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.572018] rkcif rkcif_dvp: detach8 to cif hw node
91]   stuckDumpJun 12 16:20:12 BL-P001 user.inf o kernel: [    0.574119] rkisp _hw ffb50000.rkisp: is_thunderboot : 0
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.574160] rkisp_hw ffb50000.rkisp: Missing rockchip,grf property
Jun 12 16:20:12 BL-P001 user .info kernel: [    0.574484] rkisp _hw ffb50000.rkisp: iommu is  disabled, using non-iommu bu ffers
Jun 12 16:20:12 BL-P00 1 user.info kernel: [    0.5=4534] rkisp_hw ffb50000.rkis p: assigned reserved memory 0node isp
-P001 user.info kernel: [    0.574846] rkisp rkisp-vir0: r
kisp driver version: v01.06.[02
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.574995] rkisp rkisp-vir0: GPIO lo okup for consumer vsirq
   1.Jun 12 16:20:12 BL-P001 user2.debug kernel: [    0.575005] rkisp rkisp-vir0: using dev6ice tree for GPIO lookup
489Jun 12 16:20:12 BL-P001 user9.debug kernel: [    0.575033] ]of_get_named_gpiod_flags:    can&#39;t parse &#39;vsirq-gpios&#39; property of node &#39;/rkisp-vir0[0]&#39;
PJun 12 16:20:12 BL-P001 userU .debug kernel: [    0.575066] rkisp rkisp-vir0: using looskup tables for GPIO lookuprty of node &#39;/rkisp-vir0[0]&#39;
maJun 12 16:20:12 BL-P001 userl.debug kernel: [    0.575077] rkisp rkisp-vir0: No GPIO lBaconsumer vsirq found
1ch    Jun 12 16:20:12 BL-P001 user=.info kernel: [    0.575135] rkisp rkisp-vir0: No memory-r egion-thunderboot specified
r.warn kernel: [    0.575390] rkisp rkisp-vir0: Entity type for entity rkisp-isp-subde
v was not initialized!
[    1Jun 12 16:20:12 BL-P001 user..warn kernel: [    0.575435]2 rkisp rkisp-vir0: Entity ty6pe for entity rkisp-csi-subdev was not initialized!
4907] Jun 12 16:20:12 BL-P001 user .warn kernel: [    0.575467]  rkisp rkisp-vir0: Entity tyape for entity rkisp-bridge-illspp was not initialized!
MapJun 12 16:20:12 BL-P001 user.info kernel: [    0.579327]I iommu: Adding device ffb60000.rkispp to group 1
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.579398] rkispp_hw ffb60000.rkispp: Linked as an consumer to ffb60e00.iommu
OJun 12 16:20:12 BL-P001 usern.info kernel: [    0.579810] rkispp_hw ffb60000.rkispp: e max input:0x0@0fps
Jun 12 1 6:20:12 BL-P001 user.err ker  nel: [    0.579858] rkispp_  hw ffb60000.rkispp: can&#39;t re quest region for resource [m=em 0xffb60000-0xffb7ffff]
.info kernel: [    0.580138]er
 rkispp_hw ffb60000.rkispp: f[ailed to get cru reset
    1Jun 12 16:20:12 BL-P001 user.info kernel: [    0.580421] rkispp .rkispp-vir0: rkispp driver version: v01.06.02
264914]   enabJun 12 16:20:12 BL-P001 user.info lkernel: [    0.583289] usbcoree: registered new interface dNNriver uvcvideo
          = 0xJun 12 16:20:12 BL-P001 user.info kernel: [    0.583322] USB Video Class driver (1.1.1)
ff
[    1Jun 12 16:20:12 BL-P001 user.info kernel: [    0.58.326695] vccio_sdio: supplied by v4cc_1v8
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.5893880] rockchip-iodomain fe0205000.syscon:io-domains: Linked2 as a consumer to regulator.2
]Jun 12 16:20:12 BL-P001 user.info kernel: [    0.583964] roc kchip-iodomain fe020000.sysco n:io-domains: vccio1(1800000  uV) supplied by vccio_sdio
uJun 12 16:20:12 BL-P001 userseinfo kernel: [    0.584096] rrockchip-iodomain fe020000.sCyscon:io-domains: Linked as a consumer to regulator.16
lustJun 12 16:20:12 BL-P001 user.einfo kernel: [    0.584156] rockchip-iodomain fe020000.syscorn:io-domains: vccio2(3300000 MuV) supplied by vccio_sd
asksJun 12 16:20:12 BL-P001 user. nfo kernel: [    0.584275] rockchip-iodomain fe020000.sysc =on:io-domains: Linked as a consumer to regulator.12

6   Jun 12 16:20:12 BL-P001 user. info kernel: [    0.584328] r1ockchip-iodomain fe020000.sy.scon:io-domains: vccio3(18002000 uV) supplied by vcc_1v8
Jun 12 16:20:12 BL-P001 use4r.info kernel: [    0.5844819] rockchip-iodomain fe0200005.syscon:io-domains: vccio4(1800000 uV) supplied by vcc_1v4
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.584620]] rockchip-iodomain fe020000 f.syscon:io-domains: Linked afs a consumer to regulator.7
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.584675] rockchip-iodomain fe020000.sy,scon:io-domains: vccio5(3300000 uV) supplied by vcc3v3_sy
Jun 12 16:20:12 BL-P001 u
[er.info kernel: [    0.58484 3] rockchip-iodomain fe02000 0.syscon:io-domains: pmuio0(3300000  uV) supplied by vcc3v3_sys
 1.2649Jun 12 16:20:12 BL-P001 user.inf6o kernel: [    0.585029] rockchip-iodomain fe020000.syscon]:io-domains: pmuio1(3300000  uV) supplied by vcc3v3_sys
 trimmed value = 2BL-P001 user,.info kernel: [    0.587758] rock chip-thermal ff5f0000.tsadc: tsadc

[    1.264971]Jun 12 16:20:12 BL-P001 user. info kernel: [    0.588187] rfockchip-thermal ff5f0000.tsadc: tsadc is probed successfully!
Jun 12 16:20:12 BL-P001 user.i
nfo kernel: [    0.588689] rockchip-thermal ff5f8000.tsadc: tsadc trimmed value = 2
[    1.264Jun 12 16:20:12 BL-P001 user.in9fo kernel: [    0.588993] rockchip-thermal ff5f8000.tsadc: tsad7c is probed successfully!
9] ffJun 12 16:20:12 BL-P001 user.wa,rn kernel: [    0.589894] dw_wdt ff680000.watchdog: No valid TOPs array specified

[    1.2649Jun 12 16:20:12 BL-P001 user.in87fo kernel: [    0.590586] Blue]tooth: HCI UART driver ver 2.3
 ff,
[    1.264996] ffJun 12 16:20:12 BL-P001 user.inf,o kernel: [    0.590619] Blueto oth: HCI UART protocol H4 registered
info kernel: [    0.590970] cpu
cpu0: bin=0
[    1.265011] ff,
Jun 12 16:20:12 BL-P001 user.inf[o kernel: [    0.591033] cpu cpu0: leakage=1.875
    1.265021]Jun 12 16:20:12 BL-P001 user. ffo kernel: [    0.591174] cpfu cpu0: Linked as a consumer to re,gulator.5

[    1.265031]
[ Jun 12 16:20:12 BL-P001 user.i nfo kernel: [    0.602994] cpu cpu0 : temp=53300, pvtm=97082 (96874  + 208)
1.265046]   irqs              =
[    1.265047] 62,
[    1.265060] -1,
[    1.265071] -1,
[    1.265086] -1,
[    1.265092] -1,
[    1.265099] -1,
[    1.265108] -1,
[    1.265116] -1,
Jun 12 16:20:12 BL-P001 user.[ nfo kernel: [    0.603113] cpu  cpu0: pvtm-volt-sel=1
  1.2651Jun 12 16:20:12 BL-P001 user.info kernel: [    0.603214] cpu cpu0: Dropping t2he link to regulator.5
9] -1,
[    1.265140] -1,
[    1.265Jun 12 16:20:12 BL-P001 user.info kernel: [    0.603287] cpu cp1u0: bin-scale=5
50] -1,
[   Jun 12 16:20:12 BL-P001 user.info kernel: [    0.603657] cpu cpu0: Linked as a  consumer to regulator.5
1.265166]
[    1.265178]   registerBasJun 12 16:20:12 BL-P001 user.info kernel: [    0.603744] cpu cpu0: Dropping the link to regulator.5
es     =
[    1.265Jun 12 16:20:12 BL-P001 user.inf1o kernel: [    0.604025] cpu cpu800: Linked as a consumer to regulator.5
] 0xFFBC0000,
[    1.265188] 0x00000000,
[    1.265194] 0x00000000,
[    1.265203] 0x00000000,
[    1.265209] 0x00000000,
[    1.265218] 0x00000000,
[    1.265225] 0x00000000,
[    1.265233] 0x00000000,
[    1.26524Jun 12 16:20:12 BL-P001 user.info kernel: [    0.605307]1 cpu cpu0: avs=0
Jun 12 16:20:12 BL-P001 user.
debug kernel: [    0.6[    1.205703] energy_model: Created perf domain 0-3
yst=0 l_limit=0 h_limit=0 h_table=0BL-P001 user.info kernel: [    0.605759] cpu cpu0: l=-2147483648 h=2147483647 h

[    1.265262] 0x00000000,
[ Jun 12 16:20:12 BL-P001 user.err    kernel: [    0.605809] cpu cpu01: failed to read out thermal zone (-22)
.265264]
[    1.265266]Jun 12 16:20:12 BL-P001 user.err   kernel: [    0.606704] cpu cpu0: failed to find power_m rodel node
Jun 12 16:20:12 BLe-P001 user.notice kernel: [    0.606830] cpuidle: enable-method property &#39;psci&#39; found operations
gisterSizesJun 12 16:20:12 BL-P001 user.notice kernel: [    0.607112] cpuidle: enable-method property &#39;psci &#39; found operations
    =
[    1.265267] 0x00004000,
[    1.265269] 0x00000000,
[    1.265277] 0x00000000,
[    1.265311] 0x00000000,
[    1.265320] 0x00000000,
[    1.265327] 0x00000000,
[    1.265336] 0x00000000,
[    1.265344Jun 12 16:20:12 BL-P001 user.n]otice kernel: [    0.607188] cpuidle: enable-method property &#39;psc i&#39; found operations
0x00000000,
[    Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.607259] cpuidle: enable-method property &#39;psci&#39; found operations
1.265359] 0x0000000un 12 16:20:12 BL-P001 user.de0bug kernel: [    0.607601] pwr,seq_simple sdio-pwrseq: GPIO  lookup for consumer reset

[    1.265Jun 12 16:20:12 BL-P001 user.37debug kernel: [    0.607606] pwrseq_simple sdio-pwrseq: using device tree for GPIO lookup
0] 0x0Jun 12 16:20:12 BL-P001 user.0debug kernel: [    0.607628] o0f_get_named_gpiod_flags: parsed &#39;reset-gpios&#39; property of n0ode &#39;/sdio-pwrseq[0]&#39; - statu0s (0)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.6070645] gpio gpiochip2: Persistence not supported for GPIO 5
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.607875] Syn,opsys Designware Multimedia Card Interface Driver

[    1.26537Jun 12 16:20:12 BL-P001 user.8info kernel: [    0.608361] d]wmmc_rockchip ffc50000.dwmmc:  IDMAC supports 32-bit addres0s mode.
Jun 12 16:20:12 BL-Px001 user.info kernel: [    0.608391] dwmmc_rockchip ffc500000.dwmmc: Using internal DMA c0ontroller.
 270a2 1060:02000:12 BL-P001 user.info kernel: [,    0.608405] dwmmc_rockchip  fc50000.dwmmc: Version ID is
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.6084
58] dwmmc_rockchip ffc50000.dwmmc: DW MMC controller at irq 58,32 bit host data width,25[ 6 deep fifo
   1.265387]
[  Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.608509]  dwmmc_rockchip ffc50000.dwmmc: GPIO lookup for consumer wp
 1Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.608513] d.wmmc_rockchip ffc50000.dwmmc: using device tree for GPIO lo26okup
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.6085525] of_get_named_gpiod_flags: can&#39;t parse &#39;wp-gpios&#39; propert4y of node &#39;/dwmmc@ffc50000[0]0&#39;
Jun 12 16:20:12 BL-P001 user.debug ke0rnel: [    0.608533] of_get_named_gpiod_flags: can&#39;t parse &#39;wp-gpio&#39; ]property of node &#39;/dwmmc@ffc5 0000[0]&#39;
Jun 12 16:20:12 BL-P001 user. debug kernel: [    0.608540] dwmmc_rockchip ffc50000.dwmmc: using lookup tables for GPIO  chipookup
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.608544] dIDmmc_rockchip ffc50000.dwmmc: sNo GPIO consumer wp found
   Jun 12 16:20:12 BL-P001 user.info kernel: [    0.608570] mmc_host mmc 0: card is non-removable.
      =
Jun 12 16:20:12 BL-P001 user.[info kernel: [    0.621673] mmc_host mm c0: Bus speed (slot 0) = 4000 00Hz (slot req 400000Hz, actual 40 0000HZ div = 0)
Jun 12 16:20 :12 BL-P001 user.info kernel: [    01.636050] dwmmc_rockchip ffc60000.dwmmc: IDMAC supports 32-bit address mode.
.265402] 0xFFFFFFFFJun 12 16:20:12 BL-P001 user.info kernel: [    0.636146] dwmmc_rockc,hip ffc60000.dwmmc: Using internal DMA c ontroller.
   0.636190] dwmmc_rockchip ffnfo kernel: [
c60000.dwmmc: Version ID is [ 270a
Jun 12 16:20:12 BL-P00 1 user.info kernel: [    0.636 340] dwmmc_rockchip ffc60000 .dwmmc: DW MMC controller at i.rq 59,32 bit host data width26,256 deep fifo
5416] 0xFFFFFFFJun 12 16:20:12 BL-P001 user.info kernel: [    0.636649] dwmmc_rockchip ffc60000.dwmmc: LF,inked as a consumer to regula tor.16
01 user.debug kernel: [    0.636767] dwmmc_rockchip ffc6000
0.dwmmc: GPIO lookup for consu[mer cd
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.6 36782] dwmmc_rockchip ffc60000 .dwmmc: using device tree for  GPIO lookup
Jun 12 16:20:12 BL- P001 user.debug kernel: [    10.636828] of_get_named_gpiod_flags: can&#39;t parse &#39;cd-gpios&#39; .property of node &#39;/dwmmc@ffc2660000[0]&#39;
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.636861] of_get_named_gpiod_flags: can&#39;t parse &#39;cd-gpio&#39; pr5operty of node &#39;/dwmmc@ffc60000[0]&#39;
Jun 12 16:20:12 BL-P00421 user.debug kernel: [    0.6636884] dwmmc_rockchip ffc60000.dwmmc: using lookup tables for GPIO lookup
Jun 12 16:20:] 12 BL-P001 user.debug kernel:0 [    0.636902] dwmmc_rockchxFip ffc60000.dwmmc: No GPIO consFFFumer cd found
Jun 12 16:20:12 BL-P001 user.debug kernel: [F    0.637005] dwmmc_rockchip fFfc60000.dwmmc: GPIO lookup fFFor consumer wp
,
[    1.265Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.637023] dwmmc_rockchip ffc60000.dwmmc: using device tree for GPIO lo43okup
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.637065] of_get_named_gpiod_flags: can&#39;t parse &#39;wp-gpios&#39; property of node &#39;/dwmmc@ffc60000[0]9&#39;
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.637095]] of_get_named_gpiod_flags: can&#39;t  parse &#39;wp-gpio&#39; property of 0node &#39;/dwmmc@ffc60000[0]&#39;
xFFJun 12 16:20:12 BL-P001 user.Fdebug kernel: [    0.637114] dwmmc_rockchip ffc60000.dwmmc: usFng lookup tables for GPIO lookFup
Jun 12 16:20:12 BL-P001 uFser.debug kernel: [    0.637128] dwmmc_rockchip ffc60000.dwFmmc: No GPIO consumer wp found
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.650206] Fmmc_host mmc2: Bus speed (slot 0) = 400000Hz (slot req 4000,00Hz, actual 400000HZ div =  0)
er.info kernel: [    0.664794] dwmmc_rockchip ffc70000.dwmmc: ID
[MAC supports 32-bit address m ode.
Jun 12 16:20:12 BL-P001 us er.info kernel: [    0.664908] d wmmc_rockchip ffc70000.dwmmc:  Using internal DMA controller.
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.665140] dw1mmc_rockchip ffc70000.dwmmc: Ve2rsion ID is 270a
bit host data width,256 deep f BL-P001 user.info kernel: [    0.665301] dwmFmc_rockchip ffc70000.dwmmc: DW MMC controller at irq 60,32F,
ifo
Jun 12 16:20:12 BL-P001 u[ ser.debug kernel: [    0.66546 6] dwmmc_rockchip ffc70000.dwmmc:  GPIO lookup for consumer wp
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.665482] dw mmc_rockchip ffc70000.dwmmc: 1using device tree for GPIO lookup
Jun 12 16:20:12 BL-P001.user.debug kernel: [    0.6655227] of_get_named_gpiod_flags: 6can&#39;t parse &#39;wp-gpios&#39; prope5rty of node &#39;/dwmmc@ffc70000[0]&#39;
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.665564] of_get_named_gpiod_flags: can&#39;t parse &#39;wp-gpio&#39; property of node &#39;/dwmmc@ffc70000[0]&#39;
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.665588] dwmmc_rockchip ffc70000.dw453mmc: using lookup tables for] GPIO lookup
Jun 12 16:20:12  BL-P001 user.debug kernel: [    0.665604] dwmmc_rockchip ffc70000.dwmmc: No GPIO consuxmer wp found
Jun 12 16:20:12F BL-P001 user.info kernel: [   F 0.665693] dwmmc_rockchip ffFc70000.dwmmc: allocated mmc-pwrseqF
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.665F853] mmc_host mmc1: card is noFn-removable.
F,
[    1.265462] 0xJun 12 16:20:12 BL-P001 user.info kernel: [    0.672173] mmc_host mmc0: Bus speed (sFlot 0) = 198000000Hz (slot req 200000000Hz, actual 198000000HZ div = 0)
FFFFFFF,
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.672280] dwmmc_roc[kchip ffc50000.dwmmc: Successfully tuned phase to 90
   Jun 12 16:20:12 BL-P001 user.info kernel: [    0.673445]  mmc0: new HS200 MMC card at address 0001
Jun 12 16:20:12 BL-P001 user.in1fo kernel: [    0.675855] mmcblk0: mmc0:000.1 4FTE4R 3.64 GiB
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.677048] mmc2blk0boot0: mmc0:0001 4FTE4R partition 1 4.00 MiB
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.678161] mmcblk0bo6ot1: mmc0:0001 4FTE4R partition 2 4.00 MiB
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.6782855 mmc_host mmc1: Bus speed (slot 04) = 400000Hz (slot req 400000H7z, actual 400000HZ div = 0)
2Jun 12 16:20:12 BL-P001 user.info kernel: [    0.678487] ]mmcblk0rpmb: mmc0:0001 4FTE4R partition 3 512 KiB, chardev (242:0)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.689669]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13
Jun 12 16:20:12 BL-P0001 user.debug kernel: [    0.x691715] of_get_named_gpiod_flFags: parsed &#39;gpios&#39; property of node &#39;/gpio-leds/work_led[0]&#39; - status (0)
JFFFFFF,
u[n 12 16:20:12 BL-P001 user.debug kernel: [    0.691748] gpio g piochip2: Persistence not supported for GPIO 31
  1.265485] 0Jun 12 16:20:12 BL-P001 user.xdebug kernel: [    0.691752] no flags found for gpios
JuFnF F1F2F16:20:12 BL-P001 user.debug kFernel: [    0.692106] of_get_nFamed_gpiod_flags: parsed &#39;gpFios&#39; property of node &#39;/gpio-leds/sys_led[0]&#39; - status (0),
 gpio gpiochip2: Persistence not supported for GPIO 28138]

Jun 12 16:20:12 BL-P001 user.d[ebug kernel: [    0.    1.265495692143] no flags found for gpios
2J u0nx F1F2F F1F6F:F2F0,: 1
 [   B 1.L2-6P5050011user.info kernel: [    0.693038]] usbcore: registered new inte rface driver usbhid
0xFFFFFFFF,
[   Jun 12 16:20:12 BL-P001 user.info kernel: [    0.693090] usbh id: USB HID core driver
Jun 12 16:20:12 BL-P001 user.info kernel: [    01.695829] rockchip-saradc ff5e0000.saradc: Linked as a consu.mer to regulator.12
Jun 12 16:20:12 BL-P001 user.info kernel: 2[    0.697409] optee: probing for conduit method from DT.
Jun 12 16:20:12 BL-P001 user.info kern6el: [    0.697468] optee: revision 3.13 (7b427573)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.700434] optee: initialized5 driver
Jun 12 16:20:12 BL-P001 user.err kernel: [    0.700515] rksfc_base v1.1 2016-01-508
Jun 12 16:20:12 BL-P001 user.in0fo kernel: [    0.701196] rksfc ffc90000.sfc: rksfc_probe clk 6rate = 79200000
Jun 12 16:20:]12 BL-P001 user.err kernel: [    0.701321] rkflash_dev_init  enter
Jun 12 16:20:12 BL-P0
01 user.warn kernel: [    0.7[01349] sfc nor id: 0 0 0
    1Jun 12 16:20:12 BL-P001 user.err kernel: [    0.701368] rkflash[1] is invalid
.265526]  Jun 12 16:20:12 BL-P001 user. cerr kernel: [    0.701371] rkflash_dev_init enter
ore 0 internalJun 12 16:20:12 BL-P001 user. warn kernel: [    0.701421] sfc_nand id: 0 0 0
Jun 12 16:20:12 BL-P001 usser.err kernel: [    0.701441] rkflash[2] is invalid
RAMBasesJun 12 16:20:12 BL-P001 user.e rr kernel: [    0.710110] rk81=7-codec rk817-codec: rk817_cod ec_parse_dt_property() Can not get child: codec
7-codec rk817-codec: rk817_platform_probe() parse device tree
 property error -19
Jun 12 16:2[0:12 BL-P001 user.info kernel:  [    0.713291] NET: Registered protocol family 17
   1.2655Jun 12 16:20:12 BL-P001 user.info kernel: [    0.713376] NET: Registered protocol family 15
Jun 12 16:20:12 BL-P001 user.info kernel: [ 2   0.714053] Bluetooth: RFCOMM TTY layer initialized
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.7814113] Bluetooth: RFCOMM socket layer initialized
] 0xFFFFFFFJun 12 16:20:12 BL-P001 user.info kernel: [    0.714186] BluFetooth: RFCOMM ver 1.11
FFFFFFJun 12 16:20:12 BL-P001 user.FFinfo kernel: [    0.714228] Bluetooth: HIDP (Human Interfa, e Emulation) ver 1.2
714264] Bluetooth: HIDP socketnfo kernel: [    0.
 layer initialized
Jun 12 16[:20:12 BL-P001 user.info kern el: [    0.714303] [BT_RFKILL ]: Enter rfkill_rk_init
Jun 12 16:2 0:12 BL-P001 user.info kernel: [    0.714326] [WLAN_RFKILL]:  Enter rfkill_wlan_init
1.265Jun 12 16:20:12 BL-P001 user.info kernel: [    0.7148558] [WLAN_RFKILL]: Enter rfkil3l_wlan_probe
Jun 12 16:20:127 BL-P001 user.info kernel: [  ]  0.715019] [WLAN_RFKILL]: wl an_platdata_parse_dt: wifi_chip_type = ap6212a
0xFFFFFFFFFFFJun 12 16:20:12 BL-P001 user.info kernel: [    0.715064] [WFAN_RFKILL]: wlan_platdata_parse_dt: enable wifi power control.F
Jun 12 16:20:12 BL-P001 useFr.info kernel: [    0.715078]F [WLAN_RFKILL]: wlan_platdata_parse_dt: wifi power controled by gpio.
    0.715111] of_get_named_ger.debug kernel: [
[piod_flags: can&#39;t parse &#39;WIFI,poweren_gpio&#39; property of node &#39;/wireless-wlan[0]&#39;
Jun 12 16:2  0:12 BL-P001 user.debug kerne l: [    0.715128] of_get_named _gpiod_flags: can&#39;t parse &#39;WIFI,vbat_gpio&#39; property of node &#39;/wireless-wlan[0]&#39;
get_named_gpiod_flags: can&#39;t parse &#39;WIFI,reset_gpio&#39; property of node &#39;/wireless-wlan[0]&#39;
Jun 12 16:20:12
BL-P001 user.debug kernel: [    0.715161] of_get_named_gpiod_flags: parsed &#39;WIFI,host_wake_ir[q&#39; property of node &#39;/wireless-wlan[0]&#39; - status (0)
    1.26Jun 12 16:20:12 BL-P001 user.5info kernel: [    0.715166] [5WLAN_RFKILL]: wlan_platdata_parse_dt: WIFI,host_wake_irq56 = 8, flags = 0.
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.715239] [WLAN_RFKILL]: r]fkill_wlan_probe: init gpio
  Jun 12 16:20:12 BL-P001 user.info kernel: [    0.715257] [WLAN_RFKILL]: Exit rfkill_wlan_probe
Jun 12 16:20:12 BL-P001 user.warn kernel: [     0.715293] mmc1: queuing unknowcn CIS tuple 0x80 (2 bytes)
orJun 12 16:20:12 BL-P001 user.debug kernel: [    0.715880] of_get_named_gpiod_flags: parsed &#39;uart_rts_gpios&#39; property of node &#39;/wireless-bluetooth[0]&#39; - status (0)
e 1 inteJun 12 16:20:12 BL-P001 user.irnfo kernel: [    0.715890] [BT_RFKILL]: bluetooth_platdata_parsne_dt: get property: uart_rts_gapios = 48.
l sRAMBases =
[    1Jun 12 16:20:12 BL-P001 user..debug kernel: [    0.716002] of_get_named_gpiod_flags: can&#39;t parse &#39;BT,power_gpio&#39; property of node &#39;/wireless-bluetooth[0]&#39;
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.716029] of_get_named_gpiod_flags: parsed &#39;BT,reset_gpio&#39; property of node &#39;/wireless-bluetooth[0]&#39; - status (0)
265558] 0xFFFFFFFFFFFFFFFF,
[    1.265565] 0xFFFFFFFFFFFFFFFF,
[    1.265573]
[    1.265584]   core 2 internal sRAMBases =
[    1.265585] Jun 12 16:20:12 BL-P001 user.i0nfo kernel: [    0.716035] [BT_RFKILL]: bluetooth_platdata_paxrse_dt: get property: BT,reseFt_gpio = 101.
FFFFFFFFFFFFFFF,
[    1.265593] 0xFFFFFFFFFFFFJun 12 16:20:12 BL-P001 user.debug kernel: [    0.716079] of_get_named_gpiod_flags: parsed &#39;BT,wake_gpio&#39; property of Fnode &#39;/wireless-bluetooth[0]&#39; F- status (0)
FF,
[    1.265600]
[    1.265611]   core 3 internal sRAMBases =
[    1.265612] 0xFFFFFFFFFFFFFFFF,
[    1.265620] 0xFFFFFFFFFFFFFFFF,
[    1.265628]
[    1.265640]   core 4 internal sRAMBases =
[    1.265641] 0xFFFFFFFFFFFFFFFF,
[    1.265649] 0xFFFFFFFFFFFFFFFF,
[    1.265656]
[    1.265667]   core 5 internal sRAMBases =
[    1.265668] 0xFFFFFFFFFFFFFFFF,
[    1.265676] 0xFFFFFFFFFFFFFFFF,
P    1.2Jun 12 16:20:12 656B83]L -
0[0 1 user.info kernel: [    0.7  16085] [BT_RFKILL]: bluetooth_platdata_parse_dt: get property: BT,wake_gpio = 102.
 1.265695] Jun 12 16:20:12 BL-P001 user.debug kernel:   [    0.716124] of_get_named_gpiod_flags: parsed &#39;BT,wake_hostc_irq&#39; property of node &#39;/wirelesos-bluetooth[0]&#39; - status (0)
re 6 Jun 12 16:20:12 BL-P001 user.inifo kernel: [    0.716130] [BT_nRFKILL]: bluetooth_platdata_parse_dt: get property: BT,wake_host_irq = 100.
ternal sRAMBases =
[    1.265696] 0xFFFFFFFFFFFFFFFF,
[    1.265704] 0xJun 12 16:20:12 BL-P001 user.info kernel: [   FF 0.716165] [BT_RFKILL]: bluetootFh_platdata_parse_dt: clk_get fFailed!!!.
FFFFFFFFFFFF,
[    1Jun 12 16:20:12 BL-P001 user.info. kernel: [    0.716251] [BT_RFK2ILL]: Request irq for bt wakeup host
6571Jun 12 16:20:12 BL-P001 user.info kernel: [    0.716436] [BT_RFKILL]: ** disable irq
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.716686] [BT_RFKILL]: bt_default device registered.
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.718121] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
0un 112 16]: 2
:12 BL-P001 user.info kernel: [[    0.718136] flash vendor_init thread!
   1.265722]   core 7 inJun 12 16:20:12 BL-P001 userte.info kernel: [    0.718166]r flash vendor storage:20170308 ret = -1
Jun 12 16:20:12 BL-nP001 user.info kernel: [    0.718880] ov2740 1-0036: driver version: 00.01al.01
Jun 12 16:20:12 BL-P001 user.debug kernel:  [    0.719122] ov2740 1-0036: GPIO lookup for consumer power
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.719130] ov2740 1-0036: using device tree for GPIO lookup
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.719166] of_get_named_gpiod_flags: parsed &#39;power-gpios&#39; property of node &#39;/i2c@ff510000/ov2740@36[0]&#39; - status (0)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.719176] gpio-102 (bt_default_wake): gpiod_request: status -16
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.719184] ov2740 1-0s036: Failed to get power-gpios
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.719230] ov2740 1-0036: GPIO lookup for consumer reset
RAMBaseJun 12 16:20:12 BL-P001 user.debug kernel: [    0.719234] ov27s40 1-0036: using device tree for GPIO lookup
 =
[    1.265724]Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.719260] of_get _named_gpiod_flags: parsed &#39;reset-gpios&#39; property of node &#39;/i2c0@ff510000/ov2740@36[0]&#39; - status (0)
xFFFFFFFFFFFFFFFF,
[    1.265732] 0xFFFFFFFFFFFFFFFF,
[    1.265741]
[    1.265752]   core 8 internal sRAMBases =
[    1.265753] 0xFFFFFFFFFFFFFFFF,
[    1.265761] 0xFFFFFFFFFFFFFFFF,
[    1.265768]
[    1.265781]   core 9 internal sRAMBases =
[    1.265783] 0xFFFFFFFFFFFFFFFF,
[    1.265791] 0xFFFFFFFFFFFFFFFF,
[    1.265798]
[    1.265812]   core 10 internal sRAMBases =
[    1.265813] 0xFFFFFFFFFFFFFFFF,
[    1.265821] 0xFFFFFFFFFFFFFFFF,
[    1.2658Jun 12 16:20:12 BL-P001 user.de29bug kernel: [    0.719284] gpi]o gpiochip1: Persistence not sup ported for GPIO 28

[    1.265843]   External sRAMBases =
[    1.265844] 0xffffffffffffffff,
[    1.265852] 0xffffffffffffffff,
[    1.265859]
[    1.265873]   mmuPageTablePool  = 1
[    1.265881]   mmuDynamicMap     = 1
[    1.265889]   isrPoll           = 0x00000000
[    1.265896] Build options:
[    1.265904]   gcdGPU_TIMEOUT    = 20Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.719308] ov2740 1-0036: GPIO lookup for consumer pwdn
Jun 12 16:20:12 BL-P001 user.de0bu0g0
 [k rnel: [    0.719313] ov2740 1-00 36: using device tree for GPIO lookup
  1.265912]   gcdGPU_Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.719341] of_get_named_gpiod_flags: parsed &#39;pwdn-gpios&#39; pr2operty of node &#39;/i2c@ff510000/ov2740@36[0]&#39; - status (0)
D_TIMEOJun 12 16:20:12 BL-P001 user.dUebug kernel: [    0.719349] gpio-60 (reset): gpiod_request: staTtus -16
 = 4000
[    1.J2u6n5 912 16:20:12 BL-P001 user.warn 6kernel: [    0.719356] ov2740 1-0036: Failed to get pwdn-gpios
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.719386] ov2740 1-0036: GPIO lookup for c1]onsumer vsync
   gcdINTERRUPT_STATISJun 12 16:20:12 BL-P001 user.dTebug kernel: [    0.719390] ov2740 1-0036: using device tree fIor GPIO lookup
C = 1
[    1.266111] bcmsdh_register: register client driver
[    1.266336] bcmsdh_sJun 12 16:20:12 BL-P001 user.dedbug kernel: [    0.719409] of_get_named_gpiod_flags: parsed &#39;vsync-gpios&#39; property of node &#39;/i2c@ff510000/ov2740@36[0]&#39; - status m(0)
mc_probe: Enter num=1
[    1.267361] bcmsdh_sdmmc_probe: Enter num=2
[    1.267581] bus num (host iJun 12 16:20:12 BL-P001 user.debug kernel: [    0.719424] gpio gpiochip1: Persistence not suppordxted for GPIO 29
)=1, slot num (rJun 12 16:20:12 BL-P001 user.infco kernel: [    0.719567] ov2740 1-0a)036: Linked as a consumer to regula=tor.15
1
[    1.267647] found aJun 12 16:20:12 BL-P001 user.indfo kernel: [    0.719696] ov27a40 1-0036: Linked as a consumerpt to regulator.13
er info &#39;DHD geJun 12 16:20:12 BL-P001 user.info kernel: [    0.719831] ov2740 1-0ner036: Linked as a consumer to regulator.14
ic adapter&#39;
[    1.267Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.720409] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.720734] clk_mipicsi_out2io9_fracdiv p_rate(297000000)5]  sdis low than rate(24000000)*20, iuse integer or half-div
oh_attJun 12 16:20:12 BL-P001 user.warn kernel: [    0.723846] mmc1a: queuing unknown CIS tuple 0x8c0 (7 bytes)
h: set sd_f2_blocksiJun 12 16:20:12 BL-P001 user.warn kernel: [    0.729341] mmc1: queuing unknown CIS tuple 0zx81 (9 bytes)
e 256
[    1.268Jun 12 16:20:12 BL-P001 user.i1nfo kernel: [    0.737998] mmc_host mmc2: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
69] sdioh_attach: sd clock rate = 0
[    1.268377] dhdsdio_probe : no mutex held. set lock
[    1.268477] F1 signature read @0x18000000=0x1541a9a6
[    1.268679] Galcore Info: ContiguousBase=0x1f856000 ContiguousSize=0x400000
[    1.271795] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x1 pkg:0x4
[    1.272969] DHD: dongle ram size is set to 524288(orig 524288) at 0x0
[    1.273117] [dhd] dhd_conf_set_chiprev : chip=0xa9a6, chiprev=1
[    1.273292] [dhd] CFG80211-ERROR) wl_setup_wiJun 12 16:20:12 BL-P001 user.info kernel: [    0.780367] ov274p0 1-0036: Found cameraID 0x002740
hy : RegisteJruin n1g2  V1e6n:d2o0r:12 BL-P001 user.info kernel: 8[    0.780523] rockchip-mipi-d0phy-rx ff4b0000.csi-dphy: match m00_f_ov2740 1-0036:bus type 4
211
[    1.Jun 12 16:20:12 BL-P001 user.n2otice kernel: [    0.781911] R7egistering SWP/SWPB emulation handler
3596] [dhd]J uCnF G182016:20:12 BL-P001 user.notice 2kernel: [    0.788203] Loading 1compiled-in X.509 certificates
1-ERROR) wJun 12 16:20:12 BL-P001 user.ilnfo kernel: [    0.792143] rg_a2: Driver loaded successfully ver:3.2.56726
setup_wiphy : SAE support
 un 12 16:20:12 BL-P001 user.info kerne[l: [    0.792726] rga2: Module initialized.
Jun 12 16:20:12 BL-P001 user.info ker  nel: [    0.809850] vendor storage:20190527 ret = 0
1.273773] [dhd]Jun 12 16:20:12 BL-P001 user.debug  kernel: [    0.829669] rockchip-usb2phy-naneng ff4c8000.usb2-phy: GPIO lCookup for consumer vup
FG80211-EJun 12 16:20:12 BL-P001 user.debuRg kernel: [    0.829677] rockchRip-usb2phy-naneng ff4c8000.usbO2-phy: using device treeR) wl_ for GPIO lookup
init_prof : wlJun 12 16:20:12 BL-P001 user_.debug kernel: [    0.829693]i of_get_named_gpiod_flags: can&#39;t parsen &#39;vup-gpios&#39; property of nodite &#39;/usb2-phy@ff4c8000[0]&#39;
_pJun 12 16:20:12 BL-P001 user.rdobug kernel: [    0.829702] of_get_named_gpiod_flags: can&#39;t pfarse &#39;vup-gpio&#39; property of no:de &#39;/usb2-phy@ff4c8000[0]&#39;
 NJun 12 16:20:12 BL-P001 user.oebug kernel: [    0.829707] rockchip-usb2phy-naneng ff4c8000.usb2-phy: using lookup tables for GPIO lookup
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.829712] rockchip-usb2phy-naneng ff4c8000.usb2-phy: No GPIO consumer vup found
 profJun 12 16:20:12 BL-P001 user.iinfo kernel: [    0.829803] phy plhy-ff4c8000.usb2-phy.2: Linked as a consumer to regulator.18
eJun 12 16:20:12 BL-P001 user.info kernel: [    0.833830] mpp_rkvenc ffbb0000.rkvenc: probing start
Jun 12 16:20:12
[    1.273986] Galcore Info:BL-P001 user.info kernel: [    0.834873] mpp_rkvenc  ffbb0000.rkvenc: Linked as a conMsumer to regulator.4
MU mapped corJun 12 16:20:12 BL-P001 user.info kernel: [    0.835070] mpp_rkvenc ffbb0000.rkvenc: bin=0
e 0 SJun 12 16:20:12 BL-P001 user.info kernel: [    0.835144] mpp_rAkvenc ffbb0000.rkvenc: leakage=1.625
Jun 12 16:20:12 BL-P001 user.err kernel: [   M 0.835260] mpp_rkvenc ffbb0000.rkvenc: Failed to get pvtm
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.835314[] mpp_rkvenc ffbb0000.rkvenc: bin-scale=37
Jun 12 16:20:12 BL-P001 use0r.info kernel: [    0.835795] mpp_rkvenc ffbb0000.rkvenc: avs=0
] hardware virtuaJun 12 16:20:12 BL-P001 user.elrr kernel: [    0.836247] mpp _rkvenc ffbb0000.rkvenc: failed to find power_model node
aJudnd r1e2s s1=60:x2400:01020 0 sBL-P001 user.err kernel: [    0.8362i94] mpp_rkvenc ffbb0000.rkvenzc: failed to initialize power model
e=0x40000
[ J u n  11.2 16:20:12 BL-P001 user.info kernel: [    0.836637] mpp_rkv2enc ffbb0000.rkvenc: l=-21474873648 h=2147483647 hyst=0 l_limi4t=0 h_limit=0 h_table=0
Jun 12 16:20:12 BL-P001 user.err kernel: [    0.836691] mpp_rkvenc ffbb0000.rk size=0x40000
venc: failed to read out thermal zone (-22)
[    1.275506] dhd_attachJun 12 16:20:12 BL-P001 user.info kernel: [    0.837776] mpp_rkvenc ffbb0000.rkvenc: probing finish
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.840298] rockchip-(drm display-subsystem: devfreq is not set
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.840862] rockchip-drm display-subsystem: bound ffb00000.vop (ops 0xb0a44600)
Jun 12 16:20:12 BL-P001 user.err kernel: [    0.841000] dw-mipi-dsi ffb30000.dsi: [drm:d)w_mipi_dsi_bind] *ERROR* Fail:d to find panel or bridge: -51 7
Jun 12 16:20:12 BL-P001 user.err kernel: [    0.841057] rockchip-drm display-subsystem: failed to bind ffb30000.dsi (ops 0xb0a4ad34): -517
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.841383] rockchip-drm display-subsystem: master bind failed: -517
Jun 12 16:20:12 BL-P001 user.info kernel: [    0th.842211] panel-simple-dsi ffb30000.dsi.0: Linked as a consumer to regulator.12
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.842re276] panel-simple-dsi ffb30000.dsi.0: ffb30000.dsi.0 supply vsp not found, using dummy regulator
ad:dhd_watchdog_thread:aJun 12 16:20:12 BL-P001 user.info kernel: [    0.842495] panel-simple-dsi ffb30000.dsi.0: Linked as a consumer to regulator.0
e started
[    1.275774] dhd_attach(): thread:dhd_dpc:af started
[    1.275839] dhd_attach()Jun 12 16:20:12 BL-P001 user.wa:rn kernel: [    0.842562] panel- simple-dsi ffb30000.dsi.0: ffb30000.dsi.t0 supply vsn not found, using dummyh regulator
read:dhd_rxf:b0 started
[    1.275855] dhd_deferred_work_init: work queue initialized
[    1.275867] dhd_tcpack_suppress_set: TCP ACK Suppress mode 0 -&gt; mode 2
[    1.275904] dhd_bus_set_default_min_res_mask: Unhandled Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.842656] panel-simple-dsi ffb30000.dsi.0: GPIO lookup for consumer enable
chip id
[    1.276125] sdioh_cis_read: func_cis_Jputnr [102] =106x:12007:102 BL-P001 user.debug kernel: [    0.842661] panel-simple-dsi ffb30000.dsi.0: using device tree for GPIO lookup
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.842678] of_get_named_gpiod_flags: can&#39;t parse &#39;enable-gpios&#39; property of node &#39;/dsi@f
[    1.276252] galfb30000/panel@0[0]&#39;
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.842688] of_get_named_gpiod_flags: can&#39;t parse &#39;enable-gpio&#39; property of node &#39;/dsi@ffb30000/panel@0[0]&#39;
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.842695] panel-simple-dsi ffb30000.dsi.0: using lookup tables for GPIO lookupc
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.842700] panel-simple-dsi ffb30000.dsi.0: No GPIO consumer enable found
Jun 12 16:20:12 BL-P001 user.odebug kernel: [    0.842705] panel-simple-dsi ffb30000.dsi.0: GPIO lookup for consumer reset
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.842708] panel-simple-dsi ffb30000.dsi.0: using device tree for GPIO lookup
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.842727] of_get_named_gpiod_flags: parsed &#39;reset-gpios&#39; property of node &#39;/dsi@ffb30000/panel@0[0]&#39; - status (0)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.842743] gpio gpiochip2: Persistence not supported for GPIO 2
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.842745] no flags found for reset
re ffbc0000.npu: Init npu devfrJun 12 16:20:12 BL-P001 user.info kernel: [    0.845965] ehci-platform ffe00000.usb: EHCI Host Controller
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.846053] ehci-platform ffe00000.usb: new USB bus registered, assigned bus number 1
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.846252] ehci-platform ffe00000.usb: irq 63, io mem 0xffe00000
Jun 12 16:20:12 BL-P001 user.infoeq
 kernel: [    0.853053] ehci-platform ffe00000.usb: USB 2.0 started, EHCI 1.00
Jun 12 16:20:12 BL-P001 user.info ke[rnel: [    0.853570] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.853637] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
Jun 12 16:20:12 BL-P001 user.info kernel:  [    0.85 1.276278] galcore ffbc0000.npu: bin=0
[    1.276311] 3668]g uaslbc ourseb 1f:f bc0P00roduct: EHCI Host Controller
0Jun 12 16:20:12 BL-P001 user.info kernel: [    0.853710] usb usb1: Manufacturer: Linux 4.19.111 ehci_hcd
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.853781] usb usb1: SerialNumber: ffe00000.usb
.npu: leakage=1.375
[    1.284065] Dongle HostJun 12 16:20:12 BL-P001 user.info kernel: [    0.855276] hub 1-0:1.0: USB hub found
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.855414] hub 1-0:1.0: 1 port detected
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.857544]  ohci-platform ffe10000.usb: Generic Platform OHCI controller
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.857658] ohci-platform ffe10000.usb: new USB bus registered, assigned bus number 2
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.858080] ohci-platform ffe10000.usb: irq 64, io mem 0xffe10000
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.914618] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 4.19
Driver, version 1.579.77.41.22 (r-20191105-2)(20191120-1)
[    1.284586] Register interface [wlan0]  MAC: 08:fb:ea:44:01:4Jun 12 16:20:12 BL-P001 user.info kernel: [    0.914680] usb usb2: New USB device strings: Mfr=3,c Product=2, SerialNumber=1

[    1.284586]
[    1.284761] dhd_tcpack_suppress_set: TCP ACK Suppress mode 2 -&gt; mode 0
[    1.28Jun 12 16:20:12 BL-P001 user.info kernel: [    0.914697] usb usb2: Product: Generic Platform OHC4I controller
787] dhd_wl_ioctl: Jun 12 16:20:12 BL-P001 user.info kernel: [    0.914712] usb ursb2: Manufacturer: Lineturning ux 4.19.111 ohci_hcd
as busstate=0
[ Jun 12 16:20:12 BL-P001 user.i nfo kernel: [    0.914726] usb  usb2: SerialNumber: ffe10000.usb
 1.2Jun 12 16:20:12 BL-P001 user.info kernel: [    0.916815] hub 2-0:1.0: 84USB hub found
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.916997] hub 2-0:1.0: 1 port detected
Jun 12 16:20:12 BL-P001 u7ser.info kernel: [    0.920609] mmc_host mmc1: Bus speed (sl9ot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
8] dhd_dbg_detach_pkt_monitor, 2204
[    1.284807] dhd_bus_devresetJun 12 16:20:12 BL-P001 user.info kernel: [    0.922365] rockchip-drm display-subsystem: devfreq is not se: t
== Power OFF ==
[    1.285077] bcmsdh_oob_intr_unregister: Enter
[    1.285091] bcmsdh_oob_intr_unregister: irq Jun 12 16:20:12 BL-P001 user.info kernel: [    0.923171] rockchip-drm display-subsystem: bound ffb00000.ivop (ops 0xb0a44600)
s not registered
[    1.2Jun 12 16:20:12 BL-P001 user.info kerne85l: [    0.923374] rockchip-drm1display-subsystem: bound ffb300000.dsi (ops 0xb0a4ad34)
5] dhd_txglom_enable: enable 0
[    1.28Jun 12 16:20:12 BL-P001 user.in5fo kernel: [    0.923425] [drm1] Supports vblank timestamp cac1hing Rev 2 (21.10.2013).
4] dhdJun 12 16:20:12 BL-P001 user.info kernel: [    0.923447] [drm]_b No driver support for vblanku timestamp query.
s_devreset:  WLAN OFF DONE
[    1.285156] wifi_platform_set_power = 0
[    1.285169] ======== PULL WL_REG_ON(-1) LOW! ========
[    1.285172] [WLAN_RFKILL]: rockchip_wifi_power: 0
[    1.285183] [WLAN_RFKILL]: wifi shut off power [GPIO-1-1]
[    1.285186] dhdsdio_probe : the lock is released.
[    1.285441] dhd_module_init: Exit err=0
[    1.287833] galcore ffbc0000.npu: temp=54200, pvtm=97508 (97508 + 0)
[    1.288035] galcore ffbc0000.npu: pvtm-volt-sel=1
[    1.288Jun 12 16:20:12 BL-P001 user.0info kernel: [    0.935131] r6ockchip-drm display-subsystem: fb0:  frame buffer device
8] galcore ffbc0000.npu: bin-scale=23
[    1.288576] galcore ffbc0000.npu: avs=0
[    1.288975] galcore ffbc0000.npu: l=-2147483648 h=2147483647 hyst=0 l_limit=0 h_limit=0 h_table=0
[    1.289002] galcore ffbc0000.npu: failed to read out thermal zone (-22)
[    1.289082] galcore ffbc0000.npu: failed to find power_model node
[    1.289095] galcore ffbc0000.npu: failed to initialize power model
[    1.Jun 12 16:20:12 BL-P001 user.in3fo kernel: [    0.937629] mmc1: new high speed SDIO card at address 0001
45605] usb 1-1: New USB device found, idVendor=ab20, idProduct=1276, bcdDevice=10.03
[    1.345627] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.345635] usb 1-1: Product: U0AS01A-0
[    1.345643] usb 1-1: Manufacturer: U0AS01A-0
[    1.345651] usb 1-1: SerialNumber: 20221017194640
[    1.359108] uvcvideo: Found UVC 1.00 device U0AS01A-0 (ab20:1276)
[    1.361582]Jun 12 16:20:12 BL-P001 user.info kernel: [    0.937967] [drm] Initialized rockchip 2.0.0 20140818 for display-subsystem on minor 0
 uvcvideo: Failed to query (GET_INFO) UVC control 3 on unit 1: -32 (exp. 1).
[    1.398056] uvcvideo 1-1:1.0: Entity type for entity Extension 4 was not initialized!
[    1.398159] uvcvideoJun 12 16:20:12 BL-P001 user. warn kernel: [    0.91-1:1.0: Entity type for entity Extension 3 was not initialized!
[    1.398182] uvcvideo 1-1:1.0: Entity type for entity Processing 2 was not init40182] dhd_module_init: in Dongle Host Driver, version 1.579.77.ia41.22 (r-20191105-2)(20191120-l1)
ized!
[    1.398199] uvcvideo 1-1:1.0: Entity type for entity Camera 1 was not initialized!
[    1.398488] input: U0AS01A-0: U0AS01A-0 as /devices/platform/ffe00000.usb/usb1/1-1/1-1:1.0/input/input4
[    1.405907] udevd[214]: starting version 3.2.7
[    1.411231] udevd[214]: specified group &#39;kvm&#39; unknown
[    1.425481] udevd[215]: starting eudev-3.2.7
[    1.607209] clk_mipicsi_out2io_fracdiv p_rate(297000000) is low than rate(24000000)*20, use integer or half-div
[    1.667170] clk_mipicsi_out2io_fracdiv p_rate(297000000) is low Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.940247] ======== dhd_wlan_init_platthan rate(24000000)*20, use integer or half-div
_data ========
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.940256] [WLAN_RFKILL]: rockchip_wifi_get_oob_irq: Enter
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.940343] dhd_wlan_init_gpio: WL_HOST[    1.724506] clk_mipicsi_out2io_fracdiv p_rate(297000000) is low than rate(24000000)*20, u_se inWtAeKgEe=r- 1o,r  ohoabl_fi-rdqiv=
106, oob_irq_flags=0x414
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.940362] dhd_wlan_init_gpio: WL_REG_ON=-1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.940425] dhd_wifi_platform_load: Enter
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.940444] Power-up adapter &#39;DHD generic adapter&#39;
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.940590] of_get_named_gpiod_flags: parsed &#39;gpios&#39; property of node &#39;/gpio-keys/e_stop[0]&#39; - status (0)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.940612] gpio gpiochip2: Persistence not supported for GPIO 21
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.940741] of_get_named_gpiod_flags: parsed &#39;gpios&#39; property of node &#39;/gpio-keys/wakeup[0]&#39; - status (0)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.940754] gpio gpiochip0: Persistence not supported for GPIO 7
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.940834] of_get_named_gpiod_flags: parsed &#39;gpios&#39; property of node &#39;/gpio-keys/open_door[0]&#39; - status (0)
Jun 12 16:20:12 BL-P001 user.debug kernel: [    0.940845] gpio gpiochip0: Persistence not supported for GPIO 6
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.941010] wifi_platform_set_power = 1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.941027] ======== PULL WL_REG_ON(-1) HIGH! ========
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.941039] [WLAN_RFKILL]: rockchip_wifi_power: 1
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.941051] [WLAN_RFKILL]: wifi turn on power [GPIO-1-0]
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.941084] input: gpio-keys as /devices/platform/gpio-keys/input/input3
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.942095] cfg80211: Loading compiled-in X.509 certificates for regulatory database
Jun 12 16:20:12 BL-P001 user.notice kernel: [    0.944738] cfg80211: Loaded X.509 cert &#39;sforshee: 00b28ddf47aef9cea7&#39;
Jun 12 16:20:12 BL-P001 user.warn kernel: [    0.944836] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.944852] cfg80211: failed to load regulatory.db
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.945311] rkisp rkisp-vir0: clear unready subdev num: 1
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.945901] rkisp0: Async subdev notifier completed
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.946030] ALSA device list:
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.946047]   #7: Loopback 1
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.950582] EXT4-fs (mmcblk0p10): mounted filesystem with ordered data mode. Opts: (null)
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.950668] VFS: Mounted root (ext4 filesystem) readonly on device 179:10.
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.954905] devtmpfs: mounted
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.955807] Freeing unused kernel memory: 1024K
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.955959] Run /sbin/init as init process
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.956878] dwmmc_rockchip ffc60000.dwmmc: Successfully tuned phase to 10
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.956980] mmc2: new ultra high speed SDR104 SDHC card at address 0001
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.958307] mmcblk2: mmc2:0001 SD32G 28.9 GiB
Jun 12 16:20:12 BL-P001 user.info kernel: [    0.959892]  mmcblk2: p1
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.008422] EXT4-fs (mmcblk0p10): re-mounted. Opts: (null)
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.181137] usb 1-1: new high-speed USB device number 2 using ehci-platform
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.249992] wifi_platform_bus_enumerate device present 1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.250027] ======== Card detection to detect SDIO card! ========
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.250036] mmc1:mmc host rescan start!
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.256478] galcore: loading out-of-tree module taints kernel.
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.263501] galcore: npu init.
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.264365] galcore: start npu probe.
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.264560] galcore ffbc0000.npu: Linked as a consumer to regulator.4
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.264728] npu: platform_get_irq irq = 62
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.264740] npu: platform_get_resource registerMemBase = ffbc0000, registerMemSize = 4000
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.264750] Galcore version 6.4.6.5.351518
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264758] Galcore options:
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264766]   irqLine           = 62
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264774]   registerMemBase   = 0xFFBC0000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264782]   registerMemSize   = 0x00004000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264791]   contiguousSize    = 0x00400000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264799]   contiguousBase    = 0x0
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264806]   externalSize      = 0x00000000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264814]   externalBase      = 0x0
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264821]   exclusiveSize     = 0x00000000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264828]   exclusiveBase     = 0x0
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264835]   bankSize          = 0x00000000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264843]   fastClear         = -1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264851]   compression       = 15
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264860]   powerManagement   = 1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264868]   baseAddress       = 0x00000000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264876]   physSize          = 0x00000000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264884]   recovery          = 1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264891]   stuckDump         = 0
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264899]   GPU smallBatch    = 1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264907]   allMapInOne       = 1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264914]   enableNN          = 0xff
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264952]   userClusterMasks  =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264954] ff,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264963] ff,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264971] ff,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264979] ff,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264987] ff,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.264996] ff,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265011] ff,
Jun 12 16:20:12 BL-P001 user.warn kernel: [ [   1.265021] ff,
Jun 12 16:2 :12 BL-P001 user.warn kernel: [    1.265031]
Jun 12 16:20:12 BL-P001 user.warn kernel: [     1.265046]   irqs              =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265047] 62,
 1.785Jun 12 16:20:12 BL-P001 user.wa1rn kernel: [    1.265060] -1,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.5265071] -1,
Jun 12 16:20:124 BL-P001 user.warn kernel: [    1.265086] -1,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265092] -1,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265099] -1,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265108] -1,
Jun 12 16:20:12 BL-P001 user.warn] c kernel: [    1.265116] -1,
lk_mipicsi_Jun 12 16:20:12 BL-P001 user.warn kernel: [    o1.265129] -1,
Jun 12 16:20:12 BL-P001 user.warn kuernel: [    1.265140] -1,
Jun 12 16:20:12 BL-P001 user.warn kernetl: [    1.265150] -1,
Jun 12 16:20:12 BL-P001 user.warn kernel: [   2 1.265166]
Jun 12 16:20:12 iBL-P001 user.warn kernel: [    1.265178]   registerBases   o  =
Jun 12 16:20:12 BL-P001_ user.warn kernel: [    1.26f5180] 0xFFBC0000,
Jun 12 1r6:20:12 BL-P001 user.warn kearnel: [    1.265188] 0x00000c000,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265194] 0x00000000,
Jun 12 16:20:12 BL-P001 user.warn kerdnel: [    1.265203] 0x00000000iv p_r,
Jun 12 16:20:12 BL-P0a0t1euser.warn kernel: [    1.265(209] 0x00000000,
Jun 12 162:20:12 BL-P001 user.warn kerne9l: [    1.265218] 0x00000000,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.2652275] 0x00000000,
Jun 12 16:20:12 BL-P001 user.warn kernel0: [    1.265233] 0x00000000,0
Jun 12 16:20:12 BL-P001 u0ser.warn kernel: [    1.2652041] 0x00000000,
Jun 12 160):20:12 BL-P001 user.warn kernel: [     1.265250] 0x00000000,
is low Jun 12 16:20:12 BL-P001 usert.warn kernel: [    1.265262]h0x00000000,
Jun 12 16:20:1a2 BL-P001 user.warn kernel: [    1.265264]
Jun 12 16:20:12 BL-P001 user.warn kernel:n [    1.265266]   registerSizes     =
 rate(24000000)*20, useJun 12 16:20:12 BL-P001 user .warn kernel: [    1.265267] 0x00004000,
Jun 12 16:20:in12 BL-P001 user.warn kernel:t [    1.265269] 0x00000000,
eger Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265277] o0x00000000,
Jun 12 16:20:1r2 BL-P001 user.warn kernel: [     1.265311] 0x00000000,
half-div
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265320] 0x00000000,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265327] 0x00000000,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265336] 0x00000000,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265344] 0x00000000,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265359] 0x00000000,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265370] 0x00000000,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265378] 0x00000000,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265387]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265400]   chipIDs           =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265402] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265416] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265426] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265439] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265445] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265453] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265462] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265472] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265485] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265495] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265501] 0xFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265506]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265526]   core 0 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265528] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265537] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265545]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265556]   core 1 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265558] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265565] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265573]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265584]   core 2 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265585] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265593] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265600]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265611]   core 3 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265612] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265620] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265628]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265640]   core 4 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265641] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265649] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265656]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265667]   core 5 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265668] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265676] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265683]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265695]   core 6 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265696] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265704] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265711]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265722]   core 7 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265724] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265732] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265741]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265752]   core 8 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265753] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265761] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265768]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265781]   core 9 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265783] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265791] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265798]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265812]   core 10 internal sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265813] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265821] 0xFFFFFFFFFFFFFFFF,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265829]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265843]   External sRAMBases =
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265844] 0xffffffffffffffff,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265852] 0xffffffffffffffff,
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265859]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265873]   mmuPageTablePool  = 1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265881]   mmuDynamicMap     = 1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265889]   isrPoll           = 0x00000000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265896] Build options:
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265904]   gcdGPU_TIMEOUT    = 20000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265912]   gcdGPU_2D_TIMEOUT = 4000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.265961]   gcdINTERRUPT_STATISTIC = 1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.266111] bcmsdh_register: register client driver
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.266336] bcmsdh_sdmmc_probe: Enter num=1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.267361] bcmsdh_sdmmc_probe: Enter num=2
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.267581] bus num (host idx)=1, slot num (rca)=1
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.267647] found adapter info &#39;DHD generic adapter&#39;
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.267995] sdioh_attach: set sd_f2_blocksize 256
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.268169] sdioh_attach: sd clock rate = 0
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.268377] dhdsdio_probe : no mutex held. set lock
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.268477] F1 signature read @0x18000000=0x1541a9a6
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.268679] Galcore Info: ContiguousBase=0x1f856000 ContiguousSize=0x400000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.271795] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x1 pkg:0x4
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.272969] DHD: dongle ram size is set to 524288(orig 524288) at 0x0
Jun 12 16:20:12 BL-P001 user.err kernel: [    1.273117] [dhd] dhd_conf_set_chiprev : chip=0xa9a6, chiprev=1
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.273292] [dhd] CFG80211-ERROR) wl_setup_wiphy : Registering Vendor80211
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.273596] [dhd] CFG80211-ERROR) wl_setup_wiphy : SAE support
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.273773] [dhd] CFG80211-ERROR) wl_init_prof : wl_init_prof: No profile
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.273986] Galcore Info: MMU mapped core 0 SRAM[0] hardware virtual address=0x400000 size=0x40000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.274020] Galcore Info: MMU mapped core 0 SRAM[1] hardware virtual address=0x440000 size=0x40000
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.275506] dhd_attach(): thread:dhd_watchdog_thread:ae started
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.275774] dhd_attach(): thread:dhd_dpc:af started
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.275839] dhd_attach(): thread:dhd_rxf:b0 started
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.275855] dhd_deferred_work_init: work queue initialized
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.275867] dhd_tcpack_suppress_set: TCP ACK Suppress mode 0 -&gt; mode 2
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.275904] dhd_bus_set_default_min_res_mask: Unhandled chip id
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.276125] sdioh_cis_read: func_cis_ptr[0]=0x1070
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.276252] galcore ffbc0000.npu: Init npu devfreq
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.276278] galcore ffbc0000.npu: bin=0
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.276311] galcore ffbc0000.npu: leakage=1.375
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.284065] Dongle Host Driver, version 1.579.77.41.22 (r-20191105-2)(20191120-1)
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.284586] Register interface [wlan0]  MAC: 08:fb:ea:44:01:4c
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.284586]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.284761] dhd_tcpack_suppress_set: TCP ACK Suppress mode 2 -&gt; mode 0
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.284787] dhd_wl_ioctl: returning as busstate=0
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.284798] dhd_dbg_detach_pkt_monitor, 2204
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.284807] dhd_bus_devreset: == Power OFF ==
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.285077] bcmsdh_oob_intr_unregister: Enter
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.285091] bcmsdh_oob_intr_unregister: irq is not registered
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.285105] dhd_txglom_enable: enable 0
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.285114] dhd_bus_devreset:  WLAN OFF DONE
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.285156] wifi_platform_set_power = 0
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.285169] ======== PULL WL_REG_ON(-1) LOW! ========
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.285172] [WLAN_RFKILL]: rockchip_wifi_power: 0
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.285183] [WLAN_RFKILL]: wifi shut off power [GPIO-1-1]
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.285186] dhdsdio_probe : the lock is released.
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.285441] dhd_module_init: Exit err=0
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.287833] galcore ffbc0000.npu: temp=54200, pvtm=97508 (97508 + 0)
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.288035] galcore ffbc0000.npu: pvtm-volt-sel=1
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.288068] galcore ffbc0000.npu: bin-scale=23
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.288576] galcore ffbc0000.npu: avs=0
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.288975] galcore ffbc0000.npu: l=-2147483648 h=2147483647 hyst=0 l_limit=0 h_limit=0 h_table=0
Jun 12 16:20:12 BL-P001 user.err kernel: [    1.289002] galcore ffbc0000.npu: failed to read out thermal zone (-22)
Jun 12 16:20:12 BL-P001 user.err kernel: [    1.289082] galcore ffbc0000.npu: failed to find power_model node
Jun 12 16:20:12 BL-P001 user.err kernel: [    1.289095] galcore ffbc0000.npu: failed to initialize power model
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.345605] usb 1-1: New USB device found, idVendor=ab20, idProduct=1276, bcdDevice=10.03
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.345627] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.345635] usb 1-1: Product: U0AS01A-0
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.345643] usb 1-1: Manufacturer: U0AS01A-0
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.345651] usb 1-1: SerialNumber: 20221017194640
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.359108] uvcvideo: Found UVC 1.00 device U0AS01A-0 (ab20:1276)
Jun 12 16:20:12 BL-P001 user.err kernel: [    1.361582] uvcvideo: Failed to query (GET_INFO) UVC control 3 on unit 1: -32 (exp. 1).
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.398056] uvcvideo 1-1:1.0: Entity type for entity Extension 4 was not initialized!
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.398159] uvcvideo 1-1:1.0: Entity type for entity Extension 3 was not initialized!
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.398182] uvcvideo 1-1:1.0: Entity type for entity Processing 2 was not initialized!
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.398199] uvcvideo 1-1:1.0: Entity type for entity Camera 1 was not initialized!
Jun 12 16:20:12 BL-P001 user.info kernel: [    1.398488] input: U0AS01A-0: U0AS01A-0 as /devices/platform/ffe00000.usb/usb1/1-1/1-1:1.0/input/input4
Jun 12 16:20:12 BL-P001 daemon.info kernel: [    1.405907] udevd[214]: starting version 3.2.7
Jun 12 16:20:12 BL-P001 daemon.err kernel: [    1.411231] udevd[214]: specified group &#39;kvm&#39; unknown
Jun 12 16:20:12 BL-P001 daemon.info kernel: [    1.425481] udevd[215]: starting eudev-3.2.7
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.607209] clk_mipicsi_out2io_fracdiv p_rate(297000000) is low than rate(24000000)*20, use integer or half-div
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.667170] clk_mipicsi_out2io_fracdiv p_rate(297000000) is low than rate(24000000)*20, use integer or half-div
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.724506] clk_mipicsi_out2io_fracdiv p_rate(297000000) is low than rate(24000000)*20, use integer or half-div
Jun 12 16:20:12 BL-P001 user.warn kernel: [    1.785154] clk_mipicsi_out2io_fracdiv p_rate(297000000) is low than rate(24000000)*20, use integer or half-div
done
1+0 records in
1+0 records out
32 bytes copied, 0.00122967 s, 26.0 kB/s
1+0 records in
1+0 records out
512 bytes copied, 0.000885208 s, 578 kB/s
sign is -
hour is 08
min is 00
colon is :
check time zone success
read-only file system detected...done
Will now mount all partitions in /etc/fstab
Note: Will auto format partitons, remove /.auto_mkfs to disable
Note: Create /.skip_fsck to skip fsck
 - The check might take a while if didn&#39;t shutdown properly!
Handling system_a: /dev/mmcblk0p10 / ext2 ro,noauto 1
Checking /dev/mmcblk0p10(ext2)
e2fsck 1.43.9 (8-Feb-2018)
system_a: clean, 4787/24576 files, 64006/81920 blocks
[    3.653177] udevd[215]: specified group &#39;kvm&#39; unknown
Jun 12 16:20:14 BL-P001 daemon.err kernel: [    3.653177] udevd[215]: specified group &#39;kvm&#39; unknown
Handling misc: /dev/mmcblk0p3 /misc emmc defaults 0
Unsupported file system emmc for /dev/mmcblk0p3
Handling oem: /dev/mmcblk0p12 /oem ext2 ro,defaults 2
Checking /dev/mmcblk0p12(ext2)
e2fsck 1.43.9 (8-Feb-2018)
oem: clean, 17/2560 files, 553/16384 blocks
Mounting /dev/mmcblk0p12(ext2) on /oem with -o ro
6    4.012882] EXT4-fs (mmcblk0p12): mounting ext2 file system using the ext4 suJbusny s1t2e m1
:20:14 BL-P001 user.info kernel: [    4.012882] EXT4-fs (mmcblk0p12): mounting ext2 file system using the ext4 subsystem
[    4.015098] EXT4-fs (mmcblk0p12): mounted filesystem without journal. Opts: (null)
Jun 12 16:20:14 BL-P001 user.info kernel: [    4.015098] EXT4-fs (mmcblk0p12): mounted filesystem without journal. Opts: (null)
Handling config: /dev/mmcblk0p9 /config ext2 defaults 2
Checking /dev/mmcblk0p9(ext2)
e2fsck 1.43.9 (8-Feb-2018)
config was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
config: 57/4096 files (0.0% non-contiguous), 713/16384 blocks
Mounting /dev/mmcblk0p9(ext2) on /config
[    4.221026] EXT4-fs (mmcblk0p9): mounting ext2 file system using the ext4 subsystem
Jun 12 16:20:15 BL-P001 user.info kernel: [    4.221026] EXT4-fs (mmcblk0p9): mounting ext2 file system using the ext4 subsystem
[    4.223926] EXT4-fs (mmcblk0p9): mounted filesystem without journal. Opts: (null)
Jun 12 16:20:15 BL-P001 user.info kernel: [    4.223926] EXT4-fs (mmcblk0p9): mounted filesystem without journal. Opts: (null)
Handling userdata: /dev/mmcblk0p13 /userdata ext2 defaults 2
Checking /dev/mmcblk0p13(ext2)
e2fsck 1.43.9 (8-Feb-2018)
userdata was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (2427821, counted=2450844).
Fix? yes

Free inodes count wrong (569040, counted=569039).
Fix? yes


userdata: ***** FILE SYSTEM WAS MODIFIED *****
userdata: 817/569856 files (75.8% non-contiguous), 588356/3039200 blocks
Mounting /dev/mmcblk0p13(ext2) on /userdata
[    8.318598] EXT4-fs (mmcblk0p13): mounting ext2 file system using the ext4 subsystem
Jun 12 16:20:19 BL-P001 user.info kernel: [    8.318598] EXT4-fs (mmcblk0p13): mounting ext2 file system using the ext4 subsystem
[    8.327144] EXT4-fs (mmcblk0p13): mounted filesystem without journal. Opts: (null)
Log saved to /tmp/mountall.log
1+0 records in
1+0 records out
32 bytes copied, 0.000954625 s, 33.5 kB/s
1+0 records in
1+0 records out
512 bytes copied, 0.00104125 s, 492 kB/s
sign is -
hour is 08
min is 00
colon is :
check time zone success
ln: failed to create symbolic link &#39;/var/lib/connman&#39;: Read-only file system
1+0 records in
1+0 records out
32 bytes copied, 0.00112496 s, 28.4 kB/s
1+0 records in
1+0 records out
512 bytes copied, 0.000817541 s, 626 kB/s
sign is -
hour is 08
min is 00
colon is :
check time zone success
Starting system message bus: done
1+0 records in
1+0 records out
32 bytes copied, 0.00107187 s, 29.9 kB/s
1+0 records in
1+0 records out
512 bytes copied, 0.00098875 s, 518 kB/s
sign is -
hour is 08
min is 00
colon is :
check time zone success
Starting tee-supplicant: OK
1+0 records in
1+0 records out
32 bytes copied, 0.00145775 s, 22.0 kB/s
1+0 records in
1+0 records out
512 bytes copied, 0.0009135 s, 560 kB/s
sign is -
hour is 08
min is 00
colon is :
check time zone success
setup network params ...
1+0 records in
1+0 records out
32 bytes copied, 0.000861584 s, 37.1 kB/s
1+0 records in
1+0 records out
512 bytes copied, 0.000924875 s, 554 kB/s
sign is -
hour is 08
min is 00
colon is :
check time zone success
Starting wifi wpa_supplicant...
1+0 records in
1+0 records out
32 bytes copied, 0.00137433 s, 23.3 kB/s
Starting wifi, checking driver status...
1+0 records in
1+0 records out
512 bytes copied, 0.00102608 s, 499 kB/s
wifi driver is ready
sign is -
hour is 08
min is 00
colon is :
check time zone success
/etc/init.d/S49alsa: line 19: alsactl: not found
1+0 records in
1+0 records out
32 bytes copied, 0.000846708 s, 37.8 kB/s
killall: wpa_supplicant: no process killed
1+0 records in
1+0 records out
512 bytes copied, 0.000946459 s, 541 kB/s
sign is -
hour is 08
min is 00
colon is :
Successfully initialized wpa_supplicant
check time zone success
Starting ntpd: OK
1+0 records in
1+0 records out
32 bytes copied, 0.000973 s, 32.9 kB/s
1+0 records in
1+0 records out
512 bytes copied, 0.00103658 s, 494 kB/s
sign is -
hour is 08
min is 00
colon is :
check time zone success
[    8.984034] dhd_open: Enter fa095bf1
[    8.984078] dhd_open : no mutex held. set lock
[    8.984098]
[    8.984098] Dongle Host Driver, version 1.579.77.41.22 (r-20191105-2)(20191120-1)
[   Starting fcgiwrap daemon:  8.984129] [dhd-wlan0] wl_android_wifi_on : in g_wifi_on=0
[    8.984150] wifi_platform_set_power = 1
[    8.984168] ======== PULL WL_REG_ON(-1) HIGH! ========
[    8.984189] [WLAN_RFKILL]: rockchip_wifi_power: 1
[    8.984202] [WLAN_RFKILL]: wifi turn on power [GPIO-1-0]
OK
1+0 records in
1+0 records out
32 bytes copied, 0.000873833 s, 36.6 kB/s
1+0 records in
1+0 records out
512 bytes copied, 0.000804417 s, 636 kB/s
sign is -
hour is 08
min is 00
colon is :
check time zone success
Starting mosquitto: [    9.290103] sdio_reset_comm():
[    9.305485] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    9.322604] mmc_host mmc1: Bus speed (slot 0) = 100000Hz (slot req 100000Hz, actual 100000HZ div = 0)
[    9.378015] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    9.384751] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    9.391442] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    9.403751] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    9.418762] mmc1: queuing unknown CIS tuple 0x81 (9 bytes)
[    9.782699] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[    9.783002] sdioh_start: set sd_f2_blocksize 256
[    9.787185]
[    9.787185]
[    9.787185] dhd_bus_devreset: == WLAN ON ==
[    9.787416] F1 signature read @0x18000000=0x1541a9a6
[    9.790162] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x1 pkg:0x4
[    9.790990] DHD: dongle ram size is set to 524288(orig 524288) at 0x0
[    9.791098] dhd_bus_set_default_min_res_mask: Unhandled chip id
[    9.792343] dhd_os_open_image: /vendor/etc/firmware/config.txt (20 bytes) open success
[    9.792585] [dhd] dhd_conf_read_country : ccode = US
[    9.792603] [dhd] dhd_conf_read_country : regrev = 988
[    9.792624] [dhd] dhd_conf_set_path_params : Final fw_path=/vendor/etc/firmware/fw_bcm43438a1.bin
[    9.792634] [dhd] dhd_conf_set_path_params : Final nv_path=/vendor/etc/firmware/nvram_ap6212a.txt
[    9.792643] [dhd] dhd_conf_set_path_params : Final clm_path=/vendor/etc/firmware/clm_bcm43438a1.blob
[    9.792651] [dhd] dhd_conf_set_path_params : Final conf_path=/vendor/etc/firmware/config.txt
[    9.793527] dhd_os_open_image: /vendor/etc/firmware/fw_bcm43438a1.bin (436966 bytes) open success
[   10.075345] dhd_os_open_image: /vendor/etc/firmware/nvram_ap6212a.txt (1017 bytes) open success
[   10.075966] NVRAM version: AP6212A_NVRAM_V1.0.2_20191121
[   10.077142] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
[   10.152486] dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
[   10.152665] bcmsdh_oob_intr_register: HW_OOB irq=106 flags=0x4
[   10.152879] dhd_get_memdump_info: File [/data/misc/wifi/.memdump.info] doesn&#39;t exist
[   10.152888] dhd_get_memdump_info: MEMDUMP ENABLED = 2
[   10.153893] Disable tdls_auto_op failed. -1
[   10.153909] dhd_tcpack_suppress_set 352: already set to 0
[   10.154459] dhd_apply_default_clm: Ignore clm file /vendor/etc/firmware/clm_bcm43438a1.blob
[   10.158279] Firmware up: op_mode=0x0005, MAC=08:fb:ea:44:01:4c
[   10.164275] dhd_preinit_ioctls Set scancache failed -23
[   10.181563]   Driver: 1.579.77.41.22 (r-20191105-2)(20191120-1)
[   10.181563]   Firmware: wl0: Dec 21 2020 18:42:52 version 7.45.96.76 (91a4c5d@SYNA) (r745790) FWID 01-1f5c1610 es7.c5.n4.a3
[   10.181563]   CLM: 7.11.15 (2014-05-26 10:53:55)
[   10.182242] dhd_txglom_enable: enable 1
[   10.182278] [dhd] dhd_conf_set_txglom_params : txglom_mode=copy
[   10.182289] [dhd] dhd_conf_set_txglom_params : txglomsize=36, deferred_tx_len=0
[   10.182317] [dhd] dhd_conf_set_txglom_params : txinrx_thres=-1, dhd_txminmax=1
[   10.182326] [dhd] dhd_conf_set_txglom_params : tx_max_offset=0, txctl_tmo_fix=300
[   10.182341] [dhd] dhd_conf_get_disable_proptx : fw_proptx=1, disable_proptx=-1
[   10.184471] dhd_wlfc_hostreorder_init(): successful bdcv2 tlv signaling, 64
[   10.187083] dhd_pno_init: Support Android Location Service
[   10.212212] [dhd] CFG80211-ERROR) wl_cfg80211_event : Event handler is not created
[   10.213835] rtt_do_get_ioctl: failed to send getbuf proxd iovar (CMD ID : 1), status=-23
[   10.213873] dhd_rtt_init : FTM is not supported
[   10.213888] dhd_preinit_ioctls: SensorHub diabled 0
[   10.214898] dhd_preinit_ioctls failed to set ShubHub disable
[   10.217618] dhd_wl_ioctl_get_intiovar: get int iovar wnm_bsstrans_resp failed, ERR -23
[   10.217649] failed to get wnm_bsstrans_resp
[   10.218475] failed to set WNM capabilities
[   10.219008] [dhd] CFG80211-ERROR) wl_cfg80211_event : Event handler is not created
[   10.219321] [dhd] dhd_conf_set_country : set country US, revision 988
[   10.222975] [dhd] dhd_conf_set_country : Country code: US (US/988)
[   10.230184] [dhd] CONFIG-ERROR) dhd_conf_set_intiovar : ampdu_mpdu setting failed -29
[   10.230221] [dhd-wlan0] wl_android_wifi_on : Success
[   10.261768] [dhd] CFG80211-ERROR) __wl_update_wiphybands : error reading vhtmode (-23)
[   10.275222] dhd_open : the lock is released.
[   10.275267] dhd_open: Exit ret=0
OK
1+0 records in
1+0 records out
32 bytes copied, 0.00103367 s, 31.0 kB/s
[   10.294862] P2P interface registered
[   10.294993] wl_cfgp2p_add_p2p_disc_if: wdev: 53f1a1d6, wdev-&gt;net:   (null)
1+0 records in
1+0 records out
512 bytes copied, 0.000970959 s, 527 kB/s
sign is -
hour is 08
min is 00
colon is :
check time zone success
do usb related (adb&amp;rndis) enable ....
[   10.385389] EXT4-fs (mmcblk0p10): re-mounted. Opts: (null)
rootfs read/write mode: ro
[   10.394067] WLC_E_IF: NO_IF set, event Ignored
[   10.396318] P2P interface started
[   10.402247] [dhd-wlan0] wl_run_escan : LEGACY_SCAN sync ID: 0, bssidx: 0
[   10.431367] EXT4-fs (mmcblk0p10): re-mounted. Opts: (null)
****************************************
1. Proc debug uart input &amp; output config
****************************************
do debug uart input&amp;output disable ..
</code></pre>]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[I&#39;ve been here the whole time]]></title>
    <link href="https://brianredbeard.com/blog/ive_been_here_the_whole_time/"/>
    <id>https://brianredbeard.com/blog/ive_been_here_the_whole_time/</id>
    <published>2025-05-08T23:03:38-07:00</published>
    <updated>2025-05-08T23:03:38-07:00</updated>
    
    <content type="html"><![CDATA[<p>A key inspiration for this post is <a href="https://wikipedia.org/wiki/Sam_Reich">Sam Reich</a>, who lives in my general
neighborhood.</p>
<p>Reich has spent seven seasons of the show &quot;<a href="https://www.youtube.com/watch?v=1eu0nZh9rfw">Game Changer</a>&quot;
(<a href="https://wikipedia.org/wiki/Game_Changer_%28game_show%29">Wikipedia</a>) reminding everyone of a single crucial detail:</p>
<figure class="center"><img src="/blog/ive_been_here_the_whole_time/ivebeenhere.webp"
    alt="I&#39;ve been here the whole time">
</figure>

<p>Sam: thanks for the reminder that there's always some troll hanging out. 😅 The
current tech climate often focuses on uncovering vulnerabilities. So, in that
spirit, let's dive in.</p>
<p>And so this tale will surely end well, won't it?</p>
<p>It all starts with me continuing to tinker with OpenWrt. More recently, I
realized that extending the startup scripts for <a href="https://github.com/openwrt/packages/tree/master/net/hev-socks5-server">hev-socks5-server</a> was a
worthwhile endeavor (also, thanks Hev for this wonderful rabbit hole. If we're
ever in the same room the drinks are on me).</p>
<p>See, I want to expose various <a href="https://wikipedia.org/wiki/SOCKS">SOCKS5</a> proxies for... reasons. I don't
really want to get into it, and you'll notice that generally other people don't
either (<a href="https://forum.openwrt.org/t/proxy-server-preferrably-socks4-5/106891/8">proxy-1</a>, <a href="https://forum.level1techs.com/t/openwrt-as-a-socks5-gateway-to-vpn/212040/6">proxy-2</a>). Deal with it.</p>
<p>Regardless, everything was looking good. I noticed an odd issue... I told it to
bind to a single interface and it bound to multiple interfaces—about four, in
fact—when I specified only a single device name. It turns out that it was just
me misunderstanding the difference between <code>listen-address</code> and <code>bind-address</code>.</p>
<p>In the course of that exploration, though, I went down an unexpected rabbit
hole. I ended up (for god knows what reason) staring at some of the PPP code (as
any self-respecting telco nerd would). Something didn't sit right with me. I
couldn't exactly tell &quot;why&quot; but something felt fundamentally wrong with the
code's behavior.</p>
<p>Then I remembered that modern tools can help. (Living in California, I'm no
stranger to investing in tech, perhaps even overpaying for my energy guilt!) So,
instead of just staring like Philip J. Fry at the source code... I could use
ollama to introspect the code with the help of Aider. After some focused
interaction with our long necked oracle, behold: the outcome...</p>
<p>A write up of a buffer overflow that's been lurking for 15+ years in lwIP.
I don't want to steal anyone else's valor, but after not seeing a patch submitted
upstream I went ahead and submitted it upstream. For anyone else working with
PPP and wants it now either check out the <a href="https://github.com/brianredbeard/hev-lwip/blob/534b9ebaeeaf27924dc1c4b016c2536ba10c1ffb/src/include/netif/ppp/README.md">write-up</a> or grab the patch here:</p>
<div class="highlight"><pre tabindex="0" style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-patch" data-lang="patch"><span style="display:flex;"><span>From 6ee35e0fa368e3bfbafbc029ce0cd852e03168eb Mon Sep 17 00:00:00 2001
</span></span><span style="display:flex;"><span>From: Brian &#39;redbeard&#39; Harrington &lt;redbeard@dead-city.org&gt;
</span></span><span style="display:flex;"><span>Date: Thu, 8 May 2025 19:41:09 -0700
</span></span><span style="display:flex;"><span>Subject: [PATCH] fix(ppp): prevent heap-buffer-overflow in pppcrypt_get_7bits
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>The pppcrypt_get_7bits function could read one byte beyond the input
</span></span><span style="display:flex;"><span>buffer when processing the last bits of a 56-bit (7-byte) key. This
</span></span><span style="display:flex;"><span>occurred because it unconditionally accessed `input[startBit / 8 + 1]`
</span></span><span style="display:flex;"><span>without checking against the actual length of the input buffer.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>This patch modifies pppcrypt_get_7bits to accept the input buffer&#39;s
</span></span><span style="display:flex;"><span>length and performs bounds checks before accessing bytes from the input.
</span></span><span style="display:flex;"><span>If an access to the second byte (for constructing a 16-bit word) would
</span></span><span style="display:flex;"><span>be out of bounds, a safe default value of 0 is used. The
</span></span><span style="display:flex;"><span>pppcrypt_56_to_64_bit_key function has been updated to pass the correct
</span></span><span style="display:flex;"><span>key length (7 bytes) to the modified pppcrypt_get_7bits.
</span></span><span style="display:flex;"><span><span style="color:#d33682">---
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span> src/netif/ppp/pppcrypt.c | 74 +++++++++++++++++++++++++++++++---------
</span></span><span style="display:flex;"><span> 1 file changed, 58 insertions(+), 16 deletions(-)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#d33682">diff --git a/src/netif/ppp/pppcrypt.c b/src/netif/ppp/pppcrypt.c
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">index 82d78c13..9a457101 100644
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span><span style="color:#d33682">--- a/src/netif/ppp/pppcrypt.c
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span><span style="color:#d33682">+++ b/src/netif/ppp/pppcrypt.c
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span><span style="color:#d33682">@@ -38,29 +38,71 @@
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span> #include &#34;netif/ppp/pppcrypt.h&#34;
</span></span><span style="display:flex;"><span> 
</span></span><span style="display:flex;"><span> 
</span></span><span style="display:flex;"><span><span style="color:#d33682">-static u_char pppcrypt_get_7bits(u_char *input, int startBit) {
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span><span style="color:#d33682">+static u_char pppcrypt_get_7bits(u_char *input, int startBit, int input_len_bytes) {
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span> 	unsigned int word;
</span></span><span style="display:flex;"><span><span style="color:#d33682">+	u_char byte1_val;
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	u_char byte2_val = 0; /* Initialize to 0 for safety */
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	int byte1_idx = startBit / 8;
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span> 
</span></span><span style="display:flex;"><span><span style="color:#d33682">-	word  = (unsigned)input[startBit / 8] &lt;&lt; 8;
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">-	word |= (unsigned)input[startBit / 8 + 1];
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span><span style="color:#d33682">+	/* Check if byte1_idx is within bounds */
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	if (byte1_idx &lt; input_len_bytes) {
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		byte1_val = input[byte1_idx];
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	} else {
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		/* This case should ideally not be reached if startBit is always valid
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		 * for the start of a 7-bit sequence within a 56-bit key.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		 * However, as a safeguard, returning a value that will be masked
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		 * or handled as an error might be appropriate.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		 * For DES key generation, this path implies a logic error in the caller
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		 * if input_len_bytes is correct for the key type.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		 * Returning 0xFE ensures the parity bit is 0 after masking,
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		 * consistent with the function&#39;s behavior.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		 */
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		return 0xFE;
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	}
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span> 
</span></span><span style="display:flex;"><span><span style="color:#d33682">-	word &gt;&gt;= 15 - (startBit % 8 + 7);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span><span style="color:#d33682">+	/* Check if byte1_idx + 1 is within bounds for byte2_val */
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	if (byte1_idx + 1 &lt; input_len_bytes) {
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+		byte2_val = input[byte1_idx + 1];
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	}
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	/* If byte1_idx + 1 is out of bounds, byte2_val remains 0,
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	 * which is safe for the bitwise operations below as it won&#39;t contribute
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	 * bits from an invalid memory location.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	 */
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span> 
</span></span><span style="display:flex;"><span><span style="color:#d33682">-	return word &amp; 0xFE;
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span><span style="color:#d33682">+	word  = (unsigned int)byte1_val &lt;&lt; 8;
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	word |= (unsigned int)byte2_val;
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	/* Shift to align the 8 bits (of which 7 are significant) starting at startBit.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	   The (startBit % 8) gives the bit offset within the first byte (byte1_val).
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	   We want 7 bits from this stream, and the 8th bit is also part of the shift logic.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	   The expression (15 - ((startBit % 8) + 7)) calculates how many bits to shift
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	   the 16-bit `word` to the right so that the desired 8-bit segment (containing
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	   the 7 significant bits and one more) is at the LSB position.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	   Example: startBit = 0. Shift = 15 - (0 + 7) = 8. (B1&lt;&lt;8 | B2) &gt;&gt; 8 = B1.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	   Example: startBit = 1. Shift = 15 - (1 + 7) = 7. (B1&lt;&lt;8 | B2) &gt;&gt; 7.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	   Example: startBit = 7. Shift = 15 - (7 + 7) = 1. (B1&lt;&lt;8 | B2) &gt;&gt; 1.
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	*/
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	word &gt;&gt;= (15 - ((startBit % 8) + 7));
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	return (u_char)(word &amp; 0xFE); /* Return the most significant 7 bits of the 8-bit segment, with LSB (parity) zeroed */
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span> }
</span></span><span style="display:flex;"><span> 
</span></span><span style="display:flex;"><span><span style="color:#d33682">-/* IN  56 bit DES key missing parity bits
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">- * OUT 64 bit DES key with parity bits added
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span><span style="color:#d33682">+/* IN  56 bit DES key missing parity bits (7 bytes long)
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+ * OUT 64 bit DES key with parity bits added (8 bytes long)
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+ * (Parity bits are zeroed by pppcrypt_get_7bits, to be set later by a parity generation function)
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span>  */
</span></span><span style="display:flex;"><span><span style="color:#d33682">-void pppcrypt_56_to_64_bit_key(u_char *key, u_char * des_key) {
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">-	des_key[0] = pppcrypt_get_7bits(key,  0);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">-	des_key[1] = pppcrypt_get_7bits(key,  7);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">-	des_key[2] = pppcrypt_get_7bits(key, 14);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">-	des_key[3] = pppcrypt_get_7bits(key, 21);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">-	des_key[4] = pppcrypt_get_7bits(key, 28);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">-	des_key[5] = pppcrypt_get_7bits(key, 35);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">-	des_key[6] = pppcrypt_get_7bits(key, 42);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">-	des_key[7] = pppcrypt_get_7bits(key, 49);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span><span style="color:#d33682">+void pppcrypt_56_to_64_bit_key(u_char *key, u_char *des_key) {
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	/* The input key is 56 bits, which is 7 bytes. */
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	const int key_input_len_bytes = 7;
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	des_key[0] = pppcrypt_get_7bits(key,  0, key_input_len_bytes);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	des_key[1] = pppcrypt_get_7bits(key,  7, key_input_len_bytes);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	des_key[2] = pppcrypt_get_7bits(key, 14, key_input_len_bytes);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	des_key[3] = pppcrypt_get_7bits(key, 21, key_input_len_bytes);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	des_key[4] = pppcrypt_get_7bits(key, 28, key_input_len_bytes);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	des_key[5] = pppcrypt_get_7bits(key, 35, key_input_len_bytes);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	des_key[6] = pppcrypt_get_7bits(key, 42, key_input_len_bytes);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682">+	des_key[7] = pppcrypt_get_7bits(key, 49, key_input_len_bytes);
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span> }
</span></span><span style="display:flex;"><span> 
</span></span><span style="display:flex;"><span> #endif /* PPP_SUPPORT &amp;&amp; MSCHAP_SUPPORT */
</span></span><span style="display:flex;"><span><span style="color:#d33682">-- 
</span></span></span><span style="display:flex;"><span><span style="color:#d33682"></span>2.48.1
</span></span></code></pre></div>]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Ferguson&#39;s Clown]]></title>
    <link href="https://brianredbeard.com/blog/fergusons-clown/"/>
    <id>https://brianredbeard.com/blog/fergusons-clown/</id>
    <published>2025-04-11T23:32:25-07:00</published>
    <updated>2025-04-11T23:32:25-07:00</updated>
    
    <content type="html"><![CDATA[<p>I find it fascinating when people think they can just make up bullshit.
Tragically, that means that I'm fascinated a bunch of the time.</p>
<p>The most recent time though was earlier today when Steven Rattner was on NBC
misattributing the ideas of someone over at the Hoover Institute for that of a
&quot;Scottish political theorist in the 17th century&quot;.</p>
<p>Check it out, skip to about 4 minutes 20 seconds:</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/wEj_9tNyvVQ?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p>In this case &quot;Ferguson's Law&quot; was self-coined by <a href="https://en.wikipedia.org/wiki/Niall_Ferguson">Niall Ferguson</a> in his April
2024 op-ed in <a href="https://www.bloomberg.com/opinion/articles/2024-04-21/china-russia-iran-axis-is-bad-news-for-trump-and-gop-isolationists">Bloomberg</a> where he states:</p>
<blockquote>
<p>My sole contribution to the statute book of historiography — what I call
Ferguson’s Law — states that any great power that spends more on debt service
(interest payments on the national debt) than on defense will not stay great
for very long. True of Hapsburg Spain, true of ancien régime France, true of
the Ottoman Empire, true of the British Empire, this law is about to be put to
the test by the US beginning this very year, when (according to the CBO) net
interest outlays will be 3.1% of GDP, defense spending 3.0%. Extrapolating
defense spending on the assumption that it remains consistently 48% of total
discretionary spending (the average of 2014-23), the gap between debt service
and defense is going to widen rapidly in the coming years. By 2041, the CBO
projections suggest, interest payments (4.6% of GDP) will be double the
defense budget (2.3%). Between 1962 and 1989, by way of comparison, interest
payments averaged 1.8% of GDP; defense 6.4%.</p>
</blockquote>
<p>This stems from a paper that Ferguson is <a href="https://www.hoover.org/research/fergusons-law-debt-service-military-spending-and-fiscal-limits-power">writing</a> where he calls out the
ideas of another Scot, Adam Ferguson, who states:</p>
<blockquote>
<p>States have endeavoured, in some instances, by pawning their credit, instead
of employing their capital, to disguise the hazards they ran. They have found,
in the loans they raised, a casual resource, which encouraged their
enterprises. They have seemed, by their manner of erecting transferable funds,
to leave the capital for purposes of trade, in the hands of the subject, while
it is actually expended by the government. They have, by these means,
proceeded to the execution of great national projects, without suspending
private industry, and have left future ages to answer, in part, for debts
contracted with a view to future emolument. So far the expedient is plausible,
and appears to be just. The growing burden too, is thus gradually laid; and if
a nation be to sink in some future age, every minister hopes it may still keep
afloat in his own. But the measure, for this very reason, is, with all its
advantages, extremely dangerous, in the hands of a precipitant and ambitious
administration, regarding only the present occasion, and imagining a state to
be inexhaustible, while a capital can be borrowed, and the interest be paid. …
an expense, whether sustained at home or abroad, whether a waste of the
present, or an anticipation of future, revenue, if it bring no proper return,
is to be reckoned among the causes of national ruin.</p>
<p>—Adam Ferguson, An Essay on the History of Civil Society (1767), Part V, Section V.</p>
</blockquote>
<p>but the &quot;law&quot; as declared is that of <em>Niall Ferguson</em>...</p>
<p>So, clearly not ancient history but at least he got the nationality right. At
least I know to be skeptical of the guy who doesn't check his sources.</p>
<p>Also, I see that the ding-dong is even repeating his claim on <a href="https://stevenrattner.com/2025/04/msnbcs-morning-joe-5-8-trillion-more-debt/">his own
blog</a>.</p>
]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Sorry OpenWrt One]]></title>
    <link href="https://brianredbeard.com/blog/sorry-openwrt-one/"/>
    <id>https://brianredbeard.com/blog/sorry-openwrt-one/</id>
    <published>2025-03-20T15:15:16-07:00</published>
    <updated>2025-03-20T15:15:16-07:00</updated>
    
    <content type="html"><![CDATA[<p>To all of the users of the <a href="https://docs.banana-pi.org/en/OpenWRT-One/BananaPi_OpenWRT-One">OpenWrt One</a> device, I need to start by saying
&quot;I'm sorry&quot;.  My intention was not to break your firmware. 😅</p>
<p>Of course, I'm talking about commit <a href="https://github.com/openwrt/openwrt/commit/6c8cc862954b61d91a0c2670be4be0795c184ae5">6c8cc862</a> where one of the onboard
storage drivers was removed.  This all comes down to a difference of opinion in
the theory about the job of an operating system.</p>
<p>In my (humble) opinion, an operating system should include the drivers needed
to bootstrap and install said operating system.  This is pretty important in the
idea of <a href="https://en.wikipedia.org/wiki/Self-hosting_%28compilers%29">&quot;self hosting&quot;</a> in computer science (not to be confused
with the &quot;homelab&quot; idea of self hosting):</p>
<blockquote>
<p>In computer programming, self-hosting is the use of a program as part of the
toolchain or operating system that produces new versions of that same
program—for example, a compiler that can compile its own source code.
Self-hosting software is commonplace on personal computers and larger systems.
Other programs that are typically self-hosting include kernels, assemblers,
command-line interpreters and revision control software.</p>
</blockquote>
<p>It seems pretty simple.  In the same way that you want your storage drivers in
your <a href="https://www.linuxfromscratch.org/blfs/view/svn/postlfs/initramfs.html">initramfs</a>, you want them in your main system as well.
Personally, I'm a fan of having network drivers in my initramfs as well
(specifically for handling cases like remote key escrow for disk encryption), but
that's a divergence from what we're talking about.</p>
<p>Now coming back to the topic at hand, <a href="https://github.com/openwrt/openwrt/pull/16595">openwrt#16565</a> lays out the topic.</p>
<p>Recently I swapped out my <a href="https://en.wikipedia.org/wiki/Core_network">core router</a> for a <a href="https://wiki.banana-pi.org/Banana_Pi_BPI-R4">Banana Pi R4</a>.  This
is a 10Gb router with an two SFP+ port (one WAN, one LAN) and a 1+4 set of
gigabit ethernet ports (one WAN, four LAN).  At just over $100 it's a great
device.  It's got 4GB of RAM, 128MB of onboard SPI flash, an 8GB eMMC, a bunch
of GPIO pins, two mini PCIe ports specifically intended for a janky WiFi 7
network card, and two M.2 slots: one with the &quot;B key&quot; and one &quot;M key&quot;.</p>
<p>The &quot;B key&quot; slot is specifically for the following device types:</p>
<ul>
<li>PCIe x2</li>
<li>SATA</li>
<li>USB 2.0</li>
<li>USB 3.0</li>
<li>HSIC</li>
<li>SSIC</li>
<li>Audio</li>
<li>UIM</li>
<li>I2C</li>
</ul>
<p>If you notice a trend here, it's all about throughput.  Even at the 480Mb/s of
USB 2.0, B key devices are intended to not need a bunch of PCIe lanes.  They
(compared to the &quot;M key&quot;) sip at the bandwidth they have available.  Side note:
this is part of why you'll see most of these devices hanging off of your
&quot;<a href="https://en.wikipedia.org/wiki/Southbridge_%28computing%29">Southbridge</a>&quot; or &quot;<a href="https://en.wikipedia.org/wiki/Platform_Controller_Hub">Platform Controller Hub</a>&quot; if you're on an older
x86_64/AMT64 machine.</p>
<p>The &quot;M Key&quot; slot has one key purpose: expose 4 lanes of PCIe.</p>
<p>This isn't something I'm just pulling out of my ass.  Go read the slides from
the &quot;Solid State Storage Initiative&quot; from the Storage Networking Industry
Association (SNIA) <a href="https://www.snia.org/sites/default/files/SSSI%20M%202%20Webcast%20Slides%20v10fnl.pdf">describing the use of &quot;M.2&quot; slots</a>.</p>
<p>Clearly, the folks at SinoVOIP (the OEM behind the BananaPi and a number of the
RISC-V single board computers coming out of China) got the message.  In the
<a href="https://wiki.banana-pi.org/Banana_Pi_BPI-R4">Wiki</a> they are pretty clear:</p>
<blockquote>
<p>M.2 interface	1x M.2 KEY-B slot with USB3.2/PCIe3.0 interface for 5G,1x M.2 KEY-M slot with PCIe3.0 1lane interface for NVME SSD</p>
</blockquote>
<p>as are they with the OpenWRT One:</p>
<blockquote>
<p>M.2 2242/2230 socket for NVMe SSD (PCIe gen 2 x1)</p>
</blockquote>
<p>From this it's pretty clear that their intentions were not ethereal.  The slot
is for storage.  Stick an NVMe drive in it and go (which, by the way, increases
the performance significantly).</p>
<p>Back to the <a href="https://github.com/openwrt/openwrt/pull/16595">issue</a> at hand (pun intended), with this knowledge in mind I
thought it was going to be pretty straightforward to add the missing driver to
the default OpenWrt build for the BananaPi R4 and not have to think about it
again.  Oh, the joy!  <em>Not</em> being forever stuck with custom firmware builds!
The ability to flash, login, and start configuring the device.  It sounded
totally dreamy.</p>
<p>The position of the OpenWrt developers is ~~~clear~~~:</p>
<blockquote>
<p>The rule here is simple: If a module is not required for any of the onboard
devices, it should not be installed by default.</p>
</blockquote>
<p>By my understanding, it seems like it's a slam dunk</p>
<p>Of course, their clarification makes the concern fuzzier:</p>
<blockquote>
<p>The PCIe host controller is part of the SoC and hence, even if it is not used,
an onboard device. And so are the SFP cages, for example.</p>
<p>If you want to create a custom image which has all sorts of drivers installed,
you are free to do so, by using the buildroot, or the ImageBuilder or the
online service at firmware-selector.openwrt.org.</p>
</blockquote>
<p>So at the end of the day this really just comes down to whether or not an NVMe
device is <em>supplied</em> *<strong>with</strong> the device:</p>
<blockquote>
<p>Imho, as the board doesn't come with an NVMe installed from factory, I would
leave it up to the user to install those packages (or create a build including
them, or use the &quot;Customize installed packages and/or first boot script&quot;
option of the OpenWrt Firmware Selector). Including every possible driver for
every possible PCIe device by default is certainly out of scope.</p>
</blockquote>
<p>Because, after all:</p>
<blockquote>
<p>The user may install kmod-nvme. Or kmod-ata-ahci. Or maybe the user isnt even
using the M.2 slot for an SSD at all, but for another XHCI USB host, or a bunch
of 16650 UARTs, ...</p>
</blockquote>
<p>I was a bit miffed about this, but you know what... a policy is a policy... as
long as it's enforced evenly.  I don't need to <em>like</em> it, I just need to live
with it.</p>
<p>Fast forward five months...</p>
<p>I notice the <a href="https://github.com/openwrt/openwrt/commit/6c8cc862954b61d91a0c2670be4be0795c184ae5">commit</a> mentioned above...  For some reason the OpenWrt One (also
manufactured by SinoVOIP &amp; largely based on the BPi R4 platform) HAS THE NVMe
DRIVER IN IT!!!</p>
<p>Well, turns out this was an oversight and tout de suite it was removed.  Now,
what you have is a situation where the build on many of those devices which
&quot;worked out of the box&quot; is now going to break.  OpenWrt users will need to
understand more of the intricacies of how builds work (turning &quot;users&quot; into
&quot;developers&quot;) to <em>fix</em> a regression in the operating system of a device that was
previously working.  In the best case scenario users will just lose access to
everything in <code>/dev/nvme?n?p?</code>.  A little bit annoying, but hey, as was pointed
out in a comment in that issue the users can always re-install the packages by
hand... on their router... which hopefully is booting correctly (and if it isn't
they won't have internet access to use to troubleshoot the issue).</p>
<p>But hey, good luck with that M.2 UART card hanging off your &quot;M Key&quot; slot.</p>
]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Reverse Sensor Tracking]]></title>
    <link href="https://brianredbeard.com/blog/reverse-sensor-tracking/"/>
    <id>https://brianredbeard.com/blog/reverse-sensor-tracking/</id>
    <published>2025-01-08T01:51:57-08:00</published>
    <updated>2025-01-08T01:51:57-08:00</updated>
    
    <content type="html"><![CDATA[<p>Let's look at a map</p>
<p>It all started with this air sensor:</p>
<figure class="center"><a href="https://fire.airnow.gov/#13.89/34.04323/-118.53594"><img src="/blog/reverse-sensor-tracking/single-sensor.png"
    alt="single-sensor" width="80%"></a>
</figure>

<p>Then I took a look a bit deeper:</p>
<figure class="center"><img src="/blog/reverse-sensor-tracking/sensor-zoom.png"
    alt="sensor-zoom">
</figure>

<p>I found it really odd that the air quality only plummeted in the past few hours.
Due to the overall proximity to the fires, I would have assumed that it had been
high for hours earlier.</p>
<p>After looking at that and realizing that PurpleAir also provides access to their
sensor network through their website, my next stop was the <a href="https://map.purpleair.com/air-quality-standards-us-epa-aqi?opt=%2F1%2Flp%2Fa10%2Fp604800%2FcC0#12.61/34.06249/-118.54695">same
area</a>.</p>
<p>I began noticing that there were some peculiar dead areas.  You know, exactly
where one would expect sensors to be...  the eerie silence from surrounding
sensors that <em>should</em> have been there.</p>
<h2 id="the-digital-ghost-story">The Digital Ghost Story</h2>
<p>As I dug deeper into the data, a chilling pattern emerged. One by one, sensors
in the area had gone dark, leaving digital timestamps of their last gasps:
Marquez Knolls went first, silent for 12 hours and 26 minutes. Then MGAC
followed suit 4 hours later. Like dominoes falling, Iliff St, Carter's AQI, and
Hunting Palisades sensors dropped offline in succession, each timestamp marking
the fire's relentless march.</p>
<h2 id="a-map-written-in-silence">A Map Written in Silence</h2>
<p>The remaining active sensor stands as a lone sentinel, its reading of 649
screaming &quot;Hazardous&quot; into the digital void. The graph tells a stark story - a
sudden spike from green to purple bars, while smoke plumes are detected to the
NNW, NW, and WNW. What's particularly unnerving is how the air quality readings
only plummeted in the past few hours. Logic would suggest, given the proximity
to the fires, that readings should have been elevated much earlier. But nature
rarely follows our expectations, does it?</p>
<h2 id="the-void-speaks">The Void Speaks</h2>
<p>The most telling part of this story isn't in the data we're seeing - it's in the
data we're not seeing. Those dead zones, those digital black holes in exactly
the places where sensors should be, paint a map of the fire's path more clearly
than any satellite imagery could. In the end, these failing sensors have written
the story of tonight's fire in their own unique language - the language of
silence. Each offline timestamp is a chapter in this unfolding disaster, marking
the fire's progress through our community with digital precision. Stay safe,
stay indoors, and keep watching those sensors. Sometimes, silence speaks
volumes.</p>
<p>In the time since I started writing this another sensor is missing...</p>
<p>Sensor: Lower SMonica Canyon (outside) (<strong>OFFLINE</strong>)</p>
<figure class="center"><img src="/blog/reverse-sensor-tracking/pa-site.png"
    alt="pa-site" width="80%">
</figure>

]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[NinjaPenguin 17 (2023)]]></title>
    <link href="https://brianredbeard.com/blog/np17/"/>
    <id>https://brianredbeard.com/blog/np17/</id>
    <published>2023-05-20T17:01:26-07:00</published>
    <updated>2023-05-20T17:01:26-07:00</updated>
    
    <content type="html"><![CDATA[<p>On Saturday May 20th, 2023 the 17th Ninja Penguin event kicked off with a night
of art, dancing, and celebration all themed around cyberpunk penguins.</p>
<p>This year featured artwork by <a href="https://www.instagram.com/pinguinokolb">Pinguino</a>, <a href="https://www.shoreydesigns.com/">David Shorey</a>,
<a href="https://ninjas.org/">Random</a>, and myself as well as music by Keith Myers, James Ford, Mass
Accelerator, <a href="https://soundcloud.com/countninjula">Ninjula</a>, <a href="https://soundcloud.com/dj_headshot">Headshot</a>, GRAPHIXX.X, PBOB,
Bubbles, and Michael Walker.</p>
<p>The past couple of years, I've done some projection mapping in the space which I
curate throughout the night.  This year we wanted to do something a little
different and the answer quickly came to us: a penguin pendant.</p>




<div style="float: center; max-width: px; margin: 1rem">
  <div class="video-container">
  <video 
    controls 
    preload="metadata"
    
    class="local-video"
    title="Video" aria-label="Video"
  >
    <source src="https://brianredbeard.com/blog/np17/tilt.mp4" type="video/mp4">
    <p>Your browser does not support HTML5 video. <a href="https://brianredbeard.com/blog/np17/tilt.mp4">Download the video</a> instead.</p>
  </video>
</div>

</div>


<p>Now the astute amongst you <em><strong>might</strong></em> say &quot;That's not a pendant! That's a
printed circuit board (PCB)!&quot; and you would be correct.  You see, given that this is a
crowd with an affinity for things that glow and blink I felt that there could be
a possibility of adding a challenge and sweetening the deal for the curious
user.</p>
<p>Before I go too deep though, if you got one of these and want to take a stab at
assembly you will want to bookmark the following link:
<a href="/projects/tools/bom-np17/">Tool: Interactive Bill of Materials</a></p>
<p>As mentioned, the pendant is actually a printed circuit board.  For Ninja
Penguin the manufacturing capabilities fit us perfectly.  Both Pinguino and
myself tend to stick to vector artwork, and as mentioned in
https://brianredbeard.com/blog/the-trouble-with-gerbers/, the at the core of all printed circuit board
manufacturing is RS-274 (aka &quot;gerber&quot;) - an ASCII based vector format.</p>
<p>I'm about to tell you a lie.  Just go with it.  The purpose of the lie is just
to make it easier to visualize.</p>
<p>The idea basically becomes to think about your artwork as a spot-color stackup.
Each color you desire to &quot;print&quot; is going to happen to map to a layer in the PCB
stackup as a &quot;mask&quot;.  Each mask is going to be either to hide and show various
parts of the layers. <sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p>
<p>Below we can see the layers for our &quot;stackup&quot;:</p>
<p>To help with the assembly I generated output using <a href="https://github.com/openscopeproject/InteractiveHtmlBom/wiki/Usage#bom-page-mouse-actions">InteractiveHtmlBOM</a>.</p>
<p>The output is a webpage that you can use to see the parts and placement.  You can
also click on the parts to mark them as &quot;sourced&quot; or &quot;placed&quot; (these can be
helpful when you are going through the list of parts and trying to figure out
what you've got in your scrap bin and what you'll still need to go hunting for).</p>
<p>The basics of the circuit is that it's a circuit that I cribbed from the
Department of Education's Open Textbook Pilot Project.  The cool part is that
you can dive deep on that page and see the details of the circuit.</p>
<p>The circuit is a simple one.  It's a 555 timer based clock that is fed into a
PNP and NPN transistor pair.  The PNP transistor is used to control the
brightness of the LEDs.  The NPN transistor is used to control the blink rate
of the LEDs. Or at least it's something like that.  YOLO.</p>
<p>I took advantage of the fact that there are newer 555s which handle much lower
logic levels but, really you could use whatever you wanted or had on hand.</p>
<p>I also want to warn you that I was a bit of a bastard.  There are a couple of
0402 parts on there.  Did there need to be?  No.  I just did that on the
<em>infinitesimally small chance</em> that we maybe possibly kindof might have had them
manufactured.  Just saying.  Had I done that the board house I was considering
using (who I will not be mentioning because I'm neither a shill nor am I a huge
fan of their work) would have had all components in stock and reeled up for the
pick and place.</p>
<p>The list of parts is as follows:</p>





<table class="wtbl pure-table-striped">
  <thead>
      <tr>
          <th>Reference</th>
          <th>Part</th>
          <th>Value</th>
          <th>Footprint</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>C1</td>
          <td>Capacitor</td>
          <td>1 µF</td>
          <td></td>
      </tr>
      <tr>
          <td>C2</td>
          <td>Capacitor</td>
          <td>100 µF</td>
          <td>1206</td>
      </tr>
      <tr>
          <td>C3</td>
          <td>Capacitor</td>
          <td>100 µF</td>
          <td>1206</td>
      </tr>
      <tr>
          <td>R1</td>
          <td>Resistor</td>
          <td>1.5 MΩ</td>
          <td>0603</td>
      </tr>
      <tr>
          <td>R2</td>
          <td>Resistor</td>
          <td>47 kΩ</td>
          <td>0402</td>
      </tr>
      <tr>
          <td>R3</td>
          <td>Resistor</td>
          <td>2.2 kΩ</td>
          <td>0603</td>
      </tr>
      <tr>
          <td>R4</td>
          <td>Resistor</td>
          <td>620 Ω</td>
          <td>0603</td>
      </tr>
      <tr>
          <td>D1</td>
          <td>LED (Counterpost)</td>
          <td>RED</td>
          <td>counterpost</td>
      </tr>
      <tr>
          <td>D2</td>
          <td>LED (Counterpost)</td>
          <td>RED</td>
          <td>counterpost</td>
      </tr>
      <tr>
          <td>D3</td>
          <td>Diode</td>
          <td>SS14</td>
          <td>D_SMA</td>
      </tr>
      <tr>
          <td>U1</td>
          <td>555 Timer</td>
          <td>XL555</td>
          <td>SOP-8</td>
      </tr>
      <tr>
          <td>BT1</td>
          <td>Battery Cell Holder</td>
          <td>2032</td>
          <td>2032 Coin Cell</td>
      </tr>
      <tr>
          <td>Q1</td>
          <td>PNP Transistor</td>
          <td>S8550</td>
          <td>SOT-23</td>
      </tr>
      <tr>
          <td>Q2</td>
          <td>NPN Transistor</td>
          <td>S8050</td>
          <td>SOT-23</td>
      </tr>
  </tbody>
</table>


<p>Literally every one of these parts are probably in a junk box at your local
hacker space (or in your closet).</p>
<p>To perform the assembly you'll need some tools.  A soldering iron would be the
bare minimum (and also the most challenging).  Other options include your hot
plate or other re-flow type of system.  I personally use a hot plate and a
soldering iron for tuneup.  I want to be clear:  <strong>THIS IS NOT A TUTORIAL ON
SOLDERING</strong>.</p>
<blockquote>
<p><strong>If you've never soldered anything before, appeciate the natural beauty of
that electroless nickel immersion gold finish.  There's an video below to
tickle your blinky blinky.</strong></p>
</blockquote>
<p>As to performing the assembly, my general process for assembly looks like this.
First, get some double sided tape.  Take a piece of it and put it directly onto
the table in front of you. You'll then take your various cut-off strips of parts
and make sure they're stuck to the tape.  This will then keep them from sliding
away when you're trying to peel the celophane off with a pair of tweezers.</p>
<p>When you are peeling off the celophane from a part, try to only peel back enough
to expose the part.  That can help tiny specks from flying when a table gets
bumped.</p>
<p>Now the idea is that you want to get the parts soldered to their respective
places.  For that, check out the rendered <a href="/projects/tools/bom-np17/">interactive bill of materials</a>
(If you want to see how fancy InteractiveHtmlBom is, check out the
<a href="https://github.com/openscopeproject/InteractiveHtmlBom/wiki/Usage#bom-page-mouse-actions">documentation</a>.)</p>
<p>Now, for me, I just place the board on the table face down.  Grab a syringe of
solder paste and place a tiny dab on every pad.  So, at this point I've got:</p>
<ul>
<li>double stick tape down</li>
<li>the board is on the tape</li>
<li>i've got a little slice of parts stuck to the tape</li>
<li>i've taken a solder syringe and put down dabs of solder on every pad</li>
<li>i've used tweezers to remove the parts from their strips and and place them in
the correct spots (using the bill of materials as a reference)</li>
</ul>
<p>Thus, it looks a bit like this:</p>
<figure class="center"><img src="/blog/np17/52987968755_d0e8c3b4e4_b.jpg"
    alt="facepalm">
</figure>

<p>Or from a different angle (before I had placed D3, R3, the transistors and some
other parts):</p>
<figure class="center"><img src="/blog/np17/52987968590_b6da2d79bf_b.jpg"
    alt="facepalm">
</figure>

<p>After you've finished placing all of your parts you'll want to then perform the
&quot;reflow&quot; process.  I did this on a tiny hotplate and recorded a video which can
be seen here:</p>
<p>References:</p>
<ul>
<li>I don't know what solder paste to buy? - <a href="https://www.youtube.com/watch?v=RBe7hf6oHhE">Lady Ada</a> has a video
for that.</li>
<li>If you're just curious about what the process looks like professionals will
stencil solder on in a screen printing like process.  Check out this
<a href="https://youtu.be/qyDRHI4YeMI?t=638">EEVBlog</a> tutorial (note: I linked it mid-way through so that folks
focused on what the process looks like with a hot air gun can skip straight to
the assembly part).</li>
<li>My solder parts are blowing around when trying to do hot air rework. - <a href="https://www.youtube.com/watch?v=gl9NuCiDR7s">Louis
Rossmann</a> has you covered.</li>
</ul>
<p>Ninja Penguin has once again come and Ninja Penguin has once again gone.</p>
<p>I look forward to seeing everyone again next year!</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>I've spent a month imagining different ways of visualizing this.  It's a
pretty complex concept and I'm not sure if I've found the right way to visualize
it.  I think I may end up making a video about this soon.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Today I Learned: GNOME Thumbnailers]]></title>
    <link href="https://brianredbeard.com/blog/til_thumbnailers/"/>
    <id>https://brianredbeard.com/blog/til_thumbnailers/</id>
    <published>2022-07-01T21:14:14-07:00</published>
    <updated>2022-07-01T21:14:14-07:00</updated>
    
    <content type="html"><![CDATA[<p>While tooling around the web I stumbled across a tidbit with regards to one of
the minor workings of <a href="https://en.wikipedia.org/wiki/GNOME_Files">Nautilus</a>... which is really to say what appears as a
core component of the <a href="https://en.wikipedia.org/wiki/GNOME">GNOME</a> desktop environment.</p>
<p>Dave Jansen wrote up an interesting note on <a href="https://davejansen.com/enable-webp-support-fedora-nautilus-preview">enabling webp image thumbnails in Nautilus</a>.
TL; DR, there's an RPM which it seams the team working on the Workstation flavor
neglected to install - <code>webp-pixbuf-loader</code>.  Install that and restart Nautilus
(<code>nautilus -q</code>) and you're off to the races.</p>
<p>But... it got me curious.</p>
<p>Obviously there is some binary and or library which is being shipped dynamically
which will extend the functionality of Nautilus.  I've been mildly curious about
this in the past.  After all, Dropbox chose to invest the engineering effort
into integrating with Nautilus.</p>
<p>Since we have a package name to start from, let's take a look at what's
happening with it:</p>
<div class="highlight"><pre tabindex="0" style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>[~]$ rpm -ql webp-pixbuf-loader
</span></span><span style="display:flex;"><span>/usr/lib/.build-id
</span></span><span style="display:flex;"><span>/usr/lib/.build-id/51
</span></span><span style="display:flex;"><span>/usr/lib/.build-id/51/8bc2448b396f5bcfe3a837613f45b5e66c2b3b
</span></span><span style="display:flex;"><span>/usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-webp.so
</span></span><span style="display:flex;"><span>/usr/share/licenses/webp-pixbuf-loader
</span></span><span style="display:flex;"><span>/usr/share/licenses/webp-pixbuf-loader/LICENSE.LGPL-2
</span></span><span style="display:flex;"><span>/usr/share/thumbnailers/webp-pixbuf.thumbnailer
</span></span></code></pre></div><p>Hmpf.  Not much.  At the end of the day, there's really two files (with the
exception of the license): <code>webp-pixbuf.thumbnailer</code> and
<code>libpixbufloader-webp.so</code>.  Based on those file names I'm going to make an
educated guess that the latter is the brains of the operation doing the heavy
lifting and the former is the shim layer used by GNOME to interface with the
library.</p>
<p>It seems that the <code>SUMMARY</code> field of the RPM is in alignment with that:</p>
<div class="highlight"><pre tabindex="0" style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>[~]$ rpm -q --qf <span style="color:#2aa198">&#39;%{SUMMARY}\n&#39;</span> webp-pixbuf-loader
</span></span><span style="display:flex;"><span>WebP image loader <span style="color:#859900">for</span> GTK+ applications
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>And it also seems like they aren<span style="color:#2aa198">&#39;t doing any type of monkey business like some
</span></span></span><span style="display:flex;"><span><span style="color:#2aa198">RPMs do (you know installing GPG keys behind your back ::cough cough:: Chrome,
</span></span></span><span style="display:flex;"><span><span style="color:#2aa198">Slack, etc).  We didn&#39;</span>t see any cron <span style="color:#cb4b16">jobs</span> in the file listing and as to scripts
</span></span><span style="display:flex;"><span>being run by the RPM itself, there&#39;s nothing:
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#2aa198">```</span>bash
</span></span><span style="display:flex;"><span>[~]$ rpm -q --scripts  webp-pixbuf-loader
</span></span></code></pre></div><p>To be clear, I didn't expect anything funny out of the Fedora packagers.  This,
like the rest of the blog post, is just externalizing some of the muscle memory
I have with regards to exploration.</p>
<p>That then got me thinking though...  What <em><strong>other</strong></em> thumbnail type mechanisms
have I been unaware of?</p>
<div class="highlight"><pre tabindex="0" style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>[~]$ dnf whatprovides <span style="color:#2aa198">&#34;/usr/share/thumbnailers/*&#34;</span>
</span></span><span style="display:flex;"><span>Last metadata expiration check: 1:58:42 ago on Fri <span style="color:#2aa198;font-weight:bold">01</span> Jul <span style="color:#2aa198;font-weight:bold">2022</span> 07:53:34 PM PDT.
</span></span><span style="display:flex;"><span>atril-thumbnailer-1.26.0-2.fc36.x86_64 : Atril thumbnailer extension <span style="color:#859900">for</span> caja
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/atril.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>eom-1.26.0-5.fc36.i686 : Eye of MATE image viewer
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/eom-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>eom-1.26.0-5.fc36.x86_64 : Eye of MATE image viewer
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/eom-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>evince-thumbnailer-42.1-1.fc36.x86_64 : Evince thumbnailer
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/evince.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>evince-thumbnailer-42.2-2.fc36.x86_64 : Evince thumbnailer
</span></span><span style="display:flex;"><span>Repo        : @System
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/evince.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>evince-thumbnailer-42.2-2.fc36.x86_64 : Evince thumbnailer
</span></span><span style="display:flex;"><span>Repo        : updates
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/evince.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>ffmpegthumbnailer-2.2.3-0.2.20210902gitd92e191.fc36.x86_64 : Lightweight video thumbnailer that can be used by file managers
</span></span><span style="display:flex;"><span>Repo        : rpmfusion-free
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/ffmpegthumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>freecad-1:0.19.4-1.fc36.x86_64 : A general purpose 3D CAD modeler
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/FreeCAD.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gdk-pixbuf2-2.42.8-1.fc36.i686 : An image loading library
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gdk-pixbuf2-2.42.8-1.fc36.x86_64 : An image loading library
</span></span><span style="display:flex;"><span>Repo        : @System
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gdk-pixbuf2-2.42.8-1.fc36.x86_64 : An image loading library
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gnome-directory-thumbnailer-0.1.11-8.fc36.x86_64 : Thumbnailer <span style="color:#859900">for</span> directories
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gnome-directory-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gnome-epub-thumbnailer-1.6-7.fc36.x86_64 : Thumbnailers <span style="color:#859900">for</span> EPub and MOBI books
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gnome-epub-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gnome-mobi-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gnome-font-viewer-42.0-1.fc36.x86_64 : Utility <span style="color:#859900">for</span> previewing fonts <span style="color:#859900">for</span> GNOME
</span></span><span style="display:flex;"><span>Repo        : @System
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gnome-font-viewer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gnome-font-viewer-42.0-1.fc36.x86_64 : Utility <span style="color:#859900">for</span> previewing fonts <span style="color:#859900">for</span> GNOME
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gnome-font-viewer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gnome-kra-ora-thumbnailer-1.4-8.fc36.x86_64 : Thumbnailer <span style="color:#859900">for</span> Krita and MyPaint images
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gnome-kra-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gnome-openraster-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gnome-nds-thumbnailer-3.0.0-19.fc36.x86_64 : Thumbnailer <span style="color:#859900">for</span> Nintendo DS ROM files
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gnome-nds-thumbnailer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>libgsf-1.14.47-5.fc36.i686 : GNOME Structured File library
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gsf-office.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>libgsf-1.14.47-5.fc36.x86_64 : GNOME Structured File library
</span></span><span style="display:flex;"><span>Repo        : @System
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gsf-office.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>libgsf-1.14.47-5.fc36.x86_64 : GNOME Structured File library
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/gsf-office.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>libheif-1.12.0-4.fc36.x86_64 : HEIF file format decoder and encoder
</span></span><span style="display:flex;"><span>Repo        : rpmfusion-free
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/heif.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>libjxl-0.6.1-9.fc36.i686 : Library files <span style="color:#859900">for</span> JPEG-XL
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/jxl.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>libjxl-0.6.1-9.fc36.x86_64 : Library files <span style="color:#859900">for</span> JPEG-XL
</span></span><span style="display:flex;"><span>Repo        : @System
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/jxl.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>libjxl-0.6.1-9.fc36.x86_64 : Library files <span style="color:#859900">for</span> JPEG-XL
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/jxl.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>librsvg2-2.54.0-1.fc36.i686 : An SVG library based on cairo
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/librsvg.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>librsvg2-2.54.0-1.fc36.x86_64 : An SVG library based on cairo
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/librsvg.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>librsvg2-2.54.4-1.fc36.i686 : An SVG library based on cairo
</span></span><span style="display:flex;"><span>Repo        : updates
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/librsvg.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>librsvg2-2.54.4-1.fc36.x86_64 : An SVG library based on cairo
</span></span><span style="display:flex;"><span>Repo        : @System
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/librsvg.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>librsvg2-2.54.4-1.fc36.x86_64 : An SVG library based on cairo
</span></span><span style="display:flex;"><span>Repo        : updates
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/librsvg.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>mate-control-center-1.26.0-3.fc36.i686 : MATE Desktop control-center
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/mate-font-viewer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>mate-control-center-1.26.0-3.fc36.x86_64 : MATE Desktop control-center
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/mate-font-viewer.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>mcomix3-thumbnailer-0-0.24.D20211016git483f4b3.fc36.noarch : Thumbnailer <span style="color:#859900">for</span> mcomix3
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/comicthumb.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>mypaint-2.0.1-5.fc36.x86_64 : A fast and easy graphics application <span style="color:#859900">for</span> digital painters
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/mypaint-ora.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>raw-thumbnailer-3.0.0-22.fc36.x86_64 : Nautilus file manager thumbnailer <span style="color:#859900">for</span> RAW images
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/raw.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>renderdoc-1.17-2.fc36.x86_64 : A stand-alone graphics debugging tool
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/renderdoc.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>tiled-1.8.2-1.fc36.i686 : Tiled Map Editor
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/tiled.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>tiled-1.8.2-1.fc36.x86_64 : Tiled Map Editor
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/tiled.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>totem-video-thumbnailer-1:42.0-1.fc36.i686 : Totem video thumbnailer
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/totem.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>totem-video-thumbnailer-1:42.0-1.fc36.x86_64 : Totem video thumbnailer
</span></span><span style="display:flex;"><span>Repo        : @System
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/totem.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>totem-video-thumbnailer-1:42.0-1.fc36.x86_64 : Totem video thumbnailer
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/totem.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>webp-pixbuf-loader-0.0.4-1.fc36.i686 : WebP image loader <span style="color:#859900">for</span> GTK+ applications
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/webp-pixbuf.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>webp-pixbuf-loader-0.0.4-1.fc36.x86_64 : WebP image loader <span style="color:#859900">for</span> GTK+ applications
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/webp-pixbuf.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>webp-pixbuf-loader-0.0.5-1.fc36.i686 : WebP image loader <span style="color:#859900">for</span> GTK+ applications
</span></span><span style="display:flex;"><span>Repo        : updates
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/webp-pixbuf.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>webp-pixbuf-loader-0.0.5-1.fc36.x86_64 : WebP image loader <span style="color:#859900">for</span> GTK+ applications
</span></span><span style="display:flex;"><span>Repo        : @System
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/webp-pixbuf.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>webp-pixbuf-loader-0.0.5-1.fc36.x86_64 : WebP image loader <span style="color:#859900">for</span> GTK+ applications
</span></span><span style="display:flex;"><span>Repo        : updates
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/webp-pixbuf.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>xournalpp-1.1.1-1.fc36.x86_64 : Handwriting note-taking software
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/com.github.xournalpp.xournalpp.thumbnailer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>xreader-thumbnailer-3.2.2-2.fc36.x86_64 : System thumbnailer using xreader libraries
</span></span><span style="display:flex;"><span>Repo        : fedora
</span></span><span style="display:flex;"><span>Matched from:
</span></span><span style="display:flex;"><span>Filename    : /usr/share/thumbnailers/xreader.thumbnailer
</span></span></code></pre></div><p>Holy cow! While I understand that some of those are duplicates there's also
quite a few I hadn't even considered before... Nintendo DS ROMs, Comics
(<code>mcomix3</code>) as well as some <em>other</em> nits of mine (RAW Images -
<code>raw-thumbnailer</code>).</p>
<p>But <em>also</em> that second package from the bottom caught my eye and down another
rabbit hole I went:</p>
<div class="highlight"><pre tabindex="0" style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>[~]$ dnf info xournalpp
</span></span><span style="display:flex;"><span>Last metadata expiration check: 2:06:09 ago on Fri <span style="color:#2aa198;font-weight:bold">01</span> Jul <span style="color:#2aa198;font-weight:bold">2022</span> 07:53:34 PM PDT.
</span></span><span style="display:flex;"><span>Available Packages
</span></span><span style="display:flex;"><span>Name         : xournalpp
</span></span><span style="display:flex;"><span>Version      : 1.1.1
</span></span><span style="display:flex;"><span>Release      : 1.fc36
</span></span><span style="display:flex;"><span>Architecture : x86_64
</span></span><span style="display:flex;"><span>Size         : 1.1 M
</span></span><span style="display:flex;"><span>Source       : xournalpp-1.1.1-1.fc36.src.rpm
</span></span><span style="display:flex;"><span>Repository   : fedora
</span></span><span style="display:flex;"><span>Summary      : Handwriting note-taking software
</span></span><span style="display:flex;"><span>URL          : https://github.com/xournalpp/xournalpp
</span></span><span style="display:flex;"><span>License      : GPLv2+
</span></span><span style="display:flex;"><span>Description  : Xournal++ is a handwriting note-taking software with PDF annotation support.
</span></span><span style="display:flex;"><span>             : Supports Pen input like Wacom Tablets
</span></span></code></pre></div><p>Just from the description I was already drooling a bit dreaming of making my
<a href="https://github.com/Entware/Entware/wiki/Install-on-Remarkable">Remarkable</a> even better...  Go check out <a href="https://github.com/xournalpp/xournalpp">Xournal++</a>.  Looks pretty
interesting.</p>
<!--
Wayback link in case this dies later:
https://web.archive.org/web/20220702041914/https://davejansen.com/enable-webp-support-fedora-nautilus-preview/
-->
]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[The Trouble with Gerbers]]></title>
    <link href="https://brianredbeard.com/blog/the-trouble-with-gerbers/"/>
    <id>https://brianredbeard.com/blog/the-trouble-with-gerbers/</id>
    <published>2020-12-18T16:10:12-08:00</published>
    <updated>2020-12-18T16:10:12-08:00</updated>
    
    <content type="html"><![CDATA[<p>I tend to dally here and there in electronics.  As I'm not a &quot;professional&quot; (but
absolutely in &quot;hacker&quot; category) there are often conventions that end up being
completely foreign to me.  The most recent of these was the handling of
Gerber files by Texas Instruments.</p>
<h2 id="a-little-history">A little history</h2>
<p><a href="https://en.wikipedia.org/wiki/G-code">G-code</a> is a generic term for the text based command language used by CNC
devices.  Most dialects originate from a standard published by the Electronic
Industries Alliance (EIA) in the early 1960s referred to as &quot;RS-274&quot;.  I say
&quot;dialects&quot; because (like most languages used in computing) it's been extended,
mutated, and generally abused in the name of getting shit done.</p>
<p>If you've never seen it before, here's an example:</p>
<pre tabindex="0"><code class="language-gcode" data-lang="gcode">G90  ; Set all coordinates as absolute
G21  ; Set all units to millimeters
G1 X-10 Y-10  ; Move to the point X=-10, Y=-10
G2 X90.6 Y13.8 Z10 I5 J10 E22.4  ; This is more complex:
; Execute a clockwise arc ending at X=90.6, Y13.8, Z10
;   maintaining constant distance around the point X=5, Y=10
;   while extruding 22.4 units of material
</code></pre><p>If you wanted to visualize G-code, there are plenty of simulators which will
show you the &quot;tool path&quot; (i.e. the actual movements which will be exected).
After doing a quick search I found this one which was pretty neat.</p>
<p>The &quot;<a href="https://nraynaud.github.io/webgcode/">G-Code Q'n'dirty toolpath simulator</a>&quot; by <a href="https://github.com/nraynaud">Nicolas
Raynaud</a>.</p>
<p>So, at the end of the day, we use G-code to control our robots.</p>
<h2 id="back-to-electronics">Back to electronics</h2>
<p>&quot;<a href="https://en.wikipedia.org/wiki/Gerber_format">Gerbers</a>&quot; are the specification used by most devices which
manufacture PCBs. As mentioned earlier, Gerbers themselves use a <em>specific</em>
dialect of G-code called &quot;RS-274-X&quot;<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup><sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>.  The process of manufacturing a
PCB involves a number of steps including taking layers of fiberglass with copper
traces milled in place, stacking them, covering the outer layers in an epoxy
type substance called &quot;solder mask&quot;, and screen printing text onto the resulting
board.</p>
<p>Each of the individual layers ends up getting it's own file with it's own
definitions... and there's the rub.</p>
<p>Since (at the end of the day) these are <em>all</em> just files containing structured
text data in a format originally ratified over 50 years ago, one could say that
things are ocassionally &quot;messy&quot;.</p>
<p>When one downloads a set of Gerbers they're (generally) all in a zip file.
There are then a set of psuedo standards around how they're named.  As a <a href="https://kicad.org/">KiCad</a>
user, I'm used to having to output the following:</p>





<table class="pure-table">
  <thead>
      <tr>
          <th>File extension</th>
          <th>Purpose</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>.GTL</code></td>
          <td>Gerber top (signal/copper) layer</td>
      </tr>
      <tr>
          <td><code>.GBL</code></td>
          <td>Gerber bottom (signal/copper) layer</td>
      </tr>
      <tr>
          <td><code>.GTO</code></td>
          <td>Gerber top overlay</td>
      </tr>
      <tr>
          <td><code>.GBO </code></td>
          <td>Gerber bottom overlay</td>
      </tr>
      <tr>
          <td><code>.GTP</code></td>
          <td>Gerber top paste mask</td>
      </tr>
      <tr>
          <td><code>.GBP </code></td>
          <td>Gerber bottom paste mask</td>
      </tr>
      <tr>
          <td><code>.GTS </code></td>
          <td>Gerber top solder mask</td>
      </tr>
      <tr>
          <td><code>.GBS</code></td>
          <td>Gerber bottom solder mask</td>
      </tr>
      <tr>
          <td><code>.GKO </code></td>
          <td>Gerber &quot;keep-out&quot; layer</td>
      </tr>
      <tr>
          <td><code>.DRL</code></td>
          <td>Excellon drill file</td>
      </tr>
      <tr>
          <td><code>.GL2</code>, <code>.GL3</code></td>
          <td>Gerber (signal/copper) layer 2, 3, etc</td>
      </tr>
  </tbody>
</table>


<p>Additionally, I've seen some manufacturers want these file names:</p>





<table class="pure-table">
  <thead>
      <tr>
          <th>File extension</th>
          <th>Purpose</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>.GML </code></td>
          <td>Gerber mechanical layer</td>
      </tr>
      <tr>
          <td><code>.GP1, .GP2, … , .GP16 </code></td>
          <td>Internal Plane Layer 1,2,...,16</td>
      </tr>
      <tr>
          <td><code>.GD1 </code></td>
          <td>Drill drawing</td>
      </tr>
      <tr>
          <td><code>.GG1</code></td>
          <td>Drill guide</td>
      </tr>
  </tbody>
</table>


<p>Notice the Excellon<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> drill file in the first list and the &quot;Drill drawing&quot; and
&quot;Drill guide&quot; in the second.  Because... you know...  why not?</p>
<p>In the process of researching this I learned that most of these file names are
just a psuedo-standard derived from the proprietary schematic capture/design
software &quot;Protel&quot; (the name &quot;Altium&quot; used until 2001).</p>
<p>Now that we've gotten that out of the way, let's get back to the beginning.</p>
<h2 id="thanks-for-doing-your-own-thing-ti">Thanks for doing your own thing, TI</h2>
<p>One of the great things about Texas Instruments is that they provide STEP 3D
models, libraries with the symbols and mechanical footprints, and similar
resources for many of their parts.  Even better, they also provide many
&quot;reference designs&quot; showing how to use the part in a canonically correct way.
As both an amateur AND a wing-nut with regards to Free Software/Open Source this
is fantastic.  I can directly see <em>how</em> to use a part rather than starting from
the beginning.</p>
<p>Today, I was looking at &quot;<a href="https://www.ti.com/tool/PMP5863">TI PMP5863</a>&quot;.  This is a reference design for a power
supply which provides the following:</p>
<ul>
<li>Ultra low noise (meaning the voltage itself has very little
&quot;ripple&quot;/deviation from the intended value)</li>
<li>Bi-polar / dual-rail ±15v output (meaning it is outputting not only a
specific voltage, but also the negative compliment)</li>
</ul>
<p>After looking at the schematics<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup> for the board and datasheets<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup> for the
relevant parts, I decided to take a look at the layers on the boards themselves.</p>
<p>That's when I encountered this list:</p>
<div class="highlight"><pre tabindex="0" style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ unzip sbvc040.zip
</span></span><span style="display:flex;"><span>Archive:  sbvc040.zip
</span></span><span style="display:flex;"><span>  inflating: PMP5863_REVC_PCB.L1     
</span></span><span style="display:flex;"><span>  inflating: PMP5863_REVC_PCB.L2     
</span></span><span style="display:flex;"><span>  inflating: PMP5863_REVC_PCB.M1     
</span></span><span style="display:flex;"><span>  inflating: PMP5863_REVC_PCB.M2     
</span></span><span style="display:flex;"><span>  inflating: PMP5863_REVC_PCB.S1     
</span></span><span style="display:flex;"><span>  inflating: PMP5863_REVC_PCB.S2     
</span></span><span style="display:flex;"><span>  inflating: PMP5863_REVC_PCB.FB     
</span></span><span style="display:flex;"><span>  inflating: PMP5863_REVC_PCB.NCD    
</span></span><span style="display:flex;"><span>  inflating: PMP5863_REVC_PCB.IPC    
</span></span><span style="display:flex;"><span>  inflating: IMP NOTICE FOR REF DESIGNS.pdf  
</span></span></code></pre></div><figure class="center"><img src="/blog/the-trouble-with-gerbers/facepalm.gif"
    alt="facepalm">
</figure>

<p>This is the first time I've looked at Gerbers supplied by TI.  From a basic
level, I'd <em>guess</em> that <code>L</code> is referring to signal layers, <code>M</code> is solder mask,
and <code>S</code> is silk screen.  That's the trouble with Gerber files though.  Unless
one is using the newer &quot;<a href="https://www.ucamco.com/en/gerber/demo-1">Gerber X2</a>&quot;<sup id="fnref:6"><a href="#fn:6" class="footnote-ref" role="doc-noteref">6</a></sup> format (newsflash: budget manufacturers in
China operating on razor thin margins haven't undergone a re-tooling exercise),
<strong>there is nothing in the files to denote what layer the file is for</strong>.</p>
<p>In a <a href="https://processors.wiki.ti.com/images/8/8b/MAVRK_PCB_LAYOUT_DESIGN_GUIDE.pdf">separate document</a> published by TI I found the following:</p>





<table class="pure-table">
  <thead>
      <tr>
          <th style="text-align: left">File name</th>
          <th style="text-align: left">Purpose</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-L1</code></td>
          <td style="text-align: left">Layer 1</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-L2</code></td>
          <td style="text-align: left">Layer 2</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-L3</code></td>
          <td style="text-align: left">Layer 3</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-L4</code></td>
          <td style="text-align: left">Layer 4</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-SMT</code></td>
          <td style="text-align: left">SolderMask Top</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-SMB</code></td>
          <td style="text-align: left">SolderMask Bottom</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-SPT</code></td>
          <td style="text-align: left">SolderPaste Top</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-SPB</code></td>
          <td style="text-align: left">SolderPaste Bottom</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-SST</code></td>
          <td style="text-align: left">Silkscreen Top</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-SSB</code></td>
          <td style="text-align: left">Silkscreen Bottom</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-FAB</code></td>
          <td style="text-align: left">Fabrication Drawing</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-ASSY1</code></td>
          <td style="text-align: left">Assembly Top Drawing</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>XXXXXXX-ASSY2</code></td>
          <td style="text-align: left">Assembly Bottom Drawing</td>
      </tr>
  </tbody>
</table>


<p>Meanwhile, in a <a href="https://e2echina.ti.com/question_answer/microcontrollers/c2000/f/56/t/3826">forum post</a> on the Chinese Support forum for TI, I find a
different set of names used in a product called &quot;controlsuite&quot;:</p>





<table class="pure-table">
  <thead>
      <tr>
          <th style="text-align: left">Filename</th>
          <th style="text-align: left">Description</th>
          <th style="text-align: left">Format</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: left"><code>L1.PHO</code></td>
          <td style="text-align: left">Primary Side Cu</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>L2.PHO</code></td>
          <td style="text-align: left">NEG PLANE</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>L3.PHO</code></td>
          <td style="text-align: left">PWR PLANE</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>L4.PHO</code></td>
          <td style="text-align: left">Secondary Side Cu</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>PSS.PHO</code></td>
          <td style="text-align: left">Primary Silkscreen A/W</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>SSS.PHO</code></td>
          <td style="text-align: left">Secondary Silkscreen A/W</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>PSM.PHO</code></td>
          <td style="text-align: left">Primary Soldermask A/W</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>SSM.PHO</code></td>
          <td style="text-align: left">Secondary Soldermask A/W</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>PST.PHO</code></td>
          <td style="text-align: left">Primary Solder Stencil A/W</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>SST.PHO</code></td>
          <td style="text-align: left">Secondary Solder Stencil A/W</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>DD.PHO</code></td>
          <td style="text-align: left">Drill Drawing</td>
          <td style="text-align: left">Gerber 8.5</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>NC_DRILL.DRL</code></td>
          <td style="text-align: left">NC Drill Data</td>
          <td style="text-align: left">NC DRILL ASCII</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>NC_DRILL.REP</code></td>
          <td style="text-align: left">Drill Tool</td>
          <td style="text-align: left">Listing ASCII</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>NC_DRILL.LST</code></td>
          <td style="text-align: left">Drill X-Y</td>
          <td style="text-align: left">Listing ASCII</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>IPCD356.NET</code></td>
          <td style="text-align: left">IPC-D -356 Netlist</td>
          <td style="text-align: left">IPC-D -356 ASCII</td>
      </tr>
      <tr>
          <td style="text-align: left"><code>README.TXT</code></td>
          <td style="text-align: left">This File</td>
          <td style="text-align: left">ASCII</td>
      </tr>
  </tbody>
</table>


<p>I found this list interesting because it illustrates that <em>even TI isn't
consistent</em>.</p>
<p>In the end, after even more research, I <em>finally</em> found a good &quot;Rosetta Stone&quot;
produced by the folks at &quot;<a href="https://pcbprime.com/">PCB Prime</a>&quot; (<a href="https://pcbprime.com/pcb-tips/accepted-file-formats/Gerber%20File%20Extension%20Comparison.pdf">PDF</a> chart).  Thanks to them for making my life
easy.</p>
<p>As it was search engines that made it even possible to find this, I'm
reproducing some of the data here in the hopes that it simplifies the lives of
others too:</p>
<hr>
<p>Common PCB Layout Software Gerber File Extension Comparison</p>





<table class="wtbl pure-table-striped">
  <thead>
      <tr>
          <th style="text-align: left"> </th>
          <th style="text-align: left">Altium / Protel</th>
          <th style="text-align: left">Eagle</th>
          <th style="text-align: left">KiCad</th>
          <th style="text-align: left">Orcad</th>
          <th style="text-align: left">PADS</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: left">Native Project Save File</td>
          <td style="text-align: left"><code>.PCBPRJ</code></td>
          <td style="text-align: left"><code>.BRD</code></td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left"><code>.PCB</code></td>
      </tr>
      <tr>
          <td style="text-align: left">Top Silk</td>
          <td style="text-align: left"><code>.GTO</code></td>
          <td style="text-align: left"><code>.PLC</code> / <code>.TSK</code></td>
          <td style="text-align: left"><code>F.SILKS</code></td>
          <td style="text-align: left"><code>.SST</code></td>
          <td style="text-align: left"><code>ST.PHO</code></td>
      </tr>
      <tr>
          <td style="text-align: left">Top Mask</td>
          <td style="text-align: left"><code>.GTS</code></td>
          <td style="text-align: left"><code>.STC</code> / <code>.TSM</code></td>
          <td style="text-align: left"><code>F.MASK</code></td>
          <td style="text-align: left"><code>.SMT</code></td>
          <td style="text-align: left"><code>MT.PHO</code></td>
      </tr>
      <tr>
          <td style="text-align: left">Top Paste</td>
          <td style="text-align: left"><code>.GTP</code></td>
          <td style="text-align: left"><code>.CRC</code> / <code>.TSP</code></td>
          <td style="text-align: left"><code>F.PASTE</code></td>
          <td style="text-align: left"><code>.SPT</code></td>
          <td style="text-align: left"><code>PT.PHO</code></td>
      </tr>
      <tr>
          <td style="text-align: left">Top Copper</td>
          <td style="text-align: left"><code>.GTL</code></td>
          <td style="text-align: left"><code>.CMP</code> / <code>.TOP</code></td>
          <td style="text-align: left"><code>F.CU</code></td>
          <td style="text-align: left"><code>.TOP</code></td>
          <td style="text-align: left"><code>L1.PHO</code></td>
      </tr>
      <tr>
          <td style="text-align: left">Inner Signal</td>
          <td style="text-align: left"><code>.G1</code>, <code>.G2</code>, etc</td>
          <td style="text-align: left"><code>.LY2</code>, <code>.LY3</code>, etc</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left"><code>.IN1</code>, <code>.IN2</code>, etc</td>
          <td style="text-align: left"><code>L2.PHO</code>, <code>L3.PHO</code>, etc</td>
      </tr>
      <tr>
          <td style="text-align: left">Inner Plane</td>
          <td style="text-align: left"><code>.GP1</code>, <code>.GP2</code>, etc</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
      </tr>
      <tr>
          <td style="text-align: left">Bottom Copper</td>
          <td style="text-align: left"><code>.GBL</code></td>
          <td style="text-align: left"><code>.SOL</code> / <code>.BOT</code></td>
          <td style="text-align: left"><code>B.CU</code></td>
          <td style="text-align: left"><code>.BOT</code></td>
          <td style="text-align: left"><code>L4.PHO</code> (L2 if only 2 layers)</td>
      </tr>
      <tr>
          <td style="text-align: left">Bottom Paste</td>
          <td style="text-align: left"><code>.GPB</code></td>
          <td style="text-align: left"><code>.CRS</code> / <code>.BSP</code></td>
          <td style="text-align: left"><code>B.PASTE</code></td>
          <td style="text-align: left"><code>.SPB</code></td>
          <td style="text-align: left"><code>PB.PHO</code></td>
      </tr>
      <tr>
          <td style="text-align: left">Bottom Mask</td>
          <td style="text-align: left"><code>.GBS</code></td>
          <td style="text-align: left"><code>.STS</code> / <code>.BSM</code></td>
          <td style="text-align: left"><code>B.MASK</code></td>
          <td style="text-align: left"><code>.SMB</code></td>
          <td style="text-align: left"><code>MB.PHO</code></td>
      </tr>
      <tr>
          <td style="text-align: left">Bottom Silk</td>
          <td style="text-align: left"><code>.GBO</code></td>
          <td style="text-align: left"><code>.PLS</code> / <code>.BSK</code></td>
          <td style="text-align: left"><code>B.SILK</code></td>
          <td style="text-align: left"><code>.SSB</code></td>
          <td style="text-align: left"><code>SB.PHO</code></td>
      </tr>
      <tr>
          <td style="text-align: left">Drill Drawing</td>
          <td style="text-align: left"><code>.GD1</code></td>
          <td style="text-align: left"><code>.DIM</code> / <code>.MIL</code> / <code>.GML</code></td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left"><code>D1.DWG</code></td>
      </tr>
      <tr>
          <td style="text-align: left">Drill Guide</td>
          <td style="text-align: left"><code>.GG1</code></td>
          <td style="text-align: left"><code>.DIM</code> / <code>.MIL</code> / <code>.GML</code></td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
      </tr>
      <tr>
          <td style="text-align: left">Keep Out</td>
          <td style="text-align: left"><code>.GKO</code></td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
      </tr>
      <tr>
          <td style="text-align: left">Board Outline</td>
          <td style="text-align: left"><code>.GM1</code> / <code>.GM3</code></td>
          <td style="text-align: left"><code>.DIM</code> / <code>.MIL</code> / <code>.GML</code></td>
          <td style="text-align: left"><code>EDGE.CUTS</code></td>
          <td style="text-align: left"><code>.FAB</code></td>
          <td style="text-align: left">--</td>
      </tr>
      <tr>
          <td style="text-align: left">CNC Drill</td>
          <td style="text-align: left"><code>.DRL</code> / <code>.TXT</code></td>
          <td style="text-align: left"><code>.DRL</code> / <code>.TXT</code></td>
          <td style="text-align: left">--</td>
          <td style="text-align: left"><code>.TAP</code></td>
          <td style="text-align: left"><code>ANC.DRL</code></td>
      </tr>
      <tr>
          <td style="text-align: left">Excellon Tool List</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
      </tr>
      <tr>
          <td style="text-align: left">Excellon Drill Description</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left"><code>.DRD</code></td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
          <td style="text-align: left">--</td>
      </tr>
      <tr>
          <td style="text-align: left">Notes</td>
          <td style="text-align: left">GKO layer is sometimes used incorrectly as a board outline.</td>
          <td style="text-align: left">Extensions will change depending on software version</td>
          <td style="text-align: left">These are internal file names to KiCad. Protel naming can be selected when exporting Gerber.</td>
          <td style="text-align: left"> </td>
          <td style="text-align: left"> </td>
      </tr>
  </tbody>
</table>


<p><em>Blanks indicate there isn't a specific file for this layer or none was found at the time the chart was compiled. If you have additions or corrections, please contact <a href="https://www.pcbprime.com">https://www.pcbprime.com</a></em></p>
<hr>
<p>It was after reviewing this that things clicked together <em>slightly</em> more.
Apparently TI is using the PCB capture software &quot;PADS&quot;.  Looking at
<code>sbvc040.zip</code> we see that they used the <em>first</em> part of the file name as the
<em>extension</em>, while in the Chinese forum post a hybrid of the Orcad and PADS
naming was used.</p>
<p>If this provides some new insight, or you found it useful hit me up on
Twitter (<a href="https://twitter.com/brianredbeard"><span class="inline-svg" ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
</span>

brianredbeard</a>) and let me know.  DMs are
open.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Ok, to be fair it's <em>mostly</em> RS-274-X, though some machines still use the
earlier &quot;RS-274-D&quot; (the most common and most primative G-code derivative in
wide use).&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Not to be confused with the Risco &quot;Frontal Linker System&quot;, model RS-274
used in <a href="https://www.risco.it/en/sausage-systems/rs-274-rs-279/">sausage-manufacturing</a>.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>While most everyone refers to &quot;Excellon&quot;, this is a different variant of
G-code known as &quot;<a href="https://en.wikipedia.org/wiki/PCB_NC_formats">IPC-NC-349</a>&quot;.  This becomes a <em>whole different rabbit hole</em>.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>If you're unfamiliar with schematics, SparkFun has a great write up:  <a href="https://learn.sparkfun.com/tutorials/how-to-read-a-schematic/all">How
to read a schematic</a>.&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>Similarly, SparkFun also has a great write on datasheets:  <a href="https://www.sparkfun.com/tutorials/223">How to read a
datasheet</a>.&#160;<a href="#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:6">
<p>Gerber X2 was introduced in 2013... Turns out there's already an &quot;<a href="https://www.eurocircuits.com/gerber-x3/">X3</a>&quot;
released this year.  I wonder how long until that sees adoption.&#160;<a href="#fnref:6" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Blanque Cheque]]></title>
    <link href="https://brianredbeard.com/blog/blanque-cheque/"/>
    <id>https://brianredbeard.com/blog/blanque-cheque/</id>
    <published>2019-12-16T13:06:19-08:00</published>
    <updated>2019-12-16T13:06:19-08:00</updated>
    
    <content type="html"><![CDATA[<p>It's code drop time!</p>
<p>Both in the sense of new things in the world but also deprecation of old
nastiness.  I'm happy to let folks know that has been &quot;Blanque Cheque&quot;
rebuilt.</p>




<a   href="https://brianredbeard.com/projects/tools/blanque_cheque/">https://brianredbeard.com/projects/tools/blanque_cheque/</a>


<p>Blanque Check stemmed from shitty corporate payroll companies who insisted on
having sending them a check to setup payroll.  In 2009 this chapped my hide a
bit so I began looking into this.</p>
<p>Fortunately, the memory of the Internet is long.  I was able to find a
multi-part blog series that I got <em>quite</em> a chuckle out of back in the day (and
was one of the inspirations for blanque cheque).  While his original blog(s)
no longer exist</p>
<p>I highly suggest you read it:</p>
<ul>
<li><a href="https://web.archive.org/web/20041204212635/http://www.man1bank0.com/home.cfm?page=2">Part 1 - &quot;Bank Error&quot;</a></li>
<li><a href="https://web.archive.org/web/20041205062339/http://www.man1bank0.com/home.cfm?page=3">Part 2 - &quot;Cashing In&quot;</a></li>
<li><a href="https://web.archive.org/web/20041204104400/http://www.man1bank0.com/home.cfm?page=4">Part 3 - &quot;The Bank Freaks Out&quot;</a></li>
<li><a href="https://web.archive.org/web/20041204104400/http://www.man1bank0.com/home.cfm?page=5">Part 4 - &quot;Learning My Rights&quot;</a></li>
<li><a href="https://web.archive.org/web/20041212093051/http://www.man1bank0.com/home.cfm?page=6">Part 5 - &quot;Wall Street Journal&quot;</a></li>
<li><a href="https://web.archive.org/web/20041212215016/http://www.man1bank0.com/home.cfm?page=7">Part 6 - &quot;The Internet&quot;</a></li>
<li><a href="https://web.archive.org/web/20041212215016/http://www.man1bank0.com/home.cfm?page=8">Part 7 - &quot;The Waiting&quot;</a></li>
<li><a href="https://web.archive.org/web/20041212215016/http://www.man1bank0.com/home.cfm?page=9">Part 8 - &quot;Fifteen Minutes&quot;</a></li>
<li><a href="https://web.archive.org/web/20041212215016/http://www.man1bank0.com/home.cfm?page=10">Part 9 - &quot;Do Not Pass Go&quot;</a></li>
<li><a href="https://web.archive.org/web/20041212215016/http://www.man1bank0.com/home.cfm?page=12">Part 10 - &quot;The Final Chapter&quot;</a></li>
</ul>
<p>But... I digress.</p>
<p>After doing some basic research a decade ago I learned that there aren't
<em>really</em> standards for personal checks in the United States.  In 2004 the
Federal Reserve allowed for banks to perform digitization of checks.  This allowed a
bank of <em><em>destroy</em></em> the original check and keep an electronic copy.  Now, if you
wrote a bad check and it bounced they'll &quot;return&quot; what's called a &quot;substitute&quot;
check.  What is a substitute?  Basically a printed copy of the image with
the magnetic (MICR) printing on it.</p>
<p>Now, of course we need to throw out the important caveat here:</p>
<h1 id="im-not-a-lawyer">I'm not a lawyer</h1>
<p>Do not confuse my armchair assessment with real legal advice.  That being said in my
assessment the only real law one could run afoul of is fraud (which makes
sense... check fraud is a non-trivial issue).  The trouble is <a href="https://www.fbi.gov/scams-and-safety/common-fraud-schemes">fraud</a> is the
<em>generation of gain through intentionally deceptive acts.</em>  As someone who
didn't own a checkbook, I wasn't about to purchase checks I didn't need just to
receive my paycheck.  That's bananas.</p>
<h2 id="writing-some-code">Writing some code</h2>
<p>Thus, this tool was born.  The original was a mess of PHP.  The new one is a
mess of Javascript and CSS.  Is it well written?  Absolutely not.  Will it get
the job done?  It has for me more than once.</p>
<h2 id="interesting-follow-up">Interesting follow-up</h2>
<p>In the process of putting this together it turns out <a href="https://patrickcombs.com/">Patrick Combs</a> (the author
of the blog posts) has continued his career as a professional speaker focused on
customer service/customer care.  In the past couple of years he even published a
recording.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/8SzQZDNfR2w?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<!--
notes:
Interesting Personal Finance / Money Stack Exchange Question:
  "Is there a standard check format in the USA?"
  https://money.stackexchange.com/questions/83419/is-there-a-standard-check-format-in-the-usa
-->
]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Deep Dive on Ignition]]></title>
    <link href="https://brianredbeard.com/media/talks/deep-dive-on-ignition/"/>
    <id>https://brianredbeard.com/media/talks/deep-dive-on-ignition/</id>
    <published>2019-08-28T11:00:00-07:00</published>
    <updated>2019-08-28T11:00:00-07:00</updated>
    
    <content type="html"><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/aMogSQ2HFnw?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Enhancing Envoy: Certificate Handling at the Edge]]></title>
    <link href="https://brianredbeard.com/media/talks/enhancing-envoy/"/>
    <id>https://brianredbeard.com/media/talks/enhancing-envoy/</id>
    <published>2019-06-25T11:45:00+08:00</published>
    <updated>2019-06-25T11:45:00+08:00</updated>
    
    <content type="html"><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Dg3XBaVoBd0?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[About]]></title>
    <link href="https://brianredbeard.com/about/"/>
    <id>https://brianredbeard.com/about/</id>
    <published>2018-01-20T22:12:49-08:00</published>
    <updated>2018-01-20T22:12:49-08:00</updated>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Site Rebuild]]></title>
    <link href="https://brianredbeard.com/blog/rebuild/"/>
    <id>https://brianredbeard.com/blog/rebuild/</id>
    <published>2018-01-13T18:47:07-08:00</published>
    <updated>2018-01-13T18:47:07-08:00</updated>
    
    <content type="html"><![CDATA[<p>This has been a long time coming.  I've been &quot;meaning to get around&quot; to fixing
up this site for quite some time.  Looks like I finally got to it.  There's
still work to be done with making it look the way that it used to, but once
again I have a platform for running my mouth.</p>
<p>At some point in a hot second, I'll make it pretty and get my various hosted
tools back into place.  In the meantime, if you want to take a look at some of
what I've been working on, check out my GitHub profile:</p>
<p><a href="https://github.com/brianredbeard">https://github.com/brianredbeard</a></p>
]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Who Wants to Allow Arbitrary Code Execution on Their Boxes? We Do It Every Day.]]></title>
    <link href="https://brianredbeard.com/media/talks/arbitrary-code-execution/"/>
    <id>https://brianredbeard.com/media/talks/arbitrary-code-execution/</id>
    <published>2017-01-14T14:00:00-04:00</published>
    <updated>2017-01-14T14:00:00-04:00</updated>
    
    <content type="html"><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Jyxvsaw-gWI?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Jazz Riffs, Robots, and Free/Libre Open Source Distributed Systems]]></title>
    <link href="https://brianredbeard.com/media/talks/jazz-rifs-robots-open-source/"/>
    <id>https://brianredbeard.com/media/talks/jazz-rifs-robots-open-source/</id>
    <published>2016-05-10T16:30:00+01:00</published>
    <updated>2016-05-10T16:30:00+01:00</updated>
    
    <content type="html"><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/w8QBR7QT3Hk?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Minimal Containers]]></title>
    <link href="https://brianredbeard.com/media/talks/minimal-containers/"/>
    <id>https://brianredbeard.com/media/talks/minimal-containers/</id>
    <published>2015-07-31T13:49:28-07:00</published>
    <updated>2015-07-31T13:49:28-07:00</updated>
    
    <content type="html"><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/gMpldbcMHuI?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Bill of Materials - NinjaPenguin 17 (2023)]]></title>
    <link href="https://brianredbeard.com/projects/tools/bom-np17/"/>
    <id>https://brianredbeard.com/projects/tools/bom-np17/</id>
    <published>0001-01-01T00:00:00+00:00</published>
    <updated>0001-01-01T00:00:00+00:00</updated>
    
    <content type="html"><![CDATA[<!DOCTYPE html>
<html>
<head>
  <title>Resume</title>
  <link rel="canonical" href="/projects/tools/bom_np17.html" />
  <meta name="robots" content="noindex">
  <meta charset="utf-8" />
  <meta http-equiv="refresh" content="0; url=/projects/tools/bom_np17.html" />
</head>
</html>
]]></content>
    
  </entry>
  <entry>
    <title type="html"><![CDATA[Blanque Cheque]]></title>
    <link href="https://brianredbeard.com/projects/tools/blanque_cheque/"/>
    <id>https://brianredbeard.com/projects/tools/blanque_cheque/</id>
    <published>0001-01-01T00:00:00+00:00</published>
    <updated>0001-01-01T00:00:00+00:00</updated>
    
    <content type="html"><![CDATA[<p>Rebuilt for a differently shitty world...</p>
<h2 id="blanque-cheque-v2">BLANQUE CHEQUE v2</h2>
<h3 id="background">Background</h3>
<p>In a previous era I had written a tool called &quot;blanque cheque&quot;.  It stemmed from
attempts to get direct deposit set up and a contract payroll company assuming
that I was an idiot.  In a fit of PHP I whipped out that badboy and it could be
summarized as &quot;it got the job done.&quot;  I certainly wasn't going to win any awards
for code composition, efficiency, etc.  Then again, it was 2009 and I'm not a
developer.</p>
<p>The purpose of blanque cheque was just to generate a one off check suitable for
printing.  At this point it could be emailed, faxed, or dropped in the mail and
would (hopefully) satisfy the recipient.</p>
<p>The original project was nonetheless interesting because it got into lots of
interesting nuances of how checks are processed. In the years since, I've talked
to homies at Stripe &amp; Square and over beers we've commiserated about how the
global payments system is absolute shit.</p>
<p>Due to the aggressive use of PHP and <em>a relational database</em> I had written off
the tool as never to be brought back online after moving to a static site.  I've
toyed around with the idea of turning it into a serverless application but
didn't really give enough of a shit.</p>
<p>This past weekend a friend asked about it (dealing ten years later with the same
original challenge).  After finishing up another big project I decided it was
time to do a little &quot;maintenance engineering.&quot;  Beyond that it was an excuse to
dig into new technologies.</p>
<h3 id="the-re-write">The re-write</h3>
<p>The web has made a number of improvements over the last ten years which made
this much easier.  Web fonts are now a thing, so I didn't need to render images
of <a href="https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition">MICR</a> text.  CSS2.1 was finally ratified which meant that everything
could be styled much easier.  EMCA 2015 came out.  Finally, <a href="https://en.wikipedia.org/wiki/WHATWG">WHATWG</a>
revolved have resovled their beef with the <a href="https://en.wikipedia.org/wiki/W3C">W3C</a>.</p>
<p>About 10 minutes into this (after thinking of the previous improvements) I
thought &quot;<em>Why in the hell does this need a database in 2019?</em>&quot;.  Turns out that
was a good question.  One of the neat features for me was always the ability to
validate the <a href="https://en.wikipedia.org/wiki/ABA_routing_transit_number">ABA number</a> (aka the &quot;Routing Transit Number&quot;) of the
check.  At the time I pulled the ACH information from the Federal Reserve's
website (yes, the <em>ACH</em> information... more on that later) and then leveraged my
awk-fu to get it into a MySQL instance.  At the time <a href="https://en.wikipedia.org/wiki/LAMP_%28software_bundle%29">&quot;LAMP&quot;</a> was still
the common platform for basically every hosting provider so it got the job done
in no time.</p>
<p>Thinking through this I came to the realization that, as
<a href="https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API"><code>IndexedDB</code></a> and <code>fetch</code> are now &quot;a thing&quot;, I could take a stab at
using those.  Even better, it comes with the added benefit of executing only in
the local browser without making network calls (after assets are retrieved to
the browser).</p>
<p>At this point the tool works and actually has improvements over the original.
It comes at the expense of having to write Javascript (yuk) but at the benefit
of removing some PHP from the world (yay!)</p>
<h3 id="some-words-of-warning">Some words of warning</h3>
<p>Before you go shotgun blast using this, you should definitely know what you're
getting into.  ABA and ACH numbers each have their own nuance.  For more
information on that check out <a href="https://transferwise.com/us/blog/ach-aba-wire-eft-check-meaning-usa">this post by Transferwise</a>.
In the same way that a parallelogram may be a rectangle, a square, neither, or
both things can get tricky.  Needless to say though that if you dig into it, you
should be able to connect the dots.</p>
<p>In December 2018 FRBServices <a href="https://www.frbservices.org/resources/routing-number-directory/faqs.html#downloading3">removed public access</a> to the E-Payments
Routing Directory I used a decade ago.  Fortunately I had a batch job pulling it
down up to that point.  What does that mean?  Stale data.  Although, you can
always decide to pay FRBServices if that's something you're really into, I
guess.</p>
<h3 id="on-to-the-tool">On to the tool</h3>
<p>The tool is available at the following address.  If you need to test it out,
<code>021001208</code> is the code for the Federal Reserve.  It does some basic length
validation along with other stuff.  There are only a few assets needed to make
use of Blanque Cheque:</p>
<ul>
<li>The HTML file</li>
<li>The MICR web fonts (included in <code>woff</code> and <code>woff2</code> formats)</li>
<li><code>fed.json</code></li>
</ul>
<p>The tools is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.html">Affero GPL v3</a> License.  If you only
want to play around or use it, it can be accessed under the following link:</p>
<h4 id="hahahugoshortcode46s0hbhb">



<a   href="https://brianredbeard.com/code/blanque_cheque_v2/">https://brianredbeard.com/code/blanque_cheque_v2/</a>

</h4>
<p>If you would like to download the assets to play along on your own system:</p>




<a   href="https://brianredbeard.com/code/dist/blanque_cheque_v2.tgz">https://brianredbeard.com/code/dist/blanque_cheque_v2.tgz</a>


<p>The CSS should hide the form at the bottom when time to print.</p>
<!--
https://web.archive.org/web/20191216023137/https://transferwise.com/us/blog/ach-aba-wire-eft-check-meaning-usa
-->
]]></content>
    
  </entry>
</feed>
