导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. whycan
    3. 最佳
    • 资料
    • 关注 0
    • 粉丝 68
    • 我的积分 57177
    • 主题 101
    • 帖子 2104
    • 最佳 204
    • 群组 1

    whycan 发布的最佳帖子

    • 【开源开发板】D1s-Nezha开发板全全开源上架(内含购买链接和全部软硬件资料)

      2073522e-12e2-47c5-9d24-7616fa85df5e-Nezha-D1s.jpg

      89c9f2ec-3386-4ae4-9222-23f39035f439-Nezha-D1s L.jpg

      规格介绍:

      (1)支持RGB显示接口;
      (2)支持DSI接口;
      (3)支持TP接口;
      (4)支持LINEIN接口,支持HPOUT接口;
      (5)支持TVIN/TVOUT接口;
      (6)集成全志XR829 WiFi/BT芯片,支持a2dp与hfp;
      (7)支持JATG/UART debug;
      (8)支持SD卡;
      (9)支持USB Host/device;

      本开发板将提供:

      (1)硬件资料:原理图、PCB layout、BOM list
      (2)软件资料:适配的Tina Linux SDK(全志官方客户平台可下载)、基于官方SDK修改的适配补丁、测试用的固件
      (3)技术支持:将提供力所能及的基础技术支持,请到【全志在线开发者论坛】提问,会有人回复。不接私人定制、企业定制、一对一私信服务等。

      请认真阅读如下内容后再购买:

      (1)本开发板基于全志D1s芯片设计,主要应用于D1s性能评估、方案预研、开发者DIY等。
      (2)本开发板部分小件如电容电阻等是嘉立创机贴的,部分大件如D1s主控、XR829等为手贴,开发板售出前将烧写固件并进行人肉功能测试,开发板一经售出不退不换。
      (3)本开发板默认购买者是有一定开发能力的个人或企业的开发者,对于调试开发过程中出现的问题有一定的能力解决,小白勿买,不保修。

      因为是手贴,第一批只有15块,预计本周上线预售,预售价399元,劳动节后发货。

      目前已知问题列表:

      1. 不接入屏幕而开启屏幕背光可能会导致背光驱动异常发热

      屏幕背光二极管选型错误,使用屏幕时要接屏,悬空开启背光会导致二极管异常发热,可以通过更换二极管型号解决(SOD123封装,耐压40V以上的,例如SS14,SS24,SS16等)

      2. TVIN,TVOUT软件上暂未实现功能
      3. FM软件上暂未实现功能

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: 在wsl下开发T113的主线linux(最新gcc+awboot+最新kernel+最新buildroot)

      这篇文章记录了在wsl系统下编译调试awboot和linux的全过程

      硬件要求:任意T113-S3芯片的板子,SPI0接spinand标准接法。

      1、准备wsl开发环境

      首先在win10或win11下安装wsl,选择wsl1或者wsl2都可以,wsl2的性能更高一些,wsl1的跨系统文件操作速度更快一些,我这里因为有一些工程在win文件系统下,所以选择了wsl1,发行版使用最新的Ubuntu 22.04.01 LTS。
      这里我没有选用vm虚拟机安装ubuntu开发的原因是虚拟机下的文件交互不够方便,特别是git和文件对比,有时在内核源码改了一些文件,使用win下的TortoiseGit工具就可以很方便的查看差异,提交变更。使用beyond compare也可很方便的比较各种文件文件夹的不同版本的差异。
      21d39193-ed21-4a4f-ae6f-d6dec28b7a9f-image.png
      在win资源管理器下可以直接查看wsl的linux根目录,右键可以直接执行各种操作,就像操作win文件一样

      这里编译开发的核心软件只有一个,就是VS code,安装好后添加所需的插件。
      串口调试工具使用MobaXterm

      下载交叉编译器,这里使用arm官方最新的GCC 12.2
      https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
      arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz
      下载后解压在wsl的主目录,在.bashrc中添加编译器路径

      PATH="$PATH:/home/wsl/arm-none-linux-gnueabihf/bin"

      2、编译awboot

      意外发现有awboot能够代替uboot直接引导内核,体验了一下果断选择awboot,因为足够简洁,编译大小只有32k,和uboot接近1M的体量相比,简直是小而美,启动速度也比uboot快上不少,也能同时支持sd卡,spinand,spinorflash启动。
      https://github.com/szemzoa/awboot

      说起uboot不禁想起几年前路由器第三方固件盛行的时期,那时的路由器还没有很复杂的方案,第三方固件往往比官方固件更易用功能更丰富,买个普通路由器换颗flash,内存芯片刷个系统就能获得更丰富的功能体验,各种固件openwrt,Padavan,高格百花齐放,为了刷机方便,系统的uboot都要支持tftp,串口甚至web的文件传输接口,由此孕育而出了大名鼎鼎的Breed,仅仅为了更新固件更方便,不用spi flash编程器那么麻烦的烧写。而到了全志嵌入式这边,由于自带usb接口的BROM,使用sunxi-fel或者xfel烧写flash已足够方便,所以使用uboot更新固件的需求就不是那么大,况且全志的方案比路由器的方案定制性更高一些,没有通用的第三方固件可以刷,所以uboot的功能就完全成了摆设,让用户使用sunxi-fel更新固件都要比uboot更新固件更稳定更实用,消费者用户用不到,开发人员也不会去用,那uboot的1m大小,集成的各种usb,网络,屏幕驱动,环境变量,文件系统,设备树编辑等功能就显得格外多余。

      15a4a48f-2147-485d-a424-e76bd042c293-image.png

      awboot相比spl+uboot的区别就是少了一次跳转的过程,由BROM拉起的boot0拥有足足160kb的sram,足够编写执行引导kernel的代码,所以这何尝不是一种恰到好处。

      下面是awboot的编译过程:
      修改makefile中的CROSS_COMPILE编译器定义为arm-none-linux-gnueabihf,或者使用

      make CROSS_COMPILE=arm-none-linux-gnueabihf
      命令编译
      如果不是git拉取的而是手动下载解压的源码,需要去除git编译目标,位于makefile line:49
      出现DWORD重复定义的错误,删除lib\fatfs\integer.h中的DWORD定义
      链接出现未定义函数__aeabi_unwind_cpp_pr0,makefile中添加编译选项CFLAGS += -lgcc_eh
      链接出现未定义函数raise,在main.c中添加函数

      int raise(void)
      {
      	return 0;
      }
      

      编译成功,出现awboot.bin等文件

      3、写入spinand测试

      接下来是烧写入硬件验证,我的板子焊接的是W25N01GV,这里使用xfel,因为支持写入spi-nand。
      https://github.com/xboot/xfel

      为什么不使用sd卡验证,因为烧写sd卡需要:
      拔卡->插到电脑->dd命令写入->拔卡->插到板子上。
      而写入spi-nand只需要:
      按着boot键同时按复位键->xfel命令写入(可以飞线两个按键,复位键接到reset脚到地,boot键接到spi-cs脚到地)。
      步骤大幅减少,同时没有拔插sd卡造成的触点磨损。同时因为使用的wsl系统,并不能很方便的使用dd命令写入sd卡。虽然wsl下也不能直接访问全志的usb设备,但是xfel有win的版本,wsl下可直接执行exe文件,所以只需要下载xfel-windows解压到wsl中,在.bashrc中添加命令别名

      alias xfel='/home/wsl/xfel-windows-v1.2.9/xfel.exe'
      即可在wsl中使用win版的xfel,就像linux中的xfel一模一样。

      make spi-boot.img
      xfel version
      xfel spinand
      xfel spinand erase 0 0x8000000
      xfel spinand write 0 spi-boot.img
      

      复位重启,可以在串口看到awboot打印的信息
      awboot默认使用uart5打印,其他串口可以修改board.c中的配置,非常通俗易懂
      内核加载地址如下表,可在board.h中修改

      • spi-nand内存划分 起始地址 空间容量
      • awboot 0 0x40000(256k)
      • dtb 0x40000 0x40000(256k)
      • kernel 0x80000 任意
      [I] AWBoot r6143 starting...
      [I] SPI-NAND: W25N01GV detected
      [E] SPI-NAND: DTB verification failed
      [F] SPI-NAND: loading failed
      restarting...
      

      4、编译kernel

      接下来编译kernel,编译过程可能会出现缺少命令的报错,大概是下面这几个

      sudo apt update
      sudo apt install flex bison bc libncurses-dev
      

      目前linux主线的最新版本并没有适配t113的相关外设驱动,虽然能启动并串口打印,但其他的一些外设并没有驱动,还不是可用的状态,所以这里选择全志D1的kernel进行修改。
      https://github.com/smaeul/linux/tree/d1/all

      unzip linux-d1-all.zip
      cd linux-d1-all
      

      应用awboot提供的linux补丁

      linux/allow_select_d1_ccu_on_t113.patch
      linux/ccu-sun20i-make_cpux_clk_critical_for_t113.patch
      linux/second_core_support_in_platsmp.patch
      linux/d1s_t113_can_bus.patch
      

      在arch\arm\configs\sunxi_defconfig中添加D1时钟

      CONFIG_SUN20I_D1_CCU=y
      CONFIG_SUN20I_D1_R_CCU=y
      

      添加sun8i-t113.dtsi和sun8i-t113-mangopi-dual.dts设备树配置文件到arch\arm\boot\dts
      在arch\arm\boot\dts\Makefile的line:1389 处,CONFIG_MACH_SUN8I配置中添加sun8i-t113-mangopi-dual.dtb

      awboot提供的sun8i-t113-mangopi-dual.dts设备树文件调试终端串口是5,需要改成uart0。

      make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- sunxi_defconfig
      make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- zImage -j4
      make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- dtbs
      
      xfel spinand write 0x40000 arch/arm/boot/dts/sun8i-t113-mangopi-dual.dtb
      xfel spinand write 0x80000 arch/arm/boot/zImage
      

      5245787f-02fb-49ac-ba26-e4167ce500f2-image.png

      复位,串口成功打印内核信息,目前spinand中还没有文件系统,所以系统无法启动成功。

      5、构建ubi文件系统

      接下来是构建文件系统,这里使用最新的buildroot
      https://buildroot.org/downloads/buildroot-2022.11.tar.gz

      tar xf buildroot-2022.11.tar.gz
      cd buildroot-2022.11
      make menuconfig
      配置目标指令集类型
      006b7cd7-d0d3-40a7-b20b-b58a0ae89aca-image.png

      配置外部自定义编译器
      345e868b-a6ef-4376-9f7b-d01239c4aa36-image.png

      配置生成文件系统类型为ubifs,最大逻辑擦除块数量决定了spinand的容量,我这里是128M的spinand,所以128M/128k = 1024
      c798468b-ad46-44ea-b24a-bbe272779220-image.png

      上面的这些配置操作可以用下面的默认配置文件代替,在configs文件夹创建sunxi_t113_spinand_defconfig文件,添加下面内容,使用make sunxi_t113_spinand_defconfig载入配置。

      # architecture
      BR2_arm=y
      BR2_cortex_a7=y
      BR2_ARM_FPU_VFPV4=y
      
      # Toolchain
      BR2_TOOLCHAIN_EXTERNAL=y
      BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
      BR2_TOOLCHAIN_EXTERNAL_PATH="/home/wsl/arm-none-linux-gnueabihf"
      BR2_TOOLCHAIN_EXTERNAL_GLIBC=y
      BR2_TOOLCHAIN_EXTERNAL_PREFIX="arm-none-linux-gnueabihf"
      BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-none-linux-gnueabihf"
      BR2_TOOLCHAIN_EXTERNAL_GCC_12=y
      BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_20=y
      BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
      # BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set
      BR2_TOOLCHAIN_EXTERNAL_CXX=y
      
      # system
      
      # kernel
      
      # bootloader
      
      # filesystem / image
      BR2_TARGET_ROOTFS_UBI=y
      BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x20000
      BR2_TARGET_ROOTFS_UBI_SUBSIZE=0
      BR2_TARGET_ROOTFS_UBIFS=y
      BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000
      BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE=0x800
      BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=1024
      BR2_TARGET_ROOTFS_UBIFS_OPTS="-F"
      

      配置完成后make开始编译,接下来就是漫长的下载编译过程,大概需要半小时。
      编译成功后会生成output/images/rootfs.ubi,使用xfel命令写入。

      xfel spinand erase 0x800000 0x7800000
      xfel spinand write 0x800000 output/images/rootfs.ubi
      复位发现没有启动成功,原来内核默认没有打开mtd和ubi支持,在内核配置添加下面选项

      Device Drivers -> Memory Technology Device (MTD) support -> NAND -> SPI NAND device Support
      Device Drivers -> Memory Technology Device (MTD) support -> Enable UBI - Unsorted block images
      File Systems -> Miscellaneous filesystems -> UBIFS file system support
      或者在arch\arm\configs\sunxi_defconfig中添加

      CONFIG_MTD=y
      CONFIG_MTD_SPI_NAND=y
      CONFIG_MTD_UBI=y
      CONFIG_UBIFS_FS=y
      后重新载入配置。

      另外设备树中的启动参数和分区也需要修改

      bootargs = "mem=128M ubi.mtd=3 rootfstype=ubifs root=ubi0:rootfs rw rootwait console=ttyS0,115200";
      
      &spi0 {
      	pinctrl-0 = <&spi0_pins>;
      	pinctrl-names = "default";
      	status = "okay";
      
      	spi_nand: spi_nand@0 {
              #address-cells = <1>;
              #size-cells = <1>;
      		compatible = "spi-nand";
      		reg = <0>;
      
      		partition@0 {
      				label = "awboot";
      				reg = <0x0 0x40000>;	/* 256K */
      				read-only;
      		};
      
      		partition@40000 {
      				label = "dtb";
      				reg = <0x40000 0x40000>;  /* 256k */
      				read-only;
      		};
      
      		partition@80000 {
      				label = "kernel";
      				reg = <0x80000 0x780000>;  /* 7.5MB */
      				read-only;
      		};
      
      		partition@800000 {
      				label = "rootfs";
      				reg = <0x800000 0x7800000>;
      		};
      	};
      };
      

      修改完后重新写入spi-nand,系统顺利启动,一个标准linux 6.1的基础busybox文件系统就做好了,可以根据不同应用可在buildroot添加所需的命令,下面是我常用的一些命令,总之非常方便。

      make menuconfig
      System configuration  ---> [*] Enable root login with password
      Target packages  ---> Networking applications  ---> dropbear
      Target packages ---> Libraries ---> Hardware handling ---> tslib
      Target packages ---> Text editors and viewers ---> nano
      Target packages ---> System tools ---> htop
      iperf3
      coremark
      dhrystone
      
      make busybox-menuconfig
      Archival Utilities ---> Make tar xxx, Autodetect compressed tarballs
      Linux System Utilities ---> Support mounting CIFS/SMB file systems
      Networking Utilities ---> httpd
      Networking Utilities ---> ntpd
      Networking Utilities ---> udhcpd
      Process Utilities ---> Support thread display in ps/pstree/top
      Process Utilities ---> pgrep
      Process Utilities ---> pmap
      Process Utilities ---> Show the number of users
      

      完整启动日志

      [I] AWBoot r6143 starting...
      [I] SPI-NAND: W25N01GV detected
      [I] SPI-NAND: read dt blob of size 22242 at 43.00MB/S
      [I] SPI-NAND: read Image of size 5424416 at 49.00MB/S
      [I] booting linux...
      [    0.000000] Booting Linux on physical CPU 0x0
      [    0.000000] Linux version 6.1.0-rc3 (wsl@DESKTOP-NQRKTHB) (arm-none-linux-gnueabihf-gcc (Arm GNU Toolchain 12.2.Rel1 (Build arm-12.24)) 12.2.1 20221205, GNU ld (Arm GNU Toolchain 12.2.Rel1 (Build arm-12.1210) #7 SMP Fri Dec 30 18:52:12 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: MangoPi MQ-Dual
      [    0.000000] Memory policy: Data cache writealloc
      [    0.000000] cma: Reserved 16 MiB at 0x47000000
      [    0.000000] Zone ranges:
      [    0.000000]   Normal   [mem 0x0000000040000000-0x0000000047ffffff]
      [    0.000000]   HighMem  empty
      [    0.000000] Movable zone start for each node
      [    0.000000] Early memory node ranges
      [    0.000000]   node   0: [mem 0x0000000040000000-0x0000000047ffffff]
      [    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000047ffffff]
      [    0.000000] percpu: Embedded 11 pages/cpu s15764 r8192 d21100 u45056
      [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
      [    0.000000] Kernel command line: mem=128M ubi.mtd=3 rootfstype=ubifs root=ubi0:rootfs rw rootwait console=ttyS0,115200
      [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
      [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
      [    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
      [    0.000000] Memory: 99804K/131072K available (8192K kernel code, 952K rwdata, 2188K rodata, 1024K init, 270K bss, 14884K reserved, 16384K cma-reserved, 0K highmem)
      [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
      [    0.000000] rcu: Hierarchical RCU implementation.
      [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
      [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
      [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
      [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
      [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
      [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
      [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
      [    0.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
      [    0.000013] Switching to timer-based delay loop, resolution 41ns
      [    0.000188] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
      [    0.000681] Console: colour dummy device 80x30
      [    0.000724] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
      [    0.000740] pid_max: default: 32768 minimum: 301
      [    0.000901] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.000916] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.001461] CPU: Testing write buffer coherency: ok
      [    0.001766] /cpus/cpu@0 missing clock-frequency property
      [    0.001795] /cpus/cpu@1 missing clock-frequency property
      [    0.001805] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
      [    0.002581] Setting up static identity map for 0x40100000 - 0x40100060
      [    0.002720] rcu: Hierarchical SRCU implementation.
      [    0.002725] rcu:     Max phase no-delay instances is 1000.
      [    0.003261] smp: Bringing up secondary CPUs ...
      [    0.003971] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
      [    0.004097] smp: Brought up 1 node, 2 CPUs
      [    0.004107] SMP: Total of 2 processors activated (96.00 BogoMIPS).
      [    0.004114] CPU: All CPU(s) started in SVC mode.
      [    0.004635] devtmpfs: initialized
      [    0.008727] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
      [    0.008927] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
      [    0.008951] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
      [    0.009546] pinctrl core: initialized pinctrl subsystem
      [    0.010921] NET: Registered PF_NETLINK/PF_ROUTE protocol family
      [    0.011968] DMA: preallocated 256 KiB pool for atomic coherent allocations
      [    0.012787] thermal_sys: Registered thermal governor 'step_wise'
      [    0.012969] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
      [    0.012981] hw-breakpoint: maximum watchpoint size is 8 bytes.
      [    0.020855] platform 5460000.tcon-top: Fixing up cyclic dependency with 5200000.mixer
      [    0.020919] platform 5460000.tcon-top: Fixing up cyclic dependency with 5100000.mixer
      [    0.021185] platform 5461000.lcd-controller: Fixing up cyclic dependency with 5460000.tcon-top
      [    0.021537] platform 5470000.lcd-controller: Fixing up cyclic dependency with 5604000.tv-encoder
      [    0.021593] platform 5470000.lcd-controller: Fixing up cyclic dependency with 5460000.tcon-top
      [    0.022352] platform 7090000.rtc: Fixing up cyclic dependency with 7010000.clock-controller
      [    0.032234] SCSI subsystem initialized
      [    0.032716] usbcore: registered new interface driver usbfs
      [    0.032754] usbcore: registered new interface driver hub
      [    0.032791] usbcore: registered new device driver usb
      [    0.032977] mc: Linux media interface: v0.10
      [    0.033022] videodev: Linux video capture interface: v2.00
      [    0.033106] pps_core: LinuxPPS API ver. 1 registered
      [    0.033112] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
      [    0.033127] PTP clock support registered
      [    0.033547] Advanced Linux Sound Architecture Driver Initialized.
      [    0.034416] clocksource: Switched to clocksource arch_sys_counter
      [    0.041644] NET: Registered PF_INET protocol family
      [    0.041849] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
      [    0.042389] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
      [    0.042417] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
      [    0.042428] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.042444] TCP bind hash table entries: 1024 (order: 2, 16384 bytes, linear)
      [    0.042479] TCP: Hash tables configured (established 1024 bind 1024)
      [    0.042567] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
      [    0.042599] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
      [    0.042749] NET: Registered PF_UNIX/PF_LOCAL protocol family
      [    0.043429] RPC: Registered named UNIX socket transport module.
      [    0.043443] RPC: Registered udp transport module.
      [    0.043447] RPC: Registered tcp transport module.
      [    0.043450] RPC: Registered tcp NFSv4.1 backchannel transport module.
      [    0.044815] workingset: timestamp_bits=30 max_order=15 bucket_order=0
      [    0.049789] NFS: Registering the id_resolver key type
      [    0.049854] Key type id_resolver registered
      [    0.049858] Key type id_legacy registered
      [    0.050022] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
      [    0.050031] io scheduler mq-deadline registered
      [    0.050036] io scheduler kyber registered
      [    0.108727] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
      [    0.118865] CAN device driver interface
      [    0.122269] sun6i-rtc 7090000.rtc: registered as rtc0
      [    0.122395] sun6i-rtc 7090000.rtc: setting system clock to 1970-01-02T00:00:00 UTC (86400)
      [    0.122514] sun6i-rtc 7090000.rtc: RTC enabled
      [    0.122857] i2c_dev: i2c /dev entries driver
      [    0.124723] sunxi-wdt 20500a0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
      [    0.125850] sun8i-ce 3040000.crypto: Set mod clock to 300000000 (300 Mhz) from 400000000 (400 Mhz)
      [    0.126215] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
      [    0.126553] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
      [    0.126774] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
      [    0.126977] sun8i-ce 3040000.crypto: will run requests pump with realtime priority
      [    0.127118] sun8i-ce 3040000.crypto: Register cbc(aes)
      [    0.127146] sun8i-ce 3040000.crypto: Register ecb(aes)
      [    0.127157] sun8i-ce 3040000.crypto: Register cbc(des3_ede)
      [    0.127166] sun8i-ce 3040000.crypto: Register ecb(des3_ede)
      [    0.127195] sun8i-ce 3040000.crypto: CryptoEngine Die ID 0
      [    0.128073] usbcore: registered new interface driver usbhid
      [    0.128082] usbhid: USB HID core driver
      [    0.130773] NET: Registered PF_PACKET protocol family
      [    0.130787] can: controller area network core
      [    0.130861] NET: Registered PF_CAN protocol family
      [    0.130869] can: raw protocol
      [    0.130876] can: broadcast manager protocol
      [    0.130885] can: netlink gateway - max_hops=1
      [    0.130991] Key type dns_resolver registered
      [    0.131078] Registering SWP/SWPB emulation handler
      [    0.151942] sun20i-d1-pinctrl 2000000.pinctrl: initialized sunXi PIO driver
      [    0.153211] printk: console [ttyS0] disabled
      [    0.173477] 2500000.serial: ttyS0 at MMIO 0x2500000 (irq = 231, base_baud = 1500000) is a 16550A
      [    0.980691] printk: console [ttyS0] enabled
      [    0.987508] spi-nand spi0.0: Winbond SPI NAND was found.
      [    0.992841] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
      [    1.001736] 4 fixed-partitions partitions found on MTD device spi0.0
      [    1.008126] Creating 4 MTD partitions on "spi0.0":
      [    1.012920] 0x000000000000-0x000000040000 : "awboot"
      [    1.018743] 0x000000040000-0x000000080000 : "dtb"
      [    1.024176] 0x000000080000-0x000000800000 : "kernel"
      [    1.038649] 0x000000800000-0x000008000000 : "rootfs"
      [    1.194220] phy phy-4100400.phy.0: Changing dr_mode to 1
      [    1.195527] usb_phy_generic usb_phy_generic.1.auto: dummy supplies not allowed for exclusive requests
      [    1.199603] ehci-platform 4101000.usb: EHCI Host Controller
      [    1.209317] musb-hdrc musb-hdrc.2.auto: MUSB HDRC host driver
      [    1.214352] ehci-platform 4101000.usb: new USB bus registered, assigned bus number 1
      [    1.220112] musb-hdrc musb-hdrc.2.auto: new USB bus registered, assigned bus number 2
      [    1.236616] hub 2-0:1.0: USB hub found
      [    1.236719] ehci-platform 4200000.usb: EHCI Host Controller
      [    1.240434] hub 2-0:1.0: 1 port detected
      [    1.247931] ohci-platform 4200400.usb: Generic Platform OHCI controller
      [    1.256590] ohci-platform 4200400.usb: new USB bus registered, assigned bus number 3
      [    1.264527] ehci-platform 4101000.usb: irq 233, io mem 0x04101000
      [    1.270652] ehci-platform 4200000.usb: new USB bus registered, assigned bus number 4
      [    1.270760] ohci-platform 4200400.usb: irq 237, io mem 0x04200400
      [    1.286255] ehci-platform 4200000.usb: irq 235, io mem 0x04200000
      [    1.292563] sunxi-mmc 4020000.mmc: Got CD GPIO
      [    1.294477] ehci-platform 4101000.usb: USB 2.0 started, EHCI 1.00
      [    1.303231] ubi0: attaching mtd3
      [    1.308189] hub 1-0:1.0: USB hub found
      [    1.312277] hub 1-0:1.0: 1 port detected
      [    1.322619] sunxi-mmc 4020000.mmc: initialized, max. request size: 2047 KB, uses new timings mode
      [    1.334453] ehci-platform 4200000.usb: USB 2.0 started, EHCI 1.00
      [    1.341315] hub 4-0:1.0: USB hub found
      [    1.345162] hub 4-0:1.0: 1 port detected
      [    1.359176] hub 3-0:1.0: USB hub found
      [    1.362978] hub 3-0:1.0: 1 port detected
      [    1.444542] ohci-platform 4101400.usb: Generic Platform OHCI controller
      [    1.451202] ohci-platform 4101400.usb: new USB bus registered, assigned bus number 5
      [    1.459287] ohci-platform 4101400.usb: irq 236, io mem 0x04101400
      [    1.539278] hub 5-0:1.0: USB hub found
      [    1.543116] hub 5-0:1.0: 1 port detected
      [    1.574453] random: crng init done
      [    2.100239] ubi0: scanning is finished
      [    2.114539] ubi0: attached mtd3 (name "rootfs", size 120 MiB)
      [    2.120305] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
      [    2.127199] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
      [    2.133981] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
      [    2.140952] ubi0: good PEBs: 960, bad PEBs: 0, corrupted PEBs: 0
      [    2.146964] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
      [    2.154178] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 2041766426
      [    2.163310] ubi0: available PEBs: 0, total reserved PEBs: 960, PEBs reserved for bad PEB handling: 20
      [    2.172542] ubi0: background thread "ubi_bgt0d" started, PID 85
      [    2.172894] ALSA device list:
      [    2.181451]   No soundcards found.
      [    2.186632] UBIFS (ubi0:0): Mounting in unauthenticated mode
      [    2.192477] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 86
      [    2.249179] UBIFS (ubi0:0): recovery needed
      [    2.379732] UBIFS (ubi0:0): recovery completed
      [    2.384300] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
      [    2.391721] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
      [    2.401642] UBIFS (ubi0:0): FS size: 117452800 bytes (112 MiB, 925 LEBs), max 1024 LEBs, journal size 9023488 bytes (8 MiB, 72 LEBs)
      [    2.413554] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
      [    2.419390] UBIFS (ubi0:0): media format: w4/r0 (latest is w5/r0), UUID 9AE4F0B9-2A05-4C7A-8644-AA2CE4D2FFF0, small LPT model
      [    2.432511] VFS: Mounted root (ubifs filesystem) on device 0:13.
      [    2.440323] devtmpfs: mounted
      [    2.444496] Freeing unused kernel image (initmem) memory: 1024K
      [    2.450581] Run /sbin/init as init processSB bus registered, assigned bus number 2
      [    1.228343] ehci-platform 4200000.usb: EHCI Host Controller
      [    1.235904] hub 2-0:1.0: USB hub found
      [    1.242613] ohci-platform 4200400.usb: Generic Platform OHCI controller
      [    1.244554] hub 2-0:1.0: 1 port detected
      [    1.255208] ehci-platform 4101000.usb: irq 233, io mem 0x04101000
      [    1.261339] ehci-platform 4200000.usb: new USB bus registered, assigned bus number 3
      [    1.264326] ohci-platform 4200400.usb: new USB bus registered, assigned bus number 4
      [    1.278588] ehci-platform 4200000.usb: irq 235, io mem 0x04200000
      [    1.284829] ehci-platform 4101000.usb: USB 2.0 started, EHCI 1.00
      [    1.284899] sunxi-mmc 4020000.mmc: Got CD GPIO
      [    1.296563] ubi0: attaching mtd3
      [    1.300503] ohci-platform 4200400.usb: irq 237, io mem 0x04200400
      [    1.307274] hub 1-0:1.0: USB hub found
      [    1.311088] hub 1-0:1.0: 1 port detected
      [    1.315120] ehci-platform 4200000.usb: USB 2.0 started, EHCI 1.00
      [    1.320965] sunxi-mmc 4020000.mmc: initialized, max. request size: 2047 KB, uses new timings mode
      [    1.322827] hub 3-0:1.0: USB hub found
      [    1.333954] hub 3-0:1.0: 1 port detected
      [    1.379177] hub 4-0:1.0: USB hub found
      [    1.382997] hub 4-0:1.0: 1 port detected
      [    1.444407] ohci-platform 4101400.usb: Generic Platform OHCI controller
      [    1.451070] ohci-platform 4101400.usb: new USB bus registered, assigned bus number 5
      [    1.459134] ohci-platform 4101400.usb: irq 236, io mem 0x04101400
      [    1.539152] hub 5-0:1.0: USB hub found
      [    1.542954] hub 5-0:1.0: 1 port detected
      [    1.614309] random: crng init done
      [    2.110704] ubi0: scanning is finished
      [    2.124757] ubi0: attached mtd3 (name "rootfs", size 120 MiB)
      [    2.130523] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
      [    2.137436] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
      [    2.144219] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
      [    2.151185] ubi0: good PEBs: 960, bad PEBs: 0, corrupted PEBs: 0
      [    2.157205] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
      [    2.164431] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 2041766426
      [    2.173555] ubi0: available PEBs: 0, total reserved PEBs: 960, PEBs reserved for bad PEB handling: 20
      [    2.183138] ALSA device list:
      [    2.186140]   No soundcards found.
      [    2.186172] ubi0: background thread "ubi_bgt0d" started, PID 85
      [    2.197304] UBIFS (ubi0:0): Mounting in unauthenticated mode
      [    2.203409] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 86
      [    2.318154] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
      [    2.325610] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
      [    2.335531] UBIFS (ubi0:0): FS size: 117452800 bytes (112 MiB, 925 LEBs), max 1024 LEBs, journal size 9023488 bytes (8 MiB, 72 LEBs)
      [    2.347444] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
      [    2.353272] UBIFS (ubi0:0): media format: w4/r0 (latest is w5/r0), UUID 9AE4F0B9-2A05-4C7A-8644-AA2CE4D2FFF0, small LPT model
      [    2.366769] VFS: Mounted root (ubifs filesystem) on device 0:13.
      [    2.374505] devtmpfs: mounted
      [    2.378644] Freeing unused kernel image (initmem) memory: 1024K
      [    2.384764] Run /sbin/init as init process
      Starting syslogd: OK
      Starting klogd: OK
      Running sysctl: OK
      Initializing random number generator: OK
      Saving random seed: OK
      Starting network: OK
      
      Welcome to Buildroot
      buildroot login: root
      #
      # uname -a
      Linux buildroot 6.1.0-rc3 #7 SMP Fri Dec 30 18:52:12 CST 2022 armv7l GNU/Linux
      #
      # cat /proc/cpuinfo
      processor       : 0
      model name      : ARMv7 Processor rev 5 (v7l)
      BogoMIPS        : 48.00
      Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
      CPU implementer : 0x41
      CPU architecture: 7
      CPU variant     : 0x0
      CPU part        : 0xc07
      CPU revision    : 5
      
      processor       : 1
      model name      : ARMv7 Processor rev 5 (v7l)
      BogoMIPS        : 48.00
      Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
      CPU implementer : 0x41
      CPU architecture: 7
      CPU variant     : 0x0
      CPU part        : 0xc07
      CPU revision    : 5
      
      Hardware        : Generic DT based system
      Revision        : 0000
      Serial          : 0000000000000000
      #
      # cat /proc/mtd
      dev:    size   erasesize  name
      mtd0: 00040000 00020000 "awboot"
      mtd1: 00040000 00020000 "dtb"
      mtd2: 00780000 00020000 "kernel"
      mtd3: 07800000 00020000 "rootfs"
      #
      # mount
      ubi0:rootfs on / type ubifs (rw,relatime,assert=read-only,ubi=0,vol=0)
      devtmpfs on /dev type devtmpfs (rw,relatime,size=49900k,nr_inodes=12475,mode=755)
      proc on /proc type proc (rw,relatime)
      devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=666)
      tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)
      tmpfs on /tmp type tmpfs (rw,relatime)
      tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
      sysfs on /sys type sysfs (rw,relatime)
      #
      # df -h
      Filesystem                Size      Used Available Use% Mounted on
      ubi0:rootfs             102.9M      3.5M     99.5M   3% /
      devtmpfs                 48.7M         0     48.7M   0% /dev
      tmpfs                    57.2M         0     57.2M   0% /dev/shm
      tmpfs                    57.2M     24.0K     57.2M   0% /tmp
      tmpfs                    57.2M     16.0K     57.2M   0% /run
      #
      # time dd if=/dev/zero of=test.bin bs=1M count=64 conv=fsync
      64+0 records in
      64+0 records out
      real    0m 1.26s
      user    0m 0.00s
      sys     0m 0.48s
      #
      #
      # reboot
      # Stopping network: OK
      Saving random seed: OK
      Stopping klogd: OK
      Stopping syslogd: OK
      umount: devtmpfs busy - remounted read-only
      [  123.118531] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" stops
      The system is going down NOW!
      Sent SIGTERM to all processes
      Sent SIGKILL to[  125.165719] reboot: Restarting system
      

      编译启动能够如此顺利必定少不了各位大佬的付出,特此感谢 big_smile

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 一个补丁,让D1-H的SDK支持T113芯片

      @wxid_disxysjskla

      742d3fad-9681-4e4b-acb4-e5aa121d8a90-image.png

      谢谢楼主,开始表演.

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 一个补丁,让D1-H的SDK支持T113芯片

      @wxid_disxysjskla
      谢谢大佬,搞定了,烧录固件: tina_t113-nezha_uart3.img

      启动日志:

      [29]HELLO! BOOT0 is starting!
      [32]BOOT0 commit : 88480af-dirty
      [35]set pll start
      [41]periph0 has been enabled
      [44]set pll end
      [45][pmu]: bus read error
      [48]board init ok
      [50]ZQ value = 0x30
      [51]get_pmu_exist() = -1
      [54]DRAM BOOT DRIVE INFO: V0.33
      [57]DRAM CLK = 936 MHz
      [59]DRAM Type = 3 (2:DDR2,3:DDR3)
      [62]DRAMC read ODT  off.
      [65]DRAM ODT value: 0x42.
      [67]ddr_efuse_type: 0xa
      [70]DRAM SIZE =128 M
      [72]dram_tpr4:0x0
      [74]PLL_DDR_CTRL_REG:0xf8004d00
      [77]DRAM_CLK_REG:0xc0000000
      [80][TIMING DEBUG] MR2= 0x20
      [87]DRAM simple test OK.
      [89]rtc standby flag is 0x0, super standby flag is 0x0
      [94]dram size =128
      [97]spinand UBOOT_START_BLK_NUM 8 UBOOT_LAST_BLK_NUM 32
      [102]block from 8 to 32
      [189]Check is correct.
      [192]dma 0x29c0c int is not used yet
      [195]dma 0x29c0c int is free, you do not need to free it again
      [201]Entry_name        = u-boot
      [206]Entry_name        = optee
      [210]Entry_name        = dtb
      [213]Jump to second Boot.
      M/TC: OP-TEE version: 6aef7bb2-dirty (gcc version 5.3.1 20160412 (Linaro GCC 5.3-2016.05)) #1 Fri Jul 23 09:25:11 UTC 2021 arm
      
      
      U-Boot 2018.05-g24521d6-dirty (Sep 02 2022 - 17:24:25 +0800) Allwinner Technology
      
      [00.267]CPU:   Allwinner Family
      [00.270]Model: sun8iw20
      I2C:   FDT ERROR:fdt_set_all_pin:[twi0]-->FDT_ERR_BADPATH
      FDT ERROR:fdt_set_all_pin:[twi1]-->FDT_ERR_BADPATH
      ready
      [00.291]DRAM:  128 MiB
      [00.294]Relocation Offset is: 04f01000
      [00.313]secure enable bit: 0
      [00.316]smc_tee_inform_fdt failed with: -65526[00.321]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
      [00.327]gic: sec monitor mode
      [00.330]flash init start
      [00.332]workmode = 0,storage type = 0
      sspi->base_addr = 0x4025000, the SPI control register:
      [VER] 0x4025000 = 0x00010001, [GCR] 0x4025004 = 0x00000083, [TCR] 0x4025008 = 0x00000184
      [ICR] 0x4025010 = 0x00000f00, [ISR] 0x4025014 = 0x00000032, [FCR] 0x4025018 = 0x00200020
      [FSR] 0x402501c = 0x00000000, [WCR] 0x4025020 = 0x00000000, [CCR] 0x4025024 = 0x00000002
      [SDC] 0x4025028 = 0x00002000, [BCR] 0x4025030 = 0x00000000, [TCR] 0x4025034 = 0x00000000
      [BCC] 0x4025038 = 0x20000000, [DMA] 0x4025088 = 0x000000e5
      
      [00.379]sunxi-spinand-phy: not detect any munufacture from id table
      [00.385]sunxi-spinand-phy: get spi-nand Model from fdt fail
      [00.390]sunxi-spinand-phy: get phy info from fdt fail
      
      device nand0 <nand>, # parts = 4
       #: name                size            offset          mask_flags
       0: boot0               0x00100000      0x00000000      1
       1: uboot               0x00300000      0x00100000      1
       2: secure_storage      0x00100000      0x00400000      1
       3: sys                 0x07b00000      0x00500000      0
      
      active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000
      
      defaults:
      mtdids  : nand0=nand
      mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
      [00.507]ubi0: attaching mtd4
      [00.613]ubi0: scanning is finished
      [00.619]ubi0: attached mtd4 (name "sys", size 123 MiB)
      [00.624]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
      [00.630]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
      [00.636]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
      [00.642]ubi0: good PEBs: 492, bad PEBs: 0, corrupted PEBs: 0
      [00.648]ubi0: user volume: 9, internal volumes: 1, max. volumes count: 128
      [00.654]ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
      [00.662]ubi0: available PEBs: 0, total reserved PEBs: 492, PEBs reserved for bad PEB handling: 20
      [00.671]sunxi flash init ok
      [00.772]Loading Environment from SUNXI_FLASH... OK
      [00.794]Item0 (Map) magic is bad
      secure storage read widevine fail
      [00.799]secure storage read widevine fail with:-1
      secure storage read ec_key fail
      [00.807]secure storage read ec_key fail with:-1
      secure storage read ec_cert1 fail
      [00.814]secure storage read ec_cert1 fail with:-1
      secure storage read ec_cert2 fail
      [00.821]secure storage read ec_cert2 fail with:-1
      secure storage read ec_cert3 fail
      [00.829]secure storage read ec_cert3 fail with:-1
      secure storage read rsa_key fail
      [00.836]secure storage read rsa_key fail with:-1
      secure storage read rsa_cert1 fail
      [00.844]secure storage read rsa_cert1 fail with:-1
      secure storage read rsa_cert2 fail
      [00.851]secure storage read rsa_cert2 fail with:-1
      secure storage read rsa_cert3 fail
      [00.859]secure storage read rsa_cert3 fail with:-1
      [00.863]out of usb burn from boot: not need burn key
      [00.879]update bootcmd
      [00.892]change working_fdt 0x43ec0e70 to 0x43ea0e70
      [00.910]update dts
      Hit any key to stop autoboot:  0
      [02.125]no vendor_boot partition is found
      Android's image name: t113-nezha
      [02.136]Starting kernel ...
      
      [    0.000000] Booting Linux on physical CPU 0x0
      [    0.000000] Linux version 5.4.61 (whycan@ubuntu) (arm-openwrt-linux-muslgnueabi-gcc.bin (OpenWrt/Linaro GCC 6.4-2017.11 2017-11) 6.4.1, GNU ld (GNU Binutils) 2.27) #1 SMP PREEMPT Fri Sep 2 11:33:35 UTC 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: sun8iw20
      [    0.000000] printk: bootconsole [earlycon0] enabled
      [    0.000000] Memory policy: Data cache writealloc
      [    0.000000] cma: Reserved 8 MiB at 0x47800000
      [    0.000000] On node 0 totalpages: 32768
      [    0.000000]   Normal zone: 256 pages used for memmap
      [    0.000000]   Normal zone: 0 pages reserved
      [    0.000000]   Normal zone: 32768 pages, LIFO batch:7
      [    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 s30348 r8192 d22900 u61440
      [    0.000000] pcpu-alloc: s30348 r8192 d22900 u61440 alloc=15*4096
      [    0.000000] pcpu-alloc: [0] 0 [0] 1
      [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
      [    0.000000] Kernel command line: ubi.mtd=sys ubi.block=0,rootfs earlyprintk=sunxi-uart,0x02500C00 clk_ignore_unused initcall_debug=0 console=ttyS3,115200 loglevel=8 root=/dev/ubiblock0_5 rootfstype=squashfs init=/pseudo_init partitions=mbr@ubi0_0:boot-resource@ubi0_1:env@ubi0_2:env-redund@ubi0_3:boot@ubi0_4:rootfs@ubi0_5:private@ubi0_6:rootfs_data@ubi0_7:UDISK@ubi0_8: cma=8M snum= mac_addr= wifi_mac= bt_mac= specialstr= gpt=1 androidboot.hardware=sun8iw20p1 boot_type=5 androidboot.boot_type=5 gpt=1 uboot_message=2018.05-g24521d6-dirty(09/02/2022-17:24:25) aw-ubi-spinand.ubootblks=24 androidboot.dramsize=128
      [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
      [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
      [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
      [    0.000000] Memory: 109636K/131072K available (6144K kernel code, 264K rwdata, 1504K rodata, 1024K init, 1164K bss, 13244K reserved, 8192K cma-reserved)
      [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
      [    0.000000] rcu: Preemptible hierarchical RCU implementation.
      [    0.000000]  Tasks RCU enabled.
      [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
      [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
      [    0.000000] random: get_random_bytes called from start_kernel+0x264/0x3e8 with crng_init=0
      [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
      [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
      [    0.000006] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
      [    0.008007] Switching to timer-based delay loop, resolution 41ns
      [    0.014174] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
      [    0.023882] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
      [    0.034229] pid_max: default: 32768 minimum: 301
      [    0.038953] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.046269] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.054572] CPU: Testing write buffer coherency: ok
      [    0.059768] /cpus/cpu@0 missing clock-frequency property
      [    0.065101] /cpus/cpu@1 missing clock-frequency property
      [    0.070447] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
      [    0.076602] Setting up static identity map for 0x40100000 - 0x40100060
      [    0.083263] rcu: Hierarchical SRCU implementation.
      [    0.088462] smp: Bringing up secondary CPUs ...
      [    0.094088] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
      [    0.094207] smp: Brought up 1 node, 2 CPUs
      [    0.104010] SMP: Total of 2 processors activated (96.00 BogoMIPS).
      [    0.110197] CPU: All CPU(s) started in SVC mode.
      [    0.115272] devtmpfs: initialized
      [    0.129520] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
      [    0.137629] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
      [    0.147502] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
      [    0.154715] pinctrl core: initialized pinctrl subsystem
      [    0.160876] NET: Registered protocol family 16
      [    0.166756] DMA: preallocated 256 KiB pool for atomic coherent allocations
      [    0.202442] rtc_ccu: sunxi ccu init OK
      [    0.208397] ccu: sunxi ccu init OK
      [    0.212122] r_ccu: sunxi ccu init OK
      [    0.236385] iommu: Default domain type: Translated
      [    0.241451] sunxi iommu: irq = 24
      [    0.245629] SCSI subsystem initialized
      [    0.249591] usbcore: registered new interface driver usbfs
      [    0.255179] usbcore: registered new interface driver hub
      [    0.260576] usbcore: registered new device driver usb
      [    0.266648] Advanced Linux Sound Architecture Driver Initialized.
      [    0.273272] Bluetooth: Core ver 2.22
      [    0.276928] NET: Registered protocol family 31
      [    0.281383] Bluetooth: HCI device and connection manager initialized
      [    0.287757] Bluetooth: HCI socket layer initialized
      [    0.292637] Bluetooth: L2CAP socket layer initialized
      [    0.297703] Bluetooth: SCO socket layer initialized
      [    0.302835] pwm module init!
      [    0.306891] g2d 5410000.g2d: Adding to iommu group 0
      [    0.312149] G2D: rcq version initialized.major:252
      [    0.317741] clocksource: Switched to clocksource arch_sys_counter
      [    0.332240] sun8iw20-pinctrl 2000000.pinctrl: initialized sunXi PIO driver
      [    0.341503] NET: Registered protocol family 2
      [    0.346419] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
      [    0.354851] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.362548] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
      [    0.369617] TCP: Hash tables configured (established 1024 bind 1024)
      [    0.376071] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
      [    0.382631] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
      [    0.389806] NET: Registered protocol family 1
      [    0.395124] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pc not found, using dummy regulator
      [    0.405427] spi spi0: spi0 supply spi not found, using dummy regulator
      [    0.412141] sunxi_spi_resource_get()2151 - [spi0] SPI MASTER MODE
      [    0.418306] sunxi_spi_resource_get()2189 - Failed to get sample mode
      [    0.424650] sunxi_spi_resource_get()2194 - Failed to get sample delay
      [    0.431096] sunxi_spi_resource_get()2198 - sample_mode:-1431633921 sample_delay:-1431633921
      [    0.439493] sunxi_spi_clk_init()2240 - [spi0] mclk 100000000
      [    0.445702] sunxi_spi_probe()2653 - [spi0]: driver probe succeed, base c881f000, irq 40
      [    0.455305] workingset: timestamp_bits=30 max_order=15 bucket_order=0
      [    0.465871] squashfs: version 4.0 (2009/01/31) Phillip Lougher
      [    0.471897] ntfs: driver 2.1.32 [Flags: R/W].
      [    0.504254] io scheduler mq-deadline registered
      [    0.508808] io scheduler kyber registered
      [    0.514035] [DISP]disp_module_init
      [    0.517940] disp 5000000.disp: Adding to iommu group 0
      [    0.523591] [DISP] parser_disp_init_para,line:1430:
      [    0.523593] of_property_read fb0_width fail
      [    0.549060] display_fb_request,fb_id:0
      [    0.555893] [DISP] Fb_copy_boot_fb,line:1443:
      [    0.555897] no boot_fb0
      [    0.563158] disp_al_manager_apply ouput_type:0
      [    0.567983] [DISP] lcd_clk_config,line:732:
      [    0.567995] disp 0, clk: pll(420000000),clk(420000000),dclk(70000000) dsi_rate(70000000)
      [    0.567995]      clk real:pll(420000000),clk(420000000),dclk(105000000) dsi_rate(150000000)
      [    0.568061] [DISP]disp_module_init finish
      [    0.593661] sunxi_sid_init()551 - insmod ok
      [    0.598788] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pb not found, using dummy regulator
      [    0.608954] uart uart3: get regulator failed
      [    0.613247] uart uart3: uart3 supply uart not found, using dummy regulator
      [    0.620393] uart3: ttyS3 at MMIO 0x2500c00 (irq = 34, base_baud = 1500000) is a SUNXI
      [    0.628264] sw_console_setup()1808 - console setup baud 115200 parity n bits 8, flow n
      000▒>000▒000▒▒0▒▒▒>00▒▒▒00>0▒0>>▒▒>0▒0000000▒0>>▒▒>000▒0000000▒0>>▒▒>0▒▒▒>0▒▒▒▒▒▒>0▒0>▒>▒▒0▒▒>▒▒>▒▒0▒▒▒▒0>▒▒0▒▒▒▒>▒>▒▒0▒▒▒▒▒▒>▒▒>0▒>0>▒▒▒▒▒▒▒▒>▒>▒▒▒>▒▒▒▒>▒>0>>▒▒>▒>▒▒▒>>>▒>>>>▒>▒▒>▒>▒▒▒>▒>▒>0>▒▒▒▒▒▒▒>>>▒>>▒▒>▒>>0>▒00000▒>▒>0▒0>0▒▒0▒▒0>▒▒▒▒▒00▒▒>▒>>▒>▒>▒▒0>▒▒▒▒▒0▒▒0▒▒0>▒>▒▒▒▒>0>▒▒▒▒▒▒▒▒>▒▒▒>>▒>▒▒▒▒>▒>0>>▒▒>▒>▒▒▒0>>▒>▒▒>▒>>▒>>>>▒>▒▒>▒>▒▒▒>>▒>>>▒>>▒>▒▒▒▒▒▒>0>▒>>▒>>▒▒>▒>>0>▒00000▒>0▒0▒0▒0▒0▒▒0▒▒0>▒▒▒▒▒00▒▒>▒>▒▒▒▒▒>▒>>▒>▒>▒▒0>▒▒▒>▒▒▒>▒>0▒▒0▒▒0▒▒▒▒>▒▒▒▒>0>▒▒▒▒▒▒▒▒>▒▒>▒▒▒>▒▒▒▒>>>>▒>▒▒▒>▒>>>>▒0>>▒>▒>▒>>▒▒>>0>▒▒▒▒▒▒▒▒>▒▒>>▒0▒▒>▒▒▒>>▒>>▒>▒▒>▒▒▒▒>0>>>>▒>▒>>▒0▒▒▒▒▒▒▒▒>0>>>>▒>▒>>0▒▒0▒▒▒▒▒▒▒▒>0>>>>▒>▒>>▒>>▒>>>>>▒▒▒>▒>▒>>▒>▒>▒▒>▒>▒▒>▒▒▒>>▒▒>>▒▒>▒▒▒>▒>0>>▒▒>▒▒▒>▒>>>>>▒>▒0>>▒>▒>>>▒>>0>>0>▒▒▒▒▒▒▒▒>▒>▒>▒▒>>▒▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒▒>▒>▒▒>▒>>▒▒>▒▒▒>>▒>▒>0>>▒>0▒▒▒▒>▒▒▒▒▒▒▒0>▒▒▒▒▒▒▒▒>▒>▒▒>▒▒>▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒▒▒>>▒>▒▒▒>>0>>▒>>>>>▒▒▒>>▒▒▒>>0>>▒▒>▒>>0>▒▒▒▒▒▒▒▒>▒>▒▒>▒▒>▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒▒▒>>▒>▒▒▒>>0>>▒>>▒▒>>▒>▒▒▒>>▒▒▒>>0>>▒▒>▒>>0>▒▒▒▒▒▒▒▒>▒▒>▒▒0▒▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒▒▒>>>>▒▒0>▒>▒>>▒▒>>>▒▒▒0>▒▒▒▒▒▒▒▒▒0▒▒>▒>▒▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒▒0>>>▒>0>>▒▒>▒▒▒>>>>▒▒~>▒▒>>▒>▒0>▒▒▒▒▒▒▒▒0▒▒▒>▒>>▒▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒▒▒>>>>▒>>>▒>>>▒>>>▒▒▒▒>▒0▒>>▒▒▒>>>▒>▒▒>▒>▒▒▒0>▒▒▒▒▒▒▒▒▒>▒▒>▒▒>▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒▒▒>>>>▒▒0>>▒>>▒>▒▒▒>>0>>▒▒0▒▒▒>▒>▒>▒>>▒>▒>▒▒▒▒0>▒▒▒▒▒▒▒▒▒>▒>▒▒>▒▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒▒▒>>>>▒▒>▒>>>▒>▒>>▒>>▒▒▒>>0>>▒▒0▒▒0▒▒>▒>▒>>▒>▒>▒▒▒▒0>▒▒▒▒▒▒▒▒▒▒>▒>▒▒▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒▒▒>>▒>>▒>>▒>>>▒▒>▒>▒>>▒>>>▒▒▒>>>▒>>▒▒>▒>>0>▒▒▒▒▒▒▒▒▒▒>▒>▒▒▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒▒0>>>▒>0>>▒▒>▒0>▒>▒>>▒▒>>▒>▒0>▒▒▒▒▒▒▒▒0▒▒▒>▒>0▒▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒0>▒>▒>>>▒>>>▒>>>▒▒▒▒>▒0▒>>▒▒▒>>>▒>▒▒>▒>▒▒▒0>▒▒▒▒▒▒▒▒>▒▒▒▒>▒▒▒▒>>▒>>>0>>▒0>▒>▒>0>>▒>▒>>>>>>▒▒▒▒▒▒▒▒0▒0>▒>▒>0>>▒>>▒0▒▒0>▒>▒0>▒>▒>▒▒▒>>0>>▒▒▒▒>▒▒>▒>▒>>▒>▒>▒▒▒▒0>▒▒▒▒▒▒▒▒▒>▒>▒▒▒>▒▒▒>▒▒▒>0>0>▒▒▒▒▒▒>0>▒>>▒▒▒>>▒>0>▒>>▒>▒>▒>>▒>>▒▒>▒>▒>>▒▒>▒▒▒>>>▒~>▒▒~▒>>▒>▒▒>▒▒0▒>▒>▒0▒▒0>▒▒▒▒▒▒▒▒▒>▒>▒0▒▒▒▒▒>▒>▒>>▒>>▒▒>▒>▒▒>>>▒▒▒>▒▒>▒>▒▒▒▒▒▒▒▒▒>>▒>▒▒0>▒▒▒▒▒▒▒▒▒>▒>▒▒>▒>▒▒▒>>▒>>▒>▒▒>▒▒▒▒>0>>>>▒>▒>>▒0▒▒▒▒▒▒▒▒>0>>>>▒>▒>>0▒▒0▒▒▒▒▒▒▒▒>0>>>>▒>▒>>▒>>▒>>>>>▒▒▒>▒>▒>>▒>>▒▒>▒>▒▒>▒▒▒>>▒▒>>▒▒>▒▒▒>▒>0>>▒▒>▒▒▒>▒>>>>>▒>▒0>>▒>▒>>>▒>>0>>0>▒▒▒▒▒▒▒▒▒>0▒▒▒▒>▒▒▒>▒▒▒>0>0>▒▒▒▒▒▒>0>▒>>▒▒▒>>▒>0>▒>>▒>▒>▒>>▒>>▒▒>▒>▒>>▒▒>▒▒▒>>>▒>>▒▒>▒>>▒>▒▒>▒▒0▒>▒▒>0▒▒0>▒▒▒▒▒▒▒▒▒>0▒▒0▒▒>▒▒▒▒▒>▒>>>▒▒▒▒▒>▒>▒▒>>▒▒▒▒▒▒>>>▒>▒▒0>▒>▒>0>0>▒>▒>▒▒▒0>0>▒>▒>▒▒>>▒▒>▒>▒▒▒>▒>>▒>▒▒▒▒▒▒>▒>0>▒>▒▒>>>0>▒▒0▒▒▒0>>>▒▒>>▒▒0▒▒>>▒>>>0▒▒▒0>>▒>0>>0▒▒▒0>▒▒▒▒▒▒▒▒▒0▒▒>>▒▒>▒▒▒>▒>▒>▒>0>▒▒0▒▒>▒>▒▒▒>▒>▒>▒>▒▒>▒▒>▒>▒>▒>>0>>▒▒▒▒>▒>▒▒>▒>>▒▒>▒▒▒>>▒>▒>0>>▒>0▒▒▒▒>▒▒▒▒▒▒▒▒0>▒▒▒▒▒▒▒▒▒>0▒▒>>▒▒▒▒▒>▒>▒>▒>0>▒▒0▒▒>▒>▒▒▒>▒>▒>▒>▒▒>▒▒>▒>▒>▒>>0>>▒▒▒>>▒>▒>▒>>▒>▒>▒0>▒▒▒▒▒▒▒▒▒>▒>0▒▒>▒▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒>>>>>▒▒>▒>▒>>▒▒>▒>▒>>0>▒▒▒▒▒▒▒▒▒▒>▒>▒▒>▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>>0>▒▒▒▒▒▒▒▒▒▒>▒▒>▒>▒▒▒>>0>▒>>>▒▒>▒▒>>>>▒▒▒>>>>>>0▒▒▒▒>▒▒0>▒▒▒▒▒▒▒▒▒▒>▒▒>▒▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>>>>>>▒▒>▒>▒>>▒▒>▒>▒>>0>▒▒▒▒▒▒▒▒▒▒>▒>▒▒▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>▒▒>>▒>▒>▒>>0>▒>>>>>▒>▒▒>>0>▒▒▒▒▒▒▒▒>▒▒▒>▒>▒▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>▒▒>>▒>▒>▒>▒>▒>▒>>>>▒>0>>▒>▒>>0>▒▒▒▒▒▒▒▒▒>▒>▒0▒▒>▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>▒▒>>▒>▒>▒▒>>▒>>▒>▒>▒>▒>>>>▒>0>>▒>▒>>0>▒▒▒▒▒▒▒▒▒>▒>▒▒>▒>▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>▒▒>>▒>▒>▒0>>>▒>>>>▒>0>>▒>▒>>0>▒▒▒▒▒▒▒▒▒>▒>▒>▒▒▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>▒▒>>▒>▒>▒▒>>▒>>▒0>>>▒>>>>▒>0>>▒>▒>>0>▒▒▒▒▒▒▒▒▒▒▒▒▒>▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>▒▒>>▒>▒>▒>>▒>>▒>▒>▒>>0>▒▒▒▒▒▒▒0▒▒>▒▒>▒>▒▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>▒▒>>▒>▒>▒▒▒>▒>▒>>0>>0>▒▒▒▒▒▒▒0▒▒▒>▒>▒>▒>▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>▒▒>>▒>▒>▒▒▒>>0>▒>>0>▒▒▒▒▒▒▒0▒0▒▒▒0▒▒>▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>▒▒>>▒>▒>▒▒▒>>0>▒>▒▒▒>0>>>>>▒▒>▒>>0>▒▒▒▒▒▒▒0▒▒>▒>▒>▒>>▒▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>▒▒>>▒>▒>▒>>▒>▒>▒>>0>▒▒▒▒▒▒▒0▒▒▒0▒>▒▒▒▒▒▒▒>>>>>▒0>▒>▒>▒▒▒0▒▒▒>>▒>>▒>▒▒>▒▒▒>>>>▒▒▒>>>>>>0>>▒>>▒>>0>▒>>>>▒▒>>>>▒>0>>▒>▒>>0>▒▒▒▒▒▒▒>▒▒>▒>▒>▒>▒▒▒▒▒▒>>0>>>▒>▒>>0>▒>>>>▒▒>>>>▒>0>>▒>▒>>>▒▒▒▒>>>▒>>>▒▒>▒>>▒>▒>▒>▒▒>▒>▒>▒>>▒>▒>>▒>▒▒0▒▒▒>>>>▒>>▒>>0>▒▒▒▒▒▒▒>▒▒▒>▒>▒>▒>▒▒▒▒▒>>0>>>▒>▒>>0>▒>>>>▒▒>>>>▒>0>>▒>▒>>>▒▒▒▒▒>>>▒>>>▒▒>▒>>▒>▒>▒>▒▒>>▒▒>▒>>▒>▒>>▒>▒▒>▒>▒▒>>>>▒>>▒>>0>▒▒▒▒▒▒▒▒>▒>▒>▒>▒>▒>▒▒▒▒▒>>0>>>▒>▒>>0>▒>>>>▒▒>>>>▒>0>>▒>▒>>>▒▒▒▒>~>▒>>>▒▒>▒>>▒>▒>▒▒▒>▒>▒▒>>▒>▒>>▒>▒>▒▒▒>▒>▒▒▒>>>>▒>>▒>>0>▒▒▒▒▒▒▒▒>▒▒>>▒▒>>▒▒▒▒▒▒>>0>>>▒>▒>>0>▒>>>>▒▒>>>>▒>0>>▒>▒>>>▒▒▒▒▒>>>▒>>>▒▒>▒>>▒>▒>▒▒▒>▒>▒▒>>▒>▒>>▒>▒>▒▒▒>▒>▒▒▒>>>>▒>>▒>>0>▒▒▒▒▒▒▒▒>▒▒>▒>▒>▒▒▒▒>~▒~>>0>>▒>>>0>>>>▒▒>▒▒▒>▒>▒>▒▒0▒0>>▒▒>▒▒0▒▒>▒>▒▒0>▒>>▒>▒▒▒>>▒>▒>0>>▒>0▒▒0▒▒▒▒0▒▒0▒▒▒0▒0▒▒▒0>▒▒▒▒▒▒▒▒>0▒0▒▒▒▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒>▒>▒>▒▒0▒0>>▒▒>▒▒>>▒▒0>▒>>▒>▒▒▒>>▒>▒>0>>▒>0▒▒▒▒▒▒▒0▒▒0▒▒▒>▒▒▒>▒0>▒▒▒▒▒▒▒▒>▒>▒▒>▒▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒>▒>▒▒>▒▒▒>>▒>>▒>▒>▒>>>▒▒>▒▒>>▒▒>▒>>▒>▒>▒>▒>>▒▒▒>▒>>▒>▒>▒▒>▒▒▒>>▒>>▒▒>>0>▒▒▒▒▒▒▒▒>▒>▒▒>▒>▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>>▒>▒>>>0>>▒▒>>>▒▒>▒▒0▒>▒▒>>>▒▒▒>▒>>▒>▒▒▒>▒>▒>▒▒▒>>0>>▒0>▒▒▒▒▒▒▒▒>▒>▒>▒>▒>0▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>>▒>▒>>>▒>▒>▒▒>>▒▒▒>▒>>▒>▒▒▒>▒>▒>▒▒▒>>0>>▒0>▒▒▒▒▒▒▒▒>▒▒▒>▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒>▒>▒▒>▒▒▒>>▒>>▒>▒>▒▒>▒▒>>▒▒>▒>>▒>▒>▒>▒>>▒▒▒>▒>>▒>▒▒▒>▒>▒>>0>▒▒▒▒▒▒▒▒>▒▒>▒>▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>>▒>>▒>▒>▒▒>▒▒>>▒▒>▒>>▒>▒>▒>▒>>▒▒▒>▒>>▒>▒>▒▒>▒▒▒>>▒>>▒▒>▒▒▒▒▒>0>>0>>▒>▒▒>>0>▒▒▒▒▒▒▒▒>0▒▒>▒▒>▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>>▒>>▒>▒>▒>>>0>>>>▒▒>▒>▒▒>▒▒▒▒▒>▒>▒▒▒>>>▒>▒▒▒>▒>▒>▒>▒>▒>▒>▒>>0>▒▒▒▒▒▒▒▒>▒>▒▒▒▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>▒>▒>>▒>▒>▒▒>>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒0>▒▒▒▒▒▒▒▒>▒>▒>▒▒>▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒0▒>▒▒>>>0▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>▒▒▒>▒0▒▒▒▒>▒>>>>0>▒>>0>▒▒▒▒▒▒▒▒>▒>>▒▒▒>▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒0▒▒>>▒▒>▒>>▒>▒>▒>▒>>▒▒▒▒▒▒▒▒▒▒▒▒▒>0>>0>>▒>▒▒>>0>▒▒▒▒▒▒▒▒>▒▒▒▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>0>>>>▒▒>▒▒▒>▒>>>>>▒▒▒▒▒▒▒▒▒▒▒0>▒▒▒▒▒▒▒▒>▒▒▒>▒>▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒0>>>>>>>▒▒>▒▒▒>▒>▒>0>>▒▒▒▒▒▒▒▒▒▒▒▒0▒▒>▒0>▒▒▒▒▒▒▒▒>▒▒>▒▒▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒>▒>>>>▒▒>▒▒▒>▒>>>>>0▒▒▒▒▒▒▒▒▒>▒>▒0>▒▒▒▒▒▒▒▒>0▒▒▒▒>▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒>▒▒▒>▒>▒>>>▒▒>▒▒▒>▒>▒>▒>>▒▒▒▒▒▒▒▒▒>▒0>▒▒▒▒▒▒▒▒>▒>>▒▒>▒▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒0▒>0>0>0>▒>>▒▒▒>▒>▒>▒>>▒▒▒▒▒▒▒▒▒>▒>▒0>▒▒▒▒▒▒▒▒>▒>▒>▒>▒▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒0>>▒>>>▒>>>▒>▒>>>▒>▒▒▒▒▒▒▒▒▒▒▒>▒▒0>▒▒▒▒▒▒▒▒>▒>▒▒>▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒0>>▒>>▒>0>>▒>▒0>▒>▒▒▒▒▒▒▒▒▒▒▒>>▒0>▒▒▒▒▒▒▒▒>▒▒>▒>▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒0>>>▒>>▒>>▒>0>>>>▒>▒▒▒▒▒▒▒▒▒▒>▒>▒▒▒▒0>▒▒▒▒▒▒▒▒▒▒0▒▒▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>▒>▒>▒>>>▒>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>▒▒0>▒▒▒▒▒▒▒▒▒▒>>▒▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>▒>▒>▒>▒>>>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒0▒▒0>▒▒▒▒▒▒▒▒0▒▒▒0▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>▒>▒>▒0>>▒▒>>▒>▒>>▒>▒>▒>>>▒▒▒▒▒▒>▒▒0>▒▒▒▒▒▒▒▒▒>▒▒>▒>▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒0>▒▒▒▒▒▒▒▒▒>▒▒>▒▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒0>▒▒▒▒▒▒▒▒▒>▒>▒▒▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>>>▒>0>▒>>>▒>▒>▒▒>>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒0>▒▒▒▒▒▒▒▒▒▒>▒>▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>>▒▒>>>>▒>0>>▒▒▒▒▒▒▒0▒▒▒▒0▒0>▒▒▒▒▒▒▒▒▒▒>▒>>▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒>▒▒▒>▒>▒>>0>0>0>▒>>▒▒▒▒▒▒>▒0▒▒0>>0>▒▒▒▒▒▒▒▒▒▒▒>▒>▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒>▒>>0>0>▒>>▒▒▒▒▒▒▒0▒▒>0▒0>▒▒▒▒▒▒▒▒0▒>▒▒0▒▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒0>>▒>>>▒>0>0>▒>>▒▒▒▒▒▒▒0▒▒▒>0▒0>▒▒▒▒▒▒▒▒>▒▒>▒▒>▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒0▒00>0>0>▒>>▒▒▒▒▒▒▒▒▒>▒>▒0>>0>▒▒▒▒▒▒▒▒▒>▒▒>▒>▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒0>▒▒▒▒▒▒▒▒▒>▒>▒>▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒0>▒▒▒▒▒▒▒▒▒>▒>▒▒0▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>▒>▒▒>0>▒>>>▒>▒>▒▒>>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒0>▒▒▒▒▒▒▒▒▒▒▒>>▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>>▒▒>>>>▒>0>>▒▒▒▒▒▒▒0▒▒▒▒0▒0>▒▒▒▒▒0▒▒▒▒▒>>▒▒>▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒>▒▒▒>▒>▒>>0>0>0>▒>>▒▒▒▒▒▒>▒0▒▒0>>0>▒▒▒▒▒0▒▒▒▒▒>>▒0▒0▒▒▒▒>>▒>>>0>>▒>~~0>>>>▒▒>>▒>>>▒▒▒▒>▒>>0>0>▒>>▒▒▒▒▒▒▒▒>▒>0▒0>▒▒▒▒▒0▒▒▒0▒▒▒>▒0▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒0>>▒>>>▒>0>0>▒>>▒▒▒▒▒▒0▒▒>▒>▒>0▒0>▒▒▒▒▒0▒▒▒▒>0▒▒>0▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒0▒00>0>0>▒>>▒▒▒▒▒▒▒▒▒0▒▒▒0>>0>▒▒▒▒▒0▒▒▒▒>▒>▒>▒>▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒0>▒▒▒▒▒0▒▒▒▒>>▒▒>▒▒>▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒0>>▒>>>▒>▒▒>▒>>>▒>▒0>>▒>0>▒>▒>>▒>▒▒▒▒>▒▒▒0>▒▒▒▒▒0▒▒▒▒▒▒▒>▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒▒▒>>>▒>▒>▒>>▒0>>▒>0>▒>▒>>▒>▒▒▒▒>▒▒▒▒0>▒▒▒▒▒0▒▒▒▒▒▒>▒>▒▒▒▒>>▒>>>0>>▒>>>0>>>>▒▒>>▒>>>▒▒▒>>▒>>>0>▒>>>▒>0>▒>▒▒>>>▒▒>▒>▒>>▒▒>▒▒▒>>▒▒>>0>▒▒▒▒▒0▒▒▒▒▒>▒>▒>▒>▒▒▒>>▒>>>▒>0>>▒▒>▒▒>▒▒0▒▒>▒>▒>>▒>▒>0>▒>0>>▒>>>▒▒>▒>▒0▒>>▒>>>0>▒▒>▒▒>▒>▒▒>>>▒▒>▒▒0▒▒0>▒▒▒▒▒0▒▒▒>▒▒▒>>▒▒>▒▒▒▒>▒▒▒▒▒▒▒▒▒▒▒▒▒▒>▒▒▒▒▒▒▒▒▒▒▒▒▒0▒▒0▒0>>▒>▒▒>▒0▒▒0>▒▒▒▒▒0▒▒▒▒>▒▒>▒>▒>▒▒▒▒>▒▒▒▒▒▒▒▒▒▒▒▒▒▒>▒▒▒▒▒▒▒>▒▒▒▒▒▒0▒▒0▒▒▒>▒>>▒>▒▒>▒▒▒0>▒▒▒▒▒0▒▒▒▒>▒>▒>▒0▒▒▒▒0>>>▒▒>>▒>0▒▒▒▒>>▒>▒>▒>▒>>▒▒>▒▒▒>>▒>▒▒>>0>▒▒▒▒▒0▒▒▒▒>▒▒>▒>▒>▒▒▒▒>▒▒▒▒▒▒▒>▒▒▒▒▒▒▒>▒▒▒▒▒▒▒>▒▒▒▒▒▒0▒▒0▒>>>▒>▒>▒>>▒>>▒>>0>>▒>>▒▒▒0>▒▒▒▒▒0▒▒0▒▒▒▒>▒▒>▒▒▒▒>▒▒▒▒▒▒▒>▒▒▒▒▒▒▒>▒▒▒▒▒▒▒▒▒▒▒▒▒0▒▒0▒>>▒>▒>▒▒▒0>▒▒▒▒▒0▒▒▒>▒>▒▒▒>▒>▒▒▒▒>>0>>>>▒▒▒▒▒>0>>>▒>▒▒0▒▒>0>0▒0>▒>▒>▒▒▒>▒>>0>>▒>>0>▒▒▒▒▒0▒▒▒>▒>▒▒▒▒>▒▒▒>>▒>>>0>▒▒▒>>>>▒>▒▒▒>▒>0>▒>>▒>0>>▒▒▒>>▒>▒>0>>▒>0▒▒▒▒▒▒▒▒0>▒▒▒▒▒0▒▒▒>▒>▒▒▒▒>▒▒▒▒▒>>>>▒>>▒>>▒▒>>▒>▒0▒▒▒0▒▒>0▒0▒0>▒▒▒▒▒0▒▒▒>▒▒▒▒▒▒▒▒▒▒>>>>▒>>▒>>▒▒>>▒>▒▒0▒▒▒0▒▒>0▒0▒0>▒▒▒▒▒0▒▒▒>▒▒▒0▒▒▒▒▒▒▒>>>>▒>>▒>>▒▒>>▒>▒▒0▒▒▒0▒▒>0▒0▒0>▒▒▒▒▒0▒▒▒>▒▒0▒▒▒>▒▒▒▒▒>>0>>▒▒>▒>▒▒▒>>▒>>▒>▒>>>▒▒>▒▒>▒▒▒0>▒▒▒▒▒0▒▒▒>▒▒>▒>▒▒▒▒▒▒▒>▒>>▒0▒▒▒▒>▒>>▒0>>>▒▒~>▒>▒▒>>▒>▒>▒>▒>▒>>▒>▒>>0>▒▒▒▒▒0▒▒▒>0▒▒>▒>▒>▒>▒▒▒▒▒>>>>0>▒>>>▒>▒▒▒▒▒>0>>▒0▒▒▒▒▒0▒▒>>>>>>>>▒>0▒0▒>>>▒>▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>0>>0>0▒▒▒▒>▒>0>▒>>▒>>0>▒▒▒▒▒0▒▒▒>▒>▒>0▒▒▒>▒▒▒>>▒>>>0>>▒▒▒>>>>0>▒▒▒▒▒>0>>0>▒>▒▒▒>0▒0▒▒▒>▒>0>▒>>▒>>0>▒▒▒▒▒0▒▒▒>▒>▒>▒>▒▒▒▒▒▒▒>>▒>▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>>▒>>▒>>>▒>>>▒▒>▒>▒>>▒>>>▒▒▒>>0>>▒▒0>▒▒▒▒▒0▒▒▒>▒>▒▒>▒>▒▒▒▒>>▒>>>0>▒▒▒>>>~0~▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>>▒>▒0▒▒>▒>▒>>▒▒>▒▒▒>>▒>>▒>>▒>>>▒▒>▒>▒>>>0>▒▒▒▒▒0▒▒▒>▒▒>▒>▒>▒▒▒▒>▒>>▒>>>0>>▒▒▒>>>>0>▒▒▒▒0▒▒>▒>>0>>▒>▒>>▒>>▒▒▒▒>>>>>▒▒▒▒>0▒▒▒▒▒▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒>>▒>>>0>▒▒▒>>>>0>▒▒▒▒>▒>▒0>▒▒▒▒>>0>▒▒▒▒>▒▒>>▒▒>▒▒>▒▒▒▒▒>0>▒>▒▒>▒>0▒>▒>>>0>▒▒▒▒▒0▒▒▒>▒▒>▒>▒▒>▒▒▒>>▒>>>0>>▒▒▒>>>>0>▒▒>0▒▒▒▒▒▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒▒>0▒▒▒▒▒▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒>>▒>>>>>▒▒▒>▒>▒>▒>▒>▒>▒>▒▒>▒>▒▒>▒▒▒>>▒▒>>▒▒>▒▒▒>▒>0>>▒▒>▒▒▒>▒>>>>>▒>▒0>>▒>▒>>>▒>>0>>0>▒▒▒▒▒0▒▒▒>▒>▒>▒>0▒▒>▒▒▒>>▒>>>0>>▒▒▒>>>>0>▒▒>0▒▒▒▒▒▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒▒>0▒▒▒▒▒▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒>>▒>>>>>▒>>>0>▒▒>▒>▒▒>▒▒▒>>▒▒>>▒▒>▒▒▒>▒>0>>▒▒>▒▒▒>▒>>>>>▒>▒0>>▒>▒>>>▒>>0>>0>▒▒▒▒▒0▒▒▒>▒>>▒▒>▒▒>▒▒▒>>▒>>>0>>▒▒▒>>>>0>▒▒>0▒▒▒▒▒▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒▒▒>0>>0>▒0▒>>>▒>▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>>0>▒▒▒▒▒0▒▒▒>▒▒▒▒>▒▒▒▒>>▒>>>0>>▒▒▒>>>>0>▒▒>0▒▒▒▒▒▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒▒>▒▒>▒>▒▒▒>0>>▒0>▒>▒>▒0>>▒>0>▒>▒>>▒>>▒>▒>▒>▒>0>▒~>▒▒~▒>▒0>▒>▒>▒▒>▒▒>>>▒>>▒>▒▒▒0>▒▒▒▒▒0▒▒▒>▒▒>▒>▒>>▒▒▒▒>>▒>>>0>>▒▒▒>>>>0>▒▒>0▒▒▒▒▒▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>0>▒>▒▒>▒▒▒>▒>▒▒>▒▒>>>▒▒>▒▒>0▒▒▒▒▒▒▒0>▒▒▒▒▒0▒▒▒>▒>▒>▒>▒>>▒▒▒▒>>▒>>>0>>▒▒▒>>>>0>▒▒>0▒▒▒▒▒▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒▒▒>0>>▒0▒▒▒▒>>▒>>▒>▒>>▒>▒▒▒>0>>0>▒▒▒▒▒▒0>▒▒▒▒▒0▒▒▒>▒▒>>▒▒>▒>▒▒▒>▒▒>▒>▒▒▒▒0▒▒▒▒0▒▒▒▒>0>>▒>▒▒>▒>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒0▒▒▒>▒▒>▒>▒>▒▒▒▒>▒▒>▒>▒▒▒▒0▒▒▒▒0▒▒▒▒>>0>▒>▒▒▒>>▒>>▒>▒>>▒>>0>▒▒▒▒▒0▒▒▒▒▒▒>▒▒▒▒▒▒>>>>0>▒>>>▒>▒▒▒▒▒>0>>▒▒▒▒▒▒0▒0>>>▒0▒0▒>>>▒>▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒00>>0>0▒▒▒▒>▒>0>▒>>▒>>0>▒▒▒▒▒0▒▒▒0▒▒>▒>>▒▒>▒▒▒>>▒>>>0>>▒▒>>>>0>▒▒▒▒00>>0>▒>▒▒▒>0▒0▒▒▒>▒>0>▒>>▒>>0>▒▒▒▒▒0▒▒▒>▒▒>▒>▒>▒▒▒▒▒▒>>▒>▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>>▒>>▒>>>▒>>>▒▒>▒>▒>>▒>>>▒▒▒>>0>>▒▒0>▒▒▒▒▒0▒▒▒▒>▒▒▒>▒>▒▒▒>>▒>>>0>▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>>▒>▒0▒▒>▒>▒>>▒▒>▒▒▒>>▒>>▒>>▒>>>▒▒>▒>▒>>>0>▒▒▒▒▒0▒▒▒▒>▒>▒>▒▒>▒▒▒>▒>>▒>>>0>>▒▒>>>>0>▒▒▒▒0▒▒>▒>>0>>▒>▒>>▒>>▒▒▒▒>~>~>▒▒▒▒>0▒▒▒▒>▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒~▒>>▒>▒>▒▒>▒>▒>>▒>>>0>▒▒>>>>0>▒▒▒▒~▒>▒0>▒▒▒▒>>▒>▒▒0>▒▒▒▒▒0▒▒▒▒▒>▒▒>▒>▒▒▒>>▒>>>0>>▒▒>>>>0>▒▒>0▒▒▒▒>▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒▒>0▒▒▒▒>▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒>>▒>>>>>▒▒▒>▒>▒>▒>▒>▒>▒>▒▒>▒>▒▒>▒▒▒>>▒▒>>▒▒>▒▒▒>▒>0>>▒▒>▒▒▒>▒>>>>>▒>▒0>>▒>▒>>>▒>>0>>0>▒▒▒▒▒0▒▒▒▒▒▒▒>▒>▒▒▒>>▒>>>0>>▒▒>>>>0>▒▒>0▒▒▒▒>▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒▒>0▒▒▒▒>▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒>>▒>>>>>▒>>>0>▒▒>▒>▒▒>▒▒▒>>▒▒>>▒▒>▒▒▒>▒>0>>▒▒>▒▒▒>▒>>>>>▒>▒0>>▒>▒>>>▒>>0>>0>▒▒▒▒▒0▒▒▒▒>▒▒0▒▒▒▒▒>>▒>>>0>>▒▒>>>>0>▒▒>0▒▒▒▒>▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒~▒~▒▒▒▒00>>0>▒0▒>>>▒>▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>>0>▒▒▒▒▒0▒▒▒▒>▒>▒>▒▒▒▒▒>>▒>>>0>>▒▒>>>>0>▒▒>0▒▒▒▒>▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒▒>▒▒>▒>▒▒▒>0>>▒0>▒>▒>▒0>>▒>0>▒>▒>>▒>>▒>▒>▒>▒>0>▒>>▒▒>▒>▒0>▒>▒>▒▒>▒▒>>>▒>>▒>▒0▒▒0>▒▒▒▒▒0▒▒▒▒▒▒▒▒▒▒▒>>▒>>>0>>▒▒>>>>0>▒▒>0▒▒▒▒>▒▒▒▒>>>>0>▒▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>0>▒>▒▒>▒▒▒>▒>▒▒>▒▒>>>▒▒>▒▒>0▒▒▒▒>▒▒▒0>▒▒▒▒▒>▒▒▒▒>0▒▒>▒>▒▒▒▒>▒▒>▒>▒0▒▒▒0▒▒▒▒0▒▒▒▒>0>>▒>▒▒>▒>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒▒▒0▒▒>▒>▒▒▒▒>▒▒>▒>▒0▒▒▒0▒▒▒▒0▒▒▒▒>>0>▒>▒▒▒>>▒>>▒>▒>>▒>>0>▒▒▒▒▒>▒▒▒▒▒>▒>▒▒>▒▒▒>0▒>>▒▒▒▒>>▒>▒▒▒>>▒▒>▒>0>>▒>▒▒▒>▒>0>▒>>▒>>0>▒▒▒▒▒>▒▒▒▒>▒▒>▒>▒>▒▒▒>>▒>>>0>▒>>>▒>>▒>▒▒▒>>▒>▒>0>>▒>▒▒▒▒▒0>▒▒▒▒▒>▒▒▒▒>▒▒▒>▒>▒▒▒>>▒>>>0>>▒>>>▒>>▒>▒▒>>▒▒▒>▒▒▒▒▒▒>>▒▒▒>▒>▒>0>>▒▒>▒▒▒>>▒>▒>▒>▒>▒▒>▒▒▒>▒>>▒▒>>▒▒▒0>▒▒▒▒▒>▒▒▒0▒▒0▒▒>▒▒▒▒▒▒>>▒▒▒>>▒>>>0>▒>>>▒>>▒>▒>▒>>0>>▒>>▒▒>>▒>>▒▒▒>>▒>>0>>▒>▒>>▒▒>▒▒▒▒0>▒▒▒▒▒>▒▒▒▒>0▒▒>▒▒>▒▒▒▒▒>>▒▒▒>▒>>>▒>>>▒>▒>>▒>>▒>▒>▒▒▒▒0>▒▒▒▒▒>▒▒▒▒>0▒▒>▒▒>▒▒▒▒0>▒▒▒▒▒>▒▒▒▒>▒>▒▒>▒▒▒▒▒▒>>▒▒▒>>>▒>>▒>>▒▒▒>>▒▒▒>>▒▒>▒▒▒>>▒>▒>0>▒>▒>>>▒▒>▒▒0>▒▒▒▒▒>▒▒▒▒>▒>▒▒>▒▒▒▒▒0>▒▒▒▒▒>▒▒▒▒>▒>▒▒>▒▒▒▒▒▒>>▒▒▒▒▒>>▒▒▒>>▒>▒>▒>▒>▒>>>>▒>▒>▒▒>>0▒>▒>▒>▒>>>▒▒▒▒>>▒>>▒▒>▒>▒>▒>>>▒▒▒>▒>>>▒>▒▒>▒>▒>▒>>>▒0>▒▒▒▒▒>▒▒▒▒>▒>▒▒>▒▒▒▒▒0>▒▒▒▒▒>▒▒▒▒0▒▒>▒0▒▒▒▒▒▒>>▒▒▒>▒>>>▒>>>▒>▒▒▒>>▒▒>▒▒▒▒0>▒▒▒▒▒>▒▒▒▒0▒▒>▒0▒▒▒▒▒0>▒▒▒▒▒>▒▒0▒▒▒>▒▒>▒>▒▒▒▒▒>>▒▒▒>>▒>>>0>▒>>>▒>>▒>▒>▒>>0>>>0>▒▒▒▒▒>▒▒0▒▒▒>▒▒>▒>▒▒▒0>>▒▒>>▒>>▒>▒▒>>0▒▒0>>0>▒▒▒>>0>▒>▒▒▒>▒>0>▒>>▒>▒▒▒>>▒>▒0▒▒>▒▒0>▒▒▒▒▒>▒▒0▒0▒▒>▒▒>▒>▒▒▒0>>▒▒>>▒>>▒>▒▒>>0▒▒0>>0>▒▒▒>>0>▒>▒>▒>>▒▒>>>>>▒>▒0▒>▒0>>▒>0>▒>▒>>▒>>▒>>0>▒▒▒▒▒>▒▒0▒▒>▒▒▒>▒>▒▒▒0>>▒▒>>▒>>▒>▒▒>>0▒▒0>>0>▒▒▒~~0>▒>▒>▒>>▒▒>>>>>▒>▒0>>0>▒▒0>>▒>0>▒>▒>>▒>>▒>>0>▒▒▒▒▒>▒▒0▒▒>▒>>▒▒▒>▒▒▒0>>▒▒>>▒>>▒>▒▒>>0▒▒▒0▒>▒>0>>▒0>>▒▒>>▒>>▒>▒▒>>▒▒0▒▒0▒▒0▒>▒▒>>▒▒▒>▒>0>▒>>▒>▒▒▒>>▒>▒▒▒▒▒▒▒▒0>▒▒▒▒▒>▒▒0▒▒>0▒▒>▒0▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>▒▒▒>▒0▒0>>>▒▒▒>0>0▒0▒>>>▒>▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>▒>0>▒>>▒>▒▒>>▒0▒▒▒0▒▒0▒▒▒▒▒▒▒▒▒▒▒0▒▒0▒▒0>▒▒▒▒▒>▒▒0▒▒▒>▒>▒>▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒000>>▒>>▒>>>>▒>>▒>>>>▒>▒▒00▒▒▒0>▒▒▒▒▒>▒▒>▒▒▒▒>▒>▒>▒▒▒>>▒>>~0~>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>>>>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒>▒0▒▒>▒>▒▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>>>>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒>▒▒>0▒>▒▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>>>>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒>▒▒>▒>▒▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>▒▒>▒>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒>▒▒>>▒▒>▒>▒>▒▒▒>~▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>▒▒▒>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒>▒▒▒>▒▒▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>▒▒>▒>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒▒>▒▒>▒▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>▒▒▒>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒▒>0▒▒>▒▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒▒>>▒▒>▒>>▒>▒▒▒>▒0▒0▒0>▒▒▒▒▒>▒▒▒>>▒▒>▒0▒▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>>▒>▒>>▒>>▒▒▒>>0>>>>▒>▒>▒0▒▒>▒0▒▒▒>>0>>▒0>▒▒▒▒▒>▒▒▒>▒>▒▒>▒>▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>▒>▒>▒>>>▒>▒>▒>>>▒▒>>>>>▒▒00>▒0>>>▒▒▒▒>>>▒▒▒>▒▒▒▒>▒>▒>▒0▒▒▒▒▒>0>▒>▒>>▒▒▒▒▒>0>>>0>>▒▒>▒▒0▒▒>▒>>>▒▒>▒▒▒>0>▒▒0▒▒▒▒>▒>▒0>>0>▒▒▒▒▒>▒▒▒>▒>▒>▒>0▒▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒>▒>▒▒▒>▒>>>>>▒>>>>▒▒>▒>▒>▒>▒▒>▒▒▒>>▒▒>▒>>▒>>>▒0>>▒>▒>>>▒>>0>>0>▒▒▒▒▒>▒▒▒>▒▒>▒>▒▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>▒>▒>▒>>>▒>▒>▒>>>▒▒>>>>>▒▒>▒▒▒▒▒00>▒0>>>▒▒▒▒>>>▒▒0▒0▒▒▒>▒>▒>▒0▒▒▒▒▒>0>▒>▒>>▒▒▒▒▒>0>>>0>>▒▒>▒▒0▒▒>▒>>>▒▒>▒▒▒>0>▒▒0▒▒▒▒>▒>▒0>>0>▒▒▒▒▒>▒▒▒>▒>▒0▒▒▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>▒>▒>▒>>>▒>▒>▒>>>▒▒>>>>>▒▒00>▒0>>>▒▒▒▒>>>▒▒0▒▒>▒>▒▒▒>▒>▒>▒▒▒▒▒>0>▒>▒>>▒▒▒▒▒>0>>>0>>▒▒>▒▒0▒▒>▒>>>▒▒>▒▒▒>0>▒▒0▒▒▒▒>▒>▒0>>0>▒▒▒▒▒>▒▒▒>▒>▒>▒▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒▒>>▒>>>>▒▒>>▒▒▒▒>>0>>▒>0>▒>>0>▒▒▒▒▒>▒▒▒>▒>▒>▒>▒▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>▒▒▒>▒0▒0>>>▒▒▒>0>0▒0▒>>~▒~▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>▒>0>▒>>▒>▒▒>>▒0▒▒▒0▒▒0▒▒▒▒▒▒▒▒▒▒▒0▒▒0▒▒0>▒▒▒▒▒>▒▒▒>▒0▒▒>▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒000>>▒>>▒>>>>▒>>▒>>>>▒>▒▒00▒▒▒0>▒▒▒▒▒>▒▒▒>0▒▒>>▒▒0▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>>>>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒▒>▒>0▒▒>▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>>>>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒▒>▒>▒▒▒▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>>>>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒▒>▒>>▒▒>0▒▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>▒▒>▒>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒▒>▒▒>▒▒>▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>▒▒▒>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒▒>▒▒>▒0▒▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>▒▒>▒>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒▒>0▒▒▒▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒0▒>▒▒▒>▒>▒▒▒>>▒>▒0>>▒>▒>>>▒>>0>▒▒▒>>▒▒>>▒▒>>0>▒▒▒▒▒>▒▒▒>>▒▒>▒>>▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>>>▒>▒0▒▒>▒▒▒>>▒>▒>0>>▒0>0>>▒>▒>>>▒>0>>>>▒>>▒>>>>>▒▒>▒>▒>▒>▒▒>▒▒>▒▒>>▒>>▒>>0>▒▒▒▒▒>▒▒▒>▒>▒0▒▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>▒>▒>▒>>>▒>▒>▒>>>▒▒>>>>>▒▒00>▒0>>>▒▒▒▒>>>▒▒▒>▒▒▒▒>▒>▒>▒0▒▒▒▒▒>0>▒>▒>>▒▒▒▒▒>0>>>0>>▒▒>▒▒0▒▒>▒>>>▒▒>▒▒▒>0>▒▒0▒▒▒▒>▒>▒0>>0>▒▒▒▒▒>▒▒▒>▒▒>▒▒▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒>▒>▒▒▒>▒>>>>>▒>>>>▒▒>▒>▒>▒>▒▒>▒▒▒>>▒▒>▒>>▒>>>▒0>>▒>▒>>>▒>>0>>0>▒▒▒▒▒>▒▒▒▒▒>▒▒>▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>▒>▒>▒>>>▒>▒>▒>>>▒▒>>>>>▒▒>▒▒▒▒▒00>▒0>>>▒▒▒▒>>>▒▒0▒0▒▒▒>▒>▒>▒0▒▒▒▒▒>0>▒>▒>>▒▒▒▒▒>0>>>0>>▒▒>▒▒0▒▒>▒>>>▒▒>▒▒▒>0>▒▒0▒▒▒▒>▒>▒0>>0>▒▒▒▒▒>▒▒▒▒>▒>▒>▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒▒▒>>▒>>>>▒▒>>▒▒▒>>>▒▒>>>▒>>▒0>▒>▒>>>▒▒>▒>▒>>▒>>>0>▒▒▒▒▒>▒▒▒▒>>▒▒▒▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>>>▒>▒▒▒>▒▒▒▒▒>▒>▒>▒>>>>▒>▒▒>0▒▒▒0▒▒▒>0▒▒▒▒0>▒▒▒▒▒>▒▒▒▒>>▒▒▒>▒▒▒▒>>▒>>>0>▒▒>▒▒>▒>▒>▒>>0>>▒▒>▒>▒▒▒▒>>▒>>▒>▒>>0>▒▒▒▒▒>▒▒▒▒▒▒▒>▒▒▒▒>>▒>>>0>▒▒▒>>▒>▒>>▒>▒>▒▒>▒▒>▒>▒>>>>▒>▒>▒>▒▒>▒▒>▒▒▒▒▒>>0>>▒▒>▒>▒▒▒>>▒▒▒>>▒>▒▒▒>>▒▒>▒>>▒>▒>0>>▒▒>▒▒>▒▒>▒>▒>>>>>>>>▒▒>▒▒>▒>▒0>>▒>▒>>>▒>>0>▒▒0>▒▒▒▒▒>▒▒▒0▒▒>▒>▒▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>>>▒>▒▒▒>▒▒▒▒▒>▒>▒>▒>>>>▒>▒▒>0▒▒▒0▒▒▒>0▒▒▒▒0>▒▒▒▒▒>▒▒▒0▒▒>▒▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>▒>▒>▒>>>▒>▒>▒>>>▒▒>>>>>▒▒>▒▒▒▒▒00>▒0>>>▒▒▒▒>>>▒▒0▒0▒▒▒>▒>▒>▒0▒▒▒▒▒>0>▒>▒>>▒▒▒▒▒>0>>>0>>▒▒>▒▒0▒▒>▒>>>▒▒>▒▒▒>0>▒▒0▒▒▒▒>▒>▒0>>0>▒▒▒▒▒>▒▒▒▒>0▒▒▒▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>▒>▒>▒>>>▒>▒>▒>>>▒▒>>>>>▒▒>▒▒▒▒▒00>▒0>>>▒▒▒▒>>>▒▒0▒0▒▒▒>▒>▒>▒0▒▒▒▒▒>0>▒>▒>>▒▒▒▒▒>0>>>0>>▒▒>▒▒0▒▒>▒>>>▒▒>▒▒▒>0>▒▒0▒▒▒▒>▒>▒0>>0>▒▒▒▒▒>▒▒▒▒>▒▒>▒▒>▒▒▒>>▒>>>0>▒0>>▒>0>▒>▒>>▒>▒▒>▒▒>▒>▒>>>>▒>▒>▒>>▒>▒▒>▒>▒▒▒▒▒>▒▒>▒>▒>>>>▒>▒>▒>>▒>▒>>▒>>▒>▒>>0>▒▒▒▒▒▒>▒▒▒▒>0▒>▒▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>>>▒>▒▒▒>▒▒▒▒▒>▒>▒>▒>>>>▒>▒▒>▒▒0▒▒▒>0▒▒▒▒0>▒▒▒▒▒▒>▒▒>▒▒▒>▒>▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>>>▒>▒▒▒>▒▒▒▒▒>▒>▒>▒>>>>▒>▒▒>▒▒0▒▒▒>0▒▒▒▒0>▒▒▒▒▒▒>▒▒▒>▒>▒>▒▒>▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>>>▒>▒▒▒>▒▒▒▒▒>▒>▒>▒>>>>▒>▒▒>▒▒0▒▒▒>0▒▒▒▒0>▒▒▒▒▒▒>▒▒▒>0▒▒▒>0▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>>>▒>▒▒▒>▒▒▒▒▒>▒>▒>▒>>>>▒>▒▒>▒▒0▒▒▒>0▒▒▒▒0>▒▒▒▒▒▒>▒▒▒>0▒▒▒>▒▒▒▒>>▒>>>0>>▒▒>▒>>>▒▒>▒0▒▒▒▒▒▒>>▒>>>>>▒>▒▒▒>>▒>▒>▒>>>▒>▒>▒>>>▒▒>>>>>▒▒00>▒0>>>▒▒▒▒>>>▒▒0▒▒>▒>▒▒▒>▒>▒>▒▒▒▒▒>0>▒>▒>>▒▒▒▒▒>0>>>0>>▒▒>▒▒0▒▒>▒>>>▒▒>▒▒▒>0>▒▒0▒▒▒▒>▒>▒0>>0>▒▒▒▒▒▒>▒▒▒▒▒0▒▒>▒▒▒>>▒>>>0>▒▒>▒▒>▒>▒>▒>>0>>▒▒▒>▒>▒▒▒▒▒>0>>>>>>▒0>▒▒▒▒▒▒>▒▒▒▒>0▒▒>▒▒▒▒▒▒>>▒>>▒>▒▒▒▒▒>>▒>▒>0>>▒>▒▒▒>▒▒▒▒0>▒▒▒▒▒▒>▒▒0▒▒▒▒>▒▒▒▒>▒>▒▒▒▒>0>0>>0▒▒>>>▒▒>▒>>▒>>>0>▒>>>▒▒>>▒>▒>>▒>▒>>▒>>▒>>>>▒>▒▒>▒0▒▒>▒0▒▒▒0▒▒▒>0>▒>0>▒>>>▒▒▒▒>>▒>0▒▒▒▒▒>>▒>▒▒>>▒▒>▒>▒▒▒>>▒>0▒0▒▒>▒▒▒>>>>▒▒▒▒>>0>>0▒>▒▒▒▒▒>>>>▒▒▒▒>>0>>0▒>▒▒▒>>▒▒>>>>▒▒>>>▒▒▒0▒▒▒▒>>▒▒>▒▒>▒>>>0▒▒▒▒>>▒>▒>▒>▒▒>▒▒>▒>>>0▒▒▒0>▒▒▒▒▒▒>▒▒0▒▒▒▒>▒▒▒▒▒0>▒▒▒▒▒▒>▒▒▒>▒▒>0▒▒▒▒▒>▒>▒▒▒▒>0>0>>0▒▒>>>▒▒>▒>>▒>>>0>▒>>>▒▒>>▒>▒>>▒>▒>>▒>>▒>>>>▒>▒▒>▒0▒▒>▒>▒▒▒0▒>▒>▒>▒>▒>▒>▒>>▒>▒>▒▒▒▒▒>▒>▒>>>▒>▒>>▒>▒>▒▒▒▒▒▒▒>>▒>▒>▒>▒>▒>>▒>▒>▒▒▒▒▒▒▒>>▒>>>▒>▒▒▒▒0>▒▒▒▒▒▒>▒▒▒▒>0▒▒▒▒▒▒>▒>▒▒▒▒>0>0>>0▒▒>>>▒▒>▒>>▒>>>0>▒>▒>▒▒>>▒>>>>▒▒>>>▒▒>>▒>▒>▒>>0>>▒▒>▒0▒▒>▒▒▒▒0▒>>>▒▒>>▒>▒>▒>>0>>▒▒▒>0>>>>>>▒▒>▒>>0>▒▒▒▒▒▒>▒0▒▒▒>▒0▒▒>▒▒▒▒▒>>▒>▒>▒>▒>▒>▒▒▒▒▒>0>▒>>▒>▒>>0>▒>▒▒00▒▒>▒▒>▒▒>>>▒▒>▒>>>>>▒>▒>>>▒>▒>>0>0▒▒▒>0>▒>>▒>>▒>>>▒▒>▒▒0>▒>▒>0>>>>>▒▒>>▒>0▒>>0>>>▒>▒>▒>▒>>▒>>>▒▒>▒▒0>▒▒▒▒▒▒>▒0▒▒>▒▒>▒▒▒▒▒>▒>▒▒0▒▒>>0▒▒>~~▒▒>▒>>▒>>>0>▒>>>▒>▒>▒>▒>>▒▒>▒▒>▒▒>▒>▒▒▒0▒>>>▒>▒>▒>▒>>▒▒>▒▒▒>0>>>>>>▒▒>▒>>0>▒▒▒▒▒▒>▒0▒▒>▒>▒▒>▒>▒▒▒>>▒>>>0>>▒>>>▒▒>>▒>>▒▒>>▒>>>▒>▒▒>▒0▒▒>▒▒>▒▒>▒▒>>>▒▒>>▒▒>▒▒▒0▒▒>▒▒▒▒▒▒>>>▒▒>>▒>▒▒▒▒▒▒▒0▒▒>▒▒>▒▒>>>▒▒>▒>>>>>▒>▒>>>▒>▒>>0>▒▒>>>>0>>▒▒>▒▒>>>▒0>▒▒▒▒▒▒>▒0▒▒▒▒>▒>▒▒▒▒>▒>>▒>▒>▒▒▒>▒>▒>0>>>>>▒▒>>▒>▒>>▒>>>0>▒>▒>▒>0>>▒00>▒>▒>▒>▒>▒▒▒▒>>▒>0>▒>>▒>>>>▒>▒>>0>>>>>>>>>▒▒▒▒▒▒▒▒▒0▒▒>▒▒>▒▒>▒▒>>>▒▒>>▒▒>>>>▒▒>>▒▒>>>>▒>▒>▒▒>▒>>▒>▒>▒▒0>▒▒▒▒▒▒>▒>▒▒▒▒>▒>▒>▒▒▒>▒>▒▒0▒▒>>0▒▒>>>▒▒>▒>>▒>>>0>▒>>>▒>▒>▒▒▒>>▒>▒>▒>>0>>▒▒>▒▒>▒▒>▒▒0▒0>>▒>0>▒>▒>>▒>▒>>>▒>▒>▒▒▒>0>>>>>>▒▒>▒>>0>▒▒▒▒▒▒>▒>▒0▒▒>▒▒▒▒▒▒>▒>▒▒0▒▒>>0▒▒~~>▒▒>▒>>▒>>>0>▒>>>▒>▒>>▒▒>▒▒▒>>0>▒>▒▒>▒0▒▒>▒▒▒0▒0>>▒>▒>>>>>▒▒▒▒0>>>>0>▒>▒>>▒>0>▒>▒>>▒0>▒▒▒▒▒▒>▒>▒>▒▒▒>▒▒▒▒▒▒0▒▒>▒>▒▒▒0▒▒▒>▒>0>▒>▒>>▒>>▒>▒>▒>>▒▒>>>>>▒>▒▒▒>>>>0>>>▒▒▒▒0>▒▒▒▒▒▒>▒>▒▒>▒▒>▒▒▒▒▒>▒▒▒>▒>>>>>▒▒>▒0▒▒>▒▒>▒>0>>▒▒>▒▒▒>0>▒>>▒0▒▒▒>>▒0>▒▒▒▒▒▒>▒>▒▒>▒▒>▒▒▒▒▒▒0▒▒>▒>▒▒▒0▒▒▒>▒>0>▒>▒>>▒>>▒>▒>▒>>▒▒>>>>>▒>▒▒▒>>>>0>>>▒▒▒>▒0>▒▒▒▒▒▒>▒>▒▒▒▒>▒0▒▒▒▒0>>▒▒>>▒>>▒>▒▒>>0▒▒0▒▒▒>>0▒0▒0▒▒▒>▒>▒▒▒▒>>▒>>▒>▒>▒>>▒▒>0>>>>0>>▒>>0>▒▒▒▒▒▒>▒>▒▒>▒▒▒▒▒▒▒0>>▒▒>>▒>>▒>▒▒>>0▒▒0▒▒▒>>0▒0▒0▒>>>>>▒>>▒>▒▒>>▒>>▒>▒>▒>>▒▒>0>>>>0>>▒>>0>▒▒▒▒▒▒>▒▒>▒▒>▒▒▒▒▒▒0>>▒▒>>▒>>▒>▒▒>>0▒▒0▒▒▒>>0▒0▒0▒▒▒>>▒>▒▒▒▒▒▒0>▒▒▒▒▒▒>▒▒>▒▒▒>▒▒>▒▒▒0▒▒▒>▒>0>▒>▒>>▒>0>>▒▒>▒>▒▒▒>▒▒>▒▒▒>▒0>▒▒▒>>>▒>>>▒>0>>▒>▒>>>▒▒>>▒▒>▒>>0>▒▒▒▒▒▒>▒▒>▒>▒0▒0▒▒▒▒▒▒▒>>▒>▒▒▒>>>>0>▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>>▒>>▒>>>▒>>>▒▒>▒>▒>>▒>>>▒▒▒>>0>>▒▒0>▒▒▒▒▒▒>▒▒>▒>0▒▒>▒>▒>▒▒▒>>▒>>>0>▒▒▒>>>>0>▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>>▒>▒0▒▒>▒>▒>>▒▒>▒▒▒>>▒>>▒>>▒>>>▒▒>▒>▒>>>0>▒▒▒▒▒▒>▒▒>▒>▒>▒>▒0▒▒▒▒>▒>>▒>>>0>>▒▒▒>>>>0>▒▒▒0▒▒>▒>>0>>▒>▒>>▒>>▒▒▒▒>>>>>▒▒▒▒>▒▒▒▒▒▒▒▒▒>>>>0>▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒~▒>>▒>>>0>▒▒▒>>>>0>▒▒▒▒>▒>▒0>▒▒▒▒>▒>▒▒▒▒▒▒>▒▒>>▒▒>▒>▒▒▒▒▒>0>▒>▒▒>▒>0▒>▒>>0>▒▒▒▒▒▒>▒▒>▒▒>>▒▒▒▒▒▒>▒>>▒>>>0>>▒▒▒>>>>0>▒▒▒0▒▒▒0▒>▒▒>▒>▒>>▒▒>▒▒▒>>>>0>▒▒0>▒▒▒▒▒▒>▒▒>▒▒>▒>▒>▒▒▒▒▒▒>>▒>▒▒>>>>0>▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>>▒>>▒>>>▒>>>▒▒>▒>▒>>▒>>>▒▒▒>>0>>▒▒0>▒▒▒▒▒▒>▒▒>>▒▒▒>▒▒>▒▒▒>>▒>>>0>▒▒>>>>0>▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒▒▒>>▒>▒0▒▒>▒>▒>>▒▒>▒▒▒>>▒>>▒>>▒>>>▒▒>▒>▒>>>0>▒▒▒▒▒▒>▒▒>▒>▒>▒>▒▒>▒▒▒>▒>>▒>>>0>>▒▒>>>>0>▒▒▒0▒▒>▒~>0>>▒>▒>>▒>>▒▒▒▒>>>>>▒▒▒▒>▒▒▒▒>▒▒▒▒>>>>0>▒▒>>>▒>▒▒>▒>>▒>▒>▒▒>▒>▒>>▒>>>0>▒▒>>>>0>▒▒▒▒>▒>▒0>▒▒▒▒>▒▒0▒▒▒0>▒▒▒▒▒▒>▒▒>▒>▒▒▒▒▒▒▒>▒>>▒>>>0>>▒▒>>>>0>▒▒▒0▒▒▒0▒>▒▒>▒>▒>>▒▒>▒▒>>>>0>▒▒0>▒▒▒▒▒▒>▒▒>▒▒▒>▒▒>▒▒▒▒▒>▒>0>▒0▒▒>▒>▒>>▒>>>▒>▒▒>▒▒>▒▒>▒>▒▒▒0>▒▒▒▒▒▒>▒▒▒0▒▒>▒>0▒▒▒▒0>>>▒▒>>▒>0▒▒>>▒>>▒▒>▒>▒>>▒▒>▒▒▒>>▒>▒▒>>0>▒▒▒▒▒▒>▒▒▒>▒>▒>>▒▒▒▒▒▒▒>▒>0>▒0▒▒>>▒>>>▒>>▒>▒▒>▒>>>▒▒▒>0>>>>>>▒▒>▒>>0>▒▒▒▒▒▒>▒▒▒>▒>▒▒▒>▒▒▒▒▒>▒>0>▒0▒▒>▒>▒>>▒>>▒▒>▒>▒▒>▒▒>▒>▒▒▒▒>>>>>▒0▒>>▒>▒>▒▒▒▒>>0>▒>>▒▒0▒>▒▒▒0>0>0▒▒0>▒▒▒▒▒▒>▒▒▒▒▒>▒>▒>▒▒▒▒▒>▒>0>▒0▒▒▒▒▒>>▒>>0>▒>>▒▒▒0▒▒>0▒▒▒>▒>▒0>▒>▒>>▒>▒0▒▒>▒>▒>0>0>0▒▒▒▒0▒▒>>▒>>0>▒>>▒▒▒0▒▒>▒▒▒>▒▒0>▒>▒>>▒>>0>▒▒▒▒▒▒>▒▒▒▒>▒>▒▒>▒▒▒▒▒>▒>0>▒0▒▒▒>>▒>▒▒▒>>>▒0▒▒0▒▒▒>>>▒▒>▒>>0>▒>>▒>▒▒▒▒>▒▒▒>▒▒>▒▒▒>▒▒>>▒>▒>>▒>>▒>>▒>>0>▒>>▒0▒▒▒>▒▒0>▒▒▒▒▒▒>▒▒0▒▒>▒>▒>▒▒▒▒▒▒>▒>0>▒0▒▒▒▒>0>▒>▒>▒▒>>▒>>▒>▒▒>▒▒>▒>▒>>▒>▒▒▒0▒▒▒>▒▒>>>▒▒>>▒▒>▒>▒0▒▒▒>▒▒▒▒▒>>▒>>▒▒>▒▒>▒>▒>>▒>▒▒▒▒>▒▒▒>▒0>▒▒▒▒▒▒>▒▒▒>▒>▒>▒>▒>▒▒▒▒▒>▒>0>▒0▒▒▒▒>>▒>▒▒>▒▒▒▒>>▒>▒▒▒▒>▒0▒▒▒0>>▒>▒▒▒▒>>▒>▒▒▒▒▒▒>>>0>▒>▒>>▒>>▒>▒▒▒▒>>▒>▒▒▒▒▒0>▒▒▒▒▒▒>▒▒▒>0▒▒>▒▒▒▒▒▒▒>▒>0>▒0▒▒▒▒>▒>>▒>▒▒▒>>▒>▒▒>>>>▒▒▒▒▒▒>▒>▒▒>>▒>>>>▒▒▒>>▒>▒▒>>>>▒>▒▒▒▒▒▒▒>>>▒▒▒>>▒>▒▒>>>>▒>▒>>>▒▒>>▒▒>▒▒▒▒0▒▒▒0>▒▒▒▒▒▒>▒▒▒0▒0▒▒▒>▒▒▒▒▒>▒>0>▒0▒▒▒>>>▒>▒▒>>>▒▒▒>▒>>▒>>▒>>>▒▒>>▒▒>>▒>▒▒▒0▒▒▒▒▒▒▒>0▒▒▒>>0>>▒>>▒>▒>▒▒>▒▒▒▒>▒▒▒>▒▒>▒>>▒>>▒>>>▒>▒>>>>>>▒▒>▒▒>>>▒>>▒>▒▒▒▒▒0>▒▒▒▒▒▒>▒▒▒▒>▒>▒>▒>▒▒▒▒▒>▒>0>▒0▒▒>▒>>0>>>▒>>▒▒>▒▒▒▒>>▒>▒▒▒▒▒▒▒▒>>▒▒>>>▒0>>▒>>▒>▒>>▒>▒▒▒▒>>▒>▒▒▒▒>▒0▒▒▒▒▒▒>>▒>▒0>>▒>>▒>▒>>▒>▒▒▒>>0>▒0>>▒>▒▒▒▒>>▒>>>▒▒>>>▒>▒▒>▒▒▒0▒▒▒0>▒▒▒▒▒▒>▒▒0▒▒▒>▒▒▒▒▒▒▒>▒>0>▒0▒▒0>>▒>▒>▒>▒>>▒▒>>▒▒>▒▒▒>>0>>>▒>▒0▒▒▒>▒>0>▒0>▒>▒>▒▒▒>▒▒▒>>▒>>▒>▒>>▒>▒▒0▒▒>▒▒>>▒▒0>▒▒▒▒▒▒>▒▒▒>▒>▒▒▒>▒▒▒0>>▒>>>▒>▒▒▒>▒>0>▒>>▒>>>▒>▒▒▒▒>0▒▒>>▒>>>▒>>▒>▒▒▒>▒>>▒>▒▒▒>▒>0>▒0▒▒>0>>▒>▒▒>▒>▒>0▒▒0>▒▒▒▒▒▒>▒▒▒>▒>▒>▒>▒▒▒▒>>>▒>▒>>0>>>▒0>>▒>▒>>>▒>>0>▒>▒0▒▒▒▒>0>▒>>▒>▒>▒▒▒>0>▒>>>▒>>▒>>▒▒>▒>>▒>▒▒▒>>0>▒0>>▒>▒>>>▒>>0>▒>▒▒>▒>▒▒▒>>0>>▒▒>▒>▒▒▒>0>▒>>▒▒▒>▒>▒>>0>▒▒0▒▒0>▒▒▒▒▒▒>▒▒▒▒>▒▒▒▒▒▒>>>>>0▒▒▒0▒>▒▒>▒▒▒>0>▒>>▒>>>▒>▒▒>▒▒▒>>▒▒>▒>>▒>▒>>>▒>>>▒>▒>>0>▒▒▒▒▒▒>▒▒▒▒>▒▒0▒▒▒▒>0>▒>▒▒▒>>▒>0>▒>>▒▒>>>>▒>▒▒▒0>▒▒▒▒▒▒>▒▒▒▒>▒▒▒▒▒▒▒▒>▒▒0▒▒>▒>▒>0>>>>>▒▒>>▒>>0>▒▒▒▒▒▒>▒▒▒▒▒>▒>▒▒▒▒>>▒>▒>▒▒0▒▒▒0▒▒▒▒>>0>>▒▒>▒>▒▒▒>>▒▒>▒>>▒>▒0>>▒>▒>>>▒>>0>▒>▒▒>▒>>0>▒▒▒▒▒▒>▒▒▒▒>▒>▒>▒>▒▒▒>>▒>▒>>>▒▒▒>▒>▒▒▒>>>▒>▒▒>▒▒▒▒>▒>▒▒>▒▒0▒▒>0▒0▒▒0[    5.141657] VFS: Mounted root (squashfs filesystem) readonly on device 254:0.
      [    5.152075] devtmpfs: mounted
      [    5.157300] Freeing unused kernel memory: 1024K
      [    5.187892] Run /pseudo_init as init process
      mount: mounting none on /dev failed: Resource busy
      [    5.396096] UBIFS (ubi0:7): Mounting in unauthenticated mode
      [    5.402639] UBIFS (ubi0:7): background thread "ubifs_bgt0_7" started, PID 103
      [    5.474182] UBIFS (ubi0:7): recovery needed
      [    5.596434] UBIFS (ubi0:7): recovery completed
      [    5.601565] UBIFS (ubi0:7): UBIFS: mounted UBI device 0, volume 7, name "rootfs_data"
      [    5.610372] UBIFS (ubi0:7): LEB size: 258048 bytes (252 KiB), min./max. I/O unit sizes: 4096 bytes/4096 bytes
      [    5.621509] UBIFS (ubi0:7): FS size: 3096576 bytes (2 MiB, 12 LEBs), journal size 1806337 bytes (1 MiB, 5 LEBs)
      [    5.632835] UBIFS (ubi0:7): reserved for root: 146258 bytes (142 KiB)
      [    5.640073] UBIFS (ubi0:7): media format: w5/r0 (latest is w5/r0), UUID 5826DE6E-A79D-4CD4-953E-705F4ECC547B, small LPT model
      can't run '/etc/preinit': No such file or directory
      mount: mounting proc on /proc failed: Resource busy
      mount: mounting tmpfs on /run failed: No such file or directory
      hostname: can't open '/etc/hostname': No such file or directory
      ------run rc.preboot file-----
      [    5.768974] UBIFS (ubi0:8): Mounting in unauthenticated mode
      [    5.775477] UBIFS (ubi0:8): background thread "ubifs_bgt0_8" started, PID 132
      [    5.846871] UBIFS (ubi0:8): recovery needed
      [    5.896189] UBIFS (ubi0:8): recovery completed
      [    5.901402] UBIFS (ubi0:8): UBIFS: mounted UBI device 0, volume 8, name "UDISK"
      [    5.909644] UBIFS (ubi0:8): LEB size: 258048 bytes (252 KiB), min./max. I/O unit sizes: 4096 bytes/4096 bytes
      [    5.920792] UBIFS (ubi0:8): FS size: 53932032 bytes (51 MiB, 209 LEBs), journal size 2580480 bytes (2 MiB, 10 LEBs)
      [    5.932524] UBIFS (ubi0:8): reserved for root: 2547342 bytes (2487 KiB)
      [    5.939967] UBIFS (ubi0:8): media format: w5/r0 (latest is w5/r0), UUID 800F2F23-791C-475F-ADD8-DBB996AF1127, small LPT model
      ------run rc.modules file-----
      [    6.003302] sunxi_gpadc_init,2151, success
      [    6.008282] sunxi_gpadc_setup: get channel scan data failed
      [    6.014879] input: sunxi-gpadc0 as /devices/virtual/input/input1
      [    6.083020] ======== XRADIO WIFI OPEN ========
      [    6.088610] [XRADIO] Driver Label:XR_V02.16.85_P2P_HT40_01.31
      [    6.095389] [XRADIO] Allocated hw_priv @ 437f1eed
      [    6.101232] sunxi-rfkill soc@3000000:rfkill@0: bus_index: 1
      [    6.117517] sunxi-rfkill soc@3000000:rfkill@0: wlan power on success
      [    6.324704] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
      [    6.335844] [XRADIO] Detect SDIO card 1
      [    6.347832] sunxi-mmc 4021000.sdmmc: no vqmmc,Check if there is regulator
      [    6.367978] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
      [    6.392849] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
      [    6.407437] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
      [    6.429597] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing SD-HS(SDR25) dt B
      [    6.441194] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 1 timing SD-HS(SDR25) dt B
      [    6.453036] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 4 timing SD-HS(SDR25) dt B
      [    6.465610] mmc1: new high speed SDIO card at address 0001
      [    6.472163] [SBUS] XRadio Device:sdio clk=50000000
      [    6.478096] [XRADIO] XRADIO_HW_REV 1.0 detected.
      [    6.568198] [XRADIO] xradio_update_dpllctrl: DPLL_CTRL Sync=0x00c00000.
      [    6.604146] [XRADIO] Bootloader complete
      [    6.693729] [XRADIO] Firmware completed.
      [    6.699778] [WSM] Firmware Label:XR_C09.08.52.73_DBG_02.122 2GHZ HT40 May 18 2021 13:36:09
      [    6.717204] [XRADIO] Firmware Startup Done.
      [    6.722200] [XRADIO_WRN] enable Multi-Rx!
      [    6.727377] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
      Successfully initialized wpa_supplicant
      [    6.927689] ieee80211_do_open: vif_type=2, p2p=0, ch=3, addr=38:c9:24:7b:b1:9e
      [    6.935898] [STA] !!!xradio_vif_setup: id=0, type=2, p2p=0, addr=38:c9:24:7b:b1:9e
      [    6.951382] [AP_WRN] BSS_CHANGED_ASSOC but driver is unjoined.
      ------run rc.final file-----
      numid=30,iface=MIXER,name='Headphone Switch'
        ; type=BOOLEAN,access=rw------,values=1
        : values=on
      ------light up RGB LED-----
      [    7.192769] file system registered
      [    7.210184] configfs-gadget 4100000.udc-controller: failed to start g1: -19
      sh: write error: No such device
      [    7.232850] read descriptors
      [    7.236098] read strings
      ------light up LED-----
      
      
      BusyBox v1.27.2 () built-in shell (ash)
      
      ------run profile file-----
       _____  _              __     _
      |_   _||_| ___  _ _   |  |   |_| ___  _ _  _ _
        | |   _ |   ||   |  |  |__ | ||   || | ||_'_|
        | |  | || | || _ |  |_____||_||_|_||___||_,_|
        |_|  |_||_|_||_|_|  Tina is Based on OpenWrt!
       ----------------------------------------------
       Tina Linux (Neptune, 61CC0487)
       ----------------------------------------------
      Wed Jun  1 00:00:00 GMT 2022
      nodev   debugfs
      root@TinaLinux:/# [    8.648023] sunxi_usb_udc 4100000.udc-controller: 4100000.udc-controller supply udc not found, using dummy regulator
      [    8.900790] android_work: sent uevent USB_STATE=CONNECTED
      [    9.000187] configfs-gadget gadget: high-speed config #1: c
      [    9.006521] android_work: sent uevent USB_STATE=CONFIGURED
      
      root@TinaLinux:/#
      root@TinaLinux:/#
      root@TinaLinux:/# ifconfig -a
      eth0      Link encap:Ethernet  HWaddr A2:CA:02:E9:35:D5
                BROADCAST MULTICAST  MTU:1500  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000
                RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
                Interrupt:37
      
      lo        Link encap:Local Loopback
                inet addr:127.0.0.1  Mask:255.0.0.0
                inet6 addr: ::1/128 Scope:Host
                UP LOOPBACK RUNNING  MTU:65536  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000
                RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
      
      wlan0     Link encap:Ethernet  HWaddr 38:C9:24:7B:B1:9E
                UP BROADCAST MULTICAST  MTU:1500  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000
                RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
      
      root@TinaLinux:/#
      
      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: T113开发资料下载

      分享T113资料,百度网盘:
      https://pan.baidu.com/s/1h-yRCvY3I7fhlVL9tVIfvw?pwd=awol 
      提取码:awol--来自百度网盘超级会员V4的分享

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • (全开源)小志掌機Gaviar Handheld 资料汇总

      购买链接:https://item.taobao.com/item.htm?id=725660521821


      显示屏手册:2.0寸显示屏手册.pdf

      pdf原理图:小志掌机原理图 Gaviar Handheld V1.0_2023-06-09.pdf

      立创EDA格式原理图:小志掌机原理图_Poket game V1.0_2023-06-09.json

      立创EDA格式PCB:小志掌机PCB_Poket game V1.0_2023-06-09.json

      已知bug:
      ① 丝印:小智 =>小志
      ② 调试口丝印:T R G => R T G


      ↑↑↑ 已加偏心电机(震动马达)驱动接口


      以下2023-8-7更新:
      此处下载:whycanpi_handheld_c3_m2 SDK包 (用了两天终于传完)


      以下2023-8-28更新:
      gaviarhandhelda_patch_20230828.tar.7z

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: 百问网韦老师 D1 开发板 ---- 东山哪吒STU

      board.dts

      删除PC3:

              spi0_pins_a: spi0@0 {
                      pins = "PC2", "PC4", "PC5","PC7", "PC6"; /*clk mosi miso hold wp*/
                      function = "spi0";
                      muxsel = <2>;
                      drive-strength = <10>;
              };
      
              spi0_pins_b: spi0@1 {
                      pins = "PC7", "PC6";
                      function = "spi0";
                      muxsel = <2>;
                      drive-strength = <10>;
                      bias-pull-up;   /* only CS should be pulled up */
              };
      
              spi0_pins_c: spi0@2 {
                      pins = "PC2", "PC4", "PC5","PC6", "PC7";
                      function = "gpio_in";
                      muxsel = <0>;
                      drive-strength = <10>;
              };
      
      

      spi0 配置:

      &spi0 {
              clock-frequency = <100000000>;
              pinctrl-0 = <&spi0_pins_a &spi0_pins_b>;
              pinctrl-1 = <&spi0_pins_c>;
              pinctrl-names = "default", "sleep";
              cs-gpios = <&pio PC 3 GPIO_ACTIVE_HIGH>, <&pio PC 0 GPIO_ACTIVE_HIGH>;
              spi_slave_mode = <0>;
              status = "okay";
      
              spi-nor@0 {
                      compatible = "jedec,spi-nor";
                      spi-max-frequency=<30000000>;
                      reg = <0x0>;//片选0
                      spi-rx-bus-width=<0x01>;
                      spi-tx-bus-width=<0x01>;
                      status="okay";
              };
      
              spi-nor@1 {
                      compatible = "jedec,spi-nor";
                      spi-max-frequency=<30000000>;
                      reg = <0x1>;//片选1
                      spi-rx-bus-width=<0x01>;
                      spi-tx-bus-width=<0x01>;
                      status="okay";
              };
      
      };
      

      启动日志:

      [    1.197328] spi-nor spi0.0: s25fl064k (8192 Kbytes)
      [    1.205463] spi-nor spi0.1: mx25l12805d (16384 Kbytes)
      

      5edbe4b7-0130-4f32-8a24-e8709fec0ddd-064eb440a867c5d2a8b427aca76f292.png

      微信图片_20220406230118.jpg 微信图片_20220406230126.jpg

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: 一个补丁,让D1-H的SDK支持T113芯片

      @wxid_disxysjskla

      whycan@ubuntu:/opt/D1/tina_d1_open_v2_debug6$ clear
      whycan@ubuntu:/opt/D1/tina_d1_open_v2_debug6$
      whycan@ubuntu:/opt/D1/tina_d1_open_v2_debug6$ cp ../TinaAddons/0001-add-t113-platform-to-d1-h-sdk.patch .
      whycan@ubuntu:/opt/D1/tina_d1_open_v2_debug6$ cp ../TinaAddons/apply_patch.sh .
      whycan@ubuntu:/opt/D1/tina_d1_open_v2_debug6$
      whycan@ubuntu:/opt/D1/tina_d1_open_v2_debug6$ chmod +x apply_patch.sh
      whycan@ubuntu:/opt/D1/tina_d1_open_v2_debug6$
      whycan@ubuntu:/opt/D1/tina_d1_open_v2_debug6$ ./apply_patch.sh
      
      **********************************
      Prepare Environment... **!!!ROOT Require!!!**
      **********************************
      
      Reading package lists... Done
      Building dependency tree
      Reading state information... Done
      build-essential is already the newest version (12.4ubuntu1).
      bzr is already the newest version (2.7.0+bzr6622-10).
      flex is already the newest version (2.6.4-6).
      gawk is already the newest version (1:4.1.4+dfsg-1build1).
      libxml-parser-perl is already the newest version (2.44-2build3).
      cvs is already the newest version (2:1.12.13+real-26).
      quilt is already the newest version (0.63-8.2).
      git is already the newest version (1:2.17.1-1ubuntu0.12).
      lib32ncurses5 is already the newest version (6.1-1ubuntu1.18.04).
      lib32ncurses5 set to manually installed.
      lib32stdc++6 is already the newest version (8.4.0-1ubuntu1~18.04).
      lib32z1 is already the newest version (1:1.2.11.dfsg-0ubuntu2.2).
      lib32z1-dev is already the newest version (1:1.2.11.dfsg-0ubuntu2.2).
      libncurses5-dev is already the newest version (6.1-1ubuntu1.18.04).
      libssl-dev is already the newest version (1.1.1-1ubuntu2.1~18.04.20).
      libstdc++6 is already the newest version (8.4.0-1ubuntu1~18.04).
      unzip is already the newest version (6.0-21ubuntu1.1).
      xsltproc is already the newest version (1.1.29-5ubuntu0.3).
      zlib1g-dev is already the newest version (1:1.2.11.dfsg-0ubuntu2.2).
      libc6:i386 is already the newest version (2.27-3ubuntu1.6).
      libstdc++6:i386 is already the newest version (8.4.0-1ubuntu1~18.04).
      ecj is already the newest version (3.16.0-1~18.04).
      mercurial is already the newest version (4.5.3-1ubuntu2.2).
      subversion is already the newest version (1.9.7-4ubuntu1.1).
      You might want to run 'apt --fix-broken install' to correct these.
      The following packages have unmet dependencies:
       whoopsie : Depends: libwhoopsie0 (= 0.2.62ubuntu0.5) but 0.2.62ubuntu0.6 is to be installed
      E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
      
      **********************************
      Apply T113 Patch...
      ***********************************
      
      0001-add-t113-platform-to-d1-h-sdk.patch:43672: trailing whitespace.
      
      0001-add-t113-platform-to-d1-h-sdk.patch:43727: trailing whitespace.
              cd-gpios = <&pio PF 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
      0001-add-t113-platform-to-d1-h-sdk.patch:44036: trailing whitespace.
          sb_detect_type = <0x1>;
      0001-add-t113-platform-to-d1-h-sdk.patch:44261: trailing whitespace.
      
      0001-add-t113-platform-to-d1-h-sdk.patch:44285: trailing whitespace.
              fb0_buffer_num           = <1>;
      error: device/config/chips/t113/bin/boot0_nand_sun8iw20p1.bin: already exists in working directory
      error: device/config/chips/t113/bin/boot0_sdcard_sun8iw20p1.bin: already exists in working directory
      error: device/config/chips/t113/bin/boot0_spinor_sun8iw20p1.bin: already exists in working directory
      error: device/config/chips/t113/bin/dsp0.bin: already exists in working directory
      error: device/config/chips/t113/bin/fes1_sun8iw20p1.bin: already exists in working directory
      error: device/config/chips/t113/bin/optee_sun8iw20p1.bin: already exists in working directory
      error: device/config/chips/t113/bin/sboot_sun8iw20p1.bin: already exists in working directory
      error: device/config/chips/t113/bin/u-boot-spinor-sun8iw20p1.bin: already exists in working directory
      error: device/config/chips/t113/bin/u-boot-sun8iw20p1.bin: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource.ini: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat0.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat1.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat10.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat2.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat3.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat4.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat5.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat6.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat7.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat8.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bat9.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/battery.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/battery_charge.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/bempty.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bat/low_pwr.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/bootlogo.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/fastbootlogo.bmp: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/font24.sft: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/font32.sft: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/wavefile/default.awf: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/wavefile/default_5_8.awf: already exists in working directory
      error: device/config/chips/t113/boot-resource/boot-resource/wavefile/vcom.bin: already exists in working directory
      error: device/config/chips/t113/configs/default/BoardConfig.mk: already exists in working directory
      error: device/config/chips/t113/configs/default/BoardConfig_nor.mk: already exists in working directory
      error: device/config/chips/t113/configs/default/boot_package.cfg: already exists in working directory
      error: device/config/chips/t113/configs/default/boot_package_nor.cfg: already exists in working directory
      error: device/config/chips/t113/configs/default/default.awlic: already exists in working directory
      error: device/config/chips/t113/configs/default/diskfs.fex: already exists in working directory
      error: device/config/chips/t113/configs/default/dragon_toc.cfg: already exists in working directory
      error: device/config/chips/t113/configs/default/env.cfg: already exists in working directory
      error: device/config/chips/t113/configs/default/env_burn.cfg: already exists in working directory
      error: device/config/chips/t113/configs/default/env_dragon.cfg: already exists in working directory
      error: device/config/chips/t113/configs/default/fit-image.its: already exists in working directory
      error: device/config/chips/t113/configs/default/image.cfg: already exists in working directory
      error: device/config/chips/t113/configs/default/image_linux.cfg: already exists in working directory
      error: device/config/chips/t113/configs/default/image_nor.cfg: already exists in working directory
      error: device/config/chips/t113/configs/default/parameter.fex: already exists in working directory
      error: device/config/chips/t113/configs/default/sys_partition.fex: already exists in working directory
      error: device/config/chips/t113/configs/default/sys_partition_nor.fex: already exists in working directory
      error: device/config/chips/t113/configs/default/sysrecovery.fex: already exists in working directory
      error: device/config/chips/t113/configs/default/version_base.mk: already exists in working directory
      error: device/config/chips/t113/configs/nezha/BoardConfig.mk: already exists in working directory
      error: device/config/chips/t113/configs/nezha/board.dts: already exists in working directory
      error: device/config/chips/t113/configs/nezha/env.cfg: already exists in working directory
      error: device/config/chips/t113/configs/nezha/linux: already exists in working directory
      error: device/config/chips/t113/configs/nezha/linux-5.4/board.dts: already exists in working directory
      error: device/config/chips/t113/configs/nezha/linux-5.4/config-5.4: already exists in working directory
      error: device/config/chips/t113/configs/nezha/linux-5.4/config-5.4-bak: already exists in working directory
      error: device/config/chips/t113/configs/nezha/linux-5.4/config-5.4-mem-optimize: already exists in working directory
      error: device/config/chips/t113/configs/nezha/sys_config.fex: already exists in working directory
      error: device/config/chips/t113/configs/nezha/sys_partition.fex: already exists in working directory
      error: device/config/chips/t113/configs/nezha/uboot-board.dts: already exists in working directory
      error: device/config/chips/t113/tools/cardscript.fex: already exists in working directory
      error: lichee/brandy-2.0/spl/board/sun20iw1p1/sboot.mk: already exists in working directory
      error: lichee/brandy-2.0/spl/board/sun8iw20p1/Makefile: already exists in working directory
      error: lichee/brandy-2.0/spl/board/sun8iw20p1/board.c: already exists in working directory
      error: lichee/brandy-2.0/spl/board/sun8iw20p1/clock.c: already exists in working directory
      error: lichee/brandy-2.0/spl/board/sun8iw20p1/common.mk: already exists in working directory
      error: lichee/brandy-2.0/spl/board/sun8iw20p1/fes.mk: already exists in working directory
      error: lichee/brandy-2.0/spl/board/sun8iw20p1/mmc.mk: already exists in working directory
      error: lichee/brandy-2.0/spl/board/sun8iw20p1/nand.mk: already exists in working directory
      error: lichee/brandy-2.0/spl/board/sun8iw20p1/sboot.mk: already exists in working directory
      error: lichee/brandy-2.0/spl/board/sun8iw20p1/spinor.mk: already exists in working directory
      error: patch failed: lichee/brandy-2.0/spl/drivers/Makefile:44
      error: lichee/brandy-2.0/spl/drivers/Makefile: patch does not apply
      error: lichee/brandy-2.0/spl/drivers/dram/sun20iw1p1/libchipid: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/dram/sun8iw20p1/Makefile: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/dram/sun8iw20p1/libchipid: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/mmc/sun8iw20p1/Makefile: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/mmc/sun8iw20p1/mmc.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/mmc/sun8iw20p1/mmc.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/mmc/sun8iw20p1/mmc_bsp.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/mmc/sun8iw20p1/mmc_bsp.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/mmc/sun8iw20p1/mmc_def.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/Makefile: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand/adv_NF_read.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand/basic_nf_read.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/Makefile: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nand_common.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nand_for_boot0/bsp_nand.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nand_for_boot0/nand_for_boot0.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nand_for_boot0/nand_for_boot0.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nand_for_boot0/osal/nand_osal_boot0.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/include/nand_drv_cfg.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/include/nand_format.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/include/nand_logic.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/include/nand_physic.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/include/nand_scan.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/include/nand_simple.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/include/nand_type.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/include/nfc.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/src/nand_scan_for_boot.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/src/nand_simple_for_boot0.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/nfc_for_boot0/src/nfc_for_boot0.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_bsp/osal/nand_osal.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/nand_for_boot.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/spinand/spic.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/spinand/spic_op.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/spinand/spinand.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/spinand/spinand.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/spinand/spinand_basic_op.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/spinand/spinand_osal_boot0.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/nand/sun8iw20p1/spinand/spinand_osal_boot0.h: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/secure/Makefile: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/secure/ce.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/secure/ce_2.1.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/secure/ce_2.3.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/secure/efuse.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/secure/smc.c: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/secure/spc.c: already exists in working directory
      error: lichee/brandy-2.0/spl/include/arch/clock_sun8iw20.h: already exists in working directory
      error: lichee/brandy-2.0/spl/include/arch/efuse_sun8iw20.h: already exists in working directory
      error: lichee/brandy-2.0/spl/include/arch/sun8iw20p1/spinand_boot0.h: already exists in working directory
      error: lichee/brandy-2.0/spl/include/configs/sun8iw20p1.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/Makefile: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/main/Makefile: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/main/sboot_ceritf.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/main/sboot_ceritf.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/main/sboot_flash.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/main/sboot_flash.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/main/sboot_head.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/main/sboot_main.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/main/sboot_toc.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/main/sboot_toc1.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/CRYPTO_malloc.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/Makefile: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/ASN1_INTEGER_get.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/ASN1_STRING_print.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/EVP_pkey.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/RSAPublicKey_it.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/X509_PUBKEY_it.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/a_int.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/asn1_get_field_ptr.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/asn1_item_ex_new.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/asn1_lock_free.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/asn1_new_free.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/asn1_put_object.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/asn1_string.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/d2i_pu.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/d2i_rsapublikey.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/i2a_ASN1_INTEGER.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/i2d_pu.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/stk.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/tasn_enc.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/x509_extension_it.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/x_bignum.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/asn1/x_x509.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bio/b_print.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bio/bio.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bio/bio_free.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bio/bio_lib.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bio/bio_read.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bio/bio_s_mem.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bio/bss_mem.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bn/bn_asm.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bn/bn_bn2dec.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bn/bn_lib.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bn/bn_print.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bn/bn_shift.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/bn/bn_word.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/err/err.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/external/openssl_ext.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/asn1.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/asn1_locl.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/asn1_mac.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/asn1t.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/bio.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/bio_lcl.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/bn.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/bn_lcl.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/buffer.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/conf.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/cryptlib.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/crypto.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/e_os2.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/ec.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/eng_int.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/engine.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/err.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/evp.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/evp_locl.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/ext_dat.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/lhash.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/myfunction.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/obj_dat.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/obj_mac.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/objects.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/opensslconf.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/opensslv.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/ossl_typ.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/pem.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/pkcs7.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/rand.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/rsa.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/safestack.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/sha.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/stack.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/store.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/symhacks.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/ui.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/x509.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/x509_ext.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/x509_v3.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/x509_vfy.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/include/openssl/x509v3.h: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/lhash/lh_retrieve.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/objects/obj_dat.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/rsa/rsa.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/x509/extension.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/x509/x509_ext.c: already exists in working directory
      error: lichee/brandy-2.0/spl/sboot/openssl/x509/x509_v3.c: already exists in working directory
      error: lichee/brandy-2.0/u-boot-2018/arch/arm/dts/sun8iw20p1-clk.dtsi: already exists in working directory
      error: lichee/brandy-2.0/u-boot-2018/arch/arm/dts/sun8iw20p1-common-board.dts: already exists in working directory
      error: lichee/brandy-2.0/u-boot-2018/arch/arm/dts/sun8iw20p1-soc-system.dts: already exists in working directory
      error: lichee/brandy-2.0/u-boot-2018/configs/sun8iw20p1_defconfig: already exists in working directory
      error: lichee/brandy-2.0/u-boot-2018/configs/sun8iw20p1_nor_defconfig: already exists in working directory
      error: lichee/brandy-2.0/u-boot-2018/configs/sun8iw20p1_uart3_defconfig: already exists in working directory
      error: patch failed: lichee/brandy-2.0/u-boot-2018/drivers/clk/sunxi/Makefile:1
      error: lichee/brandy-2.0/u-boot-2018/drivers/clk/sunxi/Makefile: patch does not apply
      error: lichee/brandy-2.0/u-boot-2018/drivers/clk/sunxi/clk-sun8iw20.c: already exists in working directory
      error: lichee/brandy-2.0/u-boot-2018/drivers/clk/sunxi/clk-sun8iw20.h: already exists in working directory
      error: lichee/brandy-2.0/u-boot-2018/drivers/clk/sunxi/clk-sun8iw20_tbl.c: already exists in working directory
      error: lichee/linux-5.4/arch/arm/boot/dts/sun8iw20p1.dtsi: already exists in working directory
      error: package/allwinner/alsa-conf-aw/files/t113/t113-nezha/asound.conf: already exists in working directory
      error: target/allwinner/t113-common/BoardConfigCommon.mk: already exists in working directory
      error: target/allwinner/t113-common/base-files/etc/config/smartlinkd: already exists in working directory
      error: target/allwinner/t113-common/base-files/etc/fw_env.config: already exists in working directory
      error: target/allwinner/t113-common/base-files/etc/inittab: already exists in working directory
      error: target/allwinner/t113-common/modules.mk: already exists in working directory
      error: target/allwinner/t113-common/t113-common.mk: already exists in working directory
      error: target/allwinner/t113-nezha/BoardConfig.mk: already exists in working directory
      error: target/allwinner/t113-nezha/Makefile: already exists in working directory
      error: target/allwinner/t113-nezha/TinaProducts.mk: already exists in working directory
      error: target/allwinner/t113-nezha/base-files/etc/bluetooth/bluetooth.json: already exists in working directory
      error: target/allwinner/t113-nezha/base-files/etc/bluetooth/bt_init.sh: already exists in working directory
      error: target/allwinner/t113-nezha/base-files/etc/config/fstab: already exists in working directory
      error: target/allwinner/t113-nezha/base-files/etc/rc.local: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/bin/setusbconfig: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/asound.conf: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/S00mpp: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/S01logging: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/S10udev: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/S11dev: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/S20urandom: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/S40network: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/S41netparam: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/S50telnet: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/S50usb: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/load_script.conf: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/rc.final: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/rc.modules: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/rc.preboot: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/init.d/rcK: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/inittab: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/profile: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/swupdate_public.pem: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/udhcpd.conf: already exists in working directory
      error: target/allwinner/t113-nezha/busybox-init-base-files/etc/wpa_supplicant.conf: already exists in working directory
      error: target/allwinner/t113-nezha/defconfig: already exists in working directory
      error: target/allwinner/t113-nezha/modules.mk: already exists in working directory
      error: target/allwinner/t113-nezha/t113_nezha.mk: already exists in working directory
      error: target/allwinner/t113-nezha/vendorsetup.sh: already exists in working directory
      error: lichee/brandy-2.0/spl/drivers/dram/sun8iw20p1/libdram: already exists in working directory
      
      **********************************
      Fix Patch Error...
      **********************************
      
      
      **********************************
      Add Toolchains...
      **********************************
      
      --2022-09-02 17:15:23--  https://github.com/YuzukiHD/TinaAddons/releases/download/1.0/arm-toolchains.tar.gz
      Resolving github.com (github.com)... 140.82.114.4, 13.250.177.223
      Connecting to github.com (github.com)|140.82.114.4|:443... connected.
      HTTP request sent, awaiting response... 302 Found
      Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/531362264/4838a138-8165-46cc-aba3-c3bebf096ea2?X-Amz-                                                     Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220902%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220902T091445Z&X-Am                                                     z-Expires=300&X-Amz-Signature=7f75a1254a58507cde730ad567a10050809db15fecda14ce3b4403706d325a85&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&                                                     repo_id=531362264&response-content-disposition=attachment%3B%20filename%3Darm-toolchains.tar.gz&response-content-type=application%2Foctet-st                                                     ream [following]
      --2022-09-02 17:15:24--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/531362264/4838a138-8165-46cc-aba3-c3be                                                     bf096ea2?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220902%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=202209                                                     02T091445Z&X-Amz-Expires=300&X-Amz-Signature=7f75a1254a58507cde730ad567a10050809db15fecda14ce3b4403706d325a85&X-Amz-SignedHeaders=host&actor                                                     _id=0&key_id=0&repo_id=531362264&response-content-disposition=attachment%3B%20filename%3Darm-toolchains.tar.gz&response-content-type=applica                                                     tion%2Foctet-stream
      Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.110.133, 185.199.108.133, 185.199.111.133
      Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.110.133|:443... connected.
      HTTP request sent, awaiting response... 200 OK
      Length: 104821076 (100M) [application/octet-stream]
      Saving to: ‘arm-toolchains.tar.gz’
      
      arm-toolchains.tar.gz                            100%[=======================================================================================================>]  99.96M  1.91MB/s    in 52s
      
      2022-09-02 17:16:21 (1.93 MB/s) - ‘arm-toolchains.tar.gz’ saved [104821076/104821076]
      
      
      **********************************
      Done, Start Your Tina Linux
      **********************************
      
      whycan@ubuntu:/opt/D1/tina_d1_open_v2_debug6$
      whycan@ubuntu:/opt/D1/tina_d1_open_v2_debug6$
      
      

      好像没成功,这是什么原因呢?

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • (全开源)D1s排针版本资料汇总

      购买链接:https://item.taobao.com/item.htm?id=724377865732

      原理图:SCH_D1s_WhycanPI_C3.zip (立创EDA格式)

      PCB:PCB_D1s_WhycanPI_C3.zip (立创EDA格式)

      pdf原理图:SCH_D1s_WhycanPI_C3_2023-10-17.pdf

      D1s测试固件:tina_d1s-whycanpic3_uart4_20230702.7z(不支持线刷)
        
      T113-S3测试固件:tina_t113-whycanpic3_uart4_TF卡固件,支持线刷.img

      D1s测试固件:tina_d1s-whycanpic3_uart4_20231208TF卡固件,支持线刷.img

      此处下载:whycanpi_handheld_c3_m2 SDK包

      source build/envsetup.sh
      source 
      lunch d1s_whycanpic3-tina
      make
      pack
      

      SDK补丁:d1s_t113s3_patch_20240102.tar

      发布在 MR Series
      whycan
      whycan晕哥
    • T113-S3 / V853 安全固件学习记录

      参考1:tina-linux-安全启动-开发指南.pdf

      参考2:全志平台Tina系统安全设备验证rotpk是否烧写成功的方法

      参考3:安卓车机Secure boot原理与实现

      鸣谢 @mengxp 大佬不吝赐教.

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 【开源开发板】D1s-Nezha开发板全全开源上架(内含购买链接和全部软硬件资料)

      本楼是资料汇总楼:

      Github仓库:https://github.com/YuzukiHD/Nezha-D1s

      硬件资料

      以下硬件资料在 CERN Open Hardware Licence Version 2 - Strongly Reciprocal 协议下开源

      原理图:SCH_D1s Nezha_2022-04-09.pdf
      LCEDA专业版工程文件:Nezha D1s EVB_2022-04-18.zip
      OSHWHub开源地址:Nezha D1s
      Gerber图形:Gerber_PCB1_2022-04-18.zip
      3D Step:3D_PCB1_2022-04-09.step
      全层DXF:DXF_PCB1_2022-04-09.dxf
      BOM Lists:bom_nezha_d1s.xls
      坐标点位:PickAndPlace_Nezha_D1s_2022-04-09.xlsx
      贴片图:贴片图
      PCB质量保证书:quality.pdf

      软件资料

      D1s在线文档:https://d1s.docs.aw-ol.com
      D1s硬件设计指南:D1s硬件设计指南V1.5.pdf
      SDK下载方法:https://d1s.docs.aw-ol.com/study/study_2getsdk/
      测试固件(请连接屏幕使用):tina_d1s-nezha_480*272_RGB_uart0.7z
      板级配置文件:https://github.com/Tina-Linux/tina-d1s-nezha <- 过时了,用下面的SDK

      配套SDK

      SDK百度云下载:链接:https://pan.baidu.com/s/1MF8HIJHuEG71NxOY1riBZw 提取码:awol
      NOR 支持包:d1s-nezha-nor.tar.gz
      NAND 支持包:d1s-nezha-nand.tar.gz

      其他资料

      Yuzuki个人立创硬件开源平台主页:https://oshwhub.com/GloomyGhost
      全志在线开发者论坛:https://bbs.aw-ol.com/
      信息更新及资料汇总贴:https://bbs.aw-ol.com/topic/1257/

      淘宝购买链接:https://item.taobao.com/item.htm?id=672608097923

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: 一个补丁,让D1-H的SDK支持T113芯片

      @zhice-yang 在 一个补丁,让D1-H的SDK支持T113芯片 中说:

      楼主是用什么flash

      华邦的 W25N01

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • LVGL|lvgl教程之巧用图层(layer)编写模态对话框 (转载)

      原帖地址: LVGL|lvgl教程之巧用图层(layer)编写模态对话框

      什么是对话框
      模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框关闭。一般来说,对话框分为模态对话框和非模态对话框两种。

      二者的区别在于当对话框打开时,是否允许用户进行其他对象的操作。

      对话框的分类
      对话框分类无模式对话框和模式对话框。

      无模式对话框
      这是一种非强制回应的对话框,用于向用户请求非必须资料。即可以不理会这种对话框或不向其提供任何信息而继续进行当前工作,所以窗口均可打开并处于活动状态或是获得焦点(人机交互热点)。一类无模式对话框表现为工具栏,比如设置用于文字颜色的设置。查找/替换对话框可算是无模式对话框,也可以设计为工具栏。1

      模式对话框
      这种对话框强制要求用户回应,否则用户不能再继续进行操作,直到与该对话框完成交互。这种对话框设计用于程序运行必须停下来,直到从用户获得一些额外的信息,然后才可以继续进行的操作,或可能只想确认使用者想要进行一项具有潜在危险性的操作。有模式对话框一般被视为坏的设计方案,因为以一种用户不喜欢看到方式出现,或是被习惯不去注意对话框提示的用户忽略,导致无法避免危险操作。1

      有模式对话框一般分为系统级和应用程序级。系统级对话框出现时,用户在完成与这个对话框交互之前不能进行其它操作,比如关机对话框、Windows Vista 中的 UAC。应用程序级的则只对它的母程序有所限制,但可能在允许运行多个实际的不同软件中有不同的表现:只限定其中的一个程序窗口使之无法操作或全部限定。1

      lvgl上的解决方案
      两种对话框模式简单而言就是:

      无模式对话框:停留在屏幕上,随时可用,并且允许进行其他操作
      模式对话框:要求用户在继续程序之前做出响应
      在lvgl上怎么实现这种效果呢?
      非模式对话框很简单,直接让窗口弹出即可,用户可操作弹出的对话框也可以继续其他操作。
      lvgl上有两个特殊的图层,通过这两个图层我们可以实现模式对话框的效果。

      发布在 GUI
      whycan
      whycan晕哥
    • 回复: Gaviar Handheld (小志掌機)

      @steward 在 Gaviar Handheld (小志掌機) 中说:

      @whycan
      暈哥, 記得左右兩邊要加振動馬達, 然後 UART 的 PCB 腳位記得灌孔~😊

      感谢司徒大佬提出的建议,对于这个打算开源的游戏机版本本着尽量易于制作,易于复刻的理念设计,因此:

      功放的控制部分直接上拉 默认开启,此处要修改为gpio控制,需要添加电平转换。所以简化了控制部分!

      2,关于sd卡的上拉电阻问题,D1S芯片与上一代F1S100不同,其内部上拉电阻有3个等级可选,体现在设备树对pin 驱动能力选择上,因此 适配不同的上拉电阻已经可以进行有效的阻抗匹配。故无需额外添加上拉电阻,

      关于按键的硬件消抖问题,设计之初已经考虑到了,但是为了简化某些软件设计,添加了全按键的硬件消抖,这个在实际使用中可以选择不焊接这些电阻电容,且论坛发现过适配gpio key时选择内部上拉失效的问题。所以为了保险起见此次板子焊接了这些硬件消抖电路。

      添加震动电机是个很好的想法,但是这会引起额外的电能消耗,不利于续航,但是本着娱乐精神,已经添加了电机驱动,将在下个版本适配。

      至于串口debug焊盘 穿孔问题,因为此处中间层及底层有走线,打孔会让走线变得困难。且游戏机调试好正式使用时 debug串口几乎用不到,所以仅引出了2.54mm间距的焊盘,当然 这些焊盘上可以焊接 贴片式2.54mm插针。

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: 用buildroot自带的genimage把tina dragon的活干完,让dragon无活可干。

      经过一番研究,加上学习韦老师的 buildroot 帖子, 研究出了一个genimage打包方法,可以打包成烧录二进制文件,用 dd 命令直接写TF卡即可。

      发布在 MR Series
      whycan
      whycan晕哥
    • 天下苦8723DS久矣,给兄弟们搞了点全志XR829的芯片

      天下苦8723DS久矣,到处都搞不到芯片,而且还贵。据了解是几个做IoT的大客户包圆了。
      全志其实有替代品,XR829,也是支持2.4G wifi/BT,而且原厂SDK是配好驱动,跟全志芯片的适配度高,D1哪吒开发板、R329开发板用的就是XR829.
      不过XR829 3000一捆,很多代理商不愿意拆包,找了好久终于找到一家愿意拆包的,买了100片,拆出来给大家玩,回头放淘宝链接,9.9交个朋友。
      *真的交个朋友,主要是方便用全志芯片的小伙伴做开发板用,量产的话可以找我帮联系拆包的好心代理商。

      淘宝链接:https://item.taobao.com/item.htm?id=670266183503

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: (全开源)小志掌機Gaviar Handheld 资料汇总

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: 【RISC-V & LVGL】现象级爆红的开源显示框架——LVGL究竟蕴藏怎样的魔力

      作者已经把 X-Track码表程序移植到 D1s,很快就可以看到 RISC-V 版本了。

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: 请问下,T113-S3TinaLinux,如何新增文件到根文件系统中

      SDK的这个目录:

      package/busybox-init-base-files/busybox-init-base-files

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: (全开源)小志掌機Gaviar Handheld 资料汇总

      a5faa75f-919d-48d2-a555-5b6572d63695-image.png

      显示屏卡位还是有点问题,修改设计文件,再打五套外壳试一试。

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: 芒果派麻雀到手试玩

      @jr_online
      还要配置 uboot-board.dts。
      linux的驱动和 board.dts 暂时可以不用配置。

      重新编译boot命令: mboot

      发布在 MR Series
      whycan
      whycan晕哥
    • 在wsl下开发T113的主线linux(最新gcc+awboot+最新kernel+最新buildroot)

      转载地址:在wsl下开发T113的主线linux(最新gcc+awboot+最新kernel+最新buildroot)
      作者:epoko

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 【羊毛福利】凡在哇酷淘店购买V853开发板者在社区分享开发经验,最高可返还全部购买费用

      即日(2022年7月7日)起凡在哇酷淘店购买V853开发板并分享开发经验的伙伴,可以获得晕哥给出的现金红包奖励。
      fcd24524-b595-464b-9b07-156d5fee16d5-image.png
      奖励标准:
      1.分享开箱评测文章或视频发到全志在线论坛及B站——红包奖励50-200元
      评判维度:
      (1)图片、视频的清晰度;
      (2)文字说明清晰、准确;
      (3)其他丰富有趣内容加分。
      案例分享:
      (1)奖励200元案例参考:
      《带大家来一次全志V853开发板沉浸式开箱!》
      https://bbs.aw-ol.com/topic/1695/share/1
      https://www.bilibili.com/video/BV1xa411x72p
      (2)奖励100元案例参考:
      《【V853开发板试用】nihui大佬的也收到板子了》
      https://bbs.aw-ol.com/topic/1710/share/1
      https://www.bilibili.com/video/BV1UB4y1W7Vy

      2.分享开发经验到全志在线论坛或个人博客——红包奖励50-300元
      内容包括:
      (1)编译、烧写、开发踩坑及填坑经验;
      (2)性能评测;
      (3)驱动、外设移植经验;
      (4)demo开发分享
      案例分享:
      (1)奖励300元案例参考:
      《V853开发板填坑记》
      https://bbs.aw-ol.com/topic/1658/share/2
      (2)奖励200元案例参考:
      《V853 NPU 踩坑记录》
      https://bbs.aw-ol.com/topic/1641/share/1

      3.完成大demo项目并分享——红包奖励300元-1999元
      案例参考:
      (1)奖励1999元案例参考:
      《火影忍者结印手势识别器——人人都是copy ninja》
      https://bbs.aw-ol.com/topic/1712/share/1

      (2)奖励800元案例参考:
      《AI生成山水画,每一幅都是世间独一无二》
      https://bbs.aw-ol.com/topic/1715/share/1

      (3)奖励300元案例参考:
      《我做个RTSP推流demo吧》
      https://bbs.aw-ol.com/topic/1705/share/1
      (这几个demo还没完全最终输出成果,需要完成并输出开发过程、demo估固件、相关源码或patch后才能获取奖励)

      活动补充说明:

      • 奖励申请请添加微信:whycan_cn,晕哥将以现金红包的形式直接发给您
      • 最高可退回金额为开发板的购买费用
      • 2022年7月7日前折扣购买开发板的顾客及免费赠送的朋友不参与该活动,但是如果您分享的内容特别好晕哥仍会给您发红包
      • 可以借鉴前人的开发经验推陈出新,但是站在巨人的肩膀上只是为了站得更高,也要有自己的创新
      • 不允许抄袭,否则将取消资格,圈子很小,请大家做过一个有素质的开发者
      发布在 V Series
      whycan
      whycan晕哥
    • 回复: 【萌新入门】如何编写一个应用程序,调用Tina Linux提供的GPIO驱动,实现某个GPIO脚的电平周期反转

      380d8c73-6d32-4d48-97fc-3efc1c4bf341-image.png

      建议先按裸奔流程来, 可以用对照芯片手册,设置这几个寄存器,就可以驱动对应的gpio了。

      linux shell 配合 devmem 命令可以直接操作寄存器。

      如果自己DIY GPIO 就按韦老师教程的流程,然后用函数操作上面寄存器即可。

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: 一个补丁,让D1-H的SDK支持T113芯片

      @zhice-yang

      29ed5751-7897-45f9-9a24-e2323ecb1b8e-dd34811f1f79296ce1b02261efcce3d.jpg

      在这个板子无缝运行

      https://item.taobao.com/item.htm?id=672608097923

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • V851s最小系统板(啥资源也没有)安排上了

      bfc81a35-4c84-4e81-950e-250378ef98f3-ef6110bbf9f697cfd0da9214385b346.jpg

      发布在 V Series
      whycan
      whycan晕哥
    • 回复: 分享一种D1-H哪吒开发板的一种玩法

      8a437b0657d4dcbcf61aeb7d9a6e74a.jpg e1fc1d962d741330ae57c8fa768614a.jpg 706895a0e166b68a5e8af15a6a149ac.jpg

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: 一个补丁,让D1-H的SDK支持T113芯片

      @zhice-yang
      用对比软件对比上面两个的日志看看。

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 【硬核干货】V853 Sample MPP软件包,MPP 摄像头测试包

      951573ce-5f30-4662-8a0e-14bfac1fc9e7-image.png

      按这个帖子 https://v853.docs.aw-ol.com/npu/npu_runtime/ 编译打包成功!

      命令行运行:sample_virvi2vo

      457eab87-fd03-4662-b8a4-5d1b8c9920a0-a7c64be550f4737954a522838de00b5.jpg

      发布在 V Series
      whycan
      whycan晕哥
    • 回复: D1S 调试串口uart3,如何配置,需修改哪些文件

      全志芯片Tina Linux 修改 UART 引脚、UART端口
      https://bbs.aw-ol.com/topic/1673

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: 在V853开发板上如何获取camera的一帧图像

      sdk里面有一个 camerademo,可以抓图。

      发布在 V Series
      whycan
      whycan晕哥
    • 回复: 【开源开发板】D1s-Nezha开发板全全开源上架(内含购买链接和全部软硬件资料)

      5寸液晶屏(电阻触摸): https://item.taobao.com/item.htm?id=624199044282

      5寸液晶屏(电容触摸): https://item.taobao.com/item.htm?id=625081551655

      (仅负责推荐,没有利益关系)

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: 全志R128开发板来啦!RISC-V C906 + Arm M33有机结合,支持 Wi-Fi/BT

      e73976d8-f454-494c-ba3d-dcf2f884d581-f2e0f643d2f74654391a97fac3e1736.jpg

      5044c1c7-cae3-40fb-8c27-5577e57c94f7-c887e7ca2ec9f9a4bf20943c77a46ef.jpg

      已加入豪华套餐!

      发布在 A Series
      whycan
      whycan晕哥
    • 回复: 【开源开发板】D1s-Nezha开发板全全开源上架(内含购买链接和全部软硬件资料)

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: 【新人必读】如何在论坛高效地提技术问题?

      How-To-Ask-Questions

      bbs提问的艺术

      现在互联网发达的时代,大家都会有很多的社交群,BBS, 博客等,大家的初心可能都是想交流的,遇到点问题然后就可以在群里问。

      然而很多时候你问的问题没人回答;也有时候问了半天还是没找到答案;也有时候当你把问题发出来了,别人正准备回答你的时候,你说知道了;然后刚开始群里很活跃,慢慢的就死了。

      其实以上问题,都是大家不想看到的,然而在群里提问是我们加入群的初心,但是很多人做不好,最终导致你的问题无人解答,群慢慢的失去意义。

      我将今天的问题分成以下三部分进行介绍:

      • 提问之前
      • 提问之时,怎么提问注意事项
      • 注意事项

      提问之前

      在群里提问之前首先我们应该做好功课,看自己是否完成以下步骤,否则你的提问将一塌糊涂,大概率得不到想要 的答案。

      1. 尝试自己解决
      2. 不能自己解决应该准备的哪些

      尝试自己解决

      尝试自己解决是非常重要的一步,这也是我们能否经过这个问题能够成长的关键所在。

      1. 通过搜索引擎搜索: baidu 或者 google(推荐),搜索结果中前三页如果找不到你想要的信息,就进行下一步吧。对于成熟的开源项目,你遇到的问题,很可能别人也遇到过。这时通过 Google、StackOverflow 等网站的搜索服务,可以帮你快速定位并解决问题。永远记住,地球上的你并不孤单,包括你遇到的问题。
      2. 查阅手册/文档: 确保自己阅读过至少一次官方文档。这样在遇到问题时,如果能回忆起只言片语,就可以再去读一遍相关文档,问题往往也就解决了。
      3. 查阅社区/论坛: 阅读常见问题文件(FAQ)或者开源项目的 issue,或者论坛(类似 react china)
      4. 询问朋友: 如果你使用的开源软件,在朋友圈或同事圈里也有人使用,那么抬起你的脚、或拿起你的电话,真挚诚恳的探讨不会遭遇拒绝,而会增进友谊。不要犹豫,你的内心渴望面对面交流,你的朋友也是。
      5. 自检并不断测试: 试自己检查或试验以找到答案。
      6. 阅读源码(这步非必须): 如果你是程序开发者,尽量尝试阅读源码以找到答案。

      经过以上 6 步或者 5 步你都无法解决遇到的问题,那么你确实针对这个问题能力有限,准备去群里请教了,那么在尝试自己解决之后无果,应该做哪些准备呢?

      不能自己解决应该准备的哪些

      1. 一定要明白自己想要问什么问题:不能自己都说不清自己想要问什么问题,那么群里提问你也问不出什么来。
      2. 梳理准备您的问题:要说明之前你都干了些什么。
      3. 要用言简意赅的语言:这个是我们作为职场一个必备的技能,说重点,言简意赅。

      怎么提问

      抱着平和对等的心态,找到合适的途径后,就得静下心来将遇到的问题写成文字。书写文字不是一件简单的事情,我们可以从遵循一些简单的规则开始。

      用词准确,问题明确

      标题要简洁清晰,要言之有物。

      Bad:救命呀/急/跪求,遇到了一个 react 问题,xxx 组件渲染不出来
      Good:在使用 xxx 版本的 react ,我操作了 xxx,也写了 xxx,但是 xxx 组件渲染不出来

      一个好标题范例是 目标 —— 差异式的描述,许多技术支持组织就是这样做的。在目标部分指出是哪一个或哪一组东西有问题,在差异部分则描述与期望的行为不一致的地方。

      描述清晰,信息充足

      1. 准确有效的信息: 描述事实,而不是猜测,如果你想给出你的猜测,一定要先描述事实,给你的猜测一些证据,不然就不要猜测。
      2. 问题表现/内容: 按照时间顺序列出问题症状。问题发生前的一系列操作,往往就是对找出问题最有帮助的线索。因此,你的说明里应该包含你的操作步骤,以及机器和软件的反应,直到问题发生。在命令行处理的情况下,提供一段操作记录(例如运行脚本工具所生成的),并引用相关的若干行(如 20 行)记录会非常有帮助。
      3. 简单的做过什么尝试: 在描述你做过什么尝试的时候,简单的你描述你做了哪些尝试就行,为什么要这么做其实不是那么重要。

      如果你想弄清楚如何做某事(而不是报告一个 Bug),在开头就描述你的目标,然后才陈述重现你所卡住的特定步骤。

      经常寻求技术帮助的人在心中有个更高层次的目标,而他们在自以为能达到目标的特定道路上被卡住了,然后跑来问该怎么走,但没有意识到这条路本身就有问题。结果要费很大的劲才能搞定。

      玉伯有句话是这么说的:

      提问者选择的路本身就是一条崎岖之路,对于要解决的问题,实际上有更好的方式。这种情况下,描述清楚目标,讲清楚要干什么非常重要。

      • 想要问到什么:提供建议?发送一段代码?检查你的补丁或者别的?在群里经常会出现这种情况,当某个人发了一段文字,另外的人说:你想问什么?

      所以我们在问问题的时候一定要把你想要问到什么,这个目标想清楚。

      • 提供尽量多的信息:尽量提供可重现的例子,你可以在 jsbin)、runjs、jsfiddle)、codepen 等这些地方提供一个可重现的例子。即使你是一个很大的项目,想办法把你需要验证的点提取出来,如果确实无法提取,就贴一些代码,出现问题那行代码周围的代码(周围的相关代码都要,因为你可能觉得不是他们的问题,但也许就是,不然你觉得的都是对的,你就不会不知道怎么解决了)。

      避免一些毫无意义的问题

      经常会有人问一些毫无意义的问题,比如这样的:

      Bad:有没有人会xxx?
      Bad:有没有人在?
      Bad:谁能帮我解决一个问题?

      面对这种问题,别人就很难预估你这个问题需要解决多久,也很难判断自己是否能解决这个问题,如果他回答了你,意味着你就是有空而且很在行,所以他还是选择不出声。这个就跟微信私聊的时候说:”在吗?“ 这种一个意思。

      Bad: 什么是 JavaScript?

      这种问题也是,很明显通过搜索引擎就能搞定的,要是下次还有这种问题,你就把这个图发给它。

      建议的问法:

      1. 有问题直接问。比如:ES6什么时候雄霸天下,前端什么时候一统江湖?
      2. 直接说场景:我在做xx端东西的时候,在 window 7 平台的 IE7 版本下遇到了左右不对齐问题,具体如图所示img,代码地址:xxx 在百度中找到的答案,试了之后还是有同样的问题。请有空的同学帮我看看是什么问题?

      注意事项

      提前做好冷场的准备:也许别人在忙,也许这个问题太简单了,也许没人做过这块,如果冷场了,没人回答,赶紧换下一个群。
      谦虚,别人没有义务帮你解决问题,往往大牛的时间比你少,比你珍贵。
      没有一定的自学能力,问到问题就伸手的不适合玩这个。
      群唯一的作用就是:扯淡、交流、分享,以上几条为前提。

      转自: https://github.com/betaseeker/How-To-Ask-Questions

      发布在 灌水区
      whycan
      whycan晕哥
    • 回复: 【开源开发板】D1s-Nezha开发板全全开源上架(内含购买链接和全部软硬件资料)

      贴片图

      986bb80f-5de9-4216-a3f0-b0a89a9e5d62-Produce_DanZhi.SMT_Snapshot.Top.624896A_Y77.SMT2204100029.png

      渲染图(透明PNG)

      86c5fa52-6d7c-4f21-b4f0-768ca4082dba-Nezha D1s.11.png

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: linux是如何单步调试的啊?

      @kkkcxf

      SDK改 四五处,boot0,uboot,env.cfg,linux

      本站有其他soc修改的帖子,参考即可。

      发布在 灌水区
      whycan
      whycan晕哥
    • 回复: 动手让LVGL8带的Music-Demo音乐响起来(代码已上传)

      捋了一下,楼主用进程通讯的,先启动后台进程:

      mpv --quiet --no-terminal --no-video --idle=yes --term-status-msg= --input-ipc-server=/tmp/mpvsocket
      

      然后前台使用命令通讯

      装载文件:

      echo '{ "command": ["loadfile", "/mnt/hgfs/D/music/3.wav"] }' | socat - /tmp/mpvsocket
      

      暂停:

      echo '{ "command": ["set_property", "pause", true] }' | socat - /tmp/mpvsocket
      

      继续:

      echo '{ "command": ["set_property", "pause", false] }' | socat - /tmp/mpvsocket
      

      播放进度:

      echo '{ "command": ["get_property", "playback-time"] }' | socat - /tmp/mpvsocket
      

      获取当前播放文件名:

      echo '{ "command": ["get_property", "filename"] }' | socat - /tmp/mpvsocket
      

      获取总时长:

      echo '{ "command": ["get_property", "duration"] }' | socat - /tmp/mpvsocket
      

      剩余时长:

      echo '{ "command": ["get_property", "time-remaining"] }' | socat - /tmp/mpvsocket
      

      播放进度:

      echo '{ "command": ["get_property", "time-pos"] }' | socat - /tmp/mpvsocket
      

      文件信息:

      echo '{ "command": ["get_property", "filtered-metadata"] }' | socat - /tmp/mpvsocket
      

      设置音量:

      echo '{ "command": ["set_property", "volume", 80] }' | socat - /tmp/mpvsocket
      

      获取当前音量:

      echo '{ "command": ["get_property", "volume"] }' | socat - /tmp/mpvsocket
      

      绝对定位(180秒):

      echo '{ "command": ["seek", 180, "absolute"] }' | socat - /tmp/mpvsocket
      

      相对定位(往前180秒):

      echo '{ "command": ["seek", 180, "relative"] }' | socat - /tmp/mpvsocket
      

      添加到播放列表:

      echo '{ "command": ["loadfile", "/mnt/hgfs/D/music/08 初恋女.wav", "append"] }' | socat - /tmp/mpvsocket
      

      显示播放列表:

      echo '{ "command": ["get_property", "playlist"] }' | socat - /tmp/mpvsocket
      

      显示当前播放的音乐文件名:

      echo '{ "command": ["get_property", "media-title"] }' | socat - /tmp/mpvsocket
      

      显示播放列表音乐数量:

      echo '{ "command": ["get_property", "playlist-count"] }' | socat - /tmp/mpvsocket
      

      播放列表序号是2的歌曲:

      echo '{ "command": ["set_property", "playlist-pos", 2] }' | socat - /tmp/mpvsocket
      

      获取当前播放的歌曲在列表中的序号:

      echo '{ "command": ["get_property", "playlist-pos"] }' | socat - /tmp/mpvsocket
      

      获取工作目录:

      echo '{ "command": ["get_property", "working-directory"] }' | socat - /tmp/mpvsocket
      

      获取播放列表序号3的文件名:

      echo '{ "command": ["get_property", "playlist/3/filename"] }' | socat - /tmp/mpvsocket
      

      设置循环播放:

      echo '{ "command": ["set_property", "loop", true] }' | socat - /tmp/mpvsocket
      

      读取循环播放设置:

      echo '{ "command": ["get_property", "loop"] }' | socat - /tmp/mpvsocket
      

      更多使用方法,参考: https://man.archlinux.org/man/community/mpv/mpv.1.en

      发布在 GUI
      whycan
      whycan晕哥
    • 回复: V536开发板,AP6255模块起不来,帮看看什么问题

      @shzeng
      是的,你先量一下看是否低电平,如果本身已经3v3了,就可能不是这里问题了。

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 请问D1哪吒开发板能点亮诺基亚mipi dsi 1-lane 显示屏吗?

      8e07632bbdc5349dd5682cb6513cc8a.jpg

      9aa58abff2cf87f3d0e5d8fc6b87e95.jpg

      @lovexulu 太牛了,成功点亮!

      发布在 MR Series
      whycan
      whycan晕哥
    • 【新人必读】如何在论坛高效地提技术问题?

      提问之前先告知:
      ① 错误现象,提供完整的错误日志,是否能稳定重现,如何重现
      ② 提供芯片型号(D1,D1s),运行平台(tina linux,melis,longan),平台版本
      ③ 编译环境,如Ubuntu18.04 LTS

      如果问题已经解决:
      ① 请跟帖写上解决过程,方便后来到这里的朋友

      发布在 灌水区
      whycan
      whycan晕哥
    • 回复: 为 LVGL 添加截图/截屏功能(lv_100ask_screenshot)

      忙活半天,发现是 lvgl9 的新功能😰

      发布在 GUI
      whycan
      whycan晕哥
    • 回复: 自制V831小相机适配 i80 LCD 显示屏

      d52eac0d-e49a-4c96-b35b-bca94a603097-68b21c28937bbf1bfb28f8143c48677.jpg

      06ddf36f-99cd-4d2e-9de1-6e079c1d2234-1210c1d20eab4ab30238dcd262dee51.jpg

      51f0d476-3a9a-4cb7-a505-6cb4353b7006-af755c76a2811a2dc2269d8631ef96a.jpg

      跟着楼主认真学习!

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • D1s 目前的一些玩法:跑Ubuntu rootfs,显示图片,播放音频 (转载)

      目前D1的主线适配工作还在进行,D1和D1s暂且可以通过全志的tina Linux来体验和开发。Tina的资料比较少,但不影响我们探索有趣的玩法。运行各种软件是很基础的需求,而有一个包管理器可以免去构建和安装软件包的诸多麻烦。目前据我所知支持rv64软件源的主流发行版只有Debian和Ubuntu。首先就来通过chroot在D1s上启动一个带apt的Ubuntu环境!

      Ubuntu提供了预构建好的rootfs tarball, 出于D1s的资源考虑这里选择最小的Ubuntu base作为演示。也可以使用debootstrap定制自己的rootfs。
      rootfs 官方下载链接
      之后在烧好tina镜像的卡上新建一个ext4分区,然后把下载好的rootfs解压到此分区。
      插卡启动后,挂载该分区,我这里是mmcblk0p8。

      mkdir /mnt/sdd
      mount -t ext4 /dev/mmcblk0p8 /mnt/sdd
      chroot /mnt/sdd/
      

      chroot之后就在Ubuntu环境里了:

      75c6b2ee-c2e9-431b-aaa6-83225e980a40-image.png

      不知道怎么回事,chroot之后有些转义字符被打印出来了。现在假设有网络连接的话已经可以愉快地装包了~

      ============================

      显示图片:
      播放视频很多人都演示过了,我这就不重复了,利用tina自带的tplayerdemo就可以。这里主要说一下如何显示图片,其实tina也是有内置的demo的:

      dfbshow PATH_TO_IMAGE
      

      PATH_TO_IMAGE换成图片路径即可,目前试了bmp和jpg都支持。效果:
      2d34f674-3b77-470e-b179-999a5d712203-image.png dfbshow

      ============================

      播放音频:
      其实要是只想知道板子的音频输出正不正常的话,tina开关机的时候是有提示音可以验证的。tina也内置了音频播放器:

      aplay PATH_TO_WAV
      

      这玩意好像支支持wav的声音文件,给MP3的话只能播出噪声。

      转载地址: https://whycan.com/t_7345.html
      原作者 @SdtEE

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: 华为/小米 智能插座

      a8eaea31-917a-4849-8165-b0c47d8dfc34-79411e728d62eedcd67fc570115f0c1.jpg

      47a22878-db97-45ca-b029-05fc95fe8d52-6bd78c0d30b0a9ac0dc05f6325255ba.jpg

      1b2252b9-94be-4f9c-9d8c-0fc357fde946-251868a215acd76b676f1374b9d0268.jpg

      发布在 灌水区
      whycan
      whycan晕哥
    • 回复: LVGL|lvgl教程之巧用图层(layer)编写模态对话框 (转载)

      lvgl无模式对话框效果
      e9d9d63b0acd40ca86762f82808e3b69.gif

      发布在 GUI
      whycan
      whycan晕哥
    • 全志芯片、开发板购买链接汇总

      以下链接均为淘宝链接,所有芯片均为原厂全新

      1.D1-H芯片。样片价29元,量大可谈:
      https://item.taobao.com/item.htm?id=667545955996
      7ac108b6-048c-4c6b-aa34-6491987169b3-image.png

      2.D1-H哪吒开发板。599/999元,量大可谈:
      https://item.taobao.com/item.htm?id=658408502689
      e7c5700d-96e0-4cf4-a94b-67e5dd836080-image.png

      3.D1s芯片。量大可谈:
      https://item.taobao.com/item.htm?id=658215313702
      b5763891-eed1-4362-b39d-17b998bac812-image.png

      4.F1C100s/F1C200s芯片,样片15.8元/片起,量大可谈:
      https://item.taobao.com/item.htm?id=643167377386
      5b61d257-e25c-4967-8ca8-da566450d354-image.png

      其它还有V3s、V3X、XR806芯片/开发板、XR829等,欢迎到店选购:
      https://shop34480016.taobao.com/

      3c017ba1-59f0-4d92-baf5-740e06093ca5-image.png

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 围观全栈大佬 @lovexulu 的D1s开发板 (开源在29楼)

      mmexport1632909681325.png

      mmexport1632909678383.png

      mmexport1632909676042.png

      @lovexu作品最新更新,D1s PCB加丝印,新设计外壳。

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: Gaviar Handheld (小志掌機)

      @steward 在 Gaviar Handheld (小志掌機) 中说:

      司徒這邊有一些想法, 或許可以參考一下

      收到司徒大佬的热心反馈,我和小伙伴商量一下,方便修改的地方预计下个版本就能改好。

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: LVGL|lvgl教程之巧用图层(layer)编写模态对话框 (转载)

      lvgl模式对话框效果
      39c51abb27b54f939cce8573916b4bdd.gif

      发布在 GUI
      whycan
      whycan晕哥
    • 回复: 萌新在淘宝整了一台“台电” P85 TLA016 平板电脑

      @oxbdliu
      官网可以下载。

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 围观全栈大佬 @lovexulu 的D1s开发板 (开源在29楼)

      微信截图_20211113170538.png

      e30b3e22ee738dbf764d454591503c8.jpg

      fa8b10a5242baaf921b50c5b74a12f7.png

      SCH & PCB: D1s_开源文件_LCEDA格式.rar

      fusion360 格式结构文件:
      零部件1.step
      零部件3.step

      切片文件:
      D1S02gd.stl
      D1S02g.stl

      已开源。

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: Gaviar Handheld (小志掌機)

      @steward
      关于显示屏,选了一个性价比相对合适的,司徒大佬也可以推荐。

      i80屏一般不会撕裂,因为屏内置GRAM,只要CPU能稳定输出60FPS显示屏就能正常工作。

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: LVGL|lvgl教程之巧用图层(layer)编写模态对话框 (转载)

      实现原理

      lvgl的具有图层(layer)的概念,默认规则是最后创建的在最上层,一般我们都是使用在 lv_scr_act 层上面创建各种控件(widgets),每个控件其实就相当于一个个小小的图层展示在屏幕上。

      在 lv_scr_act 之上还有另外两个层 layer_top 和 layer_sys,这是两个特殊的层。两者在显示器的所有屏幕上都是可见的和通用的。但是,它们不会在多个物理显示器之间共享。 layer_top 始终位于默认屏幕 (lv_scr_act()) 的顶部,而 layer_sys 位于 layer_top 的顶部。

      用户可以使用 layer_top 来创建一些随处可见的内容。例如,一个菜单栏,一个弹出窗口等。如果启用了click属性,那么layer_top将吸收所有用户点击并充当模态。

      layer_sys 在 LVGL 中也用于类似的目的。例如,它将鼠标光标放在所有图层上方以确保它始终可见。

      layer_sys > layer_top > lv_scr_act
      

      使用lvgl实现模式对话框的关键点就是利用 layer_sys 和 layer_top 的特点。也就是说创建对话框的时候在 layer_sys 和 layer_top 之上创建即可。

      示例中使用到了 layer_top 实现模式对话框效果。下面是示例源码。

      发布在 GUI
      whycan
      whycan晕哥
    • 回复: A133如何启用gt911触摸驱动

      kernel 开启这两个驱动选项:

      CONFIG_TOUCHSCREEN_GT9XXNEW_TS
      CONFIG_TOUCHSCREEN_GT9XXNEWDUP_TS
      
      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 一键生成可定制的Debian rootfs,支持D1/D1s riscv64(转载)

      之前已经有一个使用debootstrap生成Debian rootfs的教程了,但我一直使用的是一个Github上的自动生成脚本来生成,优势主要是:

      更方便,跑一个脚本生成直接可用的rootfs,无需更多设置

      包括版本和预装包都完全可定制

      生成的rootfs可以直接chroot进去,所需的依赖自动安装

      最近给D1s定制rootfs,为了支持riscv64,我对原作者的脚本进行了一定的魔改,在此分享一下使用方法:

      首先clone仓库到本地:

      git clone https://github.com/SdtElectronics/debian-rootfs.git
      

      然后安装相关依赖

      apt-get install multistrap binfmt-support qemu-user-static
      

      最后运行一条命令即可生成:

      ./make-rootfs.sh ARCHITECTURE
      

      支持的ARCHITECTURE有:

      amd64
      arm64
      armel
      armhf
      i386
      mips
      mipsel
      powerpc
      powerpcspe
      ppc64el
      s390x
      riscv64
      

      注意要是想生成riscv64的rootfs,需要改用如下命令(因为risc-v目前还在Debian port源下):

      sudo ./make-rootfs.sh riscv64 multistrap_debian-ports.conf
      

      生成的rootfs在build/目录下。

      若脚本运行时出现类似错误信息:

      The following signatures couldn't be verified because the public key is not available
      

      需要手动给multistrap的文件打上这个补丁。

      更多信息,可以参考原仓库:

      https://github.com/SdtElectronics/debian-rootfs
      

      一些进阶用法:
      更改预装包:
      修改multistrap.conf中的packages字段即可。注意要生成riscv64的rootfs,需要修改的是multistrap_debian-ports.conf。
      更改版本:
      修改multistrap.conf中的suite字段即可。合法的值可以是版本名,或者是stable, testing和sid。注意要生成riscv64的rootfs,需要修改的是multistrap_debian-ports.conf。
      异构chroot:
      异构chroot所需的qemu等依赖,脚本都已经自动装好,直接chroot ./ 即可。

      原作者: @SdtEE
      链接: https://whycan.com/t_7367.html#p70238

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: Gaviar Handheld (小志掌機)

      @lovehex99

      3a627f25-4e75-4724-a439-b14c95063c05-image.png

      过几天就可以了

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: F1C200s无线网卡问题源码编译?

      @kashine
      这个只是不同公司或组织出品的gcc toolchain的前缀而已,不用太在意.

      发布在 Linux
      whycan
      whycan晕哥
    • 回复: 用3个IO口控制6个LED灯,怎么做到的? [转载]

      二、总结提升
      以上其实是用了一种叫“查理复用”(Charlieplex)的方法。
      为什么叫查理复用?

      很简单,因为这个方法来源于美信半导体公司的工程师Charlie Allen。

      查理复用是一种能够在驱动LED,特别是驱动大量LED时有效地节约GPIO的方法。
      使用该方法,n个GPIO可以驱动 n*(n-1) 个LED,所以:

      • 使用2个GPIO可以驱动2个LED。

      • 使用3个GPIO可以驱动6个LED。

      • 使用4个GPIO可以驱动12个LED。

      以此类推。

      这种方式能够实现的基础是:
      单片机GPIO的三个状态:高电平、低电平、高阻态。

      LED具有单向导电性。

      查理复用设计的方法:

      • 任意两个GPIO引脚之间串入两个LED,这两个LED为并联,且LED方向相反。

      • 当你想要点亮某个特定的LED时,就将其两端所连接到的GPIO引脚分别设定为高电平和低电平,其它剩余的GPIO引脚设定为高阻态。

      • 前面电动牙刷中6个LED灯的电路,就是这么设计的。

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 【单板仅需99】D1哪吒计算条上线!为智能家居提供高性价比的RISC-V算力

      03661f0f-946e-4f18-be0f-9e73d5c14068-image.png

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: (全开源)小志掌機Gaviar Handheld 资料汇总

      524577b0-6f90-454e-8374-e493abf62c7b-b16bee3db5265caa8a984d077f8e5d9.jpg

      3943289d-af17-4833-9c6d-436d31912f3c-14da252efe1e75c2c06a2f1ea31e947.jpg

      大意了,有个关键的字写错了。

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: T133 使用键盘按2方式烧录成砖了

      执行 muboot && mboot

      发布在 Linux
      whycan
      whycan晕哥
    • 回复: t113s3_mq_r电容触摸

      参考哪吒的SDK:

      board.dts配置:

      &twi2 {
              clock-frequency = <400000>;
              pinctrl-0 = <&twi2_pins_a>;
              pinctrl-1 = <&twi2_pins_b>;
              pinctrl-names = "default", "sleep";
              dmas = <&dma 45>, <&dma 45>;
              dma-names = "tx", "rx";
              status = "okay";
      
      
              ctp@14 {
                      compatible = "allwinner,goodix";
                      device_type = "ctp";
                      reg = <0x14>;
                      status = "okay";
                      ctp_name = "gt9xxnew_ts";
                      ctp_twi_id = <0x2>;
                      ctp_twi_addr = <0x14>;
                      ctp_screen_max_x = <0x320>;
                      ctp_screen_max_y = <0x500>;
                      ctp_revert_x_flag = <0x0>;
                      ctp_revert_y_flag = <0x1>;
                      ctp_exchange_x_y_flag = <0x0>;
                      ctp_int_port = <&pio PG 14 GPIO_ACTIVE_HIGH>;
                      ctp_wakeup = <&pio PG 15 GPIO_ACTIVE_HIGH>;
              };
      };
      

      驱动开启以下选项:

      CONFIG_TOUCHSCREEN_GT9XXNEW_TS
      CONFIG_TOUCHSCREEN_GT9XXNEWDUP_TS
      
      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 基于D1s的WhycanPI-0A,aw-ol满100分免费送

      @brooks 一路USB转TTL,一路OTG,一路USB HOST。

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: (全开源)小志掌機Gaviar Handheld 资料汇总

      317c2d35-9206-4a8b-8bb6-f9bbb395cefe-37831afdc1b203e1df0cd2d3e28ce30.jpg

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: nv3052cRGB 720*720屏出现花屏,颜色失真,请问是什么原因

      @fans168168

      //PCLK 30MHZ

      示波器量一下 PCLK 是不是 30M ?

      发布在 Linux
      whycan
      whycan晕哥
    • 回复: T113上的1280*800分辨率如何调试,修改dts后显示的画面不对

      @xuzhenghao
      可能是 board.dts的display节点配置问题。

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 基于D1s的WhycanPI-0A,aw-ol满100分免费送

      回楼上的同学,本站满100分都送的,大家积极发帖就可以了。

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: (全开源)小志掌機Gaviar Handheld 资料汇总

      6c3e0d5f-3547-4e41-9341-c4348ec01f15-image.png

      工程导入

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: nv3052cRGB 720*720屏出现花屏,颜色失真,请问是什么原因

      再看下 DE/VSYNC/HSYNC 频率是否正常,像素点抖不抖?

      发布在 Linux
      whycan
      whycan晕哥
    • 回复: 请问下,T113-S3TinaLinux,如何新增文件到根文件系统中

      @wjp2547532 在 请问下,T113-S3TinaLinux,如何新增文件到根文件系统中 中说:

      package/busybox-init-base-files/Makefile中添加

      感谢分享,收藏!!!

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 基于D1s的WhycanPI-0A,aw-ol满100分免费送

      0cccd6af-75ee-4fc0-b944-e19651d1da16-dde6f17fe91723dcdcfae3db42ac62c.jpg

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: (全开源)小志掌機Gaviar Handheld 资料汇总

      8fe89fe9-0142-441f-99d8-d98033ee0d4c-8608672318379b503c395ebf524dbc7.jpg

      c7df1350-ce9d-449a-80ba-24a25f01c484-0250302d7fd2bed6581b4f0f8f22196.jpg

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: nv3052cRGB 720*720屏出现花屏,颜色失真,请问是什么原因

      @anruliu 在 nv3052cRGB 720*720屏出现花屏,颜色失真,请问是什么原因 中说:

      @fans168168 可以检查下RGB各颜色pin脚是否有复用,导致RGB有些脚没有输出

      @fans168168 这个方法不错, 一个一个脚用示波器看下,如果没有信号,可能是被别的功能占用了。

      发布在 Linux
      whycan
      whycan晕哥
    • 回复: v3s,想在我的lcd屏手指触摸的位置上显示鼠标,该怎么选

      有没有 /dev/mouse /dev/mice 设备生成?

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: linux 下怎么烧录SD卡啊,有类似PhoenixCard工具吗

      @xmadcc
      不过还是有办法曲线救国的,可以用韦老师的 buildroot sdk生成烧录文件。

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: (全开源)小志掌機Gaviar Handheld 资料汇总

      @lovehex99
      有lvgl固件,会慢慢放出来的。

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: nv3052cRGB 720*720屏出现花屏,颜色失真,请问是什么原因

      @fans168168 在 nv3052cRGB 720*720屏出现花屏,颜色失真,请问是什么原因 中说:

      @lovexulu 大佬,高低位反了,是不是和rgb数据线的接法有关

      那可能是接法有问题了。

      发布在 Linux
      whycan
      whycan晕哥
    • 回复: v3s,想在我的lcd屏手指触摸的位置上显示鼠标,该怎么选

      @vincent1
      用什么ui?

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: D1s RTL8723DS 蓝牙起不来,大伙帮我瞅瞅。

      mmexport1642954959253.png

      OK

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: Gaviar Handheld (小志掌機)

      @ufbycd
      收到热心反馈,我和显示屏厂家沟通一下,尽量加进去。

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: GT911 触摸滑动不流畅

      @shuaige 在 GT911 触摸滑动不流畅 中说:

      滑动触摸条就比较卡顿

      可能是CPU处理速度问题,测试一下把双缓冲关了,丝滑了,也撕裂了。

      发布在 Linux
      whycan
      whycan晕哥
    • 回复: v3s,想在我的lcd屏手指触摸的位置上显示鼠标,该怎么选

      @whycan 在 v3s,想在我的lcd屏手指触摸的位置上显示鼠标,该怎么选 中说:

      有没有 /dev/mouse /dev/mice 设备生成?

      先确保插入usb鼠标有设备生成,然后启动Qt app设置环境变量就能看到鼠标了。

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 风靡一时的自行车码表已经移植到D1s了,感谢作者 @FASTSHIFT

      官方tina sdk下载: https://d1.docs.aw-ol.com/study/study_2getsdk/


      百度云tina sdk v1.0下载:
      https://pan.baidu.com/s/1QjHPLrWIRQMUb7sr4eBd-g

      提取码: 6666
      解压密码: whycan.com

      md5校验码:

      b6a41b47dfccad249ba7b40c5d195717 *d1_sdk.tar.zip.001
      1e31cded2fc9f8c602a28fbf63449e8a *d1_sdk.tar.zip.002
      9e4cdb935e4ae8b775586bb25505e33a *d1_sdk.tar.zip.003
      

      建议用7zip在windows解压, 解压后生成一个文件, 请核对md5校验码:

      6e0b2c32b8b6e2bc3c6aa29bf4491082 *d1_sdk.tar
      
      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: (全开源)小志掌機Gaviar Handheld 资料汇总

      @lovehex99
      有的,改天整理一下。

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: 收到芒果大佬的库存 DVP与MIPI 双摄像头R11开发板

      进入Linux,tsc2007(ns2009)一直提示 -6错误,查了一下设备不存在,用 i2c-detect -y 0命令发现,果然不存在 0x48 设备,但是有 0x49 设备:

      # i2cdetect -y 0
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
      00:          -- -- -- -- -- -- -- -- -- -- -- -- --
      10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- --
      50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      70: -- -- -- -- -- -- -- --
      #
      

      这是怎么回事呢,查看一楼原理图,难道 0x49 是加密芯片DX81C04,
      但是看了核心板背面的5脚芯片并没有焊上,
      那这个 0x49 估计就是 ns2009 芯片了,对照手册和原理图,发现A0 上拉,地址是要 +1
      修改 devicetree.dts,一切正常:

      &i2c0 {
              status = "okay";
      
              rtp@48 {
                      compatible = "ti,tsc2007";
                      reg = <0x49>;
                      interrupt-parent = <&pio>;
                      interrupts = <1 10 IRQ_TYPE_EDGE_FALLING>;
                      gpios = <&pio 1 10 GPIO_ACTIVE_LOW>;
                      pendown-gpio = <&pio 1 10 GPIO_ACTIVE_LOW>;
                      ti,x-plate-ohms = <660>;
                      wakeup-source;
              };
      
              rtc@51 {
                      compatible = "nxp,pcf8563";
                      reg = <0x51>;
                      status = "disabled";
              };
      
              hym8563@51 {
                      compatible = "haoyu,hym8563";
                      reg = <0x51>;
                      #clock-cells = <0>;
                      status = "disabled";
              };
      
              ds1307@68 {
                      compatible = "dallas,ds1307";
                      reg = <0x68>;
                      status = "disabled";
              };
      
              ctp@14 {
                      compatible = "goodix,gt911";
                      reg = <0x14>;
                      interrupt-parent = <&pio>;
                      interrupts = <1 1 IRQ_TYPE_EDGE_FALLING>; // PB1
                      irq-gpios = <&pio 1 1 GPIO_ACTIVE_HIGH>; // PB1
                      reset-gpios = <&pio 1 0 GPIO_ACTIVE_HIGH>; // PB0
                      status = "disabled";
              };
      
              ctp@5d {
                      compatible = "goodix,gt911";
                      reg = <0x5d>;
                      interrupt-parent = <&pio>;
                      interrupts = <1 1 IRQ_TYPE_EDGE_FALLING>; // PB1
                      irq-gpios = <&pio 1 1 GPIO_ACTIVE_HIGH>; // PB1
                      reset-gpios = <&pio 1 0 GPIO_ACTIVE_HIGH>; // PB0
                      status = "disabled";
              };
      };
      

      触摸校正: TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate
      触摸测试: TSLIB_TSDEVICE=/dev/input/event0 ts_test

      c177b80b-0a8c-419c-8144-1cb312b76617-bf5421c8bcb42325fc7d3436cc8e583.jpg

      发布在 A Series
      whycan
      whycan晕哥
    • 回复: v3s,想在我的lcd屏手指触摸的位置上显示鼠标,该怎么选

      @vincent1

      如果你的Qt应用程序正在使用linuxfb平台插件运行,那么可以通过设置QT_QPA_FB_HIDECURSOR环境变量来控制鼠标光标是否显示。

      export QT_QPA_FB_HIDECURSOR=0

      在上述命令中,0表示不隐藏鼠标光标,即显示鼠标光标。

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 麻雀D1s编译完SDK2.0烧写后uboot出现错误,该如何解决?

      @q599003837

      找到 device/config/chips/d1s/configs/nezha/uboot-board.dts

      &card0_boot_para {  /* Avoid dtc compiling warnings. @TODO: Developer should modify this to the actual value */
      	/* reg = <0x0 0x2 0x0 0x0>;  [> Avoid dtc compiling warnings. @TODO: Developer should modify this to the actual value <] */
      	device_type = "card0_boot_para";
      	card_ctrl = <0x0>;
      	card_high_speed = <0x1>;
      	card_line = <0x4>;
      	/*
      	pinctrl-0 = <&sdc0_pins_a>;
      	*/
      };
      

      把注释符号删除,改成

      &card0_boot_para {  /* Avoid dtc compiling warnings. @TODO: Developer should modify this to the actual value */
      	/* reg = <0x0 0x2 0x0 0x0>;  [> Avoid dtc compiling warnings. @TODO: Developer should modify this to the actual value <] */
      	device_type = "card0_boot_para";
      	card_ctrl = <0x0>;
      	card_high_speed = <0x1>;
      	card_line = <0x4>;
      	pinctrl-0 = <&sdc0_pins_a>;};
      

      试一试。

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: Gaviar Handheld (小志掌機)

      @yofa2008 在 Gaviar Handheld (小志掌機) 中说:

      第二版更新的电机请问是使用了哪几个GPIO

      MO0 ==> PB7
      MO1 ==> PB6

      发布在 爱搞机专区
      whycan
      whycan晕哥
    • 回复: 请教一下各位大佬,T113 如何进入FEL BOOT?

      @jr_online

      补充一下,下拉 SPI FLASH 的 CS/MISO/MOSI 任意一个引脚。

      发布在 T Series
      whycan
      whycan晕哥
    • 回复: T113-S3编译Tina-Linux,已经编译成功,但是输出串口信息,就是这样

      @dort91011

      mboot0 && muboot

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 百问网韦老师 D1 开发板 ---- 东山哪吒STU

      验证体验东山哪吒STU开发板,更详细的配套视频的文档,我们将会在下周同步推出,敬请期待!

      https://riscv64.dongshanpi.com/DongshanNezhaSTU/03-QuickStart/

      https://riscv64.dongshanpi.com/DongshanNezhaSTU/05-Tina-SDKDevelopmentGuide/

      发布在 MR Series
      whycan
      whycan晕哥
    • 回复: V853 LVGL app添加slider change调节屏幕亮度回调事件

      演示视频: https://www.bilibili.com/video/BV1ye411N7um/

      发布在 V Series
      whycan
      whycan晕哥
    • 回复: 请教一下各位大佬,T113 如何进入FEL BOOT?

      不插TF卡,并且下拉 SPI FLASH 的 CS/MISO/MOSI 引脚,插入USB OTG 即进入FEL。

      发布在 T Series
      whycan
      whycan晕哥
    • 回复: 开源基于全志V3s & RP2040(树莓派) 的3D打印机主板,klipper上下位机一体

      3fcde58f-5823-4b78-956f-2e805c9132a0-image.png

      软件界面

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 芒果派麻雀到手试玩

      周末整活,成功挽救这台伊拉克成色的15寸显示器于闲鱼市场:
      https://bbs.aw-ol.com/topic/1293/share/38


      参考这个帖子,感觉15寸 LVDS能玩起来。

      3e8e000a-bae1-4696-aa18-307ba1415fad-image.png

      6db38e83-8ebe-47c4-8dfa-d18a2365a9e8-image.png

      发布在 MR Series
      whycan
      whycan晕哥
    • V853 LVGL app添加slider change调节屏幕亮度回调事件
      diff --git a/demos/widgets/lv_demo_widgets.c b/demos/widgets/lv_demo_widgets.c
      index 839b999c0..d2a6f4ac5 100644
      --- a/demos/widgets/lv_demo_widgets.c
      +++ b/demos/widgets/lv_demo_widgets.c
      @@ -304,6 +304,8 @@ static void profile_create(lv_obj_t * parent)
           lv_obj_add_style(experience_label, &style_text_muted, 0);
      
           lv_obj_t * slider1 = lv_slider_create(panel3);
      +    lv_slider_set_range(slider1, 0, 255);
      +    lv_slider_set_value(slider1, 255, LV_ANIM_ON);
           lv_obj_set_width(slider1, LV_PCT(95));
           lv_obj_add_event_cb(slider1, slider_event_cb, LV_EVENT_ALL, NULL);
           lv_obj_refresh_ext_draw_size(slider1);
      @@ -1275,14 +1277,24 @@ static void calendar_event_cb(lv_event_t * e)
      
       static void slider_event_cb(lv_event_t * e)
       {
      +    char cmd[512];
           lv_event_code_t code = lv_event_get_code(e);
           lv_obj_t * obj = lv_event_get_target(e);
      +    int32_t value = lv_slider_get_value(obj);
      
           if(code == LV_EVENT_REFR_EXT_DRAW_SIZE) {
               lv_coord_t * s = lv_event_get_param(e);
               *s = LV_MAX(*s, 60);
           }
      +    else if(code == LV_EVENT_VALUE_CHANGED)
      +    {
      +       memset(cmd, sizeof(cmd), 0);
      +       snprintf(cmd, sizeof(cmd)-1, "cd /sys/kernel/debug/dispdbg; echo lcd0 > name; echo setbl > command; echo %d > param; echo 1 > start\n", value);
      +       system(cmd);
      +       printf(cmd);
      +    }
           else if(code == LV_EVENT_DRAW_PART_END) {
      +
               lv_obj_draw_part_dsc_t * dsc = lv_event_get_param(e);
               if(dsc->part == LV_PART_KNOB && lv_obj_has_state(obj, LV_STATE_PRESSED)) {
                   char buf[8];
      
      
      发布在 V Series
      whycan
      whycan晕哥
    • 回复: Tina linux(t113) 更改uart_debug口后,按回车无法进入控制台

      @jr_online

      全志芯片Tina Linux 修改 UART 引脚、UART端口

      发布在 T Series
      whycan
      whycan晕哥
    • 开源基于全志V3s & RP2040(树莓派) 的3D打印机主板,klipper上下位机一体

      看了社区里几位大佬的V3s项目做的
      做出了挺久了没时间整理,今天搞出来
      镜像晚点整理发出来
      V3s运行klipper,RP2040做klipper下位机
      已经实测过一段时间了,只有一个问题,内存太少,CPU资源也不够,长时间打印可能会报错:lol:。
      玩玩还是不错的,
      目前只有触摸没有验证

      AD格式原理图: Explorer.7z

      转载地址: 开源基于全志V3X & RP2040的3D打印机主板,klipper上下位机一体

      发布在 其它全志芯片讨论区
      whycan
      whycan晕哥
    • 回复: 芒果派麻雀到手试玩

      @jr_online

      wifi_connect_ap_test 热点名 密码:

      wifi_connect_ap_test whycan 13800138000

      发布在 MR Series
      whycan
      whycan晕哥
    • 1
    • 2
    • 3
    • 1 / 3