Linux第100步_Linux之设置LCD作为终端控制台和LCD背光调节
KMS是Kemmel Mode Setting的缩写,内核显示模式设置。它主要负责显示的控制,包括屏幕分辨率、屏幕刷新率和颜色深度等等。
CRTC是指显示控制器,在DRM里有多个显存,通过操作CRTC来控制要显示那个显存。
KMS包含了FB框架。DRM驱动默使用CRTC来控制,CRTC是可以模仿FB框架,实现使用FB接口。
1、使能DRM的FB支持
1)、打开终端。
2)、输入“cd linux/atk-mp1/linux/my_linux/linux-5.4.31/回车”,切换到“linux/atk-mp1/linux/my_linux/linux-5.4.31/”目录;
3)、输入“make menuconfig回车”,打开linux内核图形化配置界面:
4)、移动“向下光标”至“Device Drivers”,得到下图:
5)、按“回车键”,移动“向下光标”至“Graphics support”,得到下图:
6)、按“回车键”,移动“向下光标”至“Direct Rendering Manager (XFree86 4.1.0 and higher DRI support”,得到下图:
7)、按“回车键”,移动“向下光标”至“Enable legacy fbdev support for your modesetting driver”,按下“Y键”(使能DRM的FB支持),得到下图:
8)、先“保存”,按“TAB键”至“Save”,按下“回车键”,得到下面的界面。
9)、输入“./arch/arm/configs/stm32mp1_atk_defconfig”,移动“向下光标键”至“Ok”,得到下图:
10)、按“回车键”,保存完成。得到下面的界面。
11)、按“回车键”,退出保存界面。
2、使能PL110
1)、移动“光标”至“Exit”,直到出现下面的界面:
2)、按“回车键”,移动“向下光标”至“Frame buffer Devices”,得到下图:
3)、按“回车键”,移动“向下光标”至“Support for frame buffer devices”,按“Y键”,得到下图:
4)、先“保存”,按“TAB键”至“Save”,按下“回车键”,得到下面的界面。
5)、输入“./arch/arm/configs/stm32mp1_atk_defconfig”,移动“向下光标键”至“Ok”,得到下图:
6)、按“回车键”,保存完成。得到下面的界面。
7)、按“回车键”,退出保存界面。
再次按“回车键”,移动“向下光标”至“ARM PrimeCell PL110 support”,按“Y键”(选中,支持 选中,支持 /dev/fb0),得到下图:
8)、先“保存”,按“TAB键”至“Save”,按下“回车键”,得到下面的界面。
9)、输入“./arch/arm/configs/stm32mp1_atk_defconfig”,移动“向下光标键”至“Ok”,得到下图:
10)、按“回车键”,保存完成。得到下面的界面。
11)、按“回车键”,退出保存界面。
3、使能Linux logo显示
1)、移动“光标”至“Exit”,直到出现下面的界面:
2)、按“回车键”,移动“向下光标”至“Bootup logo”,按“Y键”,得到下图:
3)、先“保存”,按“TAB键”至“Save”,按下“回车键”,得到下面的界面。
4)、输入“./arch/arm/configs/stm32mp1_atk_defconfig”,移动“向下光标键”至“Ok”,得到下图:
5)、按“回车键”,保存完成。得到下面的界面。
6)、按“回车键”,退出保存界面,得到下面的界面:
7)、再次按“回车键”,得到下图:
8)、移动向下光标,按“Y键”,选中“Standard black and white Linux logo”;
移动向下光标,按“Y键”,选中“Standard 16-color Linux logo”;
移动向下光标,按“Y键”,选中“Standard 224-color Linux logo”;
9)、先“保存”,按“TAB键”至“Save”,按下“回车键”,得到下面的界面。
10)、输入“./arch/arm/configs/stm32mp1_atk_defconfig”,移动“向下光标键”至“Ok”,得到下图:
11)、按“回车键”,保存完成。得到下面的界面。
12)、按“回车键”,退出保存界面。然后按“ESC键”,直到得到下面的界面:
13)、输入“make stm32mp1_atk_defconfig回车”,注意:如果忘记执行,可能再次打开时会发现“.config”没有被更新,得到下图:
5、编译设备树
①在终端,输入“make uImage dtbs LOADADDR=0XC2000040 -j8回车”,执行编译“Image”和“dtbs”,并指定装载的起始地址为0XC2000040,j8表示指定采用8线程执行。“make dtbs”,用来指定编译设备树。见下图:
②输入“ls arch/arm/boot/uImage -l”
查看是否生成了新的“uImage”文件
③输入“ls arch/arm/boot/dts/stm32mp157d-atk.dtb -l”
查看是否生成了新的“stm32mp157d-atk.dtb”文件
4)、拷贝输出的文件:
①输入“cp arch/arm/boot/uImage /home/zgq/linux/atk-mp1/linux/bootfs/ -f回车”,执行文件拷贝,准备烧录到EMMC;
②输入“cp arch/arm/boot/dts/stm32mp157d-atk.dtb /home/zgq/linux/atk-mp1/linux/bootfs/ -f回车”,执行文件拷贝,准备烧录到EMMC
③输入“cp arch/arm/boot/uImage /home/zgq/linux/tftpboot/ -f回车”,执行文件拷贝,准备从tftp下载;
④输入“cp arch/arm/boot/dts/stm32mp157d-atk.dtb /home/zgq/linux/tftpboot/ -f回车”,执行文件拷贝,准备从tftp下载;
⑤输入“ls -l /home/zgq/linux/atk-mp1/linux/bootfs/回车”,查看“/home/zgq/linux/atk-mp1/linux/bootfs/”目录下的所有文件和文件夹
⑥输入“ls -l /home/zgq/linux/tftpboot/回车”,查看“/home/zgq/linux/tftpboot/”目录下的所有文件和文件夹
⑦输入“chmod 777 /home/zgq/linux/tftpboot/stm32mp157d-atk.dtb回车”
给“stm32mp157d-atk.dtb”文件赋予可执行权限
⑧输入“chmod 777 /home/zgq/linux/tftpboot/uImage回车” ,给“uImage”文件赋予可执行权限
⑨输入“ls /home/zgq/linux/tftpboot/ -l回车”,查看“/home/zgq/linux/tftpboot/”目录下的所有文件和文件夹
6、设置LCD作为终端控制台
1)、重启开发板,等串口显示“Hit any key to stop autoboot”,立即按下“回车键”;
输入“setenv bootargs 'console=tty1 console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.2.180:/home/zgq/linux/nfs/rootfs,proto=tcp rw ip=192.168.2.178:192.168.2.180:192.168.2.1:255.255.255.0::eth0:off'回车”。
“console=tty1”表示将LCD屏幕作为控制台。
“console=ttySTM0,115200”设置串口作为控制台。
输入“saveenv回车”。
输入“boot回车”,启动。
输入“cd /回车”
输入“ls回车”
输入“cd etc/回车”
输入“ls回车”
2)、输入“vi inittab回车”,打开inittab文件
按“A”,移动“光标”至“console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL”的下一行,添加“tty1::askfirst:-/bin/sh”,见下图:
3)、按“ESC键”,然后输入“:wq回车”
输入“reboot回车”重启开发板;启动完成后,LCD显示如下:
4)、输入“echo hello linux! > /dev/tty1回车”,LCD显示“hello linux!”,见下图:
7、取消LCD作为终端控制台
1)、重启开发板,等串口显示“Hit any key to stop autoboot”,立即按下“回车键”;
输入“setenv bootargs 'console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.2.180:/home/zgq/linux/nfs/rootfs,proto=tcp rw ip=192.168.2.178:192.168.2.180:192.168.2.1:255.255.255.0::eth0:off'回车”。
“console=ttySTM0,115200”设置串口作为控制台。
输入: saveenv,保存bootcmd的值
2)、输入: boot,启动 Linux 系统
等待开发板启动完成,输入“root回车”
输入“cd /回车”
输入“ls回车”
输入“cd etc/回车”
按“A”,移动光标至“console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL”的下一行,在“tty1::askfirst:-/bin/sh”添加“#”,见下图:
3)、按“ESC键”,输入“:wq回车”保存退出,得到下图:
4)、输入“reboot回车”重启开发板。
等待开发板启动完成,输入“root回车”
输入“cd /回车”
输入“ls回车”
输入“echo hello linux! > /dev/tty1回车”
8、LCD背光调节
1)、给开发板上电,等待开发板启动完成,输入“root回车”;
输入“ls回车”
输入“cd /回车”
输入“ls回车”
输入“cd /sys/class/pwm/回车”
输入“ls回车”
输入“cd pwmchip0/回车”,查询到“pwmchip0对应的是TIM4”
2)、输入“cd /sys/devices/platform/backlight/backlight/backlight回车”
输入“cat max_brightness回车”,查询最大亮度等级;
输入“cat brightness回车”,查询当前亮度等级;
输入“echo 6 > brightness回车”,设置当前亮度等级为6
输入“echo 0 > brightness回车”,设置当前亮度等级为0
输入“echo 6 > brightness回车”,设置当前亮度等级为6
输入“cat brightness回车”,查询当前亮度等级;
见下图:
相关文章:

