WhyCan Forum

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

您尚未登录。

#1 2019-11-13 20:27:17

hxhlb
会员
注册时间: 2019-11-11
累计积分: 21

分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

声明: 刚入坑3天, 有很多知其然不知其所以然, 也有很多从坑网搜的资料, 组合在一起的, 如果有任何错误请大家指正.

参考链接: https://whycan.cn/t_3087.html

首先说明一下, 我就只是搞了一下TF卡的, spi的可能会有不同(至少buildroot配置需要很精简, 目前编译出的tar包快300M)

编译环境:
我主系统就是ubuntu18.04, 因为平时主要工作就是写Linux软件, 干脆实体机ubuntu.
内核源码:
git  clone -b nano-5.2-tf --depth 1 https://github.com/Lichee-Pi/linux.git
uboot:
git  clone -b nano-v2018.01 --depth 1 https://github.com/Lichee-Pi/u-boot.git
buildroot: 2019.08版本
wget https://buildroot.org/downloads/buildroot-2019.08.tar.gz
工具链:
gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi

配置工具链之类的不说了...

编译uboot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_defconfig
make ARCH=arm menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
编译kernel

首先,

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- sunxi_defconfig

然后, 修改支持ADB, 参考了https://whycan.cn/t_2179.html的USB Gadget的支持部分, 发现 Linux5.2和4.x的不太一样, 主要配置截图:
Device Drivers -> USB support -> USB Gadget Support
menuconfig配置

在此提供我的.config配置 : https://whycan.cn/files/members/2372/config_191113.tgz
注意:
1. 直接改名 .config 即可, 不说压缩文件.
2. 这是我menuconfig后生成的.config, 我不确定是否有其他方法发布.config, 如果不合适, 请见谅.

关于USB需要打补丁的问题, 我确认了一下内核源码, 文件名改了, drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c, 已经不需要补丁了.

准备工作完成就进行编译:

# 生成zImage
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
# 生成驱动模块
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4 modules
# 安装驱动模块
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules_install INSTALL_MOD_PATH="./out"
# 生成dtb
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs -j4

关于dtb, 根据自己的硬件来修改, 坑网资料很多, 在此不在多说.

生成buildroot

这里印象中出现过编译错误, 跟我的ubuntu18.04有关, 但是具体的我给忘了.. 如果有遇到, 在回帖吧.
小提示: 推荐使用buildroot内置的工具链! 这个工具链坑了我一天...
此处我勾选了很多应该是无关紧要的东西, qt5, directfb, linuxfb, sdl...... 请大家根据自己的需求去搞一下.
配置:
https://whycan.cn/files/members/2372/config_for_buildroot-2019_08_with_qt.tgz
同样的, 直接改名.config使用, 不是压缩文件.

默认主机名: whycan
默认密码: whycan.cn
请大家自行修改.

最后, 添加adb自启动, 参考 https://whycan.cn/t_2794.html中的9楼.

由于镜像包涉及公司的一些信息, 并且我也没时间在重新编译一个, 所以就不放测试镜像了, 请大家见谅.

末尾, 放一个测试QT的小视频吧(那视频中界面里的方框是中文不能显示, 不要在意这些细节先...):
https://whycan.cn/files/members/2372/121.mp4
不会发视频 只能发链接了...

离线

#2 2019-11-13 20:31:55

xgui
会员
注册时间: 2019-09-07
累计积分: 198

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

感谢分享!

离线

#3 2019-11-20 15:02:50

hxhlb
会员
注册时间: 2019-11-11
累计积分: 21

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

我刚学了一下发视频, 帖子不能编辑, 补一个看能不能直接播放的视频.

离线

#4 2019-11-20 15:16:45

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

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

嗯,视频可以播放,感谢楼主分享!

在线

#5 2019-11-20 15:42:37

达克罗德
会员
注册时间: 2018-04-10
累计积分: 667

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

很好的资料,mark

离线

#6 2019-11-20 15:48:30

jimmy
Moderator
注册时间: 2017-10-29
累计积分: 290

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

linux 5.2在 dts里面怎么配置中断,上次搞半天没搞定,放弃治疗了

离线

#7 2019-11-20 17:39:17

billnie
会员
注册时间: 2018-11-13
累计积分: 39

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

楼主, 两个配置文件都是无法解压?

tar zxvf config_191113.tgz

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

最近编辑记录 billnie (2019-11-20 17:42:44)

离线

#8 2019-11-20 17:45:15

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

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

billnie 说:

楼主, 两个配置文件都是无法解压?

tar zxvf config_191113.tgz

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

直接改名 .config 即可, 不是压缩文件

在线

#9 2019-11-20 17:58:03

mango
会员
注册时间: 2017-12-02
累计积分: 415

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

楼主有没有兴趣适配下TINY200?
联系方式发到 kevin@widora.io ,免费送板板 smile

离线

#10 2019-11-21 18:06:00

达克罗德
会员
注册时间: 2018-04-10
累计积分: 667

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

有没有脚本来生成tf卡dd镜像的?只看到spiflash的脚本

离线

#11 2019-11-21 18:14:49

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

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

达克罗德 说:

有没有脚本来生成tf卡dd镜像的?只看到spiflash的脚本

可以的,晚些我做一个脚本。

在线

#12 2019-11-21 21:24:59

达克罗德
会员
注册时间: 2018-04-10
累计积分: 667

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

