声明: 刚入坑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
配置工具链之类的不说了...
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_defconfig
make ARCH=arm menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
首先,
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
在此提供我的.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, 根据自己的硬件来修改, 坑网资料很多, 在此不在多说.
这里印象中出现过编译错误, 跟我的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
不会发视频 只能发链接了...
离线
感谢分享!
离线
我刚学了一下发视频, 帖子不能编辑, 补一个看能不能直接播放的视频.
离线
很好的资料,mark
离线
linux 5.2在 dts里面怎么配置中断,上次搞半天没搞定,放弃治疗了
离线
楼主, 两个配置文件都是无法解压?
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)
离线
楼主, 两个配置文件都是无法解压?
tar zxvf config_191113.tgz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
直接改名 .config 即可, 不是压缩文件
离线
楼主有没有兴趣适配下TINY200?
联系方式发到 kevin@widora.io ,免费送板板
歪朵拉开源硬件: https://widora.cn
淘宝: https://widora.taobao.com/
离线
有没有脚本来生成tf卡dd镜像的?只看到spiflash的脚本
离线
可以的,晚些我做一个脚本。
太感谢了,一直只会用图形界面做dd镜像
离线
请问生成的TF卡版本的uboot文件是哪个呢?生成好几个,哪个才是带SPL的?
另外一个小白问题,uboot文件是烧到8K位置吗?为什么不会被放zimage的分区覆盖
离线
./tools/mkimage: Can't map u-boot.img: Invalid argument
Makefile:1021: recipe for target 'u-boot.img' failed
遇到这个错误,不知道怎么回事?
离线
./tools/mkimage: Can't map u-boot.img: Invalid argument
Makefile:1021: recipe for target 'u-boot.img' failed遇到这个错误,不知道怎么回事?
没有遇到这个问题, 是不是用 Linux 编译?mac os 还是 WSL ?
离线
没有遇到这个问题, 是不是用 Linux 编译?mac os 还是 WSL ?
找到问题了,是mmap访问网络共享文件系统有问题。uboot放到本地编译就好了
离线
达神用什么方式访问网络文件? hgfs? samba?nfs?
我是苹果系统虚拟机软件parallels把苹果系统文件共享到Linux,我也不清楚它是什么方式
离线
按楼主的编译 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 ###
离线
找到问题了,是mmap访问网络共享文件系统有问题。uboot放到本地编译就好了
这个问题我也遇到了,现在没办法,只能在虚拟机linux开启NFS,在mac上面挂载虚拟linux的nfs目录,然后用mac的vscode写代码。虚拟机里面编辑有点卡。至今不知道mac共享过去的目录和虚拟linux自己的目录有什么区别。
离线
我有一个mac air, 苹果OS舍不得删,又不会玩,尴尬.
mac系统用几天就能上手,然后会感觉的确非常好,mac下的虚拟机parallels desktop 做的非常好,多个虚拟机系统之间完美融合,就像在一个系统里面一样
离线
按楼主的编译 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
离线
@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!
离线
我在编译时默认没有生成我要的dtb,是要使用DTC命令生成suniv-f1c100s-licheepi-nano.dtb吗?
离线
我在编译时默认没有生成我要的dtb,是要使用DTC命令生成suniv-f1c100s-licheepi-nano.dtb吗?
dtb文件一定要噢
离线
dtb文件一定要噢
是按照我说的这样编译吗?因为我就是在5.2-tf分支上进行编译的,但是默认不编译出dtb
离线
是按照我说的这样编译吗?因为我就是在5.2-tf分支上进行编译的,但是默认不编译出dtb
可以手动编译出来的.
如果你的 dts 文件是 xyz.dts
那么编译指令是
ARCH=arm CROSS_COMPILE=xxxxx make xyz.dtb
离线
可以手动编译出来的.
如果你的 dts 文件是 xyz.dts
那么编译指令是
ARCH=arm CROSS_COMPILE=xxxxx make xyz.dtb
谢谢,可以编译出dtb,现在按照tiny200修改下。
离线
非常详细,教程写得非常好
离线
感谢分享,新人脱坑!
离线
我也mark一下,这个跑QT卡不卡,会不会出现掉帧现象,我想用V3s跑视频,不知道可不可以
离线
6的一匹 正好需要TF卡的启动
离线
非常详细,教程写得非常好,感谢分享
离线
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 ...
@晕哥,能帮忙看看没,跑到这里就没下文了;
离线
楼主有试过pyqt5跑在这上面怎么样嘛 如果行的话那真的舒服了
离线
离线
此网含技术量很高,我是啥都不懂的新人,很纯的小白。弱弱的问下,有必要买一个LINUX系统的电脑吗?我现在的电脑WIN10的 不准备换其他系统
离线
此网含技术量很高,我是啥都不懂的新人,很纯的小白。弱弱的问下,有必要买一个LINUX系统的电脑吗?我现在的电脑WIN10的 不准备换其他系统
电脑可以安装 VMWARE 虚拟机,
然后在虚拟机安装 Ubuntu18.04,或Ubuntu20.04
bilibili有很多视频教程,可以翻一翻
离线
感谢分享, 正好计划用这套硬件, 做点好玩的产品呢....
离线
楼主可以free一下看还有多少空间剩余么,刚好想做一些额外的开发,担心会卡,而且官方数据都是基于meils的,打算跟着官方的meils开发,听说挺难的。
离线
5.2内核 flash的 我也失败了 我说一下我发现的问题 可能是因为5.2的内核编译出来的大 导致原本flash分区分给内核的大小不够 记得是4m 但是内核超过了4m 所以uboot 设备树 打包脚本需要重新做分区大小 但是我从新分区了 还是进不到内核 错误和#38楼一样 有成功的朋友快给些帮助
离线
请问楼主有出现这个吗,根据您的buildroot配置来的
离线
上电到显示QT界面,需要多久啊?
离线
上电到显示QT界面,需要多久啊?
10S左右。
离线
请问你们的板子跑起QT内存占用多少呀,我跑一个helloworld界面就只剩1M了,这也太拉跨了吧
离线
大佬不直接打包成镜像吗?
离线
有人用这个平台做电吹管吗?
离线
一般裁剪rootfs必须从config开始裁剪吗 ?
离线
可以分享一下TF卡打包镜像的脚本吗
离线