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回车”,查询当前亮度等级;

见下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/944950.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3_TCP/IP连接三次握手与断开四次挥手

TCP/IP 通信是网络通信的基础协议,分为以下主要步骤: 1、建立连接(三次握手) 目的:保证双方建立可靠的通信连接。 过程: 1>客户端发送 SYN:客户端向服务器发送一个 SYN(同步&…

SpringCloud 系列教程:微服务的未来(三)IService接口的业务实现

本文将介绍 IService 接口的基本业务操作、复杂业务操作、Lambda 方法的使用以及批量增加操作,帮助开发者深入了解如何高效地利用 MyBatis-Plus 提供的功能进行数据库操作。无论是简单的单表查询,还是复杂的多表联动,甚至是大数据量的批量操作…

kubernetes学习-集群搭建部署(一)

一、开三台虚拟机进行试验(centos7) 1、初始操作 # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld# 关闭selinux sudo sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时# 关闭swap sudo swapoff -a # 临时 s…

【AUTOSAR 基础软件】Can模块详解(Can栈之驱动模块)

文章包含了AUTOSAR基础软件(BSW)中Can模块相关的内容详解。本文从AUTOSAR规范解析,ISOLAR-AB配置以及模块相关代码三个维度来帮读者清晰的认识和了解Can驱动软件模块。文中涉及的ISOLAR-AB配置以及生成的ARXML均依托于ETAS工具链,…

Vite内网ip访问,两种配置方式和修改端口号教程

目录 问题 两种解决方式 结果 总结 preview.host preview.port 问题 使用vite运行项目的时候,控制台会只出现127.0.0.1(localhost)本地地址访问项目。不可以通过公司内网ip访问,其他团队成员无法访问,这是因为没…

【maven】什么是坐标(依赖)继承与模块、web项目启动访问

目录 2. Maven 基础 2.1 坐标 2.1.0 什么是坐标(依赖) 2.1.1 获得坐标 2.1.2 使用坐标 2.1.3 依赖范围 2.1.4 依赖传递 2.1.5 依赖冲突&调节原则 2.1.6 依赖排除 2.1.7 使用第三方jar包 2.2 继承与模块 2.2.1 概述 2.2.2 分析 2.2.3 实…

【面试系列】深入浅出 Spring Boot

熟悉SpringBoot,对常用注解、自动装配原理、Jar启动流程、自定义Starter有一定的理解; 面试题 Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?Spring Boot的自动配置原理是什么?你如何理解 Spring Boot 配置…

VS Code AI开发之Copilot配置和使用详解

随着AI开发工具的迅速发展,GitHub Copilot在Cursor、Winsuf、V0等一众工具的冲击下,推出了免费版本。接下来,我将为大家介绍GitHub Copilot的配置和使用方法。GitHub Copilot基于OpenAI Codex模型,旨在为软件开发者提供智能化的代…

meshy的文本到3d的使用

Meshy官方网站: 中文官网: Meshy官网中文站 ​编辑 Opens in a new window ​编辑www.meshycn.com Meshy AI 中文官网首页 英文官网: Meshy目前似乎还没有单独的英文官网,但您可以在中文官网上找到英文界面或相关英文资料。 链…

快速打造智能应用:从设计到上线的全流程指南

随着人工智能技术的快速发展,如何将大模型技术转化为实际应用成为了各行业关注的焦点。本文将以一个经典的 RAG(检索增强生成)知识问答系统为例,详细介绍从智能体设计到最终应用部署的全流程。通过结合阿里云的魔笔低代码平台和丰…

影刀进阶指令 | liblib反推 (SD AI绘图反推)

文章目录 影刀进阶指令 | liblib反推 (SD AI绘图反推)一. 需求二. 流程三. 实现3.1 流程概览3.2 流程步骤讲解1\. 获取png地址2\. 打开页面3\. 上传png文件4\. 获取png的prompt信息 四. 运维 影刀进阶指令 | liblib反推 (SD AI绘图反推) 先看看我们要实现的功能,li…

[单master节点k8s部署]43.全链路监控(二)

部署pinpoint服务端 这里安装的是pinpoint-docker,可以从GitHub - pinpoint-apm/pinpoint-docker: Officix 下载。通过readme可以看到,该项目提供的镜像: Pinpoint-Web ServerPinpoint-CollectorPinpoint-AgentPinpoint-FlinkPinpoint-Hba…

EasyExcel(环境搭建以及常用写入操作)

文章目录 EasyExcel环境搭建1.创建模块 easyexcel-demo2.引入依赖3.启动类创建 EasyExcel写1.最简单的写入1.模板2.方法3.结果 Write01.xlsx 2.指定字段不写入Excel1.模板2.方法3.结果 Write02.xlsx 3.指定字段写入excel1.模板2.方法3.结果 Write03.xlsx 4.按照index顺序写入ex…

SpringBoot对静态资源的映射规则

目录 什么是SpringBoot静态资源映射? 如何实现SpringBoot静态资源映射? 1. webjars:以jar包的方式引入静态资源 示例: 2. /** 访问当前项目的任何资源 示例一: 示例二: 3. 静态首页(欢…

Redis - Token JWT 概念解析及双token实现分布式session存储实战

Token 定义:令牌,访问资源接口(API)时所需要的资源凭证 一、Access Token 定义:访问资源接口(API)时所需要的资源凭证,存储在客户端 组成 组成部分说明uid用户唯一的身份标识time…

集成RabbitMQ+MQ常用操作

文章目录 1.环境搭建1.Docker安装RabbitMQ1.拉取镜像2.安装命令3.开启5672和15672端口4.登录控制台 2.整合Spring AMQP1.sun-common模块下创建新模块2.引入amqp依赖和fastjson 3.新建一个mq-demo的模块1.在sun-frame下创建mq-demo2.然后在mq-demo下创建生产者和消费者子模块3.查…

CMSeasy;大米CMS漏洞复现

一、越权漏洞 pikachu-Over permission 水平越权 ⽔平越权:指攻击者尝试访问与他拥有相同权限的⽤户资源。 登录lucy 查看lucy个人信息 在lucy页面修改usernamelili 可以跳转lili的个人信息页面 pikachu-Over permission 垂直越权 垂直越权:通过低权…

【HarmonyOS之旅】ArkTS语法(一)

目录 1 -> 基本UI描述 1.1 -> 基本概念 1.2 -> UI描述规范 1.2.1 -> 无参数构造配置 1.2.2 -> 必选参数构造配置 1.2.3 -> 属性配置 1.2.4 -> 事件配置 1.2.5 -> 子组件配置 2 -> 状态管理 2.1 -> 基本概念 2.2 -> 页面级变量的状…

论文解读 | NeurIPS'24 Lambda:学习匹配先验以处理无标记垂悬问题场景下的实体对齐任务...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者讲解回放! 作者简介 尹航,上海交通大学博士生 内容简介 我们研究了带有无标记悬挂问题的实体对齐(EA)任务,即部分实体在另一个…

Midjourney技术浅析(五):图像细节处理

Midjourney 作核心目标之一是生成高质量、高分辨率且细节丰富的图像。为了实现这一目标,Midjourney 采用了超分辨率(Super-Resolution)和细节增强(Detail Enhancement)技术。本文将深入探讨 Midjourney 的超分辨率与细…