进入xwindows后系统挂起(黑屏)键盘鼠标没有响应@FreeBSD

问题:黑屏能看见鼠标,键盘和鼠标没有反应

在不小心升级pkg包后,系统无法进入xfce等xwindows,表现为黑屏和能看见鼠标,左上角有一个白字符块,键盘鼠标没有反应,整个系统卡住。但是可以ssh登录,内部的服务一切正常。

处理过程:

前面都是弯路,直接可以跳到Xorg配置和解决no screens found 报错问题这两部分。

使用xrandr查看显示

输入xrandr

报错can't open display

现在的问题就是解决么有display的问题,大约是在某个时间段,FreeBSD修改了xwindows的某个部件。。。。

用ssh登进去测试:

startx

xauth:  file /home/skywalk/.serverauth.7188 does not exist

/usr/local/libexec/Xorg.wrap: Only console users are allowed to run the X server

xinit: giving up

xinit: unable to connect to X server: Connection refused

xinit: server error

最后发现本身正常的时候,在tty控制台执行xrandr也是报错can't open display,所以这里走了弯路,一直在尝试解决这个报错。也就是这个报错不用去管它。

安装wayfile试试

# pkg install wayfire wf-shell alacritty swaylock-effects swayidle wlogout kanshi mako wlsunset

问题照旧

咨询bing

You could do this (if your DISPLAY is :0):

export DISPLAY=:0

xrandr --listmonitors

xrandr your_command

输入set DISPLAY=:0

xrandr --listmonitors

还是Can't open display

(最终知道,xrandr这里是走弯路了,tty等下面本身就是Can't open display,在xwindows下才能显示显示器那些数值)

重新学习FreeBSD手册

学到使用pciconf来查看显卡

pciconf -lv|grep -B4 VGA
vgapci0@pci0:0:2:0:	class=0x030000 rev=0x09 hdr=0x00 vendor=0x8086 device=0x1616 subvendor=0x17aa subdevice=0x2226vendor     = 'Intel Corporation'device     = 'HD Graphics 5500'class      = displaysubclass   = VGA
查看是biso还是uefi
sysctl machdep.bootmethod
machdep.bootmethod: UEFI

当然这个数据不重要 

安装intel显卡

pkg install drm-kmod
sysrc kld_list+=i915kms

降低intel显卡的cpu占用

pkg install libva-intel-driver mesa-libs mesa-dri

当然这不是必须的。 

Xorg配置

Xorg Configuration

Xorg supports most common video cards, keyboards, and pointing devices.

Video cards, monitors, and input devices are automatically detected and do not require any manual configuration. Do not create xorg.conf or run a Xorg -configure step unless automatic configuration fails.

 也就是除非自动配置失败,否则不需要使用下面命令或创建xorg.conf文件

sudo Xorg -configure
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE) 
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) 
(EE) 
Please consult the The X.Org Foundation support at http://wiki.x.orgfor help. 
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE) 
(EE) Server terminated with error (1). Closing log file.

 intel显卡配置

Example 1. Select Intel® Video Driver in a File

/usr/local/etc/X11/xorg.conf.d/20-intel.conf

Section "Device"Identifier "Card0"Driver     "intel"
EndSection

尝试手工写这个文件20-intel.conf(当然最终是没有用到,把这个文件屏蔽掉了)

再次看显卡: 

pciconf -lv | grep -B3 display
vgapci0@pci0:0:2:0:	class=0x030000 rev=0x09 hdr=0x00 vendor=0x8086 device=0x1616 subvendor=0x17aa subdevice=0x2226vendor     = 'Intel Corporation'device     = 'HD Graphics 5500'class      = display

使用X -config调用配置文件

执行测试

sudo X -config /root/xorg.conf.new
密码:
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE) 
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) 
(EE) 
Please consult the The X.Org Foundation support at http://wiki.x.orgfor help. 
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE) 
(EE) Server terminated with error (1). Closing log file.

执行startx(好像问题照旧)

重新删除和安装Xorg和xfce包

重新删除Xorg和xfce包,重新安装,执行startx

报错no screens 。现在的问题就变成解决no screens这个问题了。这个问题最终解决方法,见后面。

查看生成的X配置文件

