Licheepi Nano买回来好长时间,没咋玩,最近看了一个利用F1C100S自制迷你电脑的博客,里面主要参考的就是Licheepi Nano。我打算先在Licheepi Nano上完成屏幕操作、Debian文件系统和USB键盘等内容,这里介绍怎样利用Licheepi Nano外接屏幕,并且将信息可以输出到屏幕上。(对了,我的屏幕并不是官方的,实在tb上买的一块40脚-rgb-4.3寸屏幕,因为Licheepi Nano板载屏幕背光驱动,买了直接插就能用)
文章目录
- 整体思路
- 一、Linux源码中设备树修改
- 1.1下载内核核配置文件
- 1.2设备树修改
- 1.3编译make
- 二、u-boot修改
- 2.1u-boot下载核配置
- 2.2可视化配置
- 2.3编译make
- 三、实际效果
- 附录:参考博客和后续想移植的
整体思路
这里讲一下编译linux内核和u-boot的思路,不然很容易弄混。去官网或github下载linux内核或u-boot之后,最理想的状态就是直接make就能生成我们需要的文件,但是有那么多系统,那么多板子,所以需要利用其自带的配置文件或者自己去找配置文件,替换了.config,之后再用对应的编译器去make。
一、Linux源码中设备树修改
首先,要对内核文件进行修改和编译,具体如下:
1.1下载内核核配置文件
🍬🍬🍬下载内核文件
github上的仓库不见了,需要自己去Linux官网下载,内核文件下载参考->链接: 大佬博客,该博客里面也给出了Licheepi Nano的配置文件。我这里用的是之前github仓库中的4.14内核。
下载licheepi nano配置文件
下载配置文件并复制到源码目录下,然后改为.config
mv lichee_nano_linux.config .config
改为.config之后,进行可视化配置,
make ARCH=arm menuconfig
//如果没有其他的需求,直接保存即可
1.2设备树修改
🍬🍬🍬修改设备树支持屏幕
内核配置之后不能直接编译,需要对 源码目录/arch/arm/boot/dts 中的设备树文件进行修改,Licheepi Nano的设备树文件为suniv-f1c100s-licheepi-nano.dts
。打开后添加panel
节点:
其中,我的屏幕是4.3寸,480X272大小的屏幕,所以设置compatible = qiaodian,qd43003c0-40”, “simple-panel”
还要添加:
保存之后,然后,make,下面:
1.3编译make
我的工具链是gnueabihf,一般是gnueabi
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8
make
之后,在 源码目录/arch/arm/boot/dts 目录下生成suniv-f1c100s-licheepi-nano.dtb
文件,还有 源码目录/arch/arm/boot 目录下的zImage
拷贝到TF卡的第一分区(分区方法见前文)。
二、u-boot修改
2.1u-boot下载核配置
🍬🍬🍬u-boot下载和配置
直接从github中获取u-boot:
git clone https://github.com/Lichee-Pi/u-boot.git -b nano-v2018.01
谢天谢地,Licheepi Nano的配置文件licheepi_nano_defconfig文件在configs里面。配它!
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_defconfig
2.2可视化配置
🍬🍬🍬可视化配置
然后,进行可视化配置,这里需要进一步改写两个参数。
make ARCH=arm menuconfig
按y勾选boot arguments 和bootcmd两个选项。
1.boot arguments填入:
console=ttyS0,115200 panic=5 root=/dev/mmcblk0p2 rootwait rw
其中ttyS0代表着串口0输出信息,如果要想使用屏幕打印启动信息需要添加:
console=tty1 console=ttyS0,115200 panic=5 root=/dev/mmcblk0p2 rootwait rw
其中,tty1大概讲一下,tty代表着Linux系统的终端控制,我们都知道屏幕驱动在linux中一般都是设备节点/dev/fb0,一般设备驱动fb0会和tty1即一号终端有联系,添加console=tty1之后,启动信息就会同时打印到屏幕和串口0。
2.bootcmd填入: 一行话哦~
load mmc 0:1 0x80008000 zImage;load mmc 0:1 0x80c08000 suniv-f1c100s-licheepi-nano.dtb;bootz 0x80008000 - 0x80c08000;
这个是Licheepi Nano的一些启动参数,不详细讲了。
附图:
可视化设置好之后,Save,保存为.config(默认的),之后编译:
2.3编译make
//我的工具链是gnueabihf,一般是gnueabi
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8
编译完生成u-boot-sunxi-with-spl.bin
文件,将该文件拷贝到tf卡,注意:这里是sdb不是sdb1也不是sdb2。
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
三、实际效果
根文件系统的制作和拷贝这里就不介绍了,我这里是制作的Debian系统,最后附录给出大佬的博客链接。
插卡启动!插卡启动!插卡启动!
理论上启动信息会输出到你的串口调试助手和屏幕(这个图我没拍)。
由于Licheepi Nano没有任何输入设备,没有键盘还不能直接操作,但是可以在串口助手通过如下几条指令将一些信息打印到屏幕
ls >/dev/tty1 //注意千万不要给了fb0
ls >/dev/fb0 //错误的,这样只会在屏幕的最上边叠加一些东西。
测试图片:
附录:参考博客和后续想移植的
1、内核编译:
https://blog.csdn.net/weixin_41544435/article/details/124459930
https://www.cnblogs.com/twzy/p/15355842.html
2、u-boot移植:
https://blog.csdn.net/weixin_41544435/article/details/124459930
https://www.cnblogs.com/twzy/p/14865952.html
3、Debian文件系统制作(强烈推荐)
https://www.cnblogs.com/twzy/p/15160824.html
4、USB移植(下一步)
https://www.cnblogs.com/twzy/p/15243838.html