晕哥 说:

可以的,晚些我做一个脚本。

太感谢了,一直只会用图形界面做dd镜像

离线

#13 2019-11-22 08:22:43

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

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

在线

#14 2019-11-24 01:02:47

达克罗德
会员
注册时间: 2018-04-10
累计积分: 667

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

请问生成的TF卡版本的uboot文件是哪个呢?生成好几个,哪个才是带SPL的?
另外一个小白问题,uboot文件是烧到8K位置吗?为什么不会被放zimage的分区覆盖

离线

#15 2019-11-24 01:47:18

达克罗德
会员
注册时间: 2018-04-10
累计积分: 667

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

./tools/mkimage: Can't map u-boot.img: Invalid argument
Makefile:1021: recipe for target 'u-boot.img' failed

遇到这个错误,不知道怎么回事?

离线

#16 2019-11-24 10:28:56

天马行空
会员
注册时间: 2019-11-12
累计积分: 29

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

达克罗德 说:

./tools/mkimage: Can't map u-boot.img: Invalid argument
Makefile:1021: recipe for target 'u-boot.img' failed

遇到这个错误,不知道怎么回事?

没有遇到这个问题,  是不是用  Linux  编译?mac os 还是 WSL ?

离线

#17 2019-11-24 11:39:08

达克罗德
会员
注册时间: 2018-04-10
累计积分: 667

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

天马行空 说:

没有遇到这个问题,  是不是用  Linux  编译?mac os 还是 WSL ?

找到问题了,是mmap访问网络共享文件系统有问题。uboot放到本地编译就好了

离线

#18 2019-11-24 12:00:19

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

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

达神用什么方式访问网络文件? hgfs? samba?nfs?

在线

#19 2019-11-24 17:36:04

达克罗德
会员
注册时间: 2018-04-10
累计积分: 667

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

晕哥 说:

达神用什么方式访问网络文件? hgfs? samba?nfs?

我是苹果系统虚拟机软件parallels把苹果系统文件共享到Linux,我也不清楚它是什么方式

离线

#20 2019-11-24 17:50:15

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

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

达克罗德 说:

我是苹果系统虚拟机软件parallels把苹果系统文件共享到Linux,我也不清楚它是什么方式

我有一个mac air, 苹果OS舍不得删,又不会玩,尴尬.

在线

#21 2019-11-25 17:25:46

Iron
会员
注册时间: 2018-10-23
累计积分: 13
个人网站

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

晕哥 说:

我有一个mac air, 苹果OS舍不得删,又不会玩,尴尬.

苹果可以双系统,买个苹果跑 windows 的表示很尴尬。:D

离线

#22 2019-11-25 19:02:08

billnie
会员
注册时间: 2018-11-13
累计积分: 39

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

按楼主的编译 u-boot 不能从 spi flash 中启动

U-Boot SPL 2018.01-g013ca45-dirty (Nov 25 2019 - 00:01:41)
DRAM: 64 MiB
Trying to boot from MMC1
Card did not respond to voltage select!
mmc_init: -95, time 22
spl: mmc init failed with error: -95
SPL: Unsupported Boot Device!
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

离线

#23 2019-11-28 09:33:03

weiyongwill
会员
注册时间: 2019-08-08
累计积分: 19

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

达克罗德 说:

找到问题了,是mmap访问网络共享文件系统有问题。uboot放到本地编译就好了

这个问题我也遇到了,现在没办法,只能在虚拟机linux开启NFS,在mac上面挂载虚拟linux的nfs目录,然后用mac的vscode写代码。虚拟机里面编辑有点卡。至今不知道mac共享过去的目录和虚拟linux自己的目录有什么区别。

离线

#24 2019-11-28 09:36:39

weiyongwill
会员
注册时间: 2019-08-08
累计积分: 19

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

晕哥 说:

我有一个mac air, 苹果OS舍不得删,又不会玩,尴尬.

mac系统用几天就能上手,然后会感觉的确非常好,mac下的虚拟机parallels desktop 做的非常好,多个虚拟机系统之间完美融合,就像在一个系统里面一样

离线

#25 2019-11-28 13:44:03

hxhlb
会员
注册时间: 2019-11-11
累计积分: 21

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

billnie 说:

按楼主的编译 u-boot 不能从 spi flash 中启动

U-Boot SPL 2018.01-g013ca45-dirty (Nov 25 2019 - 00:01:41)
DRAM: 64 MiB
Trying to boot from MMC1
Card did not respond to voltage select!
mmc_init: -95, time 22
spl: mmc init failed with error: -95
SPL: Unsupported Boot Device!
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

uboot编译的时候 默认配置我选的是TF卡的  你要用spi的

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_spiflash_defconfig
make ARCH=arm menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4

离线

#26 2019-11-29 09:45:26

billnie
会员
注册时间: 2018-11-13
累计积分: 39

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

@hxhlb,使用spi flash是对的,我分别刷包,zImage的确是刷到0x100000这个地址,似乎是校验出错了,不能进入kerenl

SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x220000
SF: 2228224 bytes @ 0x100000 Read: OK
device 0 offset 0x340000, size 0x6000
SF: 24576 bytes @ 0x340000 Read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!

离线

#27 2019-11-29 09:56:02

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

Re: 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程

烧这个固件: https://whycan.cn/t_2689.html


逐一替换文件排除问题

在线

页脚