cat /root/xorg.conf.new 
Section "ServerLayout"Identifier     "X.org Configured"Screen      0  "Screen0" 0 0InputDevice    "Mouse0" "CorePointer"InputDevice    "Keyboard0" "CoreKeyboard"
EndSectionSection "Files"ModulePath   "/usr/local/lib/xorg/modules"FontPath     "/usr/local/share/fonts/misc/"FontPath     "/usr/local/share/fonts/TTF/"FontPath     "/usr/local/share/fonts/OTF/"FontPath     "/usr/local/share/fonts/Type1/"FontPath     "/usr/local/share/fonts/100dpi/"FontPath     "/usr/local/share/fonts/75dpi/"FontPath     "catalogue:/usr/local/etc/X11/fontpath.d"
EndSectionSection "Module"Load  "glx"
EndSectionSection "InputDevice"Identifier  "Keyboard0"Driver      "kbd"
EndSectionSection "InputDevice"Identifier  "Mouse0"Driver      "mouse"Option	    "Protocol" "auto"Option	    "Device" "/dev/sysmouse"Option	    "ZAxisMapping" "4 5 6 7"
EndSectionSection "Monitor"Identifier   "Monitor0"VendorName   "Monitor Vendor"ModelName    "Monitor Model"
EndSectionSection "Device"### Available Driver options are:-### Values: <i>: integer, <f>: float, <bool>: "True"/"False",### <string>: "String", <freq>: "<f> Hz/kHz/MHz",### <percent>: "<f>%"### [arg]: arg optional#Option     "Accel"              	# [<bool>]#Option     "AccelMethod"        	# <str>#Option     "Backlight"          	# <str>#Option     "CustomEDID"         	# <str>#Option     "DRI"                	# <str>#Option     "Present"            	# [<bool>]#Option     "ColorKey"           	# <i>#Option     "VideoKey"           	# <i>#Option     "Tiling"             	# [<bool>]#Option     "LinearFramebuffer"  	# [<bool>]#Option     "HWRotation"         	# [<bool>]#Option     "VSync"              	# [<bool>]#Option     "PageFlip"           	# [<bool>]#Option     "SwapbuffersWait"    	# [<bool>]#Option     "TripleBuffer"       	# [<bool>]#Option     "XvPreferOverlay"    	# [<bool>]#Option     "HotPlug"            	# [<bool>]#Option     "ReprobeOutputs"     	# [<bool>]#Option     "XvMC"               	# [<bool>]#Option     "ZaphodHeads"        	# <str>#Option     "VirtualHeads"       	# <i>#Option     "TearFree"           	# [<bool>]#Option     "PerCrtcPixmaps"     	# [<bool>]#Option     "FallbackDebug"      	# [<bool>]#Option     "DebugFlushBatches"  	# [<bool>]#Option     "DebugFlushCaches"   	# [<bool>]#Option     "DebugWait"          	# [<bool>]#Option     "BufferCache"        	# [<bool>]Identifier  "Card0"Driver      "intel"BusID       "PCI:0:2:0"
EndSectionSection "Screen"Identifier "Screen0"Device     "Card0"Monitor    "Monitor0"SubSection "Display"Viewport   0 0Depth     1EndSubSectionSubSection "Display"Viewport   0 0Depth     4EndSubSectionSubSection "Display"Viewport   0 0Depth     8EndSubSectionSubSection "Display"Viewport   0 0Depth     15EndSubSectionSubSection "Display"Viewport   0 0Depth     16EndSubSectionSubSection "Display"Viewport   0 0Depth     24EndSubSection
EndSection

这样一通,启动后报错:no screens found 

至少现在启动Xwindows不会卡死了,有小小的进步。

解决no screens found 报错问题

详细见:Xorg启动后报错no screens found(EE)(未解决)-CSDN博客

装驱动试试

sudo pkg install libva-intel-media-driver

startx后同样报错

试试安装intel-compute-runtime-llvm13

intel-compute-runtime-llvm13

问题照旧

后面重装了Xorg、Xfce4

更新升级FreeBSD

具体做了如下操作:

upgrade FreeBSD 13.1 to 13.3 and then upgrade to 14.1 

reinstall intel driver and Xorg  Xfce4

at last install xf86-input-evdev

升级FreeBSD从13.1到13.3,然后再升级到14.1版本。

重新安装了Intel 显卡驱动和Xorg Xfce4

这时候startx还是报错,但是startxfce4能够进入Xfce4桌面了,问题是鼠标和键盘会卡住。

这个时候跟刚开始有点类似,只不过刚开始的时候是无法进入Xfce4桌面,而是屏幕显示左上角一个白色方块,中间是鼠标,鼠标和键盘都无法响应。而现在是能进入Xfce4桌面,鼠标和键盘都无法响应。

尝试安装envdev,try install evdev

