Linux
本文用于介绍如何将此拓展板部署到Linux平台,因为此拓展板基于GPIO设计,在Linux中只目前只能使用gpiolib接口驱动,因为各平台实现方式不同,所以速度会有较大差异,效率普遍低下,但是能用😊。
相关资料仓库:https://github.com/embeddedboys/pico_dm_qd3503728_linux
Luckfox Pico & Max#
luckfox pico有多个硬件版本型号,目前我们只对最基础的版本做了适配,也就是Luckfox Pico IPC
,我们也购买了Luckfox Pico Max,适配工作正在进行中。
luckfox pico有两个版本的SDK,分别是Buildroot和Ubuntu,我们针对这两个版本都做了适配。
硬件改动 飞线#
在使用Luckfox Pico的时候,需要先飞两根线,Max 版本无需飞线。
短接GP21
和GP22
,因为luckfox pico的GP22是NC(无连接)的
短接电阻R3
和R4
的左侧,使背光常开,因为luckfox pico的GP28是NC
Buildroot#
1. 修改设备树
rv1103g-luckfox-pico.dts
Luckfox Pico、Pro、Max的引脚分布是不同的,所以不能套用同一份设备树。
在根节点中添加如下节点
修改pinctrl,设定gpio方向、驱动强度等
2. 修改内核配置,开启fb console支持
3. 重新编译,烧录boot.img,重启
4. 编译、加载fb驱动
如果您觉得太麻烦了,可以使用我们编译好的文件,但这会覆盖您设备当前的内核及设备树,操作步骤如下#
- 下载固件
boot.img
ili9488_fb.ko
或者到如下仓库路径下载
https://github.com/embeddedboys/pico_dm_qd3503728_linux/tree/main/luckfox-pico
- 将固件推送至设备中
- 使用adb访问设备终端,烧录boot.img
- 待设备重启完成后,再次使用adb访问设备终端,加载设备驱动
- 此时可以看到屏幕已经出现fb console
Ubuntu#
Luckfox Pico Ubuntu server 安装桌面环境
触摸暂时还没有调通,因为我无法在该平台上使用i2c-gpio,具体原因忘记了,挺棘手的,不过还可以使用usb host连接鼠标键盘操作。
Luckfox Pico配置为USB HOST模式
但是这样就没法通过adb调试了,所以你需要事先写一个systemd服务,在开机初始化好一切需要的事务。 Max 或者 Pro版本因为有网口,所以还可以通过网络登陆设备。
Milk-V Duo#
https://github.com/embeddedboys/pico_dm_qd3503728_linux
硬件改动 飞线#
飞线跟luckfox pico章节中保持一致即可
Buildroot#
1. 设置好buildroot工程
至少运行build.sh
一次.
2. 加载环境变量
3. 编译内核、设备树
4. 重新烧录内核、设备树
然后重启duo板子,应用新的内核。
5. 编译加载拓展板驱动
脚本test.sh
的内容
milk-v duo 使用一个名为duo-pinmux
的用户空间工具来进行引脚复用,非常的奇怪。
6. 编译并运行lvgl demo
由于buildroot的工具链指向特定的动态库,需要在板子中进行软链接
此时lvgl demo应该已经在拓展板上显示出来了。
7. 跑分、 性能优化
TODO
Milk-V Duo 256M#
待添加,我们这里没有此开发板,但他们都使用同一份sdk,所以应该是大同小异的,用户可以先自行尝试移植。