页次: 1
我用的这个就是功率电感吧
这个电感没毛病
搞一天应该是可以了,感谢别墅群友 Extraterrestrial 的帮助的
1.反差色是由于时钟相位导致的
修改uboot的配置LCD panel display clock phase 可以设置为 0 1 2 3 我是把1改为0 消除的反差色
2.冷暖色是电源导致的 VCOM VGL VGH
上面的那个参数也是需要调整的,按照手册中的参数 应该配置为
x:1024,y:600,depth:18,pclk_khz:51000,le:150,ri:160,up:20,lo:12,hs:10,vs:3,sync:3,vmode:0
但是实际发现 好像用别人的参数也是可以的
我看论坛里面群友设置的是
x:1024,y:600,depth:18,pclk_khz:51000,le:22,ri:297,up:1,lo:33,hs:1,vs:1,sync:3,vmode:0
我使用这个参数有水波纹
我看荔枝派的有说明的是 https://www.kancloud.cn/lichee/lpi0/539005
Value VIDEO LCD MODE FEX file values Notes
水平分辨率(pixels) x lcd_x
垂直分辨率 (pixels) y lcd_y
色深 depth lcd_frm:0 => depth:24 lcd_frm:1 => depth:18
像素时钟(KHz) pclk_khz lcd_dclk_freq * 1000
水平同步长度 hs lcd_hv_hspw (最小1)
垂直同步长度 vs lcd_hv_vspw (最小1)
左填充(Horizontal back porch) le lcd_hbp - hs [1]
右填充(Horizontal front porch) ri lcd_ht - lcd_x - lcd_hbp [1]
上填充(Vertical back porch) up lcd_vbp - vs [1]
下填充 (Vertical front porch) lo sun[457i]: (lcd_vt / 2) - lcd_y - lcd_vbp .......sun8i: lcd_vt - lcd_y - lcd_vbp
u-boot SYNC flags sync:3 NA
u-boot VMODE flags vmode:0 NA
那么我的屏幕手册中的参数如下
参数设置如下之后测试还是不对啊,求大佬指教
x:1024,y:600,depth:18,pclk_khz:51000,le:140,ri:160,up:20,lo:12,hs:1,vs:1,sync:3,vmode:0
@a32425262
可读写的文件系统都可以在挂载时指定为只读(ro)而不能写入。通常在开发时将其挂载为可读写(rw),发布时挂载为只读。
这边做了测试
发现不可以 我再传入参数中设置为ro发现还是可读写
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.13.16-licheepi-zero+ (root@jbo-VirtualBox) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #9 SMP Mon Sep 5 18:21:19 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: Lichee Pi Zero
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] percpu: Embedded 16 pages/cpu @c3d07000 s33868 r8192 d23476 u65536
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 15660
[ 0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 earlyprintk ro
通过查看已经挂载的文件系统cat /proc/mounts
/dev/root / ext4 rw,relatime,data=ordered 0 0
devtmpfs /dev devtmpfs rw,relatime,size=26336k,nr_inodes=6584,mode=755 0 0
proc /proc proc rw,relatime 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=666 0 0
tmpfs /dev/shm tmpfs rw,relatime,mode=777 0 0
tmpfs /tmp tmpfs rw,relatime 0 0
tmpfs /run tmpfs rw,nosuid,nodev,relatime,mode=755 0 0
sysfs /sys sysfs rw,relatime 0 0
修改/etc/fstab为ro 同样不可以
看到openwrt有类似的方案,使用两个flash,主要目的是做双系统,或者单个flash空间不足,使用两个flash来做扩展
硬件方面:
两块flash除了cs引脚,其他都焊接在一起,第二片flash的cs连接到一个指定的IO
软件方面:
1.修改设备树
&pio {
spi0_cs_pins: spi0_cs_pins {
pins = "PC2", "PB2";
function = "gpio_out";
};
};
&spi0 {
status ="okay";
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
cs-gpios = <&pio 2 2 GPIO_ACTIVE_HIGH>, <&pio 1 2 GPIO_ACTIVE_HIGH>;
mx25l25635e:mx25l25635e@0 {
compatible = "jedec,spi-nor";
reg = <0x0>;
spi-max-frequency = <50000000>;
#address-cells = <1>;
#size-cells = <1>;
};
ext_flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <50000000>;
reg = <1>;
#address-cells = <1>;
#size-cells = <1>;
};
};
好像没看到spi设备
2.修改mtdparts
原始的单flash
mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2
双flash
***待添加
大佬们有什么指导意见吗
终结:
在晕哥的帮助下,搞定了
NUC972烧录SPI Nor,使用uboot引导裸机程序
可能不太丝滑,但是目前是可以使用的
uboot和裸机程序不需要做任何修改
只要修改启动参数就好了
bootcmd=sf probe 0 25000000;sf read 0x200000 0x200000 0x100000;cp.b 0x200000 0 0x100000;go 0;
bootdelay=0
说明:
1.先挂在spi节点
2.读取裸机app到0x200000
3.拷贝刚刚读取的到内存0位置
为什么不把裸机文件直接读取到内存0位置,然后直接启动?
因为直接读取到内存0位置,会提示错误
Failed to map physical memory
为什么不直接使用go命令从读取到的位置0x200000,启动
因为裸机文件的链接地址.TEXT是0.并且中断向量位置也是0
所以必须从内存0位置启动
感谢晕哥的回复
你前面说到的应该是linux吧
我是uboot引导keil编译出来的裸机程序
我重新做了测试
1.直接烧录app.bin到SPI,DDR,执行地址都是0.正常启动我编译的裸机程序
2.烧录uboot.bin、uboot-spl.bin、app.bin到nand ,可以正常启动我的uboot,和app
3.重新编译一个spi nor的uboot,烧录到spi,执行地址0xe00000,烧录app.bin,偏移地址0x100000,
--可以正常启动uboot
--可以读取app.bin
--无法引导app.bin启动
U-Boot 2016.11-g2c907fa-dirty (Jun 22 2021 - 14:38:43 +0800)
CPU: NUC972
Board: NUC972
DRAM: 64 MiB
SF: Detected W25Q128BV with page size 256 Bytes, erase size 4 KiB, total 16 MiB
In: serial
Out: serial
Err: serial
Net: emac
Error: emac address not set.
Hit any key to stop autoboot: 0
SF: Detected W25Q128BV with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x200000, size 0x200000
SF: 2097152 bytes @ 0x200000 Read: OK
## Starting application at 0x00007FC0 ...
按理说我用keil编译出来app.bin不需要任何修改,
uboot就可以引导启动的
感谢晕哥和LinjieGuo大佬的回复
你们的回复是实现方法,和我之前的理解是一致的
现在重点就是不知道怎么跳转,
另外想问一下,nuc972这个运行的时候都是把flash中的内容拷贝到内存运行的吗
那么是不是可以用野路子办法,不用bootloader,直接在app运行的时候,修改flash中的内容后,重启以升级
另外我尝试用uboot来引导我的APP程序,但是失败了
U-Boot 2016.11-g2c907fa-dirty (Jun 22 2021 - 14:38:43 +0800)
CPU: NUC972
Board: NUC972
DRAM: 64 MiB
SF: Detected W25Q128BV with page size 256 Bytes, erase size 4 KiB, total 16 MiB
In: serial
Out: serial
Err: serial
Net: emac
Error: emac address not set.
Hit any key to stop autoboot: 0
=>
=>
=>
=>
=>
=>
=> sf probe 0 50000000
SF: Detected W25Q128BV with page size 256 Bytes, erase size 4 KiB, total 16 MiB
=> sf read 0x100000 0x100000 0x200000
device 0 offset 0x100000, size 0x200000
SF: 2097152 bytes @ 0x100000 Read: OK
=> go 0x100000
## Starting application at 0x00100000 ...
停住没有运行我的APP
我的烧录是
uboot烧录的时候选择uBoot,执行地址是0xE00000
App烧录的时候选择Data,偏移地址的0x100000
是的,默认没有处理32M flash后面16M的切换
试一试这个
编译、安装Windows版本sunxi-fel步骤 (32M spi flash补丁,支持W25Q256/MX25L256)
http://whycan.com/t_444.html
(出处:哇酷开发者社区)
我一直用的就是这个
读不出后面16M的数据
sunxifel.ex. -p spiflash-read 0x1000000 0x1000000 read.bin
实际读取的是前面16M的数据
sunxifel.ex. -p spiflash-read 0 0x2000000 read.bin
读取的前面16M的是正确的,后面16M的不正确
那个步骤2, 最后把jffs读回来,和源文件比较,看是否一致?
不知道是不是sunxife的工具的问题
读出前16M都是对的额。后面16M不对的没感觉像是从前16M重新开始读取了
然后我又重新测试,
1.烧录群里的v3s-rtl8723bs(flash烧录镜像,wifi自动获取ip,可以上互联网).7z,
重新启动之后新建的文件夹和文件又不在了
2.使用我的自己的系统,直接就不能新建,也就是写
3.在我自己的文件系统打包时候随便修改一点东西,重新烧录之后,发现文件系统就是更新过的
测试结果猜测,应该就是我这个flash,跑系统的时候不能写,读取都是正常的,
使用sunxifel,烧写又是可以的,
所以我的猜测应该就是w25q256的驱动不对,
https://github.com/torvalds/linux/commit/e8aec15dd5842b5b11b0e621a2293348d3574a61#
我这里测试MX25q5645G w25q256jv都是正常的,但是我现在使用的是w25q256fvem,测试才会出现这种现象,
难道是w25q256jv,w25q256fv驱动里面写操作不一致?
1.烧录群里的v3s-rtl8723bs(flash烧录镜像,wifi自动获取ip,可以上互联网).7z,这个文件可以正常启动和使用
2.使用我自己编译的uboot+zImage+squashfs+jffs,报错
一个
jffs2: Node totlen on flash (0xffffffff) != totlen from node ref (0x00000044)
很多个
jffs2: Newly-erased block contained word 0x0 at offset 0x00e40000
然后致命的问题就是jffs变成只读了,不能擦写
比如
cp 456.txt 123
cp: can't create '123': No space left on device
3、换成MX25L256使用我自己同样的固件又是正常的
调试进度更新:
不采用中断得的方式,完全采用线程的轮询方式
内核的驱动线程中之前遇到的msleep不准
现在使用usleep_range(8000,10000);作为线程的延时函数
延时相对准确一点,实际用示波器观察,间隔约为10-12毫秒
---------------------------
论坛里里面有好几个用ft6336的,说是触摸不准,迟钝,的情况,应该也是类似的原因
用示波器查看INT和IIC的波形,是否每个INT,都有IIC的波形
我用以下命令查看触摸一次的中断次数
cat /proc/interrupts
实际发现有些时候没有进入中断
比如点击一次屏幕,一般ft6336一般有6次左右的中断,但是v3s经常会漏掉中断
PS:FT6336的INT连接到V3s的PB5
调试进度更新:
在群友的指导下,
我就忽略了中断,采用线程定时读取的方式,
我的想法是10ms读取一次,但是现在的我在进程中延时10ms,
实际用示波器看的效果是,变成了30ms了,我把延时改成1ms,还是30ms读取一次
我把延时删除,就变成了连续读取了。。。
现在调试的结果就是,读取坐标就正常了,也能获取到松开触摸的数据了
点击触摸的话没问题,但是使用滑动触摸的话,坐标点就不太准确,毕竟是30ms读取一次了
static int thread_function(void *data)
{
do {
msleep(10);
tc = 0;
edt_ft5x06_ts_isr(0, my_tsdata);//这个函数就是用于读取触摸数据的,本来是中断调用的,现在放在线程中
}while(1);
return tc;
}
主芯片:v3s
主线linux内核4.13.16
由于主线已经自带了这个芯片的驱动了
打开这个驱动
添加设备树
ft6x06@38 {
compatible = "focaltech,ft6236";
reg = <0x38>;
interrupt-parent = <&pio>;
interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>;/*
irq-gpios = <&pio 1 5 GPIO_ACTIVE_HIGH>;*/
reset-gpios = <&pio 1 3 GPIO_ACTIVE_LOW>;
touchscreen-size-x = <480>;
touchscreen-size-y = <272>;
};
现在遇到情况是,触摸能用,设备驱动也是有的
使用evtest测试也是可以的,但是点击一次,经常没有松开数据包提示
正常情况是,我点击屏幕之后,中断引脚会拉低,然后v3s会读取此时的触摸数据
但是我用示波器测试,触摸的时候,10ms一次中断,但是并不是每次中断都会读取数据(iic数据没信号)
然后我在驱动中添加了打印信息,证明示波器的测试是正确的
但是仔细看示波器发现,没有读取中断的时候,iic的时钟和信号有一点点的小毛刺,
首先,中断,iic信号线都添加了上拉电阻,观察示波器的波形也是比较好看的,
应该不是电源或者干扰的因素,
这个就很要命, 看起来就是丢包了,比如触摸一次,经常丢失了最后松开触摸的那个数据包,导致应用层以为一直在触摸没有松开
怎么搞好这个东西呢
RT,用编辑器新建了一个工程,编译第一个例子就失败了,请问是咋回事呢
错误信息如下,assets.inc需要手动添加吗?
scons APP=../awtk-examples/desktop/
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: *** [build/var/src/app_main.o] Implicit dependency `build/var/res/assets.inc' not found, needed by target `build/var/src/app_main.o'.
scons: building terminated because of errors.
FT6336U电容触摸不准
使用ts_test测试
看起来的效果就是
1.有时候点击没反应,但是这个时候使用cat /dev/input/event0 |hexdump,是有上报数据的;
触摸屏的厂家告诉我,这个10ms上传一次数据
根据我使用示波器查看,我点击一次,会有6~8次INT中断
cat /dev/input/event0 |hexdump,也是有6~8次的
但是ts_test的结果并不是每次都有
2.触摸不准,使用 ts_calibrate校准过之后也是同样的情形,中间位置的还比较准,但是靠近上下边的时候位置就偏了
所以现在的问题是,是否因为,没有处理好?还是屏幕参数不对?还是他这个电容屏没做好?
其实我比较喜欢啥都放在程序文件里面
至少可以让我这么选择
这样做出来的程序比较“干净”
不是一个文件夹里面很多文件
当然有必要的经常更换的配置文件等等
之前是我对awtk不熟悉
看了文档,有把资源文件直接编译到程序中
将资源生成常量数组直接编译到代码中时,其初始化过程为:
1.包含相应的数据文件。
#include "assets/inc/fonts/ap.data" #include "assets/inc/fonts/default.data" #include "assets/inc/fonts/default_ttf.data" #include "assets/inc/images/bricks.data" #include "assets/inc/images/checked.data" ...
2.将资源增加到资源管理器中。
assets_manager_add(rm, font_ap); assets_manager_add(rm, font_default); assets_manager_add(rm, font_default_ttf); assets_manager_add(rm, image_bricks); assets_manager_add(rm, image_checked); ...
将资源放在文件系统中时,一般不需要特殊处理,不过可以用assets_manager_load预加载资源。如:
assets_manager_load(rm, ASSET_TYPE_THEME, "default"); assets_manager_load(rm, ASSET_TYPE_FONT, "default_ttf");
参考:demos/assets.c
#! /bin/bash
# ---------------------------------------------------------------------------------------------------
# 一、这里的AWTK_DIR的值在SConstruct脚本的getAwtkRoot()函数会用到,修改时请注意
# 二、Linux下执行该脚本生成主题、字符串、字体、图片、UI等二进制文件(其中调用assets_gen.py)
# 三、修改 AWTK_DIR =../../awtk 为本地awtk对应的目录
# 四、修改该脚本中的for循环为应用中对应的资源目录,例如有多个资源目录(res_800_480和res_480_272)则修改为:for i in res_800_480 res_480_272
# 五、python assets_gen.py %AWTK_DIR%/bin %%i/assets/raw %%i/assets/inc说明:
# 1 为空:
# 即python assets_gen.py %AWTK_DIR%/bin %%i/assets/raw %%i/assets/inc,生成主题、字符串、字体、图片、UI等二进制文件
# 2 -style
# 即python assets_gen.py %AWTK_DIR%/bin %%i/assets/raw %%i/assets/inc -style, 生成主题
# 3 -string
# 即python assets_gen.py %AWTK_DIR%/bin %%i/assets/raw %%i/assets/inc -string, 生成字符串
# 4 -font
# 即python assets_gen.py %AWTK_DIR%/bin %%i/assets/raw %%i/assets/inc -font, 生成字体
# 5 -image
# 即python assets_gen.py %AWTK_DIR%/bin %%i/assets/raw %%i/assets/inc -image, 生成图片
# 6 -ui
# 即python assets_gen.py %AWTK_DIR%/bin %%i/assets/raw %%i/assets/inc -ui, 生成ui文件
# ---------------------------------------------------------------------------------------------------
AWTK_DIR=../../awtk
for i in res
do
python assets_gen.py $AWTK_DIR/bin $i/assets/default/raw $i/assets/default/inc
python assets_c_gen.py $i/assets
done
找到了这个脚本,应该是这个脚本打包生成的资源文件
但是手动执行没有成功
接着摸索
我也是网上下载的,没有测试和修改过
各位如果有做的话,欢迎交流和共享A33核心板电路图及PCB.rar
不需要改写什么函数
除非你想对鼠标或者触摸事件做你自己的业务逻辑处理
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONFFILE=/opt/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/opt/tslib/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_LIBRARY_PATH=/lib:/usr/lib:/opt/tslib/lib:/opt/qt-4.8/lib
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/opt/tslib/bin
export QT_QPA_PLATFORM_PLUGIN_PATH=/opt/qt-4.8/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=/opt/qt-4.8/lib/fonts
export QT_QPA_GENERIC_PLUGINS=tslib:$TSLIB_TSDEVICE
export QWS_MOUSE_PROTO=Tslib:/dev/input/event1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/tslib/lib:/opt/qt-4.8/lib:/usr/lib/arm-linux-gnueabihf/lib
以上是我的配置
你看一下区别或者直接拷贝我的,然后把我的和你不一样目录的部分,修改成你的
还有一点很重要,我看你这个可能是在脚本里面做的?还是自启动文件?
有可能是添加的环境变量和你的qt程序是分开的,
比如你的环境变量是脚本添加的的,qt程序是手动执行了的,那么环境变量就没有生效
你可以先手动添加环境变量和执行qt程序试试
感谢回复,你的说法是对的,使用官方的这个
然后添加上tslib
应该是版本不一样了,发帖的时候是V5.3,现在是V6.0,导致一些文件不一样了。
官方已经有linux-fb版了,可以直接clone这个:https://github.com/littlevgl/lv_linux_frame_buffer,加上这里的tslib修改就可以了。(官方这个我还没用过~)
a32425262 说:一步一步按照上面的来,出现了以下错误
In file included from /workdir/littlevgl/pc_simulator/lvgl/src/lv_core/lv_group.h:19:0, from /workdir/littlevgl/pc_simulator/lvgl/src/lv_core/lv_group.c:9: /workdir/littlevgl/pc_simulator/lvgl/src/lv_core/../../../lv_conf.h:388:10: fatal error: lvgl/lv_conf_checker.h: No such file or directory #include "lvgl/lv_conf_checker.h" ^~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make: *** [lv_group.o] Error 1 real 0m0.340s user 0m0.052s sys 0m0.048s
2019-10-24早8:26
删除全部,重新下载后,无法编译了,函数声明和定义不一样的,此处我的修改的是
build/var/awtk/src/base/widget.c文件的
ret_t widget_off_by_tag(widget_t* widget, int32_t tag)
为
ret_t widget_off_by_tag(widget_t* widget, uint32_t tag)
然后编译通过
# scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
/opt/gcc-linaro-7.2.1-2017.11-i686_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -o build/var/awtk/src/base/widget.o -c -std=gnu99 -g -Wall -Os -DHAS_STD_MALLOC -DWITH_FS_RES -DHAS_STDIO -DWITH_VGCANVAS -DWITH_UNICODE_BREAK -DLINUX -DSTBTT_STATIC -DSTB_IMAGE_STATIC -DWITH_STB_IMAGE -DWITH_STB_FONT -DWITH_NANOVG_AGGE -DWITH_WIDGET_TYPE_CHECK -DLINUX -DHAS_PTHREAD -DENABLE_CURSOR -DHAS_TSLIB -I/opt/tslib/include -I/workdir/awtk/awtk -I/workdir/awtk/awtk/src -I/workdir/awtk/awtk/3rd -I/workdir/awtk/awtk/src/ext_widgets -I/workdir/awtk/awtk/tools -I/workdir/awtk/awtk/3rd/agge -I/workdir/awtk/awtk/3rd/agg/include -I/workdir/awtk/awtk/3rd/nanovg -I/workdir/awtk/awtk/3rd/nanovg/base -I/workdir/awtk/awtk/3rd/libunibreak -I/workdir/awtk/awtk/3rd/gpinyin/include build/var/awtk/src/base/widget.c
build/var/awtk/src/base/widget.c: In function 'widget_set_theme':
build/var/awtk/src/base/widget.c:392:15: warning: unused variable 'vgcanvas' [-Wunused-variable]
vgcanvas_t* vgcanvas = canvas_get_vgcanvas(canvas);
^~~~~~~~
build/var/awtk/src/base/widget.c: At top level:
build/var/awtk/src/base/widget.c:961:7: error: conflicting types for 'widget_off_by_tag'
ret_t widget_off_by_tag(widget_t* widget, int32_t tag) {
^~~~~~~~~~~~~~~~~
In file included from build/var/awtk/src/base/widget.c:33:0:
/workdir/awtk/awtk/src/base/widget.h:1210:7: note: previous declaration of 'widget_off_by_tag' was here
ret_t widget_off_by_tag(widget_t* widget, uint32_t tag);
^~~~~~~~~~~~~~~~~
scons: *** [build/var/awtk/src/base/widget.o] Error 1
scons: building terminated because of errors.
解压后还是啥都不显示,看来是作者说的对。没有资源文件,以下是打包时候的日志
# ./release.sh
APP_ROOT = ../awtk/demos
‘build/bin/demo1’ -> ‘release/bin/demo1’
‘build/bin/demo_animator’ -> ‘release/bin/demo_animator’
‘build/bin/demo_desktop’ -> ‘release/bin/demo_desktop’
‘build/bin/demo_thread’ -> ‘release/bin/demo_thread’
‘build/bin/demotr’ -> ‘release/bin/demotr’
‘build/bin/demoui’ -> ‘release/bin/demoui’
‘build/bin/demovg’ -> ‘release/bin/demovg’
‘build/bin/input_test’ -> ‘release/bin/input_test’
‘build/bin/mouse_test’ -> ‘release/bin/mouse_test’
‘build/bin/preview_ui’ -> ‘release/bin/preview_ui’
‘build/bin/tslib_test’ -> ‘release/bin/tslib_test’
‘build/bin/xml_to_ui’ -> ‘release/bin/xml_to_ui’
removed ‘release/bin/input_test’
removed ‘release/bin/mouse_test’
removed ‘release/bin/tslib_test’
removed ‘release/bin/demo1’
removed ‘release/bin/demovg’
removed ‘release/bin/demotr’
removed ‘release/bin/demo_animator’
removed ‘release/bin/demo_thread’
removed ‘release/bin/demo_desktop’
cp: cannot stat ‘../awtk/demos/assets/raw/data/*’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/fonts/*’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/images/x1’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/images/xx’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/images/svg/*.bsvg’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/scripts/*’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/strings/*.bin’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/styles/*.bin’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/ui/*.bin’: No such file or directory
cp: cannot stat ‘../awtk/demos/assets/raw/xml/*’: No such file or directory
release/
release/bin/
release/bin/preview_ui
release/bin/demoui
release/bin/xml_to_ui
release/assets/
release/assets/raw/
release/assets/raw/strings/
release/assets/raw/styles/
release/assets/raw/xml/
release/assets/raw/data/
release/assets/raw/images/
release/assets/raw/images/svg/
release/assets/raw/scripts/
release/assets/raw/fonts/
release/assets/raw/ui/
那么问题来了,我从哪里拷贝这些资源文件呢
以下是v3s上面的错误日志
# ./release/bin/demo
try /mnt/awtk
try /mnt/awtk/release/bin
app_root=/mnt/awtk/release
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
!!!Asset [name=en_US type=strings] not exist!!!
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
!!!Asset [name=en type=strings] not exist!!!
fb_info_t: /dev/fb0
fb_info_t: xres=480 yres=272 bits_per_pixel=32 mem_size=522240
fb_info_t: red(16 8) green(8 8) blue(0 8)
line_length=1920 mem_size=522240 smem_len=522240
xres_virtual =480 yres_virtual=272 xpanstep=0 ywrapstep=0
ratio=1.000000 480 272
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
assets_manager_preload:681 info != NULL
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
assets_manager_preload:681 info != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
!!!Asset [name=default type=font] not exist!!!
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
try_load_assets:308 assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK
!!!Asset [name=default type=font] not exist!!!
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=0, fd=-1, filename=/dev/input/mice)
Print mouse: : Success
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory
一步一步按照上面的来,出现了以下错误
In file included from /workdir/littlevgl/pc_simulator/lvgl/src/lv_core/lv_group.h:19:0,
from /workdir/littlevgl/pc_simulator/lvgl/src/lv_core/lv_group.c:9:
/workdir/littlevgl/pc_simulator/lvgl/src/lv_core/../../../lv_conf.h:388:10: fatal error: lvgl/lv_conf_checker.h: No such file or directory
#include "lvgl/lv_conf_checker.h"
^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [lv_group.o] Error 1
real 0m0.340s
user 0m0.052s
sys 0m0.048s
是的 我是按照这个步骤来的
==============================================
使用方法
1.获取源码
git clone https://github.com/zlgopen/awtk.git
git clone https://github.com/zlgopen/awtk-examples.git
git clone https://github.com/zlgopen/awtk-linux-fb.git
cd awtk-linux-fb
2.编辑 awtk_config.py 设置工具链的路径
TSLIB_LIB_DIR='/opt/28x/tslib/lib'
TSLIB_INC_DIR='/opt/28x/tslib/include'
TOOLS_PREFIX='/opt/28x/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-linux-'
3.编辑 awtk-port/main_loop_linux.c 修改输入设备的文件名
#define FB_DEVICE_FILENAME "/dev/fb0"
#define TS_DEVICE_FILENAME "/dev/input/event0"
#define KB_DEVICE_FILENAME "/dev/input/event1"
4.编译(请先安装scons)
生成内置 demoui 例子,生成结果在 build/bin 文件夹下的 demoui 文件
scons
5.生成发布包
对于内置的 demoui 例子
./release.sh
6.运行
把 release.tar.gz 上传到开发板,并解压,然后运行:
./release/bin/demoui
a32425262 说:点击触摸屏是有log输出的
就是屏幕一片黑 啥也不显示晕哥 说:从 log 上面看, 没有相关的日志输出.
我在 S3 上面跑过, 一切正常。
还直接支持USB鼠标。
貌似资源文件没找到。是用release.sh生成的zip包吗?
V3s使用这个
屏幕白一下之后就黑了 啥也不显示 是怎么回事呢
# ./release/bin/demoui
app_root_is_valid:43 app_root != NULL
try /mnt/awtk
try /mnt/awtk/release/bin
app_root=/mnt/awtk/release
!!!Asset [name=en_US type=strings] not exist!!!
!!!Asset [name=en type=strings] not exist!!!
fb_info_t: /dev/fb0
fb_info_t: xres=480 yres=272 bits_per_pixel=32 mem_size=522240
fb_info_t: red(16 8) green(8 8) blue(0 8)
line_length=1920 mem_size=522240 smem_len=522240
xres_virtual =480 yres_virtual=272 xpanstep=0 ywrapstep=0
ratio=1.000000 480 272
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
Build at: Oct 21 2019 12:14:02
assets_manager_preload:626 info != NULL
assets_manager_preload:626 info != NULL
!!!Asset [name=preload type=ui] not exist!!!
ui_loader_load_widget:38 ui != NULL
!!!Asset [name=cursor type=image] not exist!!!
window_manager_default_set_cursor:997 image_manager_get_bitmap(image_manager(), cursor, &bitmap) == RET_OK
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=cursor type=image] not exist!!!
window_manager_paint_cursor:531 image_manager_get_bitmap(image_manager(), wm->cursor, &bitmap) == RET_OK
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=0, fd=-1, filename=/dev/input/mice)
Print mouse: : Success
widget_lookup_all:778 widget != NULL && name != NULL
widget_lookup_all:778 widget != NULL && name != NULL
!!!Asset [name=earth type=image] not exist!!!
widget_set_value:195 widget != NULL
widget_set_text_utf8:248 widget != NULL
widget_lookup_all:778 widget != NULL && name != NULL
widget_lookup_all:778 widget != NULL && name != NULL
!!!Asset [name=dialog_title type=image] not exist!!!
widget_set_value:195 widget != NULL
widget_set_text_utf8:248 widget != NULL
widget_lookup_all:778 widget != NULL && name != NULL
widget_lookup_all:778 widget != NULL && name != NULL
!!!Asset [name=rgb type=image] not exist!!!
widget_set_value:195 widget != NULL
widget_set_text_utf8:248 widget != NULL
widget_lookup_all:778 widget != NULL && name != NULL
widget_lookup_all:778 widget != NULL && name != NULL
!!!Asset [name=rgba type=image] not exist!!!
widget_set_value:195 widget != NULL
widget_set_text_utf8:248 widget != NULL
widget_lookup_all:778 widget != NULL && name != NULL
widget_lookup_all:778 widget != NULL && name != NULL
!!!Asset [name=system_bar type=ui] not exist!!!
ui_loader_load_widget:38 ui != NULL
!!!Asset [name=main type=ui] not exist!!!
ui_loader_load_widget:38 ui != NULL
widget_on:936 widget != NULL && on_event != NULL
widget_on:936 widget != NULL && on_event != NULL
widget_foreach:2154 widget != NULL && visit != NULL
widget_get_type:2809 widget != NULL && widget->vt != NULL
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
我也是差不多一样的错误,解压release也不行的
# ./release/bin/demo
try /mnt/awtk
try /mnt/awtk/release/bin
app_root=/mnt/awtk/release
!!!Asset [name=en_US type=strings] not exist!!!
!!!Asset [name=en type=strings] not exist!!!
fb_info_t: /dev/fb0
fb_info_t: xres=480 yres=272 bits_per_pixel=32 mem_size=522240
fb_info_t: red(16 8) green(8 8) blue(0 8)
line_length=1920 mem_size=522240 smem_len=522240
xres_virtual =480 yres_virtual=272 xpanstep=0 ywrapstep=0
ratio=1.000000 480 272
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
assets_manager_preload:626 info != NULL
assets_manager_preload:626 info != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=default type=font] not exist!!!
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
!!!Asset [name=default type=font] not exist!!!
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
canvas_measure_text_default:259 c != NULL && str != NULL && c->font != NULL
font_get_glyph:26 f != NULL && f->get_glyph != NULL && g != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=0, fd=-1, filename=/dev/input/mice)
Print mouse: : Success
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
tslib_dispatch_one_event:61 tslib read failed(ret=0, errno=0, filename=/dev/input/event0)
Print tslib: : Success
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=2, fd=-1, filename=/dev/input/mice)
Print mouse: : No such file or directory
为了不再给大家造成困扰,我把文件重新整理了 V3s 和 F1C100s 两个文件夹,
我来个锦上添花,制作一个Windows的脚本,不用每次还要输入地址和文件名什么的,
在sunxi-fel.exe的同一目录下,新建一个txt文本,拷贝下面的内容,重命名为xxxxx.bat
然后双击就可以执行了,输入1、2、3、4、5、6就可以烧写你需要的烧写的文件了,文件名和烧写地址可以替换为你自己的
还可以新建快捷方式,到桌面,这样每次烧写调试就很轻松了
@echo off
:loop
echo 请选择需要烧写的文件
echo 1:烧写uboot
echo 2:烧写设备树
echo 3:烧写内核
echo 4:烧写 squashFS
echo 5:烧写 jaffs
echo 6:烧写 全部
:input
set /p first="请选择:"if %first% == 1 (
echo 烧写uboot......
start sunxi-fel.exe -p spiflash-write 0x000000 my_spi_file\uboot_overlayfs.bin
goto input
)else if %first% == 2 (
echo 烧写设备树......
start sunxi-fel.exe -p spiflash-write 0x100000 my_spi_file\sun8i-v3s-licheepi-zero-dock.dtb
goto input
)else if %first% == 3 (
echo 烧写内核......
start sunxi-fel.exe -p spiflash-write 0x110000 my_spi_file\zImage
goto input
)else if %first% == 4 (
echo 烧写squashFS......
start sunxi-fel.exe -p spiflash-write 0x510000 my_spi_file\rootfs.squashfs
goto input
)else if %first% == 5 (
echo 烧写jaffs.img......
echo 未设置 ......
::start sunxi-fel.exe -p spiflash-write 0x000000 my_spi_file\jffs2.img
goto input
)else if %first% == 6 (
echo 烧写全部......
start sunxi-fel.exe -p spiflash-write 0x000000 my_spi_file\flashimg.bin
goto input
)else if %first% == ? (
goto loop
)pause
::连续两个冒号表示注释,相当于linux脚本下面的#
很多网友觉得V3s使用TF卡,作为生产不靠谱,nand flash又不支持,使用nor flash空间太小,下面告诉大家怎么使用nor flash挂载squashfs
并且发现一个好处,使用squashfs,系统系统的还更快。
首先参考泽畔的资料SPI Flash 系统编译
测试环境:V3s+MX25L25645G
这里 使用 MX25L25645G, 32M SPI flash 作为启动介质,规划分区如下:
分区序号 分区大小 分区作用 地址空间及分区名
mtd0 1MB spl+uboot 0x0000000-0x0100000 : “uboot”
mtd1 64KB dtb文件 0x0100000-0x0110000 : “dtb”
mtd2 4MB linux内核 0x0110000-0x0510000 : “kernel”
mtd2 8MB linux内核 0x0510000-? : “squashfs”
mtd3 剩余 根文件系统 ?-0x2000000 : “data”
生成
1.1 下载包含spi驱动的体验版本uboot
git clone -b v3s-spi-experimental https://github.com/Lichee-Pi/u-boot.git
cd u-boot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_800x480LCD_defconfig
#or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero480x272LCD_defconfig
#or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_defconfig
make ARCH=arm menuconfig
1.2 配置Flash支持型号
执行 make ARCH=arm menuconfig 打开uboot菜单配置,进入到 Device Drivers ‣ SPI Flash Support
注意看一下自己flash的厂家名称,例如选上Macronix SPI flash support用来支持测试用的flash:MX25L25645G。
如果使用的是16MB以上的flash,需要勾选flash bank支持选项,否则最多只能读到16MB: CONFIG_SPI_FLASH_BAR
1.3 配置uboot默认环境变量
在文件 include/configs/sun8i.h 中添加默认bootcmd和bootargs的环境变量设置
注意添加的位置在“ #include <configs/sunxi-common.h> ”的前边。
下面的8M(rootfs)就是后面squashfs的大小,如果你制作的squashfs比这个大,请适当调整
vi include/configs/sun8i.h
#define CONFIG_BOOTCOMMAND "sf probe 0; " \
"sf read 0x41800000 0x100000 0x10000; " \
"sf read 0x41000000 0x110000 0x400000; " \
"bootz 0x41000000 - 0x41800000"
#define CONFIG_BOOTARGS "console=ttyS0,115200 earlyprintk panic=5 rootwait " \
"mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,8M(rootfs),-(data) root=31:03 rw rootfstype=squashfs"
1.4 编译uboot
time make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2>&1 | tee build.log
2.1 下载linux内核,(默认是zero-4.10.y分支)建议选择4.13分支以支持网络啥的
git clone https://github.com/Lichee-Pi/linux.git
cd linux
make ARCH=arm licheepi_zero_defconfig
make ARCH=arm menuconfig
2.2 内核选项配置
执行 make ARCH=arm menuconfig 打开内核菜单配置,
进入到 Device Drivers ‣ Memory Technology Device (MTD) support ,
确保选择上mtd的 <*> Command line partition table parsing 支持,该项目用来解析uboot传递过来的flash分区信息添加对jffs2文件系统的支持,路径在 File systems ‣ Miscellaneous filesystems ‣ Journalling Flash File System v2 (JFFS2) support
如果需要支持overlay,请添加上支持overlay
2.2 设备树配置
修改dts配置添加spi flash节点
vi arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
&spi0 {
status ="okay";
mx25l25635e:mx25l25635e@0 {
compatible = "jedec,spi-nor";
reg = <0x0>;
spi-max-frequency = <50000000>;
#address-cells = <1>;
#size-cells = <1>;
};
};
2.3 退出菜单配置并编译内核和dts
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j32
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
此处省略一万字,可以其他帖子或者用现成的
mksquashfs rootfs_dir_path/ rootfs.squashfs -no-exports -no-xattrs -all-root
注意此处有坑,如果需要再次mksquashfs,一定要删除上一次生成的rootfs.squashfs
具体怎么什么原理,可以自己去查看一下,使用我的这个命令,制作的squashfs压缩率更高,当然能不能更小了,各位自己去研究一下
dd if=/dev/zero of=flashimg.bin bs=1M count=32
dd if=squashfs_uboot.bin of=flashimg.bin bs=1K conv=notrunc
dd if=sun8i-v3s-licheepi-zero-dock.dtb of=flashimg.bin bs=1K seek=1024 conv=notrunc
dd if=squashfs_zImage of=flashimg.bin bs=1K seek=1088 conv=notrunc
dd if=rootfs.squashfs of=flashimg.bin bs=1K seek=5184 conv=notrunc
启动系统后,挂在剩余的分区jffs2到workdir目录,这里的/workdir,请在制作squashfs文件系统之前mkdir,不然启动后squashfs为只读的,就不能新建文件夹了,这样workdir目录就变成可读写的了
mount -n -t jffs2 /dev/mtdblock4 /workdir
如果想使用overlayfs,请在制作squashfs文件系统之前新建merged 和 overlay
启动系统后
mount -n -t jffs2 /dev/mtdblock4 /overlay
mkdir /overlay/upperdir /overlay/workdir
mount -n -t overlay overlayfs:/overlay -o lowerdir=/,upperdir=/overlay/upperdir,workdir=/overlay/workdir /merged/
这样upperdir的目录就是/overlay/upperdir,lowerdir就是根目录
在你未做修改之前 可以ls查看一下,ls /merged和ls /目录是一样的内容,
这样就可以在/merged添加修改你的东西了
后面我的觉麻烦,而且研究的不透彻就没有使用overlay了
是的方法就是,尽量裁剪qt,单独编译qt静态库,然后时候静态编译qt应用程序,这样我编译后的qt的应用程序差不多有7M左右
直接拷贝到,可读写的 /workdir目录,也方便升级替换
因为我使用了科大讯飞的离线TTS,他这个库文件+资源文件有9M左右,所以不得不使用这种办法
如果 flash 空间只用前面 16M 呢?
现在就是只是用了前面的16M空间啊
dd if=/dev/zero of=flashimg.bin bs=1M count=16
dd if=/workdir/3_5_inch/spi/u-boot/u-boot-sunxi-with-spl.bin of=flashimg.bin bs=1K conv=notrunc
dd if=/workdir/3_5_inch/spi/linux/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb of=flashimg.bin bs=1K seek=1024 conv=notrunc
dd if=/workdir/3_5_inch/spi/linux/arch/arm/boot/zImage of=flashimg.bin bs=1K seek=1088 conv=notrunc
dd if=/workdir/3_5_inch/spi/jffs2.img of=flashimg.bin bs=1K seek=5184 conv=notrunc
cp flashimg.bin /media/sf_share/sunxi-tools-win32support_f1c100s_v3s_201812219/V3s/
mkfs.jffs2 -s 0x1000 -e 0x10000 -p 0xAF0000 -d rootfs/ -o jffs2.img
@a32425262 试一试这个:
mkfs.jffs2 -s 0x1000 -e 0x10000 -p 0xAF0000 -d rootfs/ -o jffs2.img
一样的问题,刚开始是
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00b40000: 0x7325 instead
然后是下面的,最后就是重启了
[ 22.006094] jffs2: Empty flash at 0x0187b00c ends at 0x0187c000
[ 22.012008] jffs2: CLEANMARKER node found at 0x0187c000, not first node in block (0x01870000)
[ 22.021266] jffs2: Empty flash at 0x0187c00c ends at 0x0187d000
[ 22.027195] jffs2: CLEANMARKER node found at 0x0187d000, not first node in block (0x01870000)
[ 22.037179] jffs2: Empty flash at 0x0187d00c ends at 0x0187e000
[ 22.043093] jffs2: CLEANMARKER node found at 0x0187e000, not first node in block (0x01870000)
[ 22.052356] jffs2: Empty flash at 0x0187e00c ends at 0x0187f000
[ 22.058291] jffs2: CLEANMARKER node found at 0x0187f000, not first node in block (0x01870000)
[ 22.070026] jffs2: Empty flash at 0x018a0ffc ends at 0x018a1000
[ 22.076004] jffs2: CLEANMARKER node found at 0x018a1000, not first node in block (0x018a0000)
[ 22.085261] jffs2: Empty flash at 0x018a100c ends at 0x018a2000
[ 22.092694] jffs2: Empty flash at 0x018a2ffc ends at 0x018a3000
[ 22.099377] jffs2: Empty flash at 0x018a3ffc ends at 0x018a4000
[ 22.106044] jffs2: Empty flash at 0x018a4ffc ends at 0x018a5000
[ 22.111958] jffs2: CLEANMARKER node found at 0x018a5000, not first node in block (0x018a0000)
[ 22.121231] jffs2: Empty flash at 0x018a500c ends at 0x018a6000
[ 22.127162] jffs2: CLEANMARKER node found at 0x018a6000, not first node in block (0x018a0000)
[ 22.136424] jffs2: Empty flash at 0x018a600c ends at 0x018a7000
[ 22.143786] jffs2: Empty flash at 0x018a7ffc ends at 0x018a8000
[ 22.150466] jffs2: Empty flash at 0x018a8f70 ends at 0x018a9000
[ 22.157136] jffs2: Empty flash at 0x018a9ffc ends at 0x018aa000
[ 22.163779] jffs2: Empty flash at 0x018aaffc ends at 0x018ab000
[ 22.170461] jffs2: Empty flash at 0x018abfbc ends at 0x018ac000
[ 22.177132] jffs2: Empty flash at 0x018acffc ends at 0x018ad000
[ 22.183048] jffs2: CLEANMARKER node found at 0x018ad000, not first node in block (0x018a0000)
[ 22.192322] jffs2: Empty flash at 0x018ad00c ends at 0x018ae000
[ 22.199720] jffs2: Empty flash at 0x018aeffc ends at 0x018af000
[ 22.207259] jffs2: Empty flash at 0x018b0ffc ends at 0x018b1000
[ 22.213177] jffs2: CLEANMARKER node found at 0x018b1000, not first node in block (0x018b0000)
[ 22.222461] jffs2: Empty flash at 0x018b100c ends at 0x018b2000
[ 22.229855] jffs2: Empty flash at 0x018b2ffc ends at 0x018b3000
[ 22.236525] jffs2: Empty flash at 0x018b3ffc ends at 0x018b4000
[ 22.243171] jffs2: Empty flash at 0x018b4ffc ends at 0x018b5000
[ 22.249112] jffs2: CLEANMARKER node found at 0x018b5000, not first node in block (0x018b0000)
[ 22.258378] jffs2: Empty flash at 0x018b500c ends at 0x018b6000
[ 22.265768] jffs2: Empty flash at 0x018b6ffc ends at 0x018b7000
[ 22.272421] jffs2: Empty flash at 0x018b7ffc ends at 0x018b8000
[ 22.279095] jffs2: Empty flash at 0x018b8ffc ends at 0x018b9000
[ 22.285008] jffs2: CLEANMARKER node found at 0x018b9000, not first node in block (0x018b0000)
[ 22.294315] jffs2: Empty flash at 0x018b900c ends at 0x018ba000
[ 22.300255] jffs2: CLEANMARKER node found at 0x018ba000, not first node in block (0x018b0000)
[ 22.309522] jffs2: Empty flash at 0x018ba00c ends at 0x018bb000
[ 22.316913] jffs2: Empty flash at 0x018bbffc ends at 0x018bc000
[ 22.323560] jffs2: Empty flash at 0x018bcffc ends at 0x018bd000
[ 22.330315] jffs2: Empty flash at 0x018bdffc ends at 0x018be000
[ 22.337000] jffs2: Empty flash at 0x018beffc ends at 0x018bf000
[ 22.344596] jffs2: Empty flash at 0x018d0ffc ends at 0x018d1000
[ 22.351291] jffs2: Empty flash at 0x018d1ffc ends at 0x018d2000
[ 22.357284] jffs2: CLEANMARKER node found at 0x018d2000, not first node in block (0x018d0000)
[ 22.366569] jffs2: Empty flash at 0x018d200c ends at 0x018d3000
[ 22.373938] jffs2: Empty flash at 0x018d3ffc ends at 0x018d4000
[ 22.380624] jffs2: Empty flash at 0x018d4ffc ends at 0x018d5000
[ 22.386583] jffs2: CLEANMARKER node found at 0x018d5000, not first node in block (0x018d0000)
[ 22.395883] jffs2: Empty flash at 0x018d500c ends at 0x018d6000
[ 22.406561] jffs2: Empty flash at 0x018d6ffc ends at 0x018d7000
[ 22.412507] jffs2: CLEANMARKER node found at 0x018d7000, not first node in block (0x018d0000)
[ 22.421886] jffs2: Empty flash at 0x018d700c ends at 0x018d8000
[ 22.427886] jffs2: CLEANMARKER node found at 0x018d8000, not first node in block (0x018d0000)
[ 22.437319] jffs2: Empty flash at 0x018d800c ends at 0x018d9000
[ 22.444750] jffs2: Empty flash at 0x018d9ffc ends at 0x018da000
[ 22.450781] jffs2: CLEANMARKER node found at 0x018da000, not first node in block (0x018d0000)
[ 22.461124] jffs2: Empty flash at 0x018da00c ends at 0x018db000
[ 22.467109] jffs2: CLEANMARKER node found at 0x018db000, not first node in block (0x018d0000)
[ 22.476436] jffs2: Empty flash at 0x018db00c ends at 0x018dc000
[ 22.483414] jffs2: CLEANMARKER node found at 0x018dc000, not first node in block (0x018d0000)
[ 22.495489] jffs2: Empty flash at 0x018dc00c ends at 0x018dd000
[ 22.501492] jffs2: CLEANMARKER node found at 0x018dd000, not first node in block (0x018d0000)
[ 22.510799] jffs2: Empty flash at 0x018dd00c ends at 0x018de000
[ 22.516755] jffs2: CLEANMARKER node found at 0x018de000, not first node in block (0x018d0000)
[ 22.526779] jffs2: Empty flash at 0x018de00c ends at 0x018df000
[ 22.532715] jffs2: CLEANMARKER node found at 0x018df000, not first node in block (0x018d0000)
[ 22.545425] jffs2: Empty flash at 0x018e1ffc ends at 0x018e2000
[ 22.552136] jffs2: Empty flash at 0x018e2ffc ends at 0x018e3000
[ 22.558077] jffs2: CLEANMARKER node found at 0x018e3000, not first node in block (0x018e0000)
[ 22.567345] jffs2: Empty flash at 0x018e300c ends at 0x018e4000
[ 22.574715] jffs2: Empty flash at 0x018e4ffc ends at 0x018e5000
[ 22.581395] jffs2: Empty flash at 0x018e5ffc ends at 0x018e6000
[ 22.588074] jffs2: Empty flash at 0x018e6ffc ends at 0x018e7000
[ 22.593988] jffs2: CLEANMARKER node found at 0x018e7000, not first node in block (0x018e0000)
[ 22.603260] jffs2: Empty flash at 0x018e700c ends at 0x018e8000
[ 22.609195] jffs2: CLEANMARKER node found at 0x018e8000, not first node in block (0x018e0000)
[ 22.618458] jffs2: Empty flash at 0x018e800c ends at 0x018e9000
[ 22.624371] jffs2: CLEANMARKER node found at 0x018e9000, not first node in block (0x018e0000)
[ 22.634354] jffs2: Empty flash at 0x018e900c ends at 0x018ea000
[ 22.640291] jffs2: CLEANMARKER node found at 0x018ea000, not first node in block (0x018e0000)
[ 22.649547] jffs2: Empty flash at 0x018ea00c ends at 0x018eb000
[ 22.656921] jffs2: Empty flash at 0x018ebffc ends at 0x018ec000
[ 22.663569] jffs2: Empty flash at 0x018ecffc ends at 0x018ed000
[ 22.670241] jffs2: Empty flash at 0x018edffc ends at 0x018ee000
[ 22.676175] jffs2: CLEANMARKER node found at 0x018ee000, not first node in block (0x018e0000)
[ 22.685422] jffs2: Empty flash at 0x018ee00c ends at 0x018ef000
[ 22.691355] jffs2: CLEANMARKER node found at 0x018ef000, not first node in block (0x018e0000)
[ 22.702166] jffs2: Empty flash at 0x018f0ffc ends at 0x018f1000
[ 22.708147] jffs2: CLEANMARKER node found at 0x018f1000, not first node in block (0x018f0000)
[ 22.717420] jffs2: Empty flash at 0x018f100c ends at 0x018f2000
[ 22.724790] jffs2: Empty flash at 0x018f2fa8 ends at 0x018f3000
[ 22.730758] jffs2: CLEANMARKER node found at 0x018f3000, not first node in block (0x018f0000)
[ 22.740032] jffs2: Empty flash at 0x018f300c ends at 0x018f4000
[ 22.747429] jffs2: Empty flash at 0x018f4ffc ends at 0x018f5000
[ 22.754075] jffs2: Empty flash at 0x018f5ffc ends at 0x018f6000
[ 22.760017] jffs2: CLEANMARKER node found at 0x018f6000, not first node in block (0x018f0000)
[ 22.769286] jffs2: Empty flash at 0x018f600c ends at 0x018f7000
[ 22.775199] jffs2: CLEANMARKER node found at 0x018f7000, not first node in block (0x018f0000)
[ 22.784464] jffs2: Empty flash at 0x018f700c ends at 0x018f8000
[ 22.791849] jffs2: Empty flash at 0x018f8ffc ends at 0x018f9000
[ 22.797787] jffs2: CLEANMARKER node found at 0x018f9000, not first node in block (0x018f0000)
[ 22.807044] jffs2: Empty flash at 0x018f900c ends at 0x018fa000
[ 22.814408] jffs2: Empty flash at 0x018faffc ends at 0x018fb000
[ 22.821088] jffs2: Empty flash at 0x018fbffc ends at 0x018fc000
[ 22.827020] jffs2: CLEANMARKER node found at 0x018fc000, not first node in block (0x018f0000)
[ 22.836279] jffs2: Empty flash at 0x018fc00c ends at 0x018fd000
[ 22.842194] jffs2: CLEANMARKER node found at 0x018fd000, not first node in block (0x018f0000)
[ 22.851461] jffs2: Empty flash at 0x018fd00c ends at 0x018fe000
[ 22.858838] jffs2: Empty flash at 0x018feffc ends at 0x018ff000
[ 22.866548] jffs2: Empty flash at 0x01920ffc ends at 0x01921000
[ 22.873192] jffs2: Empty flash at 0x01921ffc ends at 0x01922000
[ 22.879864] jffs2: Empty flash at 0x01922ffc ends at 0x01923000
[ 22.886526] jffs2: Empty flash at 0x01923ffc ends at 0x01924000
[ 22.892439] jffs2: CLEANMARKER node found at 0x01924000, not first node in block (0x01920000)
[ 22.901710] jffs2: Empty flash at 0x0192400c ends at 0x01925000
[ 22.909116] jffs2: Empty flash at 0x01925ffc ends at 0x01926000
[ 22.915812] jffs2: Empty flash at 0x01926ffc ends at 0x01927000
[ 22.922494] jffs2: Empty flash at 0x01927ffc ends at 0x01928000
[ 22.929186] jffs2: Empty flash at 0x01928ffc ends at 0x01929000
[ 22.935861] jffs2: Empty flash at 0x01929ffc ends at 0x0192a000
[ 22.942517] jffs2: Empty flash at 0x0192affc ends at 0x0192b000
[ 22.948458] jffs2: CLEANMARKER node found at 0x0192b000, not first node in block (0x01920000)
[ 22.957720] jffs2: Empty flash at 0x0192b00c ends at 0x0192c000
[ 22.965095] jffs2: Empty flash at 0x0192cf50 ends at 0x0192d000
[ 22.971774] jffs2: Empty flash at 0x0192dffc ends at 0x0192e000
[ 22.978452] jffs2: Empty flash at 0x0192effc ends at 0x0192f000
[ 22.985978] jffs2: Empty flash at 0x01930f84 ends at 0x01931000
[ 22.992633] jffs2: Empty flash at 0x01931ffc ends at 0x01932000
[ 22.999317] jffs2: Empty flash at 0x01932f60 ends at 0x01933000
[ 23.005978] jffs2: Empty flash at 0x01933ffc ends at 0x01934000
[ 23.012627] jffs2: Empty flash at 0x01934ffc ends at 0x01935000
[ 23.019298] jffs2: Empty flash at 0x01935ffc ends at 0x01936000
[ 23.025959] jffs2: Empty flash at 0x01936ffc ends at 0x01937000
[ 23.032604] jffs2: Empty flash at 0x01937ffc ends at 0x01938000
[ 23.039278] jffs2: Empty flash at 0x01938ffc ends at 0x01939000
[ 23.045933] jffs2: Empty flash at 0x01939ffc ends at 0x0193a000
[ 23.052578] jffs2: Empty flash at 0x0193affc ends at 0x0193b000
[ 23.059248] jffs2: Empty flash at 0x0193bffc ends at 0x0193c000
[ 23.065907] jffs2: Empty flash at 0x0193cffc ends at 0x0193d000
[ 23.071821] jffs2: CLEANMARKER node found at 0x0193d000, not first node in block (0x01930000)
[ 23.081083] jffs2: Empty flash at 0x0193d00c ends at 0x0193e000
[ 23.088464] jffs2: Empty flash at 0x0193effc ends at 0x0193f000
[ 23.095980] jffs2: Empty flash at 0x01940ffc ends at 0x01941000
[ 23.102627] jffs2: Empty flash at 0x01941ffc ends at 0x01942000
[ 23.109321] jffs2: Empty flash at 0x01942ffc ends at 0x01943000
[ 23.115988] jffs2: Empty flash at 0x01943ffc ends at 0x01944000
[ 23.122640] jffs2: Empty flash at 0x01944ffc ends at 0x01945000
[ 23.129367] jffs2: Empty flash at 0x01945ffc ends at 0x01946000
[ 23.136040] jffs2: Empty flash at 0x01946ffc ends at 0x01947000
[ 23.142692] jffs2: Empty flash at 0x01947ffc ends at 0x01948000
[ 23.150101] jffs2: Empty flash at 0x01949ffc ends at 0x0194a000
[ 23.156768] jffs2: Empty flash at 0x0194affc ends at 0x0194b000
[ 23.163412] jffs2: Empty flash at 0x0194bffc ends at 0x0194c000
[ 23.170091] jffs2: Empty flash at 0x0194cffc ends at 0x0194d000
[ 23.176756] jffs2: Empty flash at 0x0194dffc ends at 0x0194e000
[ 23.183399] jffs2: Empty flash at 0x0194effc ends at 0x0194f000
[ 23.189338] jffs2: CLEANMARKER node found at 0x0194f000, not first node in block (0x01940000)
[ 23.200157] jffs2: Empty flash at 0x01950ffc ends at 0x01951000
[ 23.206825] jffs2: Empty flash at 0x01951ffc ends at 0x01952000
[ 23.213469] jffs2: Empty flash at 0x01952ffc ends at 0x01953000
[ 23.220143] jffs2: Empty flash at 0x01953ffc ends at 0x01954000
[ 23.226807] jffs2: Empty flash at 0x01954ffc ends at 0x01955000
[ 23.233452] jffs2: Empty flash at 0x01955ffc ends at 0x01956000
[ 23.240123] jffs2: Empty flash at 0x01956ffc ends at 0x01957000
[ 23.246808] jffs2: Empty flash at 0x01957ffc ends at 0x01958000
[ 23.253459] jffs2: Empty flash at 0x01958ffc ends at 0x01959000
[ 23.259398] jffs2: CLEANMARKER node found at 0x01959000, not first node in block (0x01950000)
[ 23.268663] jffs2: Empty flash at 0x0195900c ends at 0x0195a000
[ 23.276047] jffs2: Empty flash at 0x0195affc ends at 0x0195b000
[ 23.282695] jffs2: Empty flash at 0x0195bf6c ends at 0x0195c000
[ 23.289368] jffs2: Empty flash at 0x0195cffc ends at 0x0195d000
[ 23.296027] jffs2: Empty flash at 0x0195dffc ends at 0x0195e000
[ 23.302671] jffs2: Empty flash at 0x0195effc ends at 0x0195f000
[ 23.310184] jffs2: Empty flash at 0x01960ffc ends at 0x01961000
[ 23.316119] jffs2: CLEANMARKER node found at 0x01961000, not first node in block (0x01960000)
[ 23.325367] jffs2: Empty flash at 0x0196100c ends at 0x01962000
[ 23.332752] jffs2: Empty flash at 0x01962ffc ends at 0x01963000
[ 23.339463] jffs2: Empty flash at 0x01963ffc ends at 0x01964000
[ 23.346132] jffs2: Empty flash at 0x01964ffc ends at 0x01965000
[ 23.352783] jffs2: Empty flash at 0x01965ffc ends at 0x01966000
[ 23.358721] jffs2: CLEANMARKER node found at 0x01966000, not first node in block (0x01960000)
[ 23.367983] jffs2: Empty flash at 0x0196600c ends at 0x01967000
[ 23.375383] jffs2: Empty flash at 0x01967ffc ends at 0x01968000
[ 23.382063] jffs2: Empty flash at 0x01968ffc ends at 0x01969000
[ 23.388748] jffs2: Empty flash at 0x01969ffc ends at 0x0196a000
[ 23.395401] jffs2: Empty flash at 0x0196affc ends at 0x0196b000
[ 23.401341] jffs2: CLEANMARKER node found at 0x0196b000, not first node in block (0x01960000)
[ 23.410604] jffs2: Empty flash at 0x0196b00c ends at 0x0196c000
[ 23.417988] jffs2: Empty flash at 0x0196cffc ends at 0x0196d000
[ 23.424632] jffs2: Empty flash at 0x0196dffc ends at 0x0196e000
[ 23.431302] jffs2: Empty flash at 0x0196effc ends at 0x0196f000
[ 23.438797] jffs2: Empty flash at 0x01970ffc ends at 0x01971000
[ 23.445440] jffs2: Empty flash at 0x01971ffc ends at 0x01972000
[ 23.452119] jffs2: Empty flash at 0x01972ffc ends at 0x01973000
[ 23.458789] jffs2: Empty flash at 0x01973ffc ends at 0x01974000
[ 23.465434] jffs2: Empty flash at 0x01974ffc ends at 0x01975000
[ 23.472106] jffs2: Empty flash at 0x01975ffc ends at 0x01976000
[ 23.478770] jffs2: Empty flash at 0x01976ffc ends at 0x01977000
[ 23.485414] jffs2: Empty flash at 0x01977ffc ends at 0x01978000
[ 23.492085] jffs2: Empty flash at 0x01978ffc ends at 0x01979000
[ 23.498753] jffs2: Empty flash at 0x01979ffc ends at 0x0197a000
[ 23.505396] jffs2: Empty flash at 0x0197affc ends at 0x0197b000
[ 23.512089] jffs2: Empty flash at 0x0197bffc ends at 0x0197c000
[ 23.518762] jffs2: Empty flash at 0x0197cffc ends at 0x0197d000
[ 23.525405] jffs2: Empty flash at 0x0197df5c ends at 0x0197e000
[ 23.532161] jffs2: Empty flash at 0x0197effc ends at 0x0197f000
[ 23.539713] jffs2: Empty flash at 0x01980ffc ends at 0x01981000
[ 23.546420] jffs2: Empty flash at 0x01981ffc ends at 0x01982000
[ 23.553074] jffs2: Empty flash at 0x01982ffc ends at 0x01983000
[ 23.559825] jffs2: Empty flash at 0x01983ffc ends at 0x01984000
[ 23.566505] jffs2: Empty flash at 0x01984ffc ends at 0x01985000
[ 23.573157] jffs2: Empty flash at 0x01985ffc ends at 0x01986000
[ 23.579841] jffs2: Empty flash at 0x01986ffc ends at 0x01987000
[ 23.586538] jffs2: Empty flash at 0x01987ffc ends at 0x01988000
[ 23.593218] jffs2: Empty flash at 0x01988ffc ends at 0x01989000
[ 23.603007] jffs2: Empty flash at 0x01989f54 ends at 0x0198a000
[ 23.609807] jffs2: Empty flash at 0x0198affc ends at 0x0198b000
[ 23.616531] jffs2: Empty flash at 0x0198bf74 ends at 0x0198c000
[ 23.623205] jffs2: Empty flash at 0x0198cffc ends at 0x0198d000
[ 23.629186] jffs2: CLEANMARKER node found at 0x0198d000, not first node in block (0x01980000)
[ 23.638557] jffs2: Empty flash at 0x0198d00c ends at 0x0198e000
[ 23.646038] jffs2: Empty flash at 0x0198effc ends at 0x0198f000
[ 23.653726] jffs2: Empty flash at 0x01990ffc ends at 0x01991000
[ 23.661489] jffs2: Empty flash at 0x01991ffc ends at 0x01992000
[ 23.667458] jffs2: CLEANMARKER node found at 0x01992000, not first node in block (0x01990000)
[ 23.676765] jffs2: Empty flash at 0x0199200c ends at 0x01993000
[ 23.687276] jffs2: Empty flash at 0x01993ffc ends at 0x01994000
[ 23.693953] jffs2: Empty flash at 0x01994ffc ends at 0x01995000
[ 23.700658] jffs2: Empty flash at 0x01995ffc ends at 0x01996000
[ 23.707347] jffs2: Empty flash at 0x01996ffc ends at 0x01997000
[ 23.714022] jffs2: Empty flash at 0x01997ffc ends at 0x01998000
[ 23.720738] jffs2: Empty flash at 0x01998ffc ends at 0x01999000
[ 23.727446] jffs2: Empty flash at 0x01999ffc ends at 0x0199a000
[ 23.734122] jffs2: Empty flash at 0x0199affc ends at 0x0199b000
[ 23.740833] jffs2: Empty flash at 0x0199bffc ends at 0x0199c000
[ 23.747570] jffs2: Empty flash at 0x0199cffc ends at 0x0199d000
[ 23.755272] jffs2: Empty flash at 0x0199dffc ends at 0x0199e000
[ 23.762010] jffs2: Empty flash at 0x0199effc ends at 0x0199f000
[ 23.769676] jffs2: Empty flash at 0x019a0ffc ends at 0x019a1000
[ 23.776352] jffs2: Empty flash at 0x019a1ffc ends at 0x019a2000
[ 23.783005] jffs2: Empty flash at 0x019a2ffc ends at 0x019a3000
[ 23.789687] jffs2: Empty flash at 0x019a3ffc ends at 0x019a4000
[ 23.795602] jffs2: CLEANMARKER node found at 0x019a4000, not first node in block (0x019a0000)
[ 23.804874] jffs2: Empty flash at 0x019a400c ends at 0x019a5000
[ 23.812273] jffs2: Empty flash at 0x019a5ffc ends at 0x019a6000
[ 23.818947] jffs2: Empty flash at 0x019a6ffc ends at 0x019a7000
[ 23.825592] jffs2: Empty flash at 0x019a7ffc ends at 0x019a8000
[ 23.831530] jffs2: CLEANMARKER node found at 0x019a8000, not first node in block (0x019a0000)
[ 23.840791] jffs2: Empty flash at 0x019a800c ends at 0x019a9000
[ 23.848180] jffs2: Empty flash at 0x019a9ffc ends at 0x019aa000
[ 23.854831] jffs2: Empty flash at 0x019aaffc ends at 0x019ab000
[ 23.861528] jffs2: Empty flash at 0x019abfd4 ends at 0x019ac000
[ 23.868199] jffs2: Empty flash at 0x019acffc ends at 0x019ad000
[ 23.874856] jffs2: Empty flash at 0x019adffc ends at 0x019ae000
[ 23.881538] jffs2: Empty flash at 0x019aeffc ends at 0x019af000
[ 23.889045] jffs2: Empty flash at 0x019b0ffc ends at 0x019b1000
[ 23.896454] jffs2: Empty flash at 0x019b2ffc ends at 0x019b3000
[ 23.903106] jffs2: Empty flash at 0x019b3ffc ends at 0x019b4000
[ 23.909785] jffs2: Empty flash at 0x019b4ffc ends at 0x019b5000
[ 23.916455] jffs2: Empty flash at 0x019b5ffc ends at 0x019b6000
[ 23.923100] jffs2: Empty flash at 0x019b6ffc ends at 0x019b7000
[ 23.930501] jffs2: Empty flash at 0x019b8fd8 ends at 0x019b9000
[ 23.937169] jffs2: Empty flash at 0x019b9ffc ends at 0x019ba000
[ 23.943811] jffs2: Empty flash at 0x019baffc ends at 0x019bb000
[ 23.950484] jffs2: Empty flash at 0x019bbffc ends at 0x019bc000
[ 23.957149] jffs2: Empty flash at 0x019bcffc ends at 0x019bd000
[ 23.963793] jffs2: Empty flash at 0x019bdffc ends at 0x019be000
[ 23.970505] jffs2: Empty flash at 0x019beffc ends at 0x019bf000
[ 23.978030] jffs2: Empty flash at 0x019c0ffc ends at 0x019c1000
[ 23.984675] jffs2: Empty flash at 0x019c1ffc ends at 0x019c2000
[ 23.991360] jffs2: Empty flash at 0x019c2ffc ends at 0x019c3000
[ 23.998030] jffs2: Empty flash at 0x019c3ffc ends at 0x019c4000
[ 24.004678] jffs2: Empty flash at 0x019c4ffc ends at 0x019c5000
[ 24.011360] jffs2: Empty flash at 0x019c5ffc ends at 0x019c6000
[ 24.018027] jffs2: Empty flash at 0x019c6ffc ends at 0x019c7000
[ 24.024674] jffs2: Empty flash at 0x019c7ffc ends at 0x019c8000
[ 24.030641] jffs2: CLEANMARKER node found at 0x019c8000, not first node in block (0x019c0000)
[ 24.039917] jffs2: Empty flash at 0x019c800c ends at 0x019c9000
[ 24.047307] jffs2: Empty flash at 0x019c9ffc ends at 0x019ca000
[ 24.053947] jffs2: Empty flash at 0x019caffc ends at 0x019cb000
[ 24.060626] jffs2: Empty flash at 0x019cbffc ends at 0x019cc000
[ 24.067297] jffs2: Empty flash at 0x019ccffc ends at 0x019cd000
[ 24.073948] jffs2: Empty flash at 0x019cdfec ends at 0x019ce000
[ 24.080629] jffs2: Empty flash at 0x019ceffc ends at 0x019cf000
[ 24.088148] jffs2: Empty flash at 0x019d0ffc ends at 0x019d1000
[ 24.094795] jffs2: Empty flash at 0x019d1ffc ends at 0x019d2000
[ 24.101478] jffs2: Empty flash at 0x019d2f78 ends at 0x019d3000
[ 24.108147] jffs2: Empty flash at 0x019d3ffc ends at 0x019d4000
[ 24.114789] jffs2: Empty flash at 0x019d4ffc ends at 0x019d5000
[ 24.121467] jffs2: Empty flash at 0x019d5ffc ends at 0x019d6000
[ 24.128161] jffs2: Empty flash at 0x019d6ffc ends at 0x019d7000
[ 24.134807] jffs2: Empty flash at 0x019d7ffc ends at 0x019d8000
[ 24.141488] jffs2: Empty flash at 0x019d8ffc ends at 0x019d9000
[ 24.148155] jffs2: Empty flash at 0x019d9ffc ends at 0x019da000
[ 24.154799] jffs2: Empty flash at 0x019daffc ends at 0x019db000
[ 24.161478] jffs2: Empty flash at 0x019dbffc ends at 0x019dc000
[ 24.168149] jffs2: Empty flash at 0x019dcffc ends at 0x019dd000
[ 24.174790] jffs2: Empty flash at 0x019ddffc ends at 0x019de000
[ 24.180767] jffs2: CLEANMARKER node found at 0x019de000, not first node in block (0x019d0000)
[ 24.190046] jffs2: Empty flash at 0x019de00c ends at 0x019df000
[ 24.198270] jffs2: Empty flash at 0x019e0ffc ends at 0x019e1000
[ 24.204914] jffs2: Empty flash at 0x019e1ffc ends at 0x019e2000
[ 24.211593] jffs2: Empty flash at 0x019e2f88 ends at 0x019e3000
[ 24.218259] jffs2: Empty flash at 0x019e3ffc ends at 0x019e4000
[ 24.224173] jffs2: CLEANMARKER node found at 0x019e4000, not first node in block (0x019e0000)
[ 24.233444] jffs2: Empty flash at 0x019e400c ends at 0x019e5000
[ 24.240833] jffs2: Empty flash at 0x019e5ffc ends at 0x019e6000
[ 24.246766] jffs2: CLEANMARKER node found at 0x019e6000, not first node in block (0x019e0000)
[ 24.256026] jffs2: Empty flash at 0x019e600c ends at 0x019e7000
[ 24.261941] jffs2: CLEANMARKER node found at 0x019e7000, not first node in block (0x019e0000)
[ 24.271203] jffs2: Empty flash at 0x019e700c ends at 0x019e8000
[ 24.278595] jffs2: Empty flash at 0x019e8ffc ends at 0x019e9000
[ 24.285241] jffs2: Empty flash at 0x019e9ffc ends at 0x019ea000
[ 24.291941] jffs2: Empty flash at 0x019eaffc ends at 0x019eb000
[ 24.298616] jffs2: Empty flash at 0x019ebffc ends at 0x019ec000
[ 24.305268] jffs2: Empty flash at 0x019ecffc ends at 0x019ed000
[ 24.311944] jffs2: Empty flash at 0x019edffc ends at 0x019ee000
[ 24.318621] jffs2: Empty flash at 0x019eeffc ends at 0x019ef000
[ 24.326567] jffs2: Empty flash at 0x01a30ffc ends at 0x01a31000
[ 24.332475] jffs2: CLEANMARKER node found at 0x01a31000, not first node in block (0x01a30000)
[ 24.341753] jffs2: Empty flash at 0x01a3100c ends at 0x01a32000
[ 24.349150] jffs2: Empty flash at 0x01a32ffc ends at 0x01a33000
[ 24.355812] jffs2: Empty flash at 0x01a33ffc ends at 0x01a34000
[ 24.362458] jffs2: Empty flash at 0x01a34ffc ends at 0x01a35000
[ 24.369134] jffs2: Empty flash at 0x01a35ffc ends at 0x01a36000
[ 24.375792] jffs2: Empty flash at 0x01a36ffc ends at 0x01a37000
[ 24.382437] jffs2: Empty flash at 0x01a37ffc ends at 0x01a38000
[ 24.389163] jffs2: Empty flash at 0x01a38ffc ends at 0x01a39000
[ 24.395079] jffs2: CLEANMARKER node found at 0x01a39000, not first node in block (0x01a30000)
[ 24.404364] jffs2: Empty flash at 0x01a3900c ends at 0x01a3a000
[ 24.411771] jffs2: Empty flash at 0x01a3affc ends at 0x01a3b000
[ 24.417711] jffs2: CLEANMARKER node found at 0x01a3b000, not first node in block (0x01a30000)
[ 24.426976] jffs2: Empty flash at 0x01a3b00c ends at 0x01a3c000
[ 24.434348] jffs2: Empty flash at 0x01a3cffc ends at 0x01a3d000
[ 24.441028] jffs2: Empty flash at 0x01a3dffc ends at 0x01a3e000
[ 24.446961] jffs2: CLEANMARKER node found at 0x01a3e000, not first node in block (0x01a30000)
[ 24.456227] jffs2: Empty flash at 0x01a3e00c ends at 0x01a3f000
[ 24.462141] jffs2: CLEANMARKER node found at 0x01a3f000, not first node in block (0x01a30000)
[ 24.472966] jffs2: Empty flash at 0x01a40ffc ends at 0x01a41000
[ 24.479646] jffs2: Empty flash at 0x01a41ffc ends at 0x01a42000
[ 24.486307] jffs2: Empty flash at 0x01a42fe8 ends at 0x01a43000
[ 24.492951] jffs2: Empty flash at 0x01a43ffc ends at 0x01a44000
[ 24.499628] jffs2: Empty flash at 0x01a44ffc ends at 0x01a45000
[ 24.506287] jffs2: Empty flash at 0x01a45ffc ends at 0x01a46000
[ 24.512201] jffs2: CLEANMARKER node found at 0x01a46000, not first node in block (0x01a40000)
[ 24.521472] jffs2: Empty flash at 0x01a4600c ends at 0x01a47000
[ 24.528862] jffs2: Empty flash at 0x01a47ffc ends at 0x01a48000
[ 24.535505] jffs2: Empty flash at 0x01a48ffc ends at 0x01a49000
[ 24.542178] jffs2: Empty flash at 0x01a49ffc ends at 0x01a4a000
[ 24.548881] jffs2: Empty flash at 0x01a4affc ends at 0x01a4b000
[ 24.554797] jffs2: CLEANMARKER node found at 0x01a4b000, not first node in block (0x01a40000)
[ 24.564072] jffs2: Empty flash at 0x01a4b00c ends at 0x01a4c000
[ 24.571472] jffs2: Empty flash at 0x01a4cffc ends at 0x01a4d000
[ 24.578142] jffs2: Empty flash at 0x01a4dffc ends at 0x01a4e000
[ 24.584784] jffs2: Empty flash at 0x01a4effc ends at 0x01a4f000
[ 24.592308] jffs2: Empty flash at 0x01a50ffc ends at 0x01a51000
[ 24.599021] jffs2: Empty flash at 0x01a51fe4 ends at 0x01a52000
[ 24.605671] jffs2: Empty flash at 0x01a52ffc ends at 0x01a53000
[ 24.612358] jffs2: Empty flash at 0x01a53ffc ends at 0x01a54000
[ 24.618297] jffs2: CLEANMARKER node found at 0x01a54000, not first node in block (0x01a50000)
[ 24.627564] jffs2: Empty flash at 0x01a5400c ends at 0x01a55000
[ 24.634924] jffs2: Empty flash at 0x01a55ffc ends at 0x01a56000
[ 24.641601] jffs2: Empty flash at 0x01a56ffc ends at 0x01a57000
[ 24.648270] jffs2: Empty flash at 0x01a57ffc ends at 0x01a58000
[ 24.654913] jffs2: Empty flash at 0x01a58ffc ends at 0x01a59000
[ 24.661585] jffs2: Empty flash at 0x01a59ffc ends at 0x01a5a000
[ 24.668248] jffs2: Empty flash at 0x01a5afe0 ends at 0x01a5b000
[ 24.674895] jffs2: Empty flash at 0x01a5bffc ends at 0x01a5c000
[ 24.681570] jffs2: Empty flash at 0x01a5cffc ends at 0x01a5d000
[ 24.688236] jffs2: Empty flash at 0x01a5dffc ends at 0x01a5e000
[ 24.694151] jffs2: CLEANMARKER node found at 0x01a5e000, not first node in block (0x01a50000)
[ 24.703418] jffs2: Empty flash at 0x01a5e00c ends at 0x01a5f000
[ 24.711652] jffs2: Empty flash at 0x01a60ffc ends at 0x01a61000
[ 24.718327] jffs2: Empty flash at 0x01a61ffc ends at 0x01a62000
[ 24.724974] jffs2: Empty flash at 0x01a62ffc ends at 0x01a63000
[ 24.731736] jffs2: Empty flash at 0x01a63ffc ends at 0x01a64000
[ 24.738425] jffs2: Empty flash at 0x01a64ffc ends at 0x01a65000
[ 24.745077] jffs2: Empty flash at 0x01a65ffc ends at 0x01a66000
[ 24.751754] jffs2: Empty flash at 0x01a66ffc ends at 0x01a67000
[ 24.758505] jffs2: Empty flash at 0x01a67ffc ends at 0x01a68000
[ 24.765163] jffs2: Empty flash at 0x01a68ffc ends at 0x01a69000
[ 24.771845] jffs2: Empty flash at 0x01a69ffc ends at 0x01a6a000
[ 24.777783] jffs2: CLEANMARKER node found at 0x01a6a000, not first node in block (0x01a60000)
[ 24.787083] jffs2: Empty flash at 0x01a6a00c ends at 0x01a6b000
[ 24.795522] jffs2: Empty flash at 0x01a6bffc ends at 0x01a6c000
[ 24.804277] jffs2: Empty flash at 0x01a6cffc ends at 0x01a6d000
[ 24.811126] jffs2: Empty flash at 0x01a6dffc ends at 0x01a6e000
[ 24.817846] jffs2: Empty flash at 0x01a6effc ends at 0x01a6f000
[ 24.823784] jffs2: CLEANMARKER node found at 0x01a6f000, not first node in block (0x01a60000)
[ 24.834678] jffs2: Empty flash at 0x01a70ffc ends at 0x01a71000
[ 24.841517] jffs2: Empty flash at 0x01a71ffc ends at 0x01a72000
[ 24.848508] jffs2: CLEANMARKER node found at 0x01a72000, not first node in block (0x01a70000)
[ 24.857804] jffs2: Empty flash at 0x01a7200c ends at 0x01a73000
[ 24.865191] jffs2: Empty flash at 0x01a73f40 ends at 0x01a74000
[ 24.871909] jffs2: Empty flash at 0x01a74ffc ends at 0x01a75000
[ 24.878624] jffs2: Empty flash at 0x01a75ffc ends at 0x01a76000
[ 24.888403] jffs2: Empty flash at 0x01a76ffc ends at 0x01a77000
[ 24.895092] jffs2: Empty flash at 0x01a77ffc ends at 0x01a78000
[ 24.901808] jffs2: Empty flash at 0x01a78ffc ends at 0x01a79000
[ 24.908545] jffs2: Empty flash at 0x01a79ffc ends at 0x01a7a000
[ 24.914484] jffs2: CLEANMARKER node found at 0x01a7a000, not first node in block (0x01a70000)
[ 24.923792] jffs2: Empty flash at 0x01a7a00c ends at 0x01a7b000
[ 24.931235] jffs2: Empty flash at 0x01a7bffc ends at 0x01a7c000
[ 24.937942] jffs2: Empty flash at 0x01a7cffc ends at 0x01a7d000
[ 24.944665] jffs2: Empty flash at 0x01a7dffc ends at 0x01a7e000
[ 24.952409] jffs2: Empty flash at 0x01a7effc ends at 0x01a7f000
[ 24.958352] jffs2: CLEANMARKER node found at 0x01a7f000, not first node in block (0x01a70000)
[ 24.969189] jffs2: Empty flash at 0x01a80ffc ends at 0x01a81000
[ 24.975869] jffs2: Empty flash at 0x01a81ffc ends at 0x01a82000
[ 24.982521] jffs2: Empty flash at 0x01a82ffc ends at 0x01a83000
[ 24.989201] jffs2: Empty flash at 0x01a83ffc ends at 0x01a84000
[ 24.995863] jffs2: Empty flash at 0x01a84fe0 ends at 0x01a85000
[ 25.001780] jffs2: CLEANMARKER node found at 0x01a85000, not first node in block (0x01a80000)
[ 25.011059] jffs2: Empty flash at 0x01a8500c ends at 0x01a86000
[ 25.017029] jffs2: CLEANMARKER node found at 0x01a86000, not first node in block (0x01a80000)
[ 25.027031] jffs2: Empty flash at 0x01a8600c ends at 0x01a87000
[ 25.034411] jffs2: Empty flash at 0x01a87ffc ends at 0x01a88000
[ 25.041090] jffs2: Empty flash at 0x01a88ffc ends at 0x01a89000
[ 25.047763] jffs2: Empty flash at 0x01a89ffc ends at 0x01a8a000
[ 25.054426] jffs2: Empty flash at 0x01a8affc ends at 0x01a8b000
[ 25.061107] jffs2: Empty flash at 0x01a8bffc ends at 0x01a8c000
[ 25.067801] jffs2: Empty flash at 0x01a8cffc ends at 0x01a8d000
[ 25.074459] jffs2: Empty flash at 0x01a8dffc ends at 0x01a8e000
[ 25.081144] jffs2: Empty flash at 0x01a8effc ends at 0x01a8f000
[ 25.088795] jffs2: Empty flash at 0x01aa0ffc ends at 0x01aa1000
[ 25.095442] jffs2: Empty flash at 0x01aa1ffc ends at 0x01aa2000
[ 25.102150] jffs2: Empty flash at 0x01aa2ffc ends at 0x01aa3000
[ 25.108832] jffs2: Empty flash at 0x01aa3ffc ends at 0x01aa4000
[ 25.114748] jffs2: CLEANMARKER node found at 0x01aa4000, not first node in block (0x01aa0000)
[ 25.124024] jffs2: Empty flash at 0x01aa400c ends at 0x01aa5000
[ 25.131447] jffs2: Empty flash at 0x01aa5ffc ends at 0x01aa6000
[ 25.137383] jffs2: CLEANMARKER node found at 0x01aa6000, not first node in block (0x01aa0000)
[ 25.146652] jffs2: Empty flash at 0x01aa600c ends at 0x01aa7000
[ 25.154030] jffs2: Empty flash at 0x01aa7ffc ends at 0x01aa8000
[ 25.160713] jffs2: Empty flash at 0x01aa8ffc ends at 0x01aa9000
[ 25.166646] jffs2: CLEANMARKER node found at 0x01aa9000, not first node in block (0x01aa0000)
[ 25.175908] jffs2: Empty flash at 0x01aa900c ends at 0x01aaa000
[ 25.183272] jffs2: Empty flash at 0x01aaaffc ends at 0x01aab000
[ 25.189944] jffs2: Empty flash at 0x01aabffc ends at 0x01aac000
[ 25.196609] jffs2: Empty flash at 0x01aacffc ends at 0x01aad000
[ 25.203276] jffs2: Empty flash at 0x01aadffc ends at 0x01aae000
[ 25.209970] jffs2: Empty flash at 0x01aaeffc ends at 0x01aaf000
[ 25.217483] jffs2: Empty flash at 0x01ab0ffc ends at 0x01ab1000
[ 25.224132] jffs2: Empty flash at 0x01ab1ffc ends at 0x01ab2000
[ 25.230869] jffs2: Empty flash at 0x01ab2ffc ends at 0x01ab3000
[ 25.237543] jffs2: Empty flash at 0x01ab3ffc ends at 0x01ab4000
[ 25.244190] jffs2: Empty flash at 0x01ab4ffc ends at 0x01ab5000
[ 25.250866] jffs2: Empty flash at 0x01ab5ffc ends at 0x01ab6000
[ 25.257534] jffs2: Empty flash at 0x01ab6ffc ends at 0x01ab7000
[ 25.264179] jffs2: Empty flash at 0x01ab7ffc ends at 0x01ab8000
[ 25.270855] jffs2: Empty flash at 0x01ab8ffc ends at 0x01ab9000
[ 25.277522] jffs2: Empty flash at 0x01ab9ffc ends at 0x01aba000
[ 25.284166] jffs2: Empty flash at 0x01abaffc ends at 0x01abb000
[ 25.290109] jffs2: CLEANMARKER node found at 0x01abb000, not first node in block (0x01ab0000)
[ 25.299379] jffs2: Empty flash at 0x01abb00c ends at 0x01abc000
[ 25.306751] jffs2: Empty flash at 0x01abcffc ends at 0x01abd000
[ 25.313392] jffs2: Empty flash at 0x01abdffc ends at 0x01abe000
[ 25.320065] jffs2: Empty flash at 0x01abeffc ends at 0x01abf000
[ 25.327589] jffs2: Empty flash at 0x01ac0fdc ends at 0x01ac1000
[ 25.334234] jffs2: Empty flash at 0x01ac1ffc ends at 0x01ac2000
[ 25.340913] jffs2: Empty flash at 0x01ac2ffc ends at 0x01ac3000
[ 25.347579] jffs2: Empty flash at 0x01ac3ffc ends at 0x01ac4000
[ 25.354223] jffs2: Empty flash at 0x01ac4ffc ends at 0x01ac5000
[ 25.360895] jffs2: Empty flash at 0x01ac5ffc ends at 0x01ac6000
[ 25.367557] jffs2: Empty flash at 0x01ac6ffc ends at 0x01ac7000
[ 25.373472] jffs2: CLEANMARKER node found at 0x01ac7000, not first node in block (0x01ac0000)
[ 25.382741] jffs2: Empty flash at 0x01ac700c ends at 0x01ac8000
[ 25.390128] jffs2: Empty flash at 0x01ac8ffc ends at 0x01ac9000
[ 25.396060] jffs2: CLEANMARKER node found at 0x01ac9000, not first node in block (0x01ac0000)
[ 25.405304] jffs2: Empty flash at 0x01ac900c ends at 0x01aca000
[ 25.411968] jffs2: CLEANMARKER node found at 0x01acb000, not first node in block (0x01ac0000)
[ 25.421952] jffs2: Empty flash at 0x01acb00c ends at 0x01acc000
[ 25.427887] jffs2: CLEANMARKER node found at 0x01acc000, not first node in block (0x01ac0000)
[ 25.437189] jffs2: Empty flash at 0x01acc00c ends at 0x01acd000
[ 25.443104] jffs2: CLEANMARKER node found at 0x01acd000, not first node in block (0x01ac0000)
[ 25.453127] jffs2: Empty flash at 0x01acd00c ends at 0x01ace000
[ 25.460530] jffs2: Empty flash at 0x01aceffc ends at 0x01acf000
[ 25.466467] jffs2: CLEANMARKER node found at 0x01acf000, not first node in block (0x01ac0000)
[ 25.477298] jffs2: Empty flash at 0x01ad0ffc ends at 0x01ad1000
[ 25.483944] jffs2: Empty flash at 0x01ad1ffc ends at 0x01ad2000
[ 25.490619] jffs2: Empty flash at 0x01ad2ffc ends at 0x01ad3000
[ 25.497286] jffs2: Empty flash at 0x01ad3ffc ends at 0x01ad4000
[ 25.503938] jffs2: Empty flash at 0x01ad4ffc ends at 0x01ad5000
[ 25.510616] jffs2: Empty flash at 0x01ad5ffc ends at 0x01ad6000
[ 25.517281] jffs2: Empty flash at 0x01ad6ffc ends at 0x01ad7000
[ 25.524659] jffs2: Empty flash at 0x01ad8ffc ends at 0x01ad9000
[ 25.530601] jffs2: CLEANMARKER node found at 0x01ad9000, not first node in block (0x01ad0000)
[ 25.539866] jffs2: Empty flash at 0x01ad900c ends at 0x01ada000
[ 25.547258] jffs2: Empty flash at 0x01adaffc ends at 0x01adb000
[ 25.553901] jffs2: Empty flash at 0x01adbffc ends at 0x01adc000
[ 25.560579] jffs2: Empty flash at 0x01adcffc ends at 0x01add000
[ 25.567243] jffs2: Empty flash at 0x01addffc ends at 0x01ade000
[ 25.573156] jffs2: CLEANMARKER node found at 0x01ade000, not first node in block (0x01ad0000)
[ 25.582422] jffs2: Empty flash at 0x01ade00c ends at 0x01adf000
[ 25.590753] jffs2: Empty flash at 0x01ae0ffc ends at 0x01ae1000
[ 25.596698] jffs2: CLEANMARKER node found at 0x01ae1000, not first node in block (0x01ae0000)
[ 25.606084] jffs2: Empty flash at 0x01ae100c ends at 0x01ae2000
[ 25.613499] jffs2: Empty flash at 0x01ae2ffc ends at 0x01ae3000
[ 25.620259] jffs2: Empty flash at 0x01ae3ffc ends at 0x01ae4000
[ 25.626988] jffs2: Empty flash at 0x01ae4ffc ends at 0x01ae5000
[ 25.633640] jffs2: Empty flash at 0x01ae5ffc ends at 0x01ae6000
[ 25.640365] jffs2: Empty flash at 0x01ae6ffc ends at 0x01ae7000
[ 25.647097] jffs2: Empty flash at 0x01ae7ffc ends at 0x01ae8000
[ 25.653765] jffs2: Empty flash at 0x01ae8ffc ends at 0x01ae9000
[ 25.659713] jffs2: CLEANMARKER node found at 0x01ae9000, not first node in block (0x01ae0000)
[ 25.668990] jffs2: Empty flash at 0x01ae900c ends at 0x01aea000
[ 25.676376] jffs2: Empty flash at 0x01aeaffc ends at 0x01aeb000
[ 25.683024] jffs2: Empty flash at 0x01aebffc ends at 0x01aec000
[ 25.689700] jffs2: Empty flash at 0x01aecffc ends at 0x01aed000
[ 25.696357] jffs2: Empty flash at 0x01aedffc ends at 0x01aee000
[ 25.702274] jffs2: CLEANMARKER node found at 0x01aee000, not first node in block (0x01ae0000)
[ 25.711544] jffs2: Empty flash at 0x01aee00c ends at 0x01aef000
[ 25.722385] VFS: Mounted root (jffs2 filesystem) on device 31:3.
[ 25.729514] devtmpfs: mounted
[ 25.733717] Freeing unused kernel memory: 1024K
[ 25.864043] Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance.
[ 25.878219] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.13.16-licheepi-zero+ #5
[ 25.885517] Hardware name: Allwinner sun8i Family
[ 25.890254] [<c010e5f8>] (unwind_backtrace) from [<c010b2a0>] (show_stack+0x10/0x14)
[ 25.897999] [<c010b2a0>] (show_stack) from [<c06759a8>] (dump_stack+0x88/0x9c)
[ 25.905225] [<c06759a8>] (dump_stack) from [<c011b5dc>] (panic+0xdc/0x248)
[ 25.912101] [<c011b5dc>] (panic) from [<c0687554>] (kernel_init+0xf8/0x108)
[ 25.919058] [<c0687554>] (kernel_init) from [<c0107618>] (ret_from_fork+0x14/0x3c)
[ 25.926632] Rebooting in 5 seconds..
达克罗德 说:baiymhmy 说:从芯片手册来看,w25q256jv和w25q256fv的设备ID是一样的,但是读写擦除指令不完全一样
在驱动里面W25Q256的flash_info增加SPI_NOR_4B_OPCODES标志,测试就正常了怎么加?
{ "w25q256", INFO(0xef4019, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
我是在这样加的,这样有个好处,kernel和uboot的nor flash都工作在3字节地址模式,可以直接reboot或复位重启。但是就是不能同时兼容原来的w25q256fv型号了。
我使用mx25l256还是不可以,也是出现这样的问题
*使用4.13内核
* 添加上SPI_NOR_4B_OPCODES
{ "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES
/*SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ*/) },
*jffs制作的命令为
mkfs.jffs2 -s 0x100 -e 0x10000 -p 0xAF0000 -d rootfs/ -o jffs2.img
你看下烧我的, 控制台输出的 log,
关于 zImage的开始地址, 长度信息device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK然后与你的比较, 看差异在哪里?
我估计长度应该是超过了 4M(0x400000)
不太理解你的意思,以下是你的固件的启动信息,我看uboot阶段的log关键信息都是一样的。
U-Boot SPL 2017.01-rc2-00075-gec3f3ba-dirty (Dec 28 2017 - 15:38:11)
DRAM: 64 MiB
Trying to boot from sunxi SPI---------------------- 1111111111111111111111
//////////// spi0_set_speed: speed=100000000, reg=4096
U-Boot 2017.01-rc2-00075-gec3f3ba-dirty (Dec 28 2017 - 15:38:11 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected mx25l25635f with page size 256 Bytes, erase size 64 KiB, total 32 MiB
*** 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
U-Boot 2017.01-rc2-00075-gec3f3ba-dirty (Dec 28 2017 - 15:38:11 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected mx25l25635f with page size 256 Bytes, erase size 64 KiB, total 32 MiB
*** 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: phy interface0
eth0: ethernet@1c30000
starting USB...
No controllers found
Hit any key to stop autoboot: 0
SF: Detected mx25l25635f with page size 256 Bytes, erase size 64 KiB, total 32 MiB
device 0 offset 0x100000, size 0x10000
SF: 65536 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x800000
SF: 8388608 bytes @ 0x110000 Read: OK
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42dfa000, end 42dffd0c ... 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)) #86 SMP Thu Dec 28 17:56:11 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 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,6M(kernel)ro,-(rootfs) root=/dev/ram0 rdinit=/sbin/init vt.global_cursor_default=0
[ 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: 49508K/64036K available (6144K kernel code, 211K rwdata, 1344K rodata, 5120K init, 251K bss, 14528K 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 - 0xc0e00000 (5120 kB)
[ 0.000000] .data : 0xc0e00000 - 0xc0e34ea0 ( 212 kB)
[ 0.000000] .bss : 0xc0e3b6b8 - 0xc0e7a48c ( 252 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.000181] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000409] Console: colour dummy device 80x30
[ 0.000445] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000461] pid_max: default: 32768 minimum: 301
[ 0.000583] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000597] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.001209] CPU: Testing write buffer coherency: ok
[ 0.001585] /cpus/cpu@0 missing clock-frequency property
[ 0.001608] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.002040] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.002214] Hierarchical SRCU implementation.
[ 0.002695] smp: Bringing up secondary CPUs ...
[ 0.002710] smp: Brought up 1 node, 1 CPU
[ 0.002720] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.002728] CPU: All CPU(s) started in SVC mode.
[ 0.003483] devtmpfs: initialized
[ 0.006507] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.006778] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.006808] futex hash table entries: 256 (order: 2, 16384 bytes)
[ 0.006976] pinctrl core: initialized pinctrl subsystem
[ 0.007816] random: get_random_u32 called from bucket_table_alloc+0xf0/0x250 with crng_init=0
[ 0.007953] NET: Registered protocol family 16
[ 0.008412] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.009503] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.009519] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.021564] SCSI subsystem initialized
[ 0.021837] usbcore: registered new interface driver usbfs
[ 0.021903] usbcore: registered new interface driver hub
[ 0.022004] usbcore: registered new device driver usb
[ 0.022257] pps_core: LinuxPPS API ver. 1 registered
[ 0.022268] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.022294] PTP clock support registered
[ 0.022504] Advanced Linux Sound Architecture Driver Initialized.
[ 0.024318] clocksource: Switched to clocksource arch_sys_counter
[ 0.035094] NET: Registered protocol family 2
[ 0.035680] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.035711] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.035735] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.035854] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 0.035902] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 0.036125] NET: Registered protocol family 1
[ 0.366710] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.374720] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.376249] random: fast init done
[ 0.379053] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 0.379074] io scheduler noop registered
[ 0.379081] io scheduler deadline registered
[ 0.379350] io scheduler cfq registered (default)
[ 0.379363] io scheduler mq-deadline registered
[ 0.379371] io scheduler kyber registered
[ 0.383703] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.450400] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.453860] console [ttyS0] disabled
[ 0.474137] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 36, base_baud = 1500000) is a U6_16550A
[ 1.031134] console [ttyS0] enabled
[ 1.037423] libphy: Fixed MDIO Bus: probed
[ 1.041965] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[ 1.047867] dwmac-sun8i 1c30000.ethernet: No regulator found
[ 1.053576] dwmac-sun8i 1c30000.ethernet: Will use internal PHY
[ 1.059611] dwmac-sun8i 1c30000.ethernet: Current syscon value is not the default 148000 (expect 38000)
[ 1.069181] dwmac-sun8i 1c30000.ethernet: Chain mode enabled
[ 1.074862] dwmac-sun8i 1c30000.ethernet: No HW DMA feature register supported
[ 1.082075] dwmac-sun8i 1c30000.ethernet: Normal descriptors
[ 1.087741] dwmac-sun8i 1c30000.ethernet: RX Checksum Offload Engine supported
[ 1.094965] dwmac-sun8i 1c30000.ethernet: COE Type 2
[ 1.099924] dwmac-sun8i 1c30000.ethernet: TX Checksum insertion supported
[ 1.106908] libphy: stmmac: probed
[ 1.116168] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.122707] ehci-platform: EHCI generic platform driver
[ 1.128353] ehci-platform 1c1a000.usb: EHCI Host Controller
[ 1.133971] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus number 1
[ 1.141970] ehci-platform 1c1a000.usb: irq 26, io mem 0x01c1a000
[ 1.174336] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00
[ 1.181532] hub 1-0:1.0: USB hub found
[ 1.185486] hub 1-0:1.0: 1 port detected
[ 1.189965] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 1.196263] ohci-platform: OHCI generic platform driver
[ 1.201802] ohci-platform 1c1a400.usb: Generic Platform OHCI controller
[ 1.208523] ohci-platform 1c1a400.usb: new USB bus registered, assigned bus number 2
[ 1.216468] ohci-platform 1c1a400.usb: irq 27, io mem 0x01c1a400
[ 1.289414] hub 2-0:1.0: USB hub found
[ 1.293237] hub 2-0:1.0: 1 port detected
[ 1.300798] udc-core: couldn't find an available UDC - added [g_cdc] to list of pending drivers
[ 1.310376] input: 1c22800.lradc as /devices/platform/soc/1c22800.lradc/input/input0
[ 1.319373] sun6i-rtc 1c20400.rtc: rtc core: registered rtc-sun6i as rtc0
[ 1.326279] sun6i-rtc 1c20400.rtc: RTC enabled
[ 1.330821] i2c /dev entries driver
[ 1.335735] input: ns2009_ts as /devices/platform/soc/1c2ac00.i2c/i2c-0/0-0048/input/input1
[ 1.345203] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 1.414360] sunxi-mmc 1c0f000.mmc: base:0xc4079000 irq:23
[ 1.474345] sunxi-mmc 1c10000.mmc: base:0xc407d000 irq:24
[ 1.480869] usbcore: registered new interface driver usbhid
[ 1.486529] usbhid: USB HID core driver
[ 1.491995] sun4i-codec 1c22c00.codec: ASoC: /soc/codec-analog@01c23000 not registered
[ 1.500048] sun4i-codec 1c22c00.codec: Failed to register our card
[ 1.507556] NET: Registered protocol family 17
[ 1.512156] Registering SWP/SWPB emulation handler
[ 1.524728] simple-framebuffer 43e89000.framebuffer: framebuffer at 0x43e89000, 0x177000 bytes, mapped to 0xc4400000
[ 1.535366] simple-framebuffer 43e89000.framebuffer: format=x8r8g8b8, mode=800x480x32, linelength=3200
[ 1.551550] Console: switching to colour frame buffer device 100x30
[ 1.564016] simple-framebuffer 43e89000.framebuffer: fb0: simplefb registered!
[ 1.572499] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[ 1.583853] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 1.589690] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 3
[ 1.598738] hub 3-0:1.0: USB hub found
[ 1.602602] hub 3-0:1.0: 1 port detected
[ 1.607793] using random self ethernet address
[ 1.612283] using random host ethernet address
[ 1.617914] usb0: HOST MAC 6e:25:13:89:a1:5d
[ 1.622237] usb0: MAC 1e:a7:be:b1:3a:7e
[ 1.626227] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day 2008
[ 1.633706] g_cdc gadget: g_cdc ready
[ 1.639954] sun4i-codec 1c22c00.codec: Codec <-> 1c22c00.codec mapping ok
[ 1.649424] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01 01:09:02 UTC (4142)
[ 1.657911] vcc3v3: disabling
[ 1.660884] vcc5v0: disabling
[ 1.663848] ALSA device list:
[ 1.666866] #0: V3s Audio Codec
[ 1.676465] Freeing unused kernel memory: 5120K
mount: mounting tmpfs on /dev/shm failed: Invalid argument
mount: mounting tmpfs on /tmp failed: Invalid argument
mount: mounting tmpfs on /run failed: Invalid argument
Starting logging: OK
Starting network: [ 1.789894] musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in b_idle (80, <SessEnd), retry #0, port1 00000100
OK
[ 2.240874] r8723bs: module is from the staging directory, the quality is unknown, you have been warned.
[ 2.257669] RTL8723BS: module init start
[ 2.261608] RTL8723BS: rtl8723bs v4.3.5.5_12290.20140916_BTCOEX20140507-4E40
[ 2.268746] RTL8723BS: rtl8723bs BT-Coex version = BTCOEX20140507-4E40
[ 2.275370] RTL8723BS: module init ret =0
ifconfig: SIOCGIFFLAGS: No such device
wpa_supplicant v2.6
random: Trying to read entropy from /dev/random
Successfully initialized wpa_supplicant
Initializing interface 'wlan0' conf '/etc/wpa_supplicant.conf' driver 'default' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/etc/wpa_supplicant.conf' -> '/etc/wpa_supplicant.conf'
Reading configuration file '/etc/wpa_supplicant.conf'
ctrl_interface='/var/run/wpa_supplicant'
ctrl_interface_group='0'
ap_scan=1
Priority group 5
id=0 ssid='debugdump'
Could not read interface wlan0 flags: No such device
nl80211: Driver does not support authentication/association or connect commands
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
nl80211: Remove monitor interface: refcount=0
netlink: Operstate: ifindex=0 linkmode=0 (kernel-control), operstate=6 (IF_OPER_UP)
Could not read interface wlan0 flags: No such device
nl80211: Set mode ifindex 0 iftype 2 (STATION)
nl80211: Failed to set interface 0 to mode 2: -19 (No such device)
wlan0: Failed to initialize driver interface
Failed to add interface wlan0
wlan0: Cancelling scan request
wlan0: Cancelling authentication timeout
Off-channel: Clear pending Action frame TX (pending_action_tx=(nil)
udhcpc: SIOCGIFINDEX: No such device
Welcome to Buildroot
buildroot login:
那么现在我描述一下我的操作步骤和启动结果。
1、直接烧录你的整个固件,可以启动
sunxi-fel.exe -p spiflash-write 0 v3s-wifi-ok-w25q256.bin
1、在刚才的结果上烧录我自己的uboot固件,循环重启
sunxi-fel.exe -p spiflash-write 0 u-boot-sunxi-with-spl.bin
1、在刚才的基础上,直接烧录你的uboot,可以启动
sunxi-fel.exe -p spiflash-write 0 u-boot-sunxi-with-spl.bin
使用晕哥制作的spi flash固件“v3s-wifi-ok-w25q256.bin”
uboot是我自己编译的,每一步都是按照一下连接来做的http://zero.lichee.pro/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/SPI_flash_build.html
但是就是无法启动,启动到“Starting kernel ...”就会重启,替换为晕哥原来的uboot又可以重新启动了,
1、读回uboot对比我写入的也是一样的,烧写工具是使用的晕哥的sun-fel.exe的win板,烧写工具也没问题
2、是直接使用晕哥制作的spi flash固件“v3s-wifi-ok-w25q256.bin”可以正常启动,进入命令行
3、烧写晕哥的固件之后,重写烧写我自己编译的uboot就无法启动了
sunxi-fel.exe -p spiflash-write 0 u-boot-sunxi-with-spl.bin
启动信息如下*******************************
U-Boot SPL 2017.01-rc2-00073-gdd6e874-dirty (Jan 28 2019 - 15:02:18)
DRAM: 64 MiB
Trying to boot from sunxi SPI
U-Boot 2017.01-rc2-00073-gdd6e874-dirty (Jan 28 2019 - 15:02:18 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected mx25l25635f with page size 256 Bytes, erase size 64 KiB, total 32 MiB
*** Warning - bad CRC, using default environment
Setting up a 480x272 lcd console (overscan 0x0)
dotclock: 10000kHz = 10000kHz: (1 * 3MHz * 20) / 6
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
U-Boot 2017.01-rc2-00073-gdd6e874-dirty (Jan 28 2019 - 15:02:18 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected mx25l25635f with page size 256 Bytes, erase size 64 KiB, total 32 MiB
*** Warning - bad CRC, using default environment
Setting up a 480x272 lcd console (overscan 0x0)
dotclock: 10000kHz = 10000kHz: (1 * 3MHz * 20) / 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
SF: Detected mx25l25635f with page size 256 Bytes, erase size 64 KiB, total 32 MiB
device 0 offset 0x100000, size 0x10000
SF: 65536 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42dfa000, end 42dffd0c ... OK
Starting kernel ...
荔枝派v3s,看网站做的spi的uboot、内核、文件系统
http://zero.lichee.pro/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/SPI_flash_build.html#id4
现在是uboot启动了,但是,卡在“Starting kernel ...”不动了,这个是怎么回事啊,烧写地址什么的没问题的。
页次: 1