芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 233|回复: 0

【BX71】【Linux】HDMI与LCD显示Linux界面

[复制链接]

该用户从未签到

12

主题

13

帖子

92

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
92
发表于 2024-4-22 14:59:41 | 显示全部楼层 |阅读模式
本程序基于BX71开发,实现HDMI与LCD显示Linux的启动信息,同时也支持以太网通信、键盘输入命令。

下图为整体框架:
4-122.jpg

HDMI显示:
4-122-2.jpg

注意:

1、由于7010无LCD接口,所以该开发板只可HDMI显示;7020可以同时连接HDMI屏幕和LCD

2、如果你没有Linux相关知识,以及未搭建过开发环境,那么首先阅读《基于Linux的嵌入式系统开发和应用教程文档》(该文档属于ACZ702开发板,但是前3章知识是通用的),完成环境搭建后可继续操作!

百度网盘下载链接:https://pan.baidu.com/s/1o3hTLKucRWvXVxd2TUIfag?pwd=p6uk
(路径:盘A_ACZ702开发板标准配套资料/01_教材文档/04_【Linux教程】基于Linux的嵌入式系统开发和应用教程V2.16.pdf)


一、硬件连接
请先连接好硬件,方便后续的开机测试

1、开发板硬件连接

将BX71_7020开发板按照下图连接(BX71_7010无LCD接口)

4-22-1-20240422134556-8zqtu8t.jpg

注意

1、将SD卡插入开发板后,见上图,拨码开关全部下拨(sd卡旁)!

2、将红色的拨码开关下拨(开启USB功能),然后连接有线键盘,后续可以在此输入linux命令!
image-20240422134651-9zymhe8.png

3、使用软排线将 LCD 屏与开发板相连,注意要先将黑色压槽往上拨开。连接时将带有蓝色胶条的部分朝上,银白线条接口部分朝下,软排线与卡槽接口对应好后,按下压槽即完成了。 image-20240422140158-x4vhngy.png


2、以太网配置

本工程已经设置了开发板静态IP为192.168.0.10,所以用网线将开发板和电脑连接后,需要配置电脑IP、以及关闭公共防火墙。

1、设置电脑的ip地址

image.png

2、关闭电脑的公共防火墙

image.png


二、开机测试

在文件中已提供.img镜像文件,将其写入到SD卡即可体验本工程。

(1)工程代码下载:

(待添加代码链接)

(2)烧录img镜像文件教程
http://www.corecourse.cn/forum.php?mod=viewthread&tid=29667

(3)功能测试

①、首先按照上文连接好开发板硬件,并且上电;

②、等待LCD/HDMI屏幕出现“root@BX71_Factory:~#”字符后,在键盘(连接到开发板)上输入命令并回车:ping 192.168.0.3
image.png


如果HDMI屏幕/LCD上出现显示,说明HDMI/LCD屏幕正常

如果屏幕显示出输入的“ping 192.168.0.3”,说明USB正常

如果屏幕显示出“64 bytes from 192.168.0.3: seq=0 ttl=128 time=0.461 ms”类似信息,说明以太网通信正常

如果出现其他问题,可以技术群询问,或者在此贴下回复

三、工程搭建

简易讲解如何使用提供的Vivado工程、内核源码、petalinux工程文件,生成boot镜像和根文件。

1、生成HDF文件

将BX71_7020_HDMI_LCD_Vivado.zip解压到没有中文字符的路径,里面包含本次vivado工程;该工程已经生成.hdf文件,位于Vivado工程目录下sdk文件夹内。

image.png

2、Petalinux工程

(1)新建文件夹

由于后续项目过多,为了保持工程“干净整洁”,在虚拟机Ubuntu中使用下面命令创建文件夹:


[C] 纯文本查看 复制代码
mkdir /home/$USER/FPGA_Linux/BX71



image.png


(2)移入HDMI工程

将提供的BX71_HDMI_Factory_Linux.tar.gz工程,从Windows移动到该BX71文件夹内。

image.png

(3)解压工程

使用下面命令,将压缩包解压


[C] 纯文本查看 复制代码
tar -vxzf BX71_HDMI_Factory_Linux.tar.gz


image.png

image.png

(4)移入system_wrapper.hdf文件

如果你是7020的开发板,进入7020文件夹;

如果你是7010的开发板,进入7010文件夹;

image.png

接下来以7020开发板举例,将Windows上的system_wrapper.hdf拖入到hdf文件夹。

image.png

再进入BX71_HDMI_Linux_Source文件夹中(这是提前创建好的Petalinux工程目录)

image.png

(5)配置Petalinux工程

