WhyCan Forum(哇酷开发者社区)

我们能随心所欲"有问题百度(谷歌)一下", 这得感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

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

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

分享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
累计积分: 224

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

感谢分享!

离线

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

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

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

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

离线

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

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

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

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

离线

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

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

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

很好的资料,mark

离线

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

jimmy
会员
注册时间: 2017-10-29
累计积分: 314

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
累计积分: 47

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

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

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
累计积分: 628
个人网站

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
累计积分: 913

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

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

离线

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

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

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
累计积分: 913

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

晕哥 说:

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

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

离线

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

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

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

离线

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

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

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
累计积分: 913

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
累计积分: 45

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
累计积分: 913

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

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

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
累计积分: 913

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

晕哥 说:

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

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

离线

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

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

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
累计积分: 29
个人网站

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
累计积分: 47

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
累计积分: 33

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
累计积分: 33

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
累计积分: 22

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
累计积分: 47

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

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

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

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


逐一替换文件排除问题

离线

#28 2020-05-10 16:59:07

zwanh
会员
注册时间: 2020-04-11
累计积分: 11

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

我在编译时默认没有生成我要的dtb,是要使用DTC命令生成suniv-f1c100s-licheepi-nano.dtb吗?

离线

#29 2020-05-10 17:04:27

有梦的地方
会员
注册时间: 2020-03-17
累计积分: 225

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

zwanh 说:

我在编译时默认没有生成我要的dtb,是要使用DTC命令生成suniv-f1c100s-licheepi-nano.dtb吗?

dtb文件一定要噢

离线

#30 2020-05-10 17:09:56

zwanh
会员
注册时间: 2020-04-11
累计积分: 11

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

有梦的地方 说:

dtb文件一定要噢

是按照我说的这样编译吗?因为我就是在5.2-tf分支上进行编译的,但是默认不编译出dtb

离线

#31 2020-05-10 17:30:30

起个名字好难
会员
注册时间: 2020-04-16
累计积分: 2

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

zwanh 说:

是按照我说的这样编译吗?因为我就是在5.2-tf分支上进行编译的,但是默认不编译出dtb

可以手动编译出来的.


如果你的 dts 文件是 xyz.dts

那么编译指令是

ARCH=arm CROSS_COMPILE=xxxxx make xyz.dtb

离线

#32 2020-05-10 17:49:07

zwanh
会员
注册时间: 2020-04-11
累计积分: 11

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

起个名字好难 说:

可以手动编译出来的.


如果你的 dts 文件是 xyz.dts

那么编译指令是

ARCH=arm CROSS_COMPILE=xxxxx make xyz.dtb

谢谢,可以编译出dtb,现在按照tiny200修改下。

离线

#33 2020-05-11 15:02:33

heiheizi
会员
注册时间: 2019-10-25
累计积分: 40

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

非常详细,教程写得非常好

离线

#34 2020-05-13 00:32:47

mawmanager
会员
注册时间: 2020-04-17
累计积分: 1

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

感谢分享,新人脱坑!

离线

#35 2020-05-13 12:52:42

xiaoheHLZ
会员
注册时间: 2020-05-13
累计积分: 9

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

我也mark一下,这个跑QT卡不卡,会不会出现掉帧现象,我想用V3s跑视频,不知道可不可以

离线

#36 2020-05-15 10:42:49

13045988238
会员
所在地: 福建
注册时间: 2020-05-11
累计积分: 10

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

6的一匹     正好需要TF卡的启动

离线

#37 2020-05-15 21:07:33

huangjian276310465
会员
注册时间: 2020-04-15
累计积分: 7

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

非常详细,教程写得非常好,感谢分享

离线

#38 2020-05-18 00:30:17

tiandiyixian20
会员
注册时间: 2020-05-17
累计积分: 10

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

MMC:   SUNXI SD/MMC: 0
SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

Setting up a 480x272 lcd console (overscan 0x0)
In:    serial@1c25000
Out:   serial@1c25000
Err:   serial@1c25000
Net:   No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot:  0
SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x4000
SF: 16384 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
## Flattened Device Tree blob at 80c00000
   Booting using the fdt blob at 0x80c00000
   Loading Device Tree to 80e05000, end 80e0a3b5 ... OK

Starting kernel ...

@晕哥,能帮忙看看没,跑到这里就没下文了;

离线

#39 2020-06-06 11:11:14

vikeyfox
会员
注册时间: 2019-04-03
累计积分: 3

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

楼主有试过pyqt5跑在这上面怎么样嘛  如果行的话那真的舒服了

离线

#40 2020-06-06 11:14:53

哇酷小二
管理员
注册时间: 2020-04-22
累计积分: 1,585

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

小智卡片电脑 运行 Python3 + PyQt5: https://whycan.cn/t_4616.html

离线

#41 2020-06-06 15:17:35

vikeyfox
会员
注册时间: 2019-04-03
累计积分: 3

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

哇酷小二 说:

小智卡片电脑 运行 Python3 + PyQt5: https://whycan.cn/t_4616.html


哇, 感谢!  这就去试试看

离线

#42 2020-06-06 19:18:50

310393943
会员
注册时间: 2020-06-06
累计积分: 2

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

此网含技术量很高,我是啥都不懂的新人,很纯的小白。弱弱的问下,有必要买一个LINUX系统的电脑吗?我现在的电脑WIN10的 不准备换其他系统

离线

#43 2020-06-06 20:06:46

哇酷小二
管理员
注册时间: 2020-04-22
累计积分: 1,585

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

310393943 说:

此网含技术量很高,我是啥都不懂的新人,很纯的小白。弱弱的问下,有必要买一个LINUX系统的电脑吗?我现在的电脑WIN10的 不准备换其他系统

电脑可以安装 VMWARE 虚拟机,
然后在虚拟机安装 Ubuntu18.04,或Ubuntu20.04

bilibili有很多视频教程,可以翻一翻

离线

页脚

工信部备案:粤ICP备20025096号-1 Powered by FluxBB