之前在前辈基础上改了一个支持多种屏的开发板,焊接好后用唱戏机的FLASH测试了一下50PIN的屏就卡在U-BOOT编译了,后面断断续续用了两个月时间学习了一下uboot、Linux、buildboot配置和编译,终于能进文件系统了。
需要PCB文件可以看之前的帖子
https://whycan.com/t_8022.html
因为用的拆机的小牌FLASH,所以中间在uboot和Linux的配置上花了很多时间。一次无意间把装虚拟机的硬盘误删后所有环境都没了就一直搁置了。
今年又翻出来看到之前的屏又心动了一下,于是参照着之前收藏的教程又试了一下,中途有些之前遗忘的和底层文件需要修改的都忘记了需要重新找和翻教程花了几个晚上。看一下效果吧
这次用的40PIN 的屏幕,外接的转50PIN的板子,因为屏上的排线太脆弱了,所以固定一下装在了这个屏里面
这个屏也能给另一个板子使用了
为了方便调试开启了USB host挂网卡和U盘,但是U盘太麻烦了要频繁插拔,所以用USB网卡tftp下载到FLASH,flash写入速度有点慢后期准备烧到内存卡上。
现在支持rtl81xx和dm9xxx系列USB有线网卡,rtl8188无线网卡还没成功,
jffs2.imgsuniv-f1c100s-licheepi-nano.7zu-boot-sunxi-with-spl.7zzImage.7z
lvgl的makefile刚开始配置错,以为是交叉编译器问题,每次出来都是64位的,后面尝试修改终于可以了
在每个环节需要注意的地方
(都是看论坛各位大佬的经验,总结了一下,感谢各位大佬)
1、UBOOT 添加FLASH支持和屏支持
# 显示spiflash的信息
$ sudo sunxi-fel spiflash-info
Manufacturer: Unknown (0Bh), model: 40h, size: 16777216 bytes.
修改 u-boot/drivers/mtd/spi/spi_flash_ids.c,根据上面查询的信息增加 xt25f128b:
const struct spi_flash_info spi_flash_ids[] = {
...
{"w25q128fw", INFO(0xef6018, 0x0, 64 * 1024, 256, RD_FULL | WR_QPP | SECT_4K) },
{"xt25f128b", INFO(0x0b4018, 0x0, 64 * 1024, 256, RD_FULL | WR_QPP | SECT_4K) },
...
};
我的是 n25w128a:
Manufacturer: Unknown (2Ch), model: CBh, size: 16777216 bytes.
{"n25w128a", INFO(0x2ccb18, 0x0, 64 * 1024, 256, RD_FULL | WR_QPP)}, //添加的
来自 <https://whycan.com/t_7558.html>
1. 设置uboot中的bootargs
设置lcd作为控制台
setenv bootargs ‘console=tty1,115200 root=/dev/nfs rw nfsroot=192.168.136.128:/home/rgd/linux/nfs/rootfs/JC
设置串口tty1作为控制台
setenv bootargs ‘console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.136.128:/home/rgd/linux/nfs/rootfs/JC
将lcd显示屏tty1、串口ttymxc0作为终端显示:
setenv bootargs ‘console=tty1 console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.136.128:/home/rgd/linux/nfs/rootfs/JC
在uboot中设置好在saveenv一下
版权声明:本文为CSDN博主「栋哥爱做饭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_47397155/article/details/122888220
2、Linux
添加 flash 驱动,需要查看板子使用的 flash 芯片:
# 1. 打开 ./drivers/mtd/spi-nor/spi-nor.c 1168行. 添加如下代码. 对flash支持
{"n25w128a", INFO(0x2ccb18, 0, 64 * 1024, 256, SECT_4K)}, // 20230320 我添加的
配置设备树,若无显示器,则显示部分不用配置:
# 1. 打开 /arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts 文件
# 2. 修改 flash和显示驱动
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins_a>;
status = "okay";
spi-max-frequency = <50000000>;
flash: n25w128a@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "winbond,n25w128a", "jedec,spi-nor";
reg = <0>;
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins_a>;
status = "okay";
spi-max-frequency = <50000000>;
flash: n25w128a@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "winbond,n25w128a", "jedec,spi-nor";
reg = <0>;
版权声明:本文为CSDN博主「℡四叶草~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dwh1314/article/details/124872528
配置中设置
Device Drivers --->
<*> Memory Technology Device (MTD) support --->
<*> Command line partition table parsing # 勾选,用来解析uboot传递过来的flash分区信息。(如果 bootarg 是用的我的方法一就需要勾选)
<*> Caching block device access to MTD devices # 勾选,读写块设备用户模块
<*> SPI-NOR device support --->
[ ] Use small 4096 B erase sectors # 取消勾选,否则jffs2文件系统会报错
来自 <https://whycan.com/t_7558.html>
增加USB HOST支持
修改drivers/clk/sunxi-ng/ccu-suniv.c
usb-hpy0
0x0cc, BIT(1), 0);
离线
移植debain系统后就提示No such file了,这个要怎么搞呢
离线
@zhangyadong300
增加USB HOST支持
修改drivers/clk/sunxi-ng/ccu-suniv.c
usb-hpy0
0x0cc, BIT(1), 0);
这个修改极为关键,否则插入设备,没有任何反应。
离线
usb有线网卡是什么卡?
离线