首先输入下列命令,将从指定的硬件描述文件(HDF)目录中获取硬件描述信息,以便配置PetaLinux项目。(注意要进入工程目录后输入命令)


[C] 纯文本查看 复制代码
splnx
petalinux-config --get-hw-description ../hdf/ 




image.png

此时,会弹出配置窗口,进入→ Linux Components Selection

image.png

将内核路径修改为本地,如下图所示,继续进入该配置

image.png


在弹出的选项中,选择ext-local-src后,然后按下2次esc,返回到上一页。

image.png

此时,新出现“External linux-kernel local source settings”选项,选择它,按下Enter即可。

image.png

此时,需要填写本地的内核路径,在BX71_HDMI_Factory_Linux中的kernel就是本次需要的内核;先进入kernel文件夹后,用pwd命令即可获取地址。

image.png

image.png

将该地址复制到“EXternal  linux-kernel local source path”选项中

image.png

连续按下esc,直到提示“Do you wish to save your new configuration?”,按下回车即可。

image.png

3、配置内核

提供的工程Linux内核都是配置好的,这里主要为了让大家了解配置方法,使用下面命令打开内核配置:


[C] 纯文本查看 复制代码
petalinux-config -c kernel



在弹出的界面中,进入→ Device Drivers → Graphics support,勾选Digilent VGA/HDMI DRM Encoder Driver选项,该驱动主要用来驱动HDMI显示。

image.png

然后进入到→ Device Drivers → Common Clock Framework,勾选Digilent axi_dynclk Driver;该驱动程序主要用于输出不同大小的像素时钟。

image.png

持续按下esc,退出内核配置。

4、修改设备树

对于设备树,同样在工程中已提供,可以使用下面命令打开7020设备树文件。


[C] 纯文本查看 复制代码
gedit /home/$USER/FPGA_Linux/BX71/BX71_HDMI_Factory_Linux/7020/BX71_HDMI_Linux_Source/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi



对于7010设备树文件,可以通过下面命令打开:


[C] 纯文本查看 复制代码
gedit /home/$USER/FPGA_Linux/BX71/BX71_HDMI_Factory_Linux/7010/BX71_HDMI_Linux_Source/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi



这里详细讲解下如何切换不同的的HDMI分辨率:

[C] 纯文本查看 复制代码
//hdmi分辨率切换,在根节点下resolution-settings,复制标签到此处
resolution-settings = <&res_800x480p>;


默认情况是800x480的分辨率,工程提供4种分辨率选择,如果需要切换HDMI的分辨率,可以将res_800x480p替换为res_1280x1024p、res_1280x720p、res_1024x600p;

5、编译工程

接下来编译整个工程,在终端输入如下命令:

[C] 纯文本查看 复制代码
petalinux-build



image.png

再输入下面命令,生成BOOT文件:

[C] 纯文本查看 复制代码
petalinux-package --boot --fsbl --fpga --u-boot --force


6、制作 SD 启动卡

将sd卡插入电脑端,等待Ubuntu识别后,再将提供的format_sdcard.sh脚本移入到Ubuntu的BX71_HDMI_Factory_Linux文件夹中。

在当前目录中,打开终端输入下面命令:

[C] 纯文本查看 复制代码
 ./format_sdcard.sh


image.png

7、将文件拷贝到 SD 卡

先依次在桌面左侧点击U盘图标,等待2个文件夹打开。

image.png


对于7020开发板,在终端中可以使用下列命令,进入到image目录,主要存放镜像和根文件。

[C] 纯文本查看 复制代码
cd /home/$USER/FPGA_Linux/BX71/BX71_HDMI_Factory_Linux/7020/BX71_HDMI_Linux_Source/images/linux


对于7010开发板,那么就输入下面命令:

[C] 纯文本查看 复制代码
cd /home/$USER/FPGA_Linux/BX71/BX71_HDMI_Factory_Linux/7010/BX71_HDMI_Linux_Source/images/linux


后续7010和7020操作一样,继续使用下列命令,将image.ub、BOOT.BIN文件移动到SD卡boot分区

[C] 纯文本查看 复制代码
sudo cp image.ub BOOT.BIN /media/$USER/boot/


使用下列命令,将根文件解压到U盘rootfs目录中,等待解压完毕,最后输入“sync”命令,等待系统将缓存的数据写入 SD卡。

[C] 纯文本查看 复制代码
sudo tar -zxvf rootfs.tar.gz -C /media/$USER/rootfs/
sync


再按照下图弹出SD卡
image.png


最后,将sd卡插入到开发板,连接好硬件,上电后,会自动加载系统。(按照开机测试操作




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

GMT+8, 2024-5-5 01:26 , Processed in 0.117079 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表