通过搜索网上得知,鼠标和键盘无法响应可能是输入模块有问题,也就是xf86-input-evdev模块,于是安装这个模块:

pkg install xf86-input-evdev

then keyboard and mouse are OK ! 

安装完成后,鼠标和键盘正常。这样系统就基本修复完成了。

总结

整个解决问题的过程可以说是步履蹒跚。大致分成三个组成部分:

1 尝试解决xrandr的报错:can't open display,后来发现是乌龙,tty下本来就是报错的。这里走了弯路。

2 一顿操作猛如虎,现在至少每次startx的时候,系统不会卡住了。也就是启动后,鼠标键盘不会卡死,可以通过Ctrl+alt+Fn组合键,切换到Tty控制台,进行后面的操作。

所做的主要操作就是升级了FreeBSD的核心,从13.1升级到14.1,并重装了xorg Xfce以及其它驱动软件包。

最后发现更新完这些软件包后,删除掉以前手工写的config文件后(/usr/local/etc/X11/xorg.conf.d/)系统能够进入xfce桌面,但是鼠标和键盘卡住。

3 解决鼠标键盘卡住的问题

操作就是安装xf86-input-evdev

pkg install xf86-input-evdev

关于no screens found的问题,值得单开一篇,文档记录:Xorg启动后报错no screens found(EE)(未解决)-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云域名注册购买和备案

文章目录 1、阿里云首页搜索 域名注册2、点击 控制台3、域名控制台 1、阿里云首页搜索 域名注册 2、点击 控制台 3、域名控制台

YOLOv11改进,YOLOv11添加DCNv4可变性卷积(windows系统成功编译),二次创新C2f结构,全网最详细教程

改进训练结果前: 二次创新C2f结构训练结果: 摘要 引入了可变形卷积 v4 (DCNv4),这是一种为广泛视觉应用设计的高效且有效的操作算子。DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1. 移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2. 优化内存访问以…

Task与 async 和await关键字使用和探讨

基本概念&#xff1a; Task (任务): 在 .NET 中&#xff0c;Task 表示一个可能会在未来完成的操作&#xff0c;可以是异步的&#xff0c;也可以是同步的。Task<TResult> 是返回结果的任务&#xff0c;而 Task 是不返回结果的任务。async 关键字: 标记一个方法为异步方法…

Linux:进程的创建、终止和等待

一、进程创建 1.1 fork函数初识 #include pid_t fork(void); 返回值&#xff1a;子进程中返回0&#xff0c;父进程返回子进程id&#xff0c;出错返回-1 调用fork函数后&#xff0c;内核做了下面的工作&#xff1a; 1、创建了一个子进程的PCB结构体、并拷贝一份相同的进程地址…

JavaScript for循环语句

for循环 循环语句用于重复执行某个操作&#xff0c;for语句就是循环命令&#xff0c;可以指定循环的起点、终点和终止条件。它的格式如下 for(初始化表达式;条件;迭代因子){语句} for语句后面的括号里面&#xff0c;有三个表达式 初始化表达式(initialize):确定循环变量的初始…

27 Vue3之unocss原子化

前置知识 什么是原子化 CSS 原子化 CSS 是一种 CSS 的架构方式&#xff0c;它倾向于小巧且用途单一的 class&#xff0c;并且会以视觉效果进行命名。 为什么使用 原子化 CSS 传统方案 制作原子化 CSS 的传统方案其实就是提供所有你可能需要用到的 CSS 工具。例如&#xff0c…

05:(寄存器开发)定时器一

定时器 1、系统定时器SysTick1.1、SysTick中断的使用1.2、使用SysTick制作延迟函数 2、基本定时器2.1、基本定时器中断的使用2.2、使用基本定时器制作延时函数 1、系统定时器SysTick 1.1、SysTick中断的使用 ①SysTcik系统滴答定时器和片上外设定时器不同&#xff0c;它在CPU…

第十一章 缓存之更新/穿透/雪崩/击穿

目录 一、什么是缓存 二、缓存更新策略 2.1. 缓存主动更新策略 2.1.1. Cache Aside模式&#xff08;主流&#xff09;‌ 2.1.2. Read/Write Through模式‌ 2.1‌.3. Write Behind模式‌ 2.1.4. 总结 三、缓存穿透 四、缓存雪崩 五、缓存击穿 5.1. 互斥锁实现 5.1.1…

C语言复习概要(四)