Linux第100步_Linux之设置LCD作为终端控制台和LCD背光调节
KMS是Kemmel Mode Setting的缩写,内核显示模式设置。它主要负责显示的控制,包括屏幕分辨率、屏幕刷新率和颜色深度等等。 CRTC是指显示控制器,在DRM里有多个显存,通过操作CRTC来控制要显示那个显存。 KMS包含了FB框架。DRM驱动默…...
Chapter09 国际化i18n 和 数据校验:Validation
文章目录 1 Java国际化2 Spring6国际化3 使用Spring6国际化4 数据校验:Validation实验一:通过Validator接口实现实验二:Bean Validation注解实现实验三:基于方法实现校验实验四:实现自定义校验 1 Java国际化 示例&…...

活动预告 | Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁
课程介绍 通过 Microsoft Learn 免费参加 Microsoft 安全在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft Cloud 技术的了解。参加我们举办的“通过扩展检测和响应抵御威胁”技术公开课活动,了解如何更好地在 Microsoft 365 Defen…...

Unresolved plugin: ‘org.apache.maven.plugins:maven-site-plugin:3.12.1‘
问题 使用idea 社区办加载项目提示下面问题: Unresolved plugin: org.apache.maven.plugins:maven-site-plugin:3.12.1 问题解决 maven插件地址: https://maven.apache.org/plugins/maven-dependency-plugin/plugins.html Maven 中央仓库地址&#…...

