WhyCan Forum

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2019-07-24 22:37:58

xm1994
会员
注册时间: 2019-07-03
累计积分: 27

lichee nano官方linux config文件踩坑与填坑(常见配置误区)

前文:
终于搞好了荔枝派nano linux uboot瘦身 + usb gadget hid + gt911触控 + littlevgl demo
相关的配置文件,编译好的二进制都可以在楼层中找到。

0x01:  开机卡在waiting for rootfs

原因有两点

1. 找不到SPI flash
f1c100s应使用A31的spi控制器驱动,但lichee官方config中是启用的A10 SoC的驱动。
表现为开机ttl日志中没有dts中的spiflash 分区信息打印,且卡在waiting for rootfs
启用:Device Driver --->  SPI Support ---> Allwinner A31 SPI controller
禁用:Device Driver --->  SPI Support ---> Allwinner A10 SoCs SPI controller

2. 未开启mtdblock
lichee官方的u-boot 中 kernel cmdline 使用jffs2格式的mtdblock3作为rootfs,但config中没有打开mtdblock设备接口。
表现为开机ttl日志中有dts中的spiflash 分区信息打印,但仍然卡在waiting for rootfs
启用:Memory Technology Device (MTD) support  --->   Caching block device access to MTD devices   

0x02: 无法挂载jffs2分区
lichee 官方配置文件没有打开jffs2的文件系统支持。
启用: File systems  --->  Miscellaneous filesystems  --->   Journalling Flash File System v2 (JFFS2) support     
这里推荐把squashfs4.0也一并打开,后面会开一帖讲下如何添加更新固件和恢复默认设置的功能。

0x03:  开机后报大量JFFS2 erase size错误
这个lichee官方和论坛里很多人的帖子都有提到,修复方法是patch掉内核里对应flash型号的SECT_4K参数。但是实际上内核配置文件中为我们预留了关闭4K erase size 的选项,无需侵入内核代码修改。
禁用:Memory Technology Device (MTD) support  --->  SPI-NOR device support  --->    Use small 4096 B erase sectors     
这样以后更换其他的flash芯片也无需重新修改内核。

0x04: 运行framebuffer gui程序后,右上角有闪烁的光标
论坛里有修改bootargs的办法:
https://whycan.cn/t_543.html
https://whycan.cn/t_1953.html#p12829
搜索引擎里搜到的基本都说要patch代码

但我个人认为两种方法都不是根本办法,其实config中有可以关闭framebuffer 作为console的选项。
修改方法
禁用:Device Driver ---> Graphics support  --->   Console display driver support  --->    Framebuffer Console support
但这个选项默认无法修改。仔细查看相关的Kconfig文件后,发现这个选项只有启用了专家模式(Expert Mode),且没有其他依赖选项时才可以关闭。
启用专家模式:General setup ---> Configure standard kernel features (expert users)  但不要修改里面的选项
然后就可以禁用:Device Driver ---> Graphics support  --->   Console display driver support  --->    Framebuffer Console support
这样你的显示器在framebuffer初始化完了就会变成黑色,运行gui程序后也不会有闪烁的光标了。

最近编辑记录 xm1994 (2019-07-24 22:54:46)

离线

#2 2019-07-24 22:43:36

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,826

Re: lichee nano官方linux config文件踩坑与填坑(常见配置误区)

感谢分享,  0x03 技巧 get 到了!

离线

#3 2019-07-24 22:54:06

xm1994
会员
注册时间: 2019-07-03
累计积分: 27

Re: lichee nano官方linux config文件踩坑与填坑(常见配置误区)

晕哥 说:

感谢分享,  0x03 技巧 get 到了!

我也是觉得以前给其他设备适配openwrt的时候,也用的w25qxx,没修改过内核的相关代码,后来仔细查了查发现能从config里直接关掉。而且用修改代码的方法换一片其他的flash就又要重编内核好麻烦。

离线

#4 2019-07-24 22:59:05

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,826

Re: lichee nano官方linux config文件踩坑与填坑(常见配置误区)

以前看到 Use small 4096 B erase sectors 这个选项, 想想可能和 jffs2 的 4k  有关系,但是大家都说去改源码, 所以也没有去深究了, 感谢大神解惑.

离线

#5 2019-07-25 08:58:35

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 139

Re: lichee nano官方linux config文件踩坑与填坑(常见配置误区)

感谢分享,学习了

离线

#6 2019-09-20 17:13:20

我思故我在
会员
注册时间: 2019-09-03
累计积分: 90

Re: lichee nano官方linux config文件踩坑与填坑(常见配置误区)

0x04: 运行framebuffer gui程序后,右上角有闪烁的光标
论坛里有修改bootargs的办法:
https://whycan.cn/t_543.html
https://whycan.cn/t_1953.html#p12829
搜索引擎里搜到的基本都说要patch代码

但我个人认为两种方法都不是根本办法,其实config中有可以关闭framebuffer 作为console的选项。
修改方法
禁用:Device Driver ---> Graphics support  --->   Console display driver support  --->    Framebuffer Console support
但这个选项默认无法修改。仔细查看相关的Kconfig文件后,发现这个选项只有启用了专家模式(Expert Mode),且没有其他依赖选项时才可以关闭。
启用专家模式:General setup ---> Configure standard kernel features (expert users)  但不要修改里面的选项
然后就可以禁用:Device Driver ---> Graphics support  --->   Console display driver support  --->    Framebuffer Console support
这样你的显示器在framebuffer初始化完了就会变成黑色,运行gui程序后也不会有闪烁的光标了。

原来如此

离线

#7 2019-09-20 19:57:59

jiangming1399
会员
注册时间: 2018-06-14
累计积分: 56

Re: lichee nano官方linux config文件踩坑与填坑(常见配置误区)

关于framebuffer的问题,其实可以不用改内核编译参数的

echo 0 > /sys/class/graphics/fbcon/cursor_blink
echo 0 > /sys/class/vtconsole/vtcon1/bind

这样就可以关掉了

离线

#8 2019-09-20 20:11:13

ffplay
会员
注册时间: 2019-08-31
累计积分: 37

Re: lichee nano官方linux config文件踩坑与填坑(常见配置误区)

不过那样改之后可以不用占ROM空间了

离线

页脚