本文 1. 操作符的分类算术操作符关系操作符逻辑操作符 2. 二进制制和进制转换二进制与十六进制的表示进制转换算法 3. 原码、反码和补码原码反码补码 1. 操作符的分类 C语言中的操作符种类繁多&#xff0c;常用的主要操作符可以按照其功能进行如下分类&#xff1a; 算术操作符…

C++关于链表基础知识

单链表 // 结点的定义 template <class T> struct Node { T data ; Node <T> *next; //指向下一个node 的类型与本node相同 } // 最后一个node指针指向Null 生成结点&#xff1a; Node <T> * p new Node < T>; 为结点赋值: p-> data …

【微服务】服务注册与发现 - Eureka(day3)

CAP理论 P是分区容错性。简单来说&#xff0c;分区容错性表示分布式服务中一个节点挂掉了&#xff0c;并不影响其他节点对外提供服务。也就是一台服务器出错了&#xff0c;仍然可以对外进行响应&#xff0c;不会因为某一台服务器出错而导致所有的请求都无法响应。综上所述&…

LabVIEW机床加工监控系统

随着制造业的快速发展&#xff0c;机床加工的效率与稳定性成为企业核心竞争力的关键。传统的机床监控方式存在效率低、无法远程监控的问题。为了解决这些问题&#xff0c;开发了一种基于LabVIEW的机床加工监控系统&#xff0c;通过实时监控机床状态&#xff0c;改进生产流程&am…

PhotoMaker部署文档

一、介绍 PhotoMaker&#xff1a;一种高效的、个性化的文本转图像生成方法&#xff0c;能通过堆叠 ID 嵌入自定义逼真的人类照片。相当于把一张人的照片特征提取出来&#xff0c;然后可以生成你想要的不同风格照片&#xff0c;如写真等等。 主要特点&#xff1a; 在几秒钟内…

[C语言]指针和数组

目录 1.数组的地址 2.通过指针访问数组 3.数组和指针的不同点 4.指针数组 1.数组的地址 数组的地址是什么&#xff1f; 看下面一组代码 #include <stdio.h> int main() { int arr[5] {5,4,3,2,1}; printf("&arr[0] %p\n", &arr[0]); printf(&qu…

【c++】string类 (一)

简介 由于c的历史包袱&#xff0c;c要兼容c语言&#xff0c;c的字符串要兼容c语言&#xff0c;在 C 中&#xff0c;字符串通常使用两种主要的方式来表示&#xff1a; C风格字符串&#xff08;C-style strings&#xff09;&#xff1a; 依然是以 \0 结尾的字符数组。这种表示方…

设置服务器走本地代理

勾选&#xff1a; 然后&#xff1a; git clone https://github.com/rofl0r/proxychains-ng.git./configure --prefix/home/wangguisen/usr --sysconfdir/home/wangguisen/etcmakemake install# 在最后配置成本地代理地址 vim /home/wangguisen/etc/proxychains.confsocks4 17…

Web安全 - 文件上传漏洞(File Upload Vulnerability)

文章目录 OWASP 2023 TOP 10导图定义攻击场景1. 上传恶意脚本2. 目录遍历3. 覆盖现有文件4. 文件上传结合社会工程攻击 防御措施1. 文件类型验证2. 文件名限制3. 文件存储位置4. 文件权限设置5. 文件内容检测6. 访问控制7. 服务器配置 文件类型验证实现Hutool的FileTypeUtil使用…

计算机网络:计算机网络体系结构 —— OSI 模型 与 TCP/IP 模型

文章目录 计算机网络体系结构OSI 参考模型TCP/IP 参考模型分层的必要性物理层的主要问题数据链路层的主要问题网络层的主要问题运输层的主要问题应用层的主要问题 分层思想的处理方法发送请求路由器转发接受请求发送响应接收响应 计算机网络体系结构 计算机网络体系结构是指将…

简单部署vue+springboot项目

vue 参考博客 先将vue项目打包 npm run build 再创建项目文件夹front,在front中新建nginx.conf server {listen 80;server_name localhost;# 请求体的大小限制client_max_body_size 50m;# 日志文件存放地址access_log /var/log/nginx/host.access.log main;error…

openpnp - 图像传送方向要在高级校正之前设置好

文章目录 openpnp - 图像传送方向要在高级校正之前设置好笔记图像传送方向的确定END openpnp - 图像传送方向要在高级校正之前设置好 笔记 图像传送方向和JOG面板的移动控制和实际设备的顶部摄像头/底部摄像头要一致&#xff0c;这样才能和贴板子时的实际操作方向对应起来。 …