hostmybytes 的 vps 上编译 f1c100s的sdk也出现了一模一样的问题,
root@test1:/opt/c600# ./build.sh
INFO: ----------------------------------------
INFO: build lichee ...
INFO: chip: sunivw1p1
INFO: platform: linux
INFO: kernel: linux-3.10
INFO: board: evb
INFO: output: out/sunivw1p1/linux/evb
INFO: ----------------------------------------
INFO: build buildroot ...
make: Entering directory '/opt/c600/buildroot'
/bin/bash: line 2: /opt/c600/out/sunivw1p1/linux/common/buildroot/external-toolchain/bin/arm-none-linux-gnueabi-gcc: No such file or directory
readlink: missing operand
Try 'readlink --help' for more information.
/bin/bash: line 5: @echo: command not found
toolchain/toolchain-external/ext-tool.mk:179: recipe for target '/opt/c600/out/sunivw1p1/linux/common/buildroot/stamps/ext-toolchain-installed' failed
make: *** [/opt/c600/out/sunivw1p1/linux/common/buildroot/stamps/ext-toolchain-installed] Error 1
make: Leaving directory '/opt/c600/buildroot'
ERROR: build buildroot Failed
vps linux参数:
root@test1:/opt/c600# uname -a
Linux test1 2.6.32-042stab126.1 #1 SMP Wed Nov 15 20:14:46 MSK 2017 x86_64 x86_64 x86_64 GNU/Linux
root@test1:/opt/c600# cat /etc/issue
Ubuntu 16.04.1 LTS \n \lroot@test1:/opt/c600#
现在试一试楼主提供的方法.
https://superuser.com/questions/521113/join-mp4-files-in-linux
ffmpeg -i input0.mp4 -map 0 -c copy -f mpegts -bsf h264_mp4toannexb -y temp0
ffmpeg -i input1.mp4 -map 0 -c copy -f mpegts -bsf h264_mp4toannexb -y temp1
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4
这两个也是一样的原理!
先把mp4解到两个临时文件ts码流
然后cat起来并转成mp4
https://askubuntu.com/questions/161226/how-to-join-video-files-from-terminal
If you want to combine two videos safely, you need to change the video codec and audio codec of input files into the same codecs.
For example, using xvid (video codec) and mp3lame (audio codec):
sudo apt-get install mencoder libxvidcore4 libmp3lame0
you can encode the input videos by the below commands:mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate=1000 first.avi -o video1.avi
mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate=1000 second.avi -o video2.avi
To be matched your videos, you can change the options "bitrate" etc. (and also the codecs).If the encoded video names are "video1.avi" and "video2.avi", and the output video name is "joined-video.avi",
mencoder -ovc copy -oac mp3lame video1.avi video2.avi -o joined-video.avi
Using this command, you can make the joined video file.
按这上面说的,
先把两个视频文件转成相同的码率,相同的分辨率, 相同的音视频编码格式,
然后再连接试一试。
buildroot的默认账号是root, 密码是空,
配置的话在buildroot menuconfig里面可能可以配置,
如果不行的话, 在V3s 的Linux终端执行 passwd,
重设root密码.
如果觉得登陆对话框碍事, 看看这个 我用buildroot产生的rootfs,每次启动都要登录,有什么办法可以去掉这个登录吗?
U-Boot 2017.01-rc2-00071-gf03c1f5-dirty (Nov 18 2017 - 22:15:31 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected w25q256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB
SF: Warning - Only lower 16MiB accessible, Full access #define CONFIG_SPI_FLASH_BAR
*** Warning - bad CRC, using default environment
Setting up a 800x480 lcd console (overscan 0x0)
dotclock: 33000kHz = 33000kHz: (1 * 3MHz * 66) / 6
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
Net: No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot: 0
reading zImage
3898688 bytes read in 621 ms (6 MiB/s)
reading sun8i-v3s-licheepi-zero-dock.dtb
11931 bytes read in 28 ms (416 KiB/s)
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42dfa000, end 42dffe9a ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.13.0-licheepi-zero+ (hexing@ubuntu) (gcc version 4.8.4 (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.1)) #35 SMP Sat Nov 18 22:21:37 CST 2017
[ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Lichee Pi Zero with Dock
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] percpu: Embedded 16 pages/cpu @c3de6000 s33920 r8192 d23424 u65536
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 15883
[ 0.000000] Kernel command line: console=ttyS0,115200 panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,6M(kernel)ro,-(rootfs) root=/dev/mmcblk0p2 earlyprintk rw
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Memory: 53580K/64036K available (6144K kernel code, 217K rwdata, 1432K rodata, 1024K init, 262K bss, 10456K reserved, 0K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xc4000000 - 0xff800000 ( 952 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc3e89000 ( 62 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0700000 (7136 kB)
[ 0.000000] .init : 0xc0900000 - 0xc0a00000 (1024 kB)
[ 0.000000] .data : 0xc0a00000 - 0xc0a367c0 ( 218 kB)
[ 0.000000] .bss : 0xc0a3d874 - 0xc0a7f1bc ( 263 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU event tracing is enabled.
[ 0.000000] RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (virt).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000007] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000018] Switching to timer-based delay loop, resolution 41ns
[ 0.000187] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000417] Console: colour dummy device 80x30
[ 0.000454] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000470] pid_max: default: 32768 minimum: 301
[ 0.000588] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000601] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.001204] CPU: Testing write buffer coherency: ok
[ 0.001578] /cpus/cpu@0 missing clock-frequency property
[ 0.001604] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.002044] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.002219] Hierarchical SRCU implementation.
[ 0.002703] smp: Bringing up secondary CPUs ...
[ 0.002720] smp: Brought up 1 node, 1 CPU
[ 0.002730] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.002737] CPU: All CPU(s) started in SVC mode.
[ 0.003505] devtmpfs: initialized
[ 0.006733] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.007030] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.007058] futex hash table entries: 256 (order: 2, 16384 bytes)
[ 0.007230] pinctrl core: initialized pinctrl subsystem
[ 0.008093] random: get_random_u32 called from bucket_table_alloc+0xf0/0x250 with crng_init=0
[ 0.008234] NET: Registered protocol family 16
[ 0.008703] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.009842] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.009861] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.023902] SCSI subsystem initialized
[ 0.024221] usbcore: registered new interface driver usbfs
[ 0.024290] usbcore: registered new interface driver hub
[ 0.024388] usbcore: registered new device driver usb
[ 0.024653] pps_core: LinuxPPS API ver. 1 registered
[ 0.024667] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.024691] PTP clock support registered
[ 0.024931] Advanced Linux Sound Architecture Driver Initialized.
[ 0.026779] clocksource: Switched to clocksource arch_sys_counter
[ 0.037466] NET: Registered protocol family 2
[ 0.038055] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.038091] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.038114] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.038250] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 0.038299] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 0.038527] NET: Registered protocol family 1
[ 0.039133] RPC: Registered named UNIX socket transport module.
[ 0.039156] RPC: Registered udp transport module.
[ 0.039162] RPC: Registered tcp transport module.
[ 0.039167] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.041054] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.050094] NFS: Registering the id_resolver key type
[ 0.050156] Key type id_resolver registered
[ 0.050164] Key type id_legacy registered
[ 0.051175] random: fast init done
[ 0.053944] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 0.053969] io scheduler noop registered
[ 0.053977] io scheduler deadline registered
[ 0.054238] io scheduler cfq registered (default)
[ 0.054250] io scheduler mq-deadline registered
[ 0.054257] io scheduler kyber registered
[ 0.058737] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.126666] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.130091] console [ttyS0] disabled
[ 0.150367] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 36, base_baud = 1500000) is a U6_16550A
[ 0.733086] console [ttyS0] enabled
[ 0.758199] 1c28400.serial: ttyS1 at MMIO 0x1c28400 (irq = 37, base_baud = 1500000) is a U6_16550A
[ 0.788741] 1c28800.serial: ttyS2 at MMIO 0x1c28800 (irq = 38, base_baud = 1500000) is a U6_16550A
[ 0.802399] m25p80 spi32766.0: w25q256 (32768 Kbytes)
[ 0.807603] 4 cmdlinepart partitions found on MTD device spi32766.0
[ 0.813863] Creating 4 MTD partitions on "spi32766.0":
[ 0.819040] 0x000000000000-0x000000100000 : "uboot"
[ 0.824545] 0x000000100000-0x000000110000 : "dtb"
[ 0.829815] 0x000000110000-0x000000710000 : "kernel"
[ 0.835152] 0x000000710000-0x000002000000 : "rootfs"
[ 0.840987] libphy: Fixed MDIO Bus: probed
[ 0.845629] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[ 0.851525] dwmac-sun8i 1c30000.ethernet: No regulator found
[ 0.857266] dwmac-sun8i 1c30000.ethernet: Will use internal PHY
[ 0.863418] dwmac-sun8i 1c30000.ethernet: Chain mode enabled
[ 0.869119] dwmac-sun8i 1c30000.ethernet: No HW DMA feature register supported
[ 0.876334] dwmac-sun8i 1c30000.ethernet: Normal descriptors
[ 0.882000] dwmac-sun8i 1c30000.ethernet: RX Checksum Offload Engine supported
[ 0.889225] dwmac-sun8i 1c30000.ethernet: COE Type 2
[ 0.894184] dwmac-sun8i 1c30000.ethernet: TX Checksum insertion supported
[ 0.901160] libphy: stmmac: probed
[ 0.906501] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.913168] ehci-platform: EHCI generic platform driver
[ 0.918715] ehci-platform 1c1a000.usb: EHCI Host Controller
[ 0.924329] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus number 1
[ 0.932305] ehci-platform 1c1a000.usb: irq 26, io mem 0x01c1a000
[ 0.966800] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00
[ 0.974049] hub 1-0:1.0: USB hub found
[ 0.977995] hub 1-0:1.0: 1 port detected
[ 0.982545] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.988852] ohci-platform: OHCI generic platform driver
[ 0.994425] ohci-platform 1c1a400.usb: Generic Platform OHCI controller
[ 1.001157] ohci-platform 1c1a400.usb: new USB bus registered, assigned bus number 2
[ 1.009114] ohci-platform 1c1a400.usb: irq 27, io mem 0x01c1a400
[ 1.081939] hub 2-0:1.0: USB hub found
[ 1.085759] hub 2-0:1.0: 1 port detected
[ 1.093423] udc-core: couldn't find an available UDC - added [g_cdc] to list of pending drivers
[ 1.103057] input: 1c22800.lradc as /devices/platform/soc/1c22800.lradc/input/input0
[ 1.111989] sun6i-rtc 1c20400.rtc: rtc core: registered rtc-sun6i as rtc0
[ 1.118894] sun6i-rtc 1c20400.rtc: RTC enabled
[ 1.123445] i2c /dev entries driver
[ 1.128364] input: ns2009_ts as /devices/platform/soc/1c2ac00.i2c/i2c-0/0-0048/input/input1
[ 1.137888] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 1.206827] sunxi-mmc 1c0f000.mmc: base:0xc41fe000 irq:23
[ 1.253909] mmc0: host does not support reading read-only switch, assuming write-enable
[ 1.263906] mmc0: new high speed SD card at address b368
[ 1.269784] sunxi-mmc 1c10000.mmc: base:0xc4303000 irq:24
[ 1.276198] usbcore: registered new interface driver usbhid
[ 1.281865] usbhid: USB HID core driver
[ 1.286452] mmcblk0: mmc0:b368 FFFFF 1.85 GiB
[ 1.293142] sun4i-codec 1c22c00.codec: ASoC: /soc/codec-analog@01c23000 not registered
[ 1.301196] sun4i-codec 1c22c00.codec: Failed to register our card
[ 1.307701] mmcblk0: p1 p2
[ 1.315808] NET: Registered protocol family 17
[ 1.320502] Key type dns_resolver registered
[ 1.324909] Registering SWP/SWPB emulation handler
[ 1.334192] simple-framebuffer 43e89000.framebuffer: framebuffer at 0x43e89000, 0x177000 bytes, mapped to 0xc4380000
[ 1.344903] simple-framebuffer 43e89000.framebuffer: format=x8r8g8b8, mode=800x480x32, linelength=3200
[ 1.361252] Console: switching to colour frame buffer device 100x30
[ 1.373677] simple-framebuffer 43e89000.framebuffer: fb0: simplefb registered!
[ 1.382270] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[ 1.393669] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 1.399513] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 3
[ 1.408694] hub 3-0:1.0: USB hub found
[ 1.412562] hub 3-0:1.0: 1 port detected
[ 1.417910] using random self ethernet address
[ 1.422406] using random host ethernet address
[ 1.429079] usb0: HOST MAC ea:2e:b5:37:94:39
[ 1.433399] usb0: MAC ea:73:b4:e9:b1:97
[ 1.437391] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day 2008
[ 1.444869] g_cdc gadget: g_cdc ready
[ 1.451183] sun4i-codec 1c22c00.codec: Codec <-> 1c22c00.codec mapping ok
[ 1.459688] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01 00:00:11 UTC (11)
[ 1.468021] vcc5v0: disabling
[ 1.470997] ALSA device list:
[ 1.473961] #0: V3s Audio Codec
[ 1.479412] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
[ 1.488737] EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities
[ 1.744749] EXT4-fs (mmcblk0p2): recovery complete
[ 1.752584] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 1.760827] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 1.769205] devtmpfs: mounted
[ 1.773355] Freeing unused kernel memory: 1024K
[ 1.924658] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
Starting logging: OK
Initializing random number generator... done.
Starting network: OK
Welcome to Buildroot
buildroot login:
我的TF启动是这样的,
你看下第二个分区有没有 /dev/null, /dev/consle的设备?
具体写写 怎么先编译出u-boot, Linux, dtb 文件, 用buildroot编译出根文件系统
新鲜出炉: 荔枝派Zero V3s开发板入坑教程
荔枝派zero核心板pdf:
https://whycan.cn/files/20171005/11/lichee_zero(核心板).pdf
荔枝派zero底板pdf:
https://whycan.cn/files/20171005/11/lichee_base(底板).pdf
二代一体开发板: 荔枝派一体开发板原理图(核心板与底板整合到一块).pdf
全志V3s手册V1.0: Allwinner_V3s_Datasheet_V1.0.pdf
全志S3手册V0.2: Allwinner_S3_Datasheet_V0_2.pdf (索智S3手册)
-------------------------------------------------------------------------------------------
回顾: 【视频分享】制作荔枝派Zero开发板(全志V3s) TF/SD卡启动盘
1. 准备工作
1) 安装Ubuntu14.04LTS(长支持版本),如果用虚拟机请安装vmware14(别的虚拟机都不推荐,泪的教训), 然后安装 vmware tools(不是必须,但是方便文件共享)
2) 安装arm linux 硬件浮点数工具链, 因为V3s支持VFPv4 浮点单元: sudo apt-get install gcc-arm-linux-gnueabihf
3) 安装git源码管理软件: sudo apt-get install git
4) 其他支撑软件
2. u-boot
首先获取u-boot源码: git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current
如果你需要支持spi flash: git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-spi-experimental
修改 include/configs/sun8i.h, 使u-boot可以直接从tf卡启动:
#define CONFIG_BOOTCOMMAND "setenv bootm_boot_mode sec; " \
"load mmc 0:1 0x41000000 zImage; " \
"load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; " \
"bootz 0x41000000 - 0x41800000;"#define CONFIG_BOOTARGS "console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0"
cd u-boot
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_800x480LCD_defconfig (群主网店5寸屏)ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_480x272LCD_defconfig (通用4.3寸屏)
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_defconfig (默认)
ARCH=arm make menuconfig
执行编译:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make多核编译,避免cpu其他内核打酱油, J后的参数是参与编译的cpu个数:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j3
3. 设备树, Linux
获取Linux源码(zero-4.13.y分支对网卡支持比较好): git clone https://github.com/Lichee-Pi/linux.git -b zero-4.13.y
生成荔枝派Zero 默认配置文件: CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make licheepi_zero_defconfig
设备树文件(默认不需要修改): arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
编译内核: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
编译设备树: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
4. 根文件系统
1). 下载最新的buildroot稳定版本
官方网站: https://buildroot.org/download.html
长支持版本:buildroot-2017.02.7.tar.gz
最新稳定版:buildroot-2017.08.1.tar.gz
2). 配置buildroot 参数, make menuconfig; make
如果不会配置, 就下载下面这个文件,然后把 buildroot-v3s-20171122.zip解压后 拷贝到 buidroot目录成 .config 文件。
3). 执行编译, 生成文件跟文件系统。
4). 如需构建Qt应用程序, 视频地址: buildroot成功后如何编译Qt应用程序
5. 烧录TF卡启动盘: 【视频分享】制作荔枝派Zero开发板(全志V3s) TF/SD卡启动盘
1) 删除TF卡所有分区
2) 将uboot写入到sd卡8k偏移处(必须8K偏移, brom龟腚的)。
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8
3) 建立第一个分区,大小32M(可以随意填写), 格式FAT16, 把zImage, sun8i-v3s-licheepi-zero-dock.dtb拷贝到 这个分区
4) 建立第二个分区,用尽剩余空间,格式ext4, 把buildroot产生的rootfs.tar解压到该分区根目录
tar xvf output/images/rootfs.tar -C /挂载的tf卡第二个分区目录
这是我编译好的uboot, linux&dtb, rootfs: V3s_TFCard.7z
荔枝派Zero开发板网卡验证通过, 登陆账号root,无密码。
sha1sum文件校验码: 43c635802438e26c8fe96ada66255b664d52cddd
这个问题一开始也弄了很久,
一筹莫展,
后来放狗搜到了友善之臂这个链接: http://www.friendlyarm.net/forum/topic/2998
你看下能不能帮到你,
Linux启动命令加上这个就好了:
vt.global_cursor_default=0
修改: drivers/mtd/devices/m25p80.c
粗体部分是添加的内容:
static int m25p_remove(struct spi_device *spi)
{
struct m25p *flash = spi_get_drvdata(spi);// manfeel note: add spi flash reset code
flash->command[0] = 0x66;
spi_write(flash->spi, flash->command, 1);
flash->command[0] = 0x99;
spi_write(flash->spi, flash->command, 1);
/* Clean up MTD stuff. */
return mtd_device_unregister(&flash->mtd);
}
static struct spi_driver m25p80_driver = {
.driver = {
.name = "m25p80",
.owner = THIS_MODULE,
},
.id_table = m25p_ids,
.probe = m25p_probe,
.remove = m25p_remove,
// manfeel, add shutdown method to reset spi flash
.shutdown = m25p_remove,
/* REVISIT: many of these chips have deep power-down modes, which
* should clearly be entered on suspend() to minimize power use.
* And also when they're otherwise idle...
*/
};
修改原因:
kernel已经能够支持32M SPI Flash的读写以及擦除操作.然而,可能是系统考虑不周,亦或是Linux系统的BUG,在配置了W25Q256的V3s开发板系统上,无法soft reset!经过查阅相关资料,发现,V3s默认支持24bit(3byte)的spi地址模式,而要支持32M以上的spi flash,则必须切换到32bit(4byte)地址模式.在soft reset的时候,spi停留在了32bit模式,没有切换回默认的24bit模式,导致reset后,V3s在默认的24bit模式,无法和32bit模式的spi通讯,系统死机.
感谢:
荔枝派Q群群主,
感谢 csdn的Manfeel大神
http://blog.csdn.net/chongzi865458/article/details/54406865
从Qt5.0开始,Qt不再包含自己的视窗系统了(QWS)。对于单屏幕的情况,使用QtPlatform Abstraction是一个很好的选择。多屏的情况可以通过Wayland实现。
有许多跨平台的插件可以使用:EGLFS,LinuxFB,KMS,DirectFB,Wayland。可以通过配置Qt使用这些插件。默认的平台插件是特殊设备。例如,许多板子默认使用eglfs。如果默认的不合适,可以通过修改QT_QPA_PLATFORM环境变量来设置另一个插件。可选的,使用-platform 命令行也可以达到相同的效果。
本来想在全志V3s试一下Qt5.9, 结果发现每个动态链接库都是很大个, libQt5Core高达 5M
看起来好吓人.
lrwxrwxrwx 1 root root 19 Nov 14 10:31 libQt5Core.so.5 -> libQt5Core.so.5.9.1
lrwxrwxrwx 1 root root 19 Nov 14 10:31 libQt5Core.so.5.9 -> libQt5Core.so.5.9.1
-rwxr-xr-x 1 root root 4911216 Nov 14 10:31 libQt5Core.so.5.9.1
lrwxrwxrwx 1 root root 18 Nov 14 10:31 libQt5Gui.so.5 -> libQt5Gui.so.5.9.1
lrwxrwxrwx 1 root root 18 Nov 14 10:31 libQt5Gui.so.5.9 -> libQt5Gui.so.5.9.1
-rwxr-xr-x 1 root root 4233676 Nov 14 10:31 libQt5Gui.so.5.9.1
lrwxrwxrwx 1 root root 22 Nov 14 10:31 libQt5Network.so.5 -> libQt5Network.so.5.9.1
lrwxrwxrwx 1 root root 22 Nov 14 10:31 libQt5Network.so.5.9 -> libQt5Network.so.5.9.1
-rwxr-xr-x 1 root root 1184776 Nov 14 10:31 libQt5Network.so.5.9.1
lrwxrwxrwx 1 root root 27 Nov 14 10:31 libQt5PrintSupport.so.5 -> libQt5PrintSupport.so.5.9.1
lrwxrwxrwx 1 root root 27 Nov 14 10:31 libQt5PrintSupport.so.5.9 -> libQt5PrintSupport.so.5.9.1
-rwxr-xr-x 1 root root 338336 Nov 14 10:31 libQt5PrintSupport.so.5.9.1
lrwxrwxrwx 1 root root 18 Nov 14 10:31 libQt5Sql.so.5 -> libQt5Sql.so.5.9.1
lrwxrwxrwx 1 root root 18 Nov 14 10:31 libQt5Sql.so.5.9 -> libQt5Sql.so.5.9.1
-rwxr-xr-x 1 root root 243476 Nov 14 10:31 libQt5Sql.so.5.9.1
lrwxrwxrwx 1 root root 19 Nov 14 10:31 libQt5Test.so.5 -> libQt5Test.so.5.9.1
lrwxrwxrwx 1 root root 19 Nov 14 10:31 libQt5Test.so.5.9 -> libQt5Test.so.5.9.1
-rwxr-xr-x 1 root root 226700 Nov 14 10:31 libQt5Test.so.5.9.1
lrwxrwxrwx 1 root root 22 Nov 14 10:31 libQt5Widgets.so.5 -> libQt5Widgets.so.5.9.1
lrwxrwxrwx 1 root root 22 Nov 14 10:31 libQt5Widgets.so.5.9 -> libQt5Widgets.so.5.9.1
-rwxr-xr-x 1 root root 5640376 Nov 14 10:31 libQt5Widgets.so.5.9.1
lrwxrwxrwx 1 root root 18 Nov 14 10:31 libQt5Xml.so.5 -> libQt5Xml.so.5.9.1
lrwxrwxrwx 1 root root 18 Nov 14 10:31 libQt5Xml.so.5.9 -> libQt5Xml.so.5.9.1
-rwxr-xr-x 1 root root 205800 Nov 14 10:31 libQt5Xml.so.5.9.1
widora的github上不是有一份测试代码,里面就有操作spi的cc1101的例子
https://github.com/widora/ctest
Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.
QtWebEngine will not be built.
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebengine'
make[1]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebengine'
make[1]: 没有什么可以做的为 `first'。
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebengine'
cd qttranslations/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qttranslations/qttranslations.pro -o Makefile ) && make -f Makefile
make[1]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations'
/opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake -o Makefile qttranslations.pro
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations'
make[1]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations'
cd translations/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qttranslations/translations/translations.pro -o Makefile ) && make -f Makefile
make[2]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations/translations'
/opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake -o Makefile translations.pro
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations/translations'
make[2]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations/translations'
make[2]: 没有什么可以做的为 `first'。
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations/translations'
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations'
cd qtdoc/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qtdoc/qtdoc.pro -o Makefile ) && make -f Makefile
make[1]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc'
/opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake -o Makefile qtdoc.pro
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc'
make[1]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc'
cd doc/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qtdoc/doc/doc.pro -o Makefile ) && make -f Makefile
make[2]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc/doc'
/opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake -o Makefile doc.pro
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc/doc'
make[2]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc/doc'
make[2]: 没有什么可以做的为 `first'。
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc/doc'
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc'
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.4.1$
终于编译完成!
有错可以一次报完吗?
Can't exec "bison": 没有那个文件或目录 at /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/css/makegrammar.pl line 76.
Died at /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/css/makegrammar.pl line 84.
make[3]: *** [generated/CSSGrammar.cpp] 错误 2
make[3]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore'
make[2]: *** [sub-DerivedSources-pri-make_first-ordered] 错误 2
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore'
make[1]: *** [sub-Source-WebCore-WebCore-pro-make_first-ordered] 错误 2
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit'
make: *** [module-qtwebkit-make_first] 错误 2
解决方案:
sudo apt-get install bison
真是好事多磨,又缺gperf:
perl -ne "print " css/CSSPropertyNames.in /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/css/SVGCSSPropertyNames.in > generated/CSSPropertyNames.in && cd generated && perl -I/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/bindings/scripts /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/css/makeprop.pl --defines "LANGUAGE_JAVASCRIPT=1 ENABLE_3D_RENDERING=1 ENABLE_BLOB=1 ENABLE_CANVAS_PATH=1 ENABLE_CHANNEL_MESSAGING=1 ENABLE_CSS_BOX_DECORATION_BREAK=1 ENABLE_CSS_COMPOSITING=1 ENABLE_CSS_EXCLUSIONS=1 ENABLE_CSS_FILTERS=1 ENABLE_CSS_IMAGE_SET=1 ENABLE_CSS_REGIONS=1 ENABLE_CSS_SHAPES=1 ENABLE_CSS_STICKY_POSITION=1 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=1 ENABLE_DATALIST_ELEMENT=1 ENABLE_DETAILS_ELEMENT=1 ENABLE_DEVICE_ORIENTATION=1 ENABLE_DOWNLOAD_ATTRIBUTE=1 ENABLE_FAST_MOBILE_SCROLLING=1 ENABLE_FILTERS=1 ENABLE_FTPDIR=1 ENABLE_FULLSCREEN_API=1 ENABLE_GEOLOCATION=1 ENABLE_GESTURE_EVENTS=1 ENABLE_ICONDATABASE=1 ENABLE_IFRAME_SEAMLESS=1 ENABLE_INDEXED_DATABASE=1 ENABLE_INPUT_TYPE_COLOR=1 ENABLE_INSPECTOR=1 ENABLE_INSPECTOR_SERVER=1 ENABLE_JAVASCRIPT_DEBUGGER=1 ENABLE_LEGACY_NOTIFICATIONS=1 ENABLE_LEGACY_VIEWPORT_ADAPTION=1 ENABLE_LEGACY_VENDOR_PREFIXES=1 ENABLE_LEGACY_WEB_AUDIO=1 ENABLE_LINK_PREFETCH=1 ENABLE_METER_ELEMENT=1 ENABLE_MHTML=1 ENABLE_NOTIFICATIONS=1 ENABLE_ORIENTATION_EVENTS=1 ENABLE_PAGE_VISIBILITY_API=1 ENABLE_PROGRESS_ELEMENT=1 ENABLE_RESOLUTION_MEDIA_QUERY=1 ENABLE_REQUEST_ANIMATION_FRAME=1 ENABLE_SHARED_WORKERS=1 ENABLE_SMOOTH_SCROLLING=1 ENABLE_SQL_DATABASE=1 ENABLE_SUBPIXEL_LAYOUT=1 ENABLE_SVG=1 ENABLE_SVG_FONTS=1 ENABLE_TOUCH_ADJUSTMENT=1 ENABLE_TOUCH_EVENTS=1 ENABLE_VIDEO_TRACK=1 ENABLE_VIEW_MODE_CSS_MEDIA=1 ENABLE_WEB_SOCKETS=1 ENABLE_WEB_TIMING=1 ENABLE_WORKERS=1 ENABLE_XHR_TIMEOUT=1 ENABLE_VIDEO=1 ENABLE_GAMEPAD=1 ENABLE_TOUCH_SLIDER=1" --preprocessor "/opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/moc -E" css/CSSPropertyNames.in && rm -f CSSPropertyNames.in CSSPropertyNames.gperf
sh: 1: gperf: not found
calling gperf failed: 32512 at /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/css/makeprop.pl line 259.
make[3]: *** [generated/CSSPropertyNames.cpp] 错误 25
make[3]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore'
make[2]: *** [sub-DerivedSources-pri-make_first-ordered] 错误 2
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore'
make[1]: *** [sub-Source-WebCore-WebCore-pro-make_first-ordered] 错误 2
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit'
make: *** [module-qtwebkit-make_first] 错误 2
解决方案:
sudo apt-get install gperf
继续改,改成这样:
#ifndef ANDROID
//# include <wchar.h>
// typedef wchar_t UChar;
#include <wctype.h>
typedef unsigned short int UChar;
#else
typedef unsigned short int UChar;
#endif
这次没有编译错误了,缺ruby:
cd Source/JavaScriptCore/ && ( test -e Makefile.JavaScriptCore || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore/JavaScriptCore.pro -o Makefile.JavaScriptCore ) && make -f Makefile.JavaScriptCore
make[2]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore'
( test -e Makefile.LLIntOffsetsExtractor || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore/LLIntOffsetsExtractor.pro -o Makefile.LLIntOffsetsExtractor ) && make -f Makefile.LLIntOffsetsExtractor
make[3]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore'
ruby /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb llint/LowLevelInterpreter.asm LLIntDesiredOffsets.h
make[3]: ruby:命令未找到
make[3]: *** [LLIntDesiredOffsets.h] 错误 127
make[3]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore'
make[2]: *** [sub-LLIntOffsetsExtractor-pro-make_first-ordered] 错误 2
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore'
make[1]: *** [sub-Source-JavaScriptCore-JavaScriptCore-pro-make_first-ordered] 错误 2
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit'
make: *** [module-qtwebkit-make_first] 错误 2
解决方案:
sudo apt-get install ruby
根据这个帖子: qt5.5.1 移植4412的问题过程
把qtwebkit/Source/WTF/wtf/unicode/wchar/UnicodeWchar.h 改成酱紫:
#ifndef ANDROID
# include <wchar.h>
// typedef wchar_t UChar;
typedef unsigned short int UChar;
#else
typedef unsigned short int UChar;
#endif
5.4.1 也不行,卧槽:
everywhere-opensource-src-5.4.1/qtbase/include/QtCore -I.moc -I/opt/_install/include -I/opt/qt-everywhere-opensource-src-5.4.1/qtbase/mkspecs/linux-arm-gnueabi-g++ -o .obj/wtf/DateMath.o wtf/DateMath.cpp
In file included from ./wtf/unicode/Unicode.h:34:0,
from ./wtf/text/ASCIIFastPath.h:31,
from ./wtf/text/WTFString.h:28,
from wtf/DateMath.h:54,
from wtf/DateMath.cpp:73:
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isAlphanumeric(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:136:58: 错误: ‘iswalnum’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isDigit(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:137:51: 错误: ‘iswdigit’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isLetter(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:138:52: 错误: ‘iswalpha’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isLower(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:139:51: 错误: ‘iswlower’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isPrintableChar(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:140:59: 错误: ‘iswprint’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isPunct(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:141:51: 错误: ‘iswpunct’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isSpace(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:142:51: 错误: ‘iswspace’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isUpper(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:143:51: 错误: ‘iswupper’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘UChar WTF::Unicode::foldCase(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:148:51: 错误: ‘towlower’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘UChar WTF::Unicode::toLower(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:149:50: 错误: ‘towlower’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘UChar WTF::Unicode::toUpper(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:150:50: 错误: ‘towupper’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘UChar WTF::Unicode::toTitleCase(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:151:54: 错误: ‘towupper’在此作用域中尚未声明
In file included from ./wtf/text/ASCIIFastPath.h:31:0,
from ./wtf/text/WTFString.h:28,
from wtf/DateMath.h:54,
from wtf/DateMath.cpp:73:
./wtf/unicode/Unicode.h: 在全局域:
./wtf/unicode/Unicode.h:39:1: 错误: static assertion failed: UCharIsTwoBytes
make[2]: *** [.obj/wtf/DateMath.o] 错误 1
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WTF'
make[1]: *** [sub-Source-WTF-WTF-pro-make_first-ordered] 错误 2
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit'
make: *** [module-qtwebkit-make_first] 错误 2
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.4.1$
被5.9.2折磨到了, 转战 5.4.1
sudo apt-get install make
sudo apt-get install g++
sudo apt-get install autoconf
sudo apt-get install m4
sudo apt-get install libtool
git clone https://github.com/kergoth/tslib.git
cd tslib
./autogen.sh
./configure --prefix=${PWD}/../_install --host=arm-linux-gnueabi
make;make install
如果出现了链接错误undefined reference to rpl_malloc,这样解决:
config.h.in里定义:
#undef malloc
#undef realloc
然后进入 qt-everywhere-opensource-src-5.4.1 执行
./configure \
-prefix /usr/local/qt5.4.1 \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-tslib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-make examples -nomake tools -nomake tests -no-iconvmake
make install
cd quickwidgets/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.9.2/qtbase/bin/qmake -o Makefile /opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets/quickwidgets.pro ) && make -f Makefile
make[4]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets'
cd quickwidget/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.9.2/qtbase/bin/qmake -o Makefile /opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets/quickwidget/quickwidget.pro ) && make -f Makefile
make[5]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets/quickwidget'
arm-linux-gnueabi-g++ -Wl,-O1 -fuse-ld=gold -Wl,--enable-new-dtags -o quickwidget .obj/main.o .obj/fbitem.o .obj/quickwidget_plugin_import.o .obj/quickwidget_qml_plugin_import.o .obj/qrc_quickwidget.o .obj/moc_fbitem.o -L/opt/qt-everywhere-opensource-src-5.9.2/qtbase/plugins/platforms -lqlinuxfb -L/opt/qt-everywhere-opensource-src-5.9.2/qtbase/lib -lQt5ServiceSupport -lQt5EventDispatcherSupport -lQt5FontDatabaseSupport -lqtfreetype -lQt5FbSupport -lQt5InputSupport -lQt5DeviceDiscoverySupport -L/opt/qt-everywhere-opensource-src-5.9.2/qtimageformats/plugins/imageformats -lqicns -lqtga -lqtiff -lqwbmp -lqwebp -L/opt/qt-everywhere-opensource-src-5.9.2/qtbase/plugins/imageformats -lqico -lqjpeg -L/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/plugins/qmltooling -lqmldbg_debugger -L/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/lib -lqmldbg_inspector -lqmldbg_local -lqmldbg_messages -lqmldbg_native -lqmldbg_nativedebugger -lqmldbg_profiler -lqmldbg_quickprofiler -lqmldbg_server -lQt5PacketProtocol -lqmldbg_tcp -L/opt/qt-everywhere-opensource-src-5.9.2/qtbase/plugins/bearer -lqgenericbearer -lQt5QuickWidgets -lQt5Widgets -L/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/qml/QtQuick.2 -lqtquick2plugin -lQt5Quick -lQt5Gui -lqtlibpng -lqtharfbuzz -lQt5Qml -lrt -lQt5Network -lQt5Core -lm -lqtpcre2 -ldl -lpthread
.obj/main.o:main.cpp:function void QQmlPrivate::createInto<FbItem>(void*): error: undefined reference to 'QQuickFramebufferObject::QQuickFramebufferObject(QQuickItem*)'
.obj/main.o:main.cpp:function .LTHUNK7: error: undefined reference to 'vtable for QQuickFramebufferObject'
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
.obj/main.o:main.cpp:function QQmlPrivate::QQmlElement<FbItem>::~QQmlElement(): error: undefined reference to 'vtable for QQuickFramebufferObject'
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
.obj/main.o:main.cpp:vtable for QQmlPrivate::QQmlElement<FbItem>: error: undefined reference to 'QQuickFramebufferObject::isTextureProvider() const'
.obj/main.o:main.cpp:vtable for QQmlPrivate::QQmlElement<FbItem>: error: undefined reference to 'QQuickFramebufferObject::textureProvider() const'
.obj/main.o:main.cpp:vtable for QQmlPrivate::QQmlElement<FbItem>: error: undefined reference to 'QQuickFramebufferObject::geometryChanged(QRectF const&, QRectF const&)'
.obj/main.o:main.cpp:vtable for QQmlPrivate::QQmlElement<FbItem>: error: undefined reference to 'QQuickFramebufferObject::updatePaintNode(QSGNode*, QQuickItem::UpdatePaintNodeData*)'
.obj/main.o:main.cpp:vtable for QQmlPrivate::QQmlElement<FbItem>: error: undefined reference to 'QQuickFramebufferObject::releaseResources()'
.obj/moc_fbitem.o:moc_fbitem.cpp:function FbItem::qt_metacall(QMetaObject::Call, int, void**): error: undefined reference to 'QQuickFramebufferObject::qt_metacall(QMetaObject::Call, int, void**)'
.obj/moc_fbitem.o:moc_fbitem.cpp:function FbItem::qt_metacast(char const*): error: undefined reference to 'QQuickFramebufferObject::qt_metacast(char const*)'
.obj/moc_fbitem.o:moc_fbitem.cpp:function .LTHUNK2: error: undefined reference to 'vtable for QQuickFramebufferObject'
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
.obj/moc_fbitem.o:moc_fbitem.cpp:function FbItem::~FbItem(): error: undefined reference to 'vtable for QQuickFramebufferObject'
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
.obj/moc_fbitem.o:moc_fbitem.cpp:typeinfo for FbItem: error: undefined reference to 'typeinfo for QQuickFramebufferObject'
.obj/moc_fbitem.o:moc_fbitem.cpp:vtable for FbItem: error: undefined reference to 'QQuickFramebufferObject::isTextureProvider() const'
.obj/moc_fbitem.o:moc_fbitem.cpp:vtable for FbItem: error: undefined reference to 'QQuickFramebufferObject::textureProvider() const'
.obj/moc_fbitem.o:moc_fbitem.cpp:vtable for FbItem: error: undefined reference to 'QQuickFramebufferObject::geometryChanged(QRectF const&, QRectF const&)'
.obj/moc_fbitem.o:moc_fbitem.cpp:vtable for FbItem: error: undefined reference to 'QQuickFramebufferObject::updatePaintNode(QSGNode*, QQuickItem::UpdatePaintNodeData*)'
.obj/moc_fbitem.o:moc_fbitem.cpp:vtable for FbItem: error: undefined reference to 'QQuickFramebufferObject::releaseResources()'
.obj/moc_fbitem.o:moc_fbitem.cpp:FbItem::staticMetaObject: error: undefined reference to 'QQuickFramebufferObject::staticMetaObject'
collect2: 错误: ld 返回 1
make[5]: *** [quickwidget] 错误 1
make[5]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets/quickwidget'
make[4]: *** [sub-quickwidget-make_first] 错误 2
make[4]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets'
make[3]: *** [sub-quickwidgets-make_first] 错误 2
make[3]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick'
make[2]: *** [sub-quick-make_first] 错误 2
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples'
make[1]: *** [sub-examples-make_first] 错误 2
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative'
make: *** [module-qtdeclarative-make_first] 错误 2
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.9.2$
链接错误!
找到参考网站:
Qt5.4.1移植到arm——Linuxfb篇
QT5.5移植到ARM全攻略
修改 qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 成这样:
#
# qmake configuration for building with arm-linux-gnueabi-g++
#MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-ainclude(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)QMAKE_INCDIR += /usr/local/tslib/include
QMAKE_LIBDIR += /usr/local/tslib/lib# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabihf-gcc -lts
QMAKE_CXX = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ -lts# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_NM = arm-linux-gnueabihf-nm -P
QMAKE_STRIP = arm-linux-gnueabihf-strip
load(qt_config)
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.9.2$ ./configure \
> -prefix ${QT592_PREFIX} \
> -release \
> -opensource \
> -static \
> -no-accessibility \
> -qt-zlib \
> -qt-freetype \
> -no-gif \
> -qt-libpng \
> -qt-libjpeg \
> -no-openssl \
> -no-cups \
> -no-iconv \
> -no-pch \
> -no-dbus \
> -platform linux-g++-64 \
> -xplatform linux-arm-gnueabi-g++ \
> -no-opengl \
> -no-openvg \
> -no-sm \
> -no-fontconfig \
> -no-xkb \
> -no-glib \
> -tslib \
> -I ${TSLIB_PREFIX}/include/ \
> -L ${TSLIB_PREFIX}/lib/
+ cd qtbase
+ /opt/qt-everywhere-opensource-src-5.9.2/qtbase/configure -top-level -prefix /usr/local/Qt592 -release -opensource -static -no-accessibility -qt-zlib -qt-freetype -no-gif -qt-libpng -qt-libjpeg -no-openssl -no-cups -no-iconv -no-pch -no-dbus -platform linux-g++-64 -xplatform linux-arm-gnueabi-g++ -no-opengl -no-openvg -no-sm -no-fontconfig -no-xkb -no-glib -tslib -I /opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/ -L /opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/
Creating qmake...
.Done.This is the Qt Open Source Edition.
You are licensed to use this software under the terms of
the GNU Lesser General Public License (LGPL) version 3
or the GNU General Public License (GPL) version 2.Type 'L' to view the GNU Lesser General Public License version 3 (LGPLv3).
Type 'G' to view the GNU General Public License version 2 (GPLv2).
Type 'y' to accept this license offer.
Type 'n' to decline this license offer.Do you accept the terms of either license? y
Running configuration tests...
Checking for gold linker... yes
Checking for machine tuple... yes
Checking for valid makespec... yes
Checking for alloca() in alloca.h... yes
Checking for target architecture... Project ERROR: Could not determine target architecture. See config.log for details.
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.9.2$ cat config.log
Command line: -prefix /usr/local/Qt592 -release -opensource -static -no-accessibility -qt-zlib -qt-freetype -no-gif -qt-libpng -qt-libjpeg -no-openssl -no-cups -no-iconv -no-pch -no-dbus -platform linux-g++-64 -xplatform linux-arm-gnueabi-g++ -no-opengl -no-openvg -no-sm -no-fontconfig -no-xkb -no-glib -tslib -I /opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/ -L /opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/
executing config test use_gold_linker
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests && arm-linux-gnueabi-g++ -fuse-ld=gold -o conftest-out conftest.cpp
test config.qtbase.tests.use_gold_linker succeeded
executing config test machineTuple
+ arm-linux-gnueabi-g++ -dumpmachine
> arm-linux-gnueabi
test config.qtbase.tests.machineTuple succeeded
executing config test verifyspec
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/verifyspec && /opt/qt-everywhere-opensource-src-5.9.2/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static use_gold_linker warn_off console single_arch" 'QMAKE_LIBDIR += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/' 'INCLUDEPATH += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/' -early "CONFIG += cross_compile" /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/verifyspec
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/verifyspec && MAKEFLAGS= /usr/bin/make
> arm-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -w -fPIC -I/opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/verifyspec -I. -I/opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/ -I/opt/qt-everywhere-opensource-src-5.9.2/qtbase/mkspecs/linux-arm-gnueabi-g++ -o verifyspec.o /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/verifyspec/verifyspec.cpp
> arm-linux-gnueabi-g++ -Wl,-O1 -fuse-ld=gold -o verifyspec verifyspec.o -L/opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/
test config.qtbase.tests.verifyspec succeeded
executing config test alloca_h
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/alloca_h && /opt/qt-everywhere-opensource-src-5.9.2/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static use_gold_linker warn_off console single_arch" 'QMAKE_LIBDIR += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/' 'INCLUDEPATH += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/' -early "CONFIG += cross_compile" /opt/qt-everywhere-opensource-src-5.9.2/config.tests/alloca_h
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/alloca_h && MAKEFLAGS= /usr/bin/make
> arm-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -w -fPIC -I. -I/opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/ -I/opt/qt-everywhere-opensource-src-5.9.2/qtbase/mkspecs/linux-arm-gnueabi-g++ -o main.o main.cpp
> arm-linux-gnueabi-g++ -Wl,-O1 -fuse-ld=gold -o alloca_h main.o -L/opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/
test config.qtbase.tests.alloca_h succeeded
executing config test architecture
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/arch && /opt/qt-everywhere-opensource-src-5.9.2/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static use_gold_linker warn_off console single_arch" 'QMAKE_LIBDIR += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/' 'INCLUDEPATH += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/' -early "CONFIG += cross_compile" /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/arch && MAKEFLAGS= /usr/bin/make
> arm-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -w -fPIC -I/opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch -I. -I/opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/ -I/opt/qt-everywhere-opensource-src-5.9.2/qtbase/mkspecs/linux-arm-gnueabi-g++ -o arch.o /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch/arch.cpp
> In file included from /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch/../../src/corelib/global/archdetect.cpp:41:0,
> from /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch/arch.cpp:42:
> /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch/../../src/corelib/global/qprocessordetection.h:149:6: 错误: #error "ARM architecture too old"
> make: *** [arch.o] 错误 1
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.9.2$
configure出错
编译安装tslib:
git clone https://github.com/kergoth/tslib.git
cd tslib
配置编译Qt5.9.2
QT592_PREFIX=/usr/local/Qt592
TSLIB_PREFIX=${PWD}/../_installed/
./configure \
-confirm-license \
-prefix ${QT592_PREFIX} \
-release \
-opensource \
-static \
-no-accessibility \
-qt-zlib \
-qt-freetype \
-no-gif \
-qt-libpng \
-qt-libjpeg \
-no-openssl \
-no-cups \
-no-iconv \
-no-pch \
-no-dbus \
-platform linux-g++-64 \
-xplatform linux-arm-gnueabi-g++ \
-no-opengl \
-no-openvg \
-no-sm \
-no-fontconfig \
-no-xkb \
-no-glib \
-tslib \
-I ${TSLIB_PREFIX}/include/ \
-L ${TSLIB_PREFIX}/lib/
转载看云的文章: sunxi-fel增加对16M以上Flash的支持
由于SPI flash 的地址是24bit,也就是最大16M 地址空间,所以对于32M flash,需要增加bank切换支持。
uboot中有CONFIG_SPI_FLASH_BAR选项可以使能bank切换。
但是sunxi-fel中尚未支持,所以下载的时候超出16M会循环覆盖掉。
这里介绍对sunxi-fel增加16M以上flash支持的方法。
u-boot的支持
drivers/mtd/spi/spi_flash.c
static int write_bar(struct spi_flash *flash, u32 offset)
{
u8 cmd, bank_sel;
int ret;
bank_sel = offset / (SPI_FLASH_16MB_BOUN << flash->shift);
if (bank_sel == flash->bank_curr)
goto bar_end;
cmd = flash->bank_write_cmd;
ret = spi_flash_write_common(flash, &cmd, 1, &bank_sel, 1);
if (ret < 0) {
debug("SF: fail to write bank register\n");
return ret;
}
bar_end:
flash->bank_curr = bank_sel;
return flash->bank_curr;
}
sunxi-fel的支持
fel-spiflash.c
#define CMD_WRITE_ENABLE 0x06
#define SPI_FLASH_16MB_BOUN 0x1000000
# define CMD_BANKADDR_BRWR 0x17 //only SPANSION flash use it
# define CMD_BANKADDR_BRRD 0x16
# define CMD_EXTNADDR_WREAR 0xC5
# define CMD_EXTNADDR_RDEAR 0xC8
size_t bank_curr = 0;
void aw_fel_spiflash_write_helper(feldev_handle *dev,
uint32_t offset, void *buf, size_t len,
size_t erase_size, uint8_t erase_cmd,
size_t program_size, uint8_t program_cmd)
{
uint8_t *buf8 = (uint8_t *)buf;
size_t max_chunk_size = dev->soc_info->scratch_addr - dev->soc_info->spl_addr;
size_t cmd_idx, bank_sel;
if (max_chunk_size > 0x1000)
max_chunk_size = 0x1000;
uint8_t *cmdbuf = malloc(max_chunk_size);
cmd_idx = 0;
prepare_spi_batch_data_transfer(dev, dev->soc_info->spl_addr);
//add bank support
{
cmd_idx = 0;
bank_sel = offset /SPI_FLASH_16MB_BOUN;
if (bank_sel == bank_curr)
goto bar_end;
/* Emit write enable command */
cmdbuf[cmd_idx++] = 0;
cmdbuf[cmd_idx++] = 1;
cmdbuf[cmd_idx++] = CMD_WRITE_ENABLE;
/* Emit write bank */
cmdbuf[cmd_idx++] = 0;
cmdbuf[cmd_idx++] = 2;
cmdbuf[cmd_idx++] = CMD_EXTNADDR_WREAR;
cmdbuf[cmd_idx++] = offset >> 24;
/* Emit wait for completion */
cmdbuf[cmd_idx++] = 0xFF;
cmdbuf[cmd_idx++] = 0xFF;
/* Emit the end marker */
cmdbuf[cmd_idx++] = 0;
cmdbuf[cmd_idx++] = 0;
aw_fel_write(dev, cmdbuf, dev->soc_info->spl_addr, cmd_idx);
aw_fel_remotefunc_execute(dev, NULL);
bar_end:
bank_curr = bank_sel;
}
cmd_idx = 0;
重新编译sunxi-fel后就可以烧录32M flash了~
git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e
decoder->bytes_left_before_decoding = decoder->bytes_left;
90 int err = MP3Decode(decoder->decoder, &decoder->read_ptr, (int *)&decoder->bytes_left, decoder->out, 0);
91 if (err != ERR_MP3_NONE) {
92 switch (err) {
93 case ERR_MP3_INDATA_UNDERFLOW:
94 printf("ERR_MP3_INDATA_UNDERFLOW\n");
95 decoder->bytes_left = 0;
96 if(mp3_get_data(decoder) != 0) {
97 //没有数据可读
98 goto error;
99 }
100 break;
101 case ERR_MP3_MAINDATA_UNDERFLOW:
102 /* do nothing - next call to decode will provide more mainData */
103 printf("ERR_MP3_MAINDATA_UNDERFLOW, continue to find sys words\n");
104 break;
105 default:
106 printf("unknown error: %d, left: %d\n", err, decoder->bytes_left);
107 // skip this frame
108 if (decoder->bytes_left > 0) {
109 decoder->bytes_left --;
110 decoder->read_ptr ++;
111 } else {
112 printf("fatal error\n");
113 goto error;
114 }
115 break;
116 }
117 } else {
网友发的 容错代码, 仅供参考.
/etc/init.d/rc.S 加上这一句:
ifconfig eth0 hw ether 02:01:02:03:04:08
mac地址后面三个字节最好根据v3s的id生成,参考: https://whycan.cn/viewtopic.php?id=324
或者出厂写入文件.
Qt5.6 或者 5.9
因为这两个版本是 LTS (长支持)版本
https://blog.qt.io/blog/2015/12/18/introducing-long-term-support/
https://www1.qt.io/qt5-9/
这么巧,刚好我也在做这个,刚刚找到一个帖,QLineEdit本来就有接口,挺不错的。
Qt考虑很周全.ui->lineEdit->setPlaceholderText(QString::fromStdWString("请输入账号"));
我就是这么用的,
不过要Qt 5.0 之后的版本才支持,
4.xx 没这个功能
这么巧,刚好我也在做这个,刚刚找到一个帖,QLineEdit本来就有接口,挺不错的。
Qt考虑很周全.
ui->lineEdit->setPlaceholderText(QString::fromStdWString("请输入账号"));
http://blog.csdn.net/liang19890820/article/details/52413012
这个应该有你想要的!
存储数据
setData()
setItemData()
setUserData()
获取数据:data()
itemData()
userData()
lichee0_base 和lichee_zero两个电路图是什么关系哦?
看这个帖子: https://whycan.cn/t_79.html
荔枝派zero核心板pdf:
https://whycan.cn/files/20171005/11/lichee_zero(核心板).pdf
荔枝派zero底板pdf:
https://whycan.cn/files/20171005/11/lichee_base(底板).pdf
全志V3s手册V1.0: Allwinner_V3s_Datasheet_V1.0.pdf
全志S3手册V0.2: Allwinner_S3_Datasheet_V0_2.pdf (索智S3手册)
ESP32的性能不错,主频240MHz,SRAM 520KB,Flash 16Mb,带有蓝牙和Wifi。但是ESP32到底有多快,我做了一个测试,将ESP32、ESP8266和PYBV10做对比,在它们上计算圆周率,通过计算时间比较计算性能。
ESP32 ESP8266 PYB V10
主频 240M 160M 168M
500 0.078 0.65 0.11
1000 0.30 2.20 0.40
2000 1.44 7.70 1.90
5000 7.78 44.5 11.0
10000 27.6 NA 38.6从上表可以看出,ESP32的性能的确非常不错。
这里有个avr版本的,
一片8脚的attiny85, 8k flash, 512字节ram, 实现流畅播放wav.
http://elm-chan.org/works/sd8p/report.html
有, 用 QSettings 非常简单
QSettings* setting = new QSettings("config.ini", QSettings::IniFormat);//生成配置文件
setting->beginGroup("config");//beginGroup与下面endGroup 相对应,“config”是标记
ui->edtFileName->setText(setting->value("burnfile").toString());
setting->endGroup();
delete setting;
setting->beginGroup("config");//beginGroup与下面endGroup 相对应,“config”是标记
setting->setValue("burnfile", ui->edtFileName->text());
setting->endGroup();
http://yqc.im/do-not-use-163-qiye-mail.html
MAY 2, 2016 / SAILOR / 1 COMMENT /
最近一段时间忙于找工作,于是各种改、投简历,而在这一过程最常打交道的东西就是邮箱了。之前为了个性化,将简历上的邮箱改成了域名邮箱,结果带来了一系列的问题,尽管最后找到了心仪的工作,不过在这里还是记录一下遇到了几个问题及总结。
尽量不要用个性域名邮箱
很多HR哥哥姐姐不是计算机出身,即使是也不一定玩过自定义的域名邮箱,所以不使用通用的邮箱会很大程度降低HR人员的出错率。
当然许多人认为可能让对方眼前一亮,但我个人观点是让对方眼前一亮的应该是你的能力及做过的事情。
com net优先
如果你还是要坚持使用域名邮箱,那么建议使用主流的com net 邮箱,其他的如im in cc me之类的有点不正式,并不建议使用。
比如好几个HR问我,这个i@yqc.im是你的邮箱么?能收到邮件么?能收到邮件么?能收到邮件么?
不要使用网易企业邮箱
不要使用网易企业邮箱!
不要使用网易企业邮箱!
不要使用网易企业邮箱!
重要的事情重复3遍。
为什么不能用网易企业邮箱?
之前一个有几个HR和我说给我发邮件发不成功,说我的邮箱有问题,不得已,我换成了我初二就注册过的126邮箱。虽然问题解决,还是没忍住折腾的好奇心,看看到底是怎样一个问题,不过苦于一直没有找到bug所在。直到周五,我终于有了自己的工作域名邮箱,巧的是:也是网易域名邮箱。
于是我用这个工作邮箱(163企业邮箱)给自己的域名邮箱(163免费版)发邮件,出现了下面的神奇状况:
而使用企业邮箱发往其他非网易企业邮箱时,就没有问题了。感到好奇,于是Google这个错误,原来有人和我遇到过一样的情况(邮件故障:553,Requested action not taken: no smtp MX only 问题排查 )原因如下:
网易企业邮局用于接收Internet邮件的MX入口服务器是不允许接受发件人地址是企业邮局站内注册用户的邮箱地址所发来的邮件的;
所以设想一下以下的场景:你使用了网易的免费企业邮箱服务,投递简历的公司也是使用的网易的企业邮箱服务,通过网易邮箱,你永远不可能得到offer。
解决方案
不要使用网易企业邮箱
不要使用网易企业邮箱
不要使用网易企业邮箱
用什么?个人推荐QQ域名邮箱和QQ企业邮箱,这真的不是广告。通过测试,并不存在网易的上述问题,使用两个域名绑定了两个QQ号,相互发邮件没有任何问题。
另外QQ域名邮箱和QQ企业邮箱是有所区别的,QQ域名邮箱是和QQ号绑定在一起的,也就是说QQ域名邮箱相当于给你原来的QQ邮箱起了个新名,所有的邮件还是在QQ邮箱里接收。QQ企业邮箱是独立存在的,有独立的入口,并且可以使用绑定微信这种高级功能。
本人现在使用的是QQ域名邮箱,也不用再登录邮箱入口了,直接使用QQ代收,简单方便。
后记
绑定了QQ邮箱之后,记得把之前的网易企业邮箱注销掉,因为如果投递简历的公司使用的还是网易的企业邮箱服务,通过QQ邮箱,你永远不可能得到offer。因为网易会默认为自己站内的用户,邮件根本就没发出来。
如果之前绑定网易企业邮箱换了怎么办?
你可以通过帮助中心联系管理员,当然短时间不会回复你的,你可以:“成为VIP,问题反馈尊享优先特权”(呵呵,就你也配提BUG?)
之后你可能会收到一条类似的自动回复:
您好,如需更换管理员平台绑定手机,请您提供域名所有权证书原件截图、公司营业执照原件截图、申请人身份证正反面截图、管理员帐号及需要更换的新手机号码,以便我们为您申请更换处理。感谢您使用网易服务!
可是我个人注册营业执照是什么鬼,国外的域名商域名证书要自动生成一个么?
未完待续。