5个开源RAG框架对比
还在为RAG应用开发头疼吗?别急,今天给大家推荐五款完全开源免费的RAG框架,覆盖自动优化、多模态处理、本地部署、生产环境支持等多种场景,助你轻松搞定RAG开发!👇 1. AutoRAG:自动优化ÿ…...

活动预告 | Microsoft Power Platform 在线技术公开课:实现业务流程自动化
课程介绍 参加“Microsoft Power Platform 在线技术公开课:实现业务流程自动化”活动,了解如何更高效地开展业务。参加我们举办的本次免费培训活动,了解如何借助 Microsoft AI Builder 和 Power Automate 优化工作流。结合使用这些工具可以帮…...

【分布式文件存储系统Minio】2024.12保姆级教程
文章目录 1.介绍1.分布式文件系统2.基本概念 2.环境搭建1.访问网址2.账号密码都是minioadmin3.创建一个桶4.**Docker安装miniomc突破7天限制**1.拉取镜像2.运行容器3.进行配置1.格式2.具体配置 4.查看桶5.给桶开放权限 3.搭建minio模块1.创建一个oss模块1.在sun-common下创建2.…...
解决ssh和git秘钥认证失败问题
已正确上传公钥到远程服务器,但是本地的连接认证还是使用默认秘钥文件名id_rsa或者默认用户名,导致了认证失败,总结了以下解决办法: 1、ssh秘钥认证 远程登录的时候可能ssh客户端默认使用id_rsa文件名秘钥,但是之前生…...

AI安全的挑战:如何让人工智能变得更加可信
引言 随着人工智能(AI)技术在各个领域的广泛应用,尤其是在医疗、金融、自动驾驶和智能制造等行业,AI正在重塑我们的工作和生活方式。从提高生产效率到实现个性化服务,AI带来了前所未有的便利。然而,在享受这…...

腾讯通RTX升级迁移攻略,兼容Linux内核国产系统及移动端
一、腾讯通RTX继续使用的主要难题 腾讯通RTX停更后,用户不仅无法继续获得更新、技术支持和资源下载,还面临着以下无法解决的使用问题: ● 不兼容国产系统与移动端:腾讯通RTX仅支持Windows和Mac操作系统,无法在基于Li…...

用css实现瀑布流布局
上效果 知识理解 column-count: 4; column-gap: 15px;实现固定四行瀑布流布局 columns: 200px auto;column-gap: 15px;由浏览器根据容器的宽度自动调整,尽可能一行多个200px宽度的列数 <!DOCTYPE html> <html lang"en"><head><me…...

FortiAl为擎重塑网络与安全运营未来
在当今数字化浪潮汹涌的时代,网络安全运营的重要性愈发凸显,而人工智能的迅猛发展则如同一股强劲的东风,为这一领域带来了革命性的变革。Fortinet攻防专家邹国雄在《FortiAI:以生成式人工智能(GenAI)简化Fo…...

优化租赁小程序提升服务效率与用户体验的策略与实践
内容概要 在这个快速发展的商业环境中,租赁小程序成为了提升服务效率和用户体验的重要工具。通过对用户需求的深入挖掘,我们发现他们对于功能的便捷性、响应速度和界面的友好性有着极高的期待。因此,针对这些需求,完善租赁小程序…...

基于Python的医院预约挂号与诊断系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

Spring Boot教程之四十:使用 Jasypt 加密 Spring Boot 项目中的密码
如何使用 Jasypt 加密 Spring Boot 项目中的密码 在本文中,我们将学习如何加密 Spring Boot 应用程序配置文件(如 application.properties 或 application.yml)中的数据。在这些文件中,我们可以加密用户名、密码等。 您经常会遇到…...

Design Compiler:两种工作模式(线负载模式和拓扑模式)
相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 Design Compiler可以以线负载模式或拓扑模式启动,必须选择其中一个模式。在拓扑模式下还可使用多模式和UPF模式:多模式允许在多种工作…...

窦明—环境和教育对人的影响具象化
窦明—“环境和教育有多影响人”的具象化 本篇载体:窦明与环境 本篇主体:环境和教育对人的影响 很多网友调侃说,窦明前后两世性格变了,连面向都看起来变了 可不是嘛,命相和品相生面相,性格也影响着神态和…...

41.1 预聚合提速实战项目之需求分析和架构设计
本节重点介绍 : 需求分析架构设计 需求分析 使用预聚合提速查询并且降低高基数查询对后端的压力用户无需变更grafana上的查询语句,后端自动替换效果图 架构设计 架构图 解决方案说明 heavy_query对用户侧表现为查询速度慢在服务端会导致资源占用过多甚至打挂…...

洛谷P2814 家谱(c嘎嘎)
题目链接:P2814 家谱 - 洛谷 | 计算机科学教育新生态 题目难度:普及/提高 解题心得:这道题用了并查集(貌似不怎么常用的字符串并查集),用STL中的map将子孙和祖先连接起来,第一次接触这种做法感…...

时空信息平台-API安全措施-下篇:登录鉴权【访问受限】您的请求已被该站点的安全策略拦截。
文章目录 引言I 登录鉴权处理逻辑校验顺序用户状态校验密码校验Token鉴权短信验证码/图形验证码登录设备限制II 服务端发生错误的处理业务返回码处理前端处理业务返回码nginx处理http状态码引言 时空信息平台-API安全措施:上篇(通讯协议的安全措施) https://blog.csdn.net/z…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...

Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...