FreeBSD系统使用freebsd-update命令从14.2升级到14.3

升级操作

先升级小版本命令

# 检查系统漏洞补丁
sudo freebsd-update fetch
sudo freebsd-update install

再升级到14.3

sudo freebsd-update upgrade -r 14.3-RELEASE

速度很慢啊

执行install

# freebsd-update install

重启

# shutdown -r now

重启后无法进入xwindows。

在控制台再次执行

# freebsd-update install

执行这句的时候很长时间没有输出.....,在Installing updates...这里卡了很久:


src component not installed, skipped
Creating snapshot of existing boot environment ... done.
Installing updates...

一直卡在这里,也不是事啊。

更新pkg包

先更新pkg包(下次别这样了,这样有可能会干扰升级,还是等install结束再操作)

# pkg-static upgrade -f

后来发现就是慢...大约用了3个小时才搞定。

在更新前,sshd服务也是停的,所以这段时间也无法远程登录上来。

问题解决

现在的问题是桌面无法启动

检查驱动

kldstat | grep i915

没有啊,证明模块没有加载


查看版本信息和显卡

skywalk@x250:~ % pciconf -lv | grep -B4 -i displaysubclass   = HOST-PCI
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

尝试手工编译

cd /usr/ports/graphics/drm-61-kmod/
make BATCH=yes install clean
cd /usr/ports/x11-drivers/xf86-video-intel/
make install clean

报错

尝试更新ports

报错,先git stash再git pull

git stash

git pull报错

git pull -f
Updating ec2fdac123..a4ce4534b0
error: The following untracked working tree files would be overwritten by merge:

永久删除未跟踪文件并git pull

git clean -fd
git pull -f

编译安装drm-61-kdm失败

make MAKE_JOBS_UNSAFE=yes install
===>  Building for drm-61-kmod-6.1.128.1403000_5
/bin/mkdir -p /usr/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_4/obj
(cd /usr/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_4 ; /usr/bin/env MAKEOBJDIRPREFIX=/usr/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_4/obj KMODDIR="/boot/modules" SYSDIR="/usr/src/sys" NO_XREF=yes XDG_DATA_HOME=/usr/ports/graphics/drm-61-kmod/work  XDG_CONFIG_HOME=/usr/ports/graphics/drm-61-kmod/work  XDG_CACHE_HOME=/usr/ports/graphics/drm-61-kmod/work/.cache  HOME=/usr/ports/graphics/drm-61-kmod/work PATH=/usr/ports/graphics/drm-61-kmod/work/.bin:/home/skywalk/py311/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/usr/ports/graphics/drm-61-kmod/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  CC="cc" CFLAGS="-O2 -pipe  -fno-strict-aliasing "  CPP="cpp" CPPFLAGS=""  LDFLAGS=" " LIBS=""  CXX="c++" CXXFLAGS="-O2 -pipe -fno-strict-aliasing  " BSD_INSTALL_PROGRAM="install  -s -m 555"  BSD_INSTALL_LIB="install  -s -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444" /usr/bin/make obj)
`obj' is up to date.
make: cannot open Makefile.make: stopped in /usr/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_4
*** Error code 1Stop.
make: stopped in /usr/ports/graphics/drm-61-kmod

编译安装drm-kmod

cd drm-kmod/
root@x250:/usr/ports/graphics/drm-kmod # make install clean

不管用

或者没装上?

回滚回13.2版本

freebsd-update rollback

回滚成功

freebsd-update rollback
src component not installed, skipped
Uninstalling updates...done.

回滚后桌面也出了问题,尝试解决

重新安装drm-515-kmod

sudo pkg install drm-515-kmod

加载内核

kldload i915kms

在startxfce4启动桌面,启动成功!

更新/usr/src目录

非必要步骤

# git clone --depth 1 https://git.FreeBSD.org/src.git /usr/src 

再来一遍(成功)

升级小版本

sudo freebsd-update fetch ; sudo freebsd-update install

重启

# shutdown -r now

重启后升级到14.3

sudo freebsd-update upgrade -r 14.3-RELEASE

更新后install

# freebsd-update install

 再次重启

# shutdown -r now

重启后再来一次install

# freebsd-update install

然后删除并重新安装drm-kmod

pkg delete drm-kmod && pkg install drm-kmod

好了,桌面进去了!

总结

需要严格执行顺序

先小升级

# 检查系统漏洞补丁
sudo freebsd-update fetch
sudo freebsd-update install

升级后最好重启。

再大升级,升级到14.3

sudo freebsd-update upgrade -r 14.3-RELEASE

执行install

# freebsd-update install

install之后重启

# shutdown -r now

重启后再小升级

sudo freebsd-update install

一直执行这个命令到提醒没有新更新为止。一般执行一次即可。

删除并重装 drm-kmod

如果这时候无法进入桌面,报类似这样的错误:

KLD drm.ko: depends on dmabuf - not available or version mismatch

那么就删除并重装 drm-kmod:

pkg delete drm-kmod && pkg install drm-kmod

好了,完成了,桌面也进去了

调试

FreeBSD升级到14.3重启后报错

depends on drmn

dmabuf -not available or version mismath

drmn  -not available or version mismath

升级drm-kmod

pkg upgrade drm-kmod 

不行....

dmesg可以看到报错KLD drm.ko: depends on dmabuf - not available or version mismatch

KLD i915kms.ko: depends on drmn - not available or version mismatch
linker_load_file: /boot/modules/i915kms.ko - unsupported file type
link_elf_obj: symbol linux_kfree_async undefined
linker_load_file: /boot/modules/dmabuf.ko - unsupported file type
KLD drm.ko: depends on dmabuf - not available or version mismatch
linker_load_file: /boot/modules/drm.ko - unsupported file type
KLD i915kms.ko: depends on drmn - not available or version mismatch
linker_load_file: /boot/modules/i915kms.ko - unsupported file typeKLD i915kms.ko: depends on drmn - not available or version mismatch
linker_load_file: /boot/modules/i915kms.ko - unsupported file type
link_elf_obj: symbol linux_kfree_async undefined
linker_load_file: /boot/modules/dmabuf.ko - unsupported file type
KLD drm.ko: depends on dmabuf - not available or version mismatch
linker_load_file: /boot/modules/drm.ko - unsupported file type

这里有类似问题:Solved - upgrading from 14.2 to 14.3 didn't went well | The FreeBSD Forums

编辑文件:/usr/local/etc/pkg/repos # vi kmods.conf

 # vi /usr/local/etc/pkg/repos/kmods.conf

加入内容

FreeBSD-kmods: {url: "pkg+https://pkg.FreeBSD.org/${ABI}/kmods_latest",mirror_type: "srv",signature_type: "fingerprints",fingerprints: "/usr/share/keys/pkg",enabled: yes
}
   # pkg update# pkg upgrade

然后

pkg upgrade -r FreeBSD-kmods

运行的挺好,但是问题没解决

这个小文件intel-kms-pciid-checker.sh 自动检测、下载驱动

intel-kms-pciid-checker.sh
#!/bin/sh# Short:
#    Checks which kms driver to use with your Intel integrated graphics.
#
# File:
#    intel-kms-pciid-checker.sh
#
# Description:
#    Downloads the parts of the driver source that contain the pciids and then matches the pciid
#    of your Intel integrated graphics against the sourcecode.
#    Does not use svn or portsnap, so nothing is installed or changed in your FreeBSD installation.
#    The relevant files are simply fetched from svn.freebsd.org and Github and stored in the
#    directory this script is run from. No need for elevated permissions.
#
# Howto:
#    Simply put it in your home directory and run it.
#
# Author:
#    madde
#
# Date:
#    25.07.2018if [ ! -f drm_pciids.h_BASE ]; thenfetch -o drm_pciids.h_BASE https://svn.freebsd.org/base/releng/11.2/sys/dev/drm2/drm_pciids.h
fiif [ ! -f i915_pciids.h_DRM-NEXT-KMOD ]; thenfetch -o Makefile_DRM-NEXT-KMOD https://svn.freebsd.org/ports/head/graphics/drm-next-kmod/MakefilePORTVERSION=`grep PORTVERSION Makefile_DRM-NEXT-KMOD | cut -f 2`GH_TAGNAME=`grep GH_TAGNAME Makefile_DRM-NEXT-KMOD | cut -f 2`echo PORTVERSION=$PORTVERSIONfetch https://codeload.github.com/FreeBSDDesktop/kms-drm/tar.gz/$GH_TAGNAME?dummy=/FreeBSDDesktop-kms-drm-$PORTVERSION-$GH_TAGNAME_GH0.tar.gztar -Oxf FreeBSDDesktop-kms-drm-$PORTVERSION-$GH_TAGNAME_GH0.tar.gz --include *i915_pciids.h > i915_pciids.h_DRM-NEXT-KMODrm Makefile_DRM-NEXT-KMOD FreeBSDDesktop-kms-drm-$PORTVERSION-$GH_TAGNAME_GH0.tar.gz
fipciid=`pciconf -l | grep ^vga | cut -d " " -f 3 | cut -c 6-11`
printf "\nYour "
dmesg | grep -m1 CPU:
echo "pciid to match: $pciid"base_result=`grep -i $pciid drm_pciids.h_BASE | cut -f 2`
drm_next_kmod_result=`grep -i $pciid i915_pciids.h_DRM-NEXT-KMOD | cut -f 2`
printf "\nSupport in the base driver: ${base_result:-No match}"
printf "\n\nSupport in drm-next-kmod: ${drm_next_kmod_result:-No match}\n\n\n"echo "Result:"
if [ -z "$base_result" ]; thenprintf "Your graphics isn't supported "if [ -z "$drm_next_kmod_result" ]; thenecho "by neither the driver in base or drm-next-kmod.";exitelseprintf "by the driver in base,\nbut the drm-next-kmod port supports it.\n"echo "Fetch or update your ports tree:"echo "# portsnap fetch extract"echo "or..."echo "# portsnap fetch update"echo "Fetch sources:"echo "# svnlite co https://svn.freebsd.org/base/releng/11.2 /usr/src/"echo "% cd /usr/ports/graphics/drm-next-kmod"echo "# make && make install"echo "To /etc/rc.conf, add the following line:"echo "kld_list=\"/boot/modules/i915kms.ko\""echo "In case you have created xorg.conf or driver-intel.conf remove it."echo "Reboot. That's it.";exitfi
fiecho "Your graphics is supported by the driver in base, no need to install drm-next-kmod."
echo "To /etc/rc.conf, add the following line:"
echo "kld_list=\"i915kms\""
echo "In case you have created xorg.conf or driver-intel.conf remove it."
echo "Reboot. That's it."

发现apt也没有了

晕了,应该是pkg,pkg还在

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

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

相关文章

一键拖动去除文件夹及文件名称的空格

经常会碰见文件夹,以及其中文件命名有空格的情况:这些空格对有些代码程序不友好,做了一个一键拖动去除文件名称空格 只用把文件夹或者多个文件拖动到bat代码上就可以一键搞定 分为两个文件,需要放在一个目录下: replac…

Roo Code:用自然语言编程的VS Code扩展

在编程的世界里,常常需要记忆各种复杂的命令和语法,与机器进行“对话”。但 如果使用Roo Code,就可以让编程交流变得像日常对话一样简单自然。用自然语言“打字”交流 Roo Code的核心设计理念是理解自然语言。这意味着,无需掌握任…

window显示驱动开发—视频呈现网络简介

视频呈现网络 (VidPN) 管理器是 DirectX 图形内核子系统 (Dxgkrnl.sys) 的组件,负责管理连接到显示适配器的监视器和其他显示设备的集合。 VidPN 经理的职责包括:响应热插拔和拔下监视器。当连接的监视器集更改时,维护和更新一组可用的显示模…

安卓13_ROM修改定制化-----打开摄像头调用相机功能 实现无人直播

无人直播功能的实现而修改手机固件,让打开摄像头时默认启动相机功能,需要理解安卓系统中摄像头调用的流程 ,而相机应用是通过绑定该服务实现功能的。 通过博文了解💝💝💝 1💝💝💝-----了解修改无人直播功能实现的核心原理 2💝💝💝-----修改rom 实现更改…

系统架构设计师——【2024年上半年案例题】真题模拟与解析(二)

系统架构设计师——【2024年上半年案例题】真题模拟与解析(二)试题三:微服务架构与缓存策略 题目背景: 某电商公司计划将其单体架构的系统重构为微服务架构,以应对日益增长的业务复杂性和用户并发请求。新系统划分为用…

加固笔记本是什么意思?加固笔记本图片

在现代信息化社会中,笔记本电脑已经成为人们学习、办公和娱乐的必备工具。然而,我们常见的笔记本大多用于相对稳定、舒适的环境中,强调的是轻薄、便携和性能。但在一些极端复杂的行业和场景中,普通笔记本往往难以胜任。比如沙漠勘…

CSS高级技巧---精灵图、字体图标、布局技巧

1、精灵图1)原理核心原理:将网页中的一些小背景图像整合到一张大图中,这样服务器只需要一次请求就可以了。精灵技术的目的:为了有效减少服务器接收和发送请求的次数,提高页面的加载速度。2)使用使用精灵图核…

【CMake】环境变量

目录 一.环境变量简单介绍 1.1.示例1——设置与清除 1.2.示例2——全局唯一性和全局可见性 1.3.示例3 1.4.示例4 1.5.示例5 一.环境变量简单介绍 什么是环境变量? 我们看看官网是怎么说环境变量的:cmake-language(7) — CMake 4.1.1 Documentation…

Mysql杂志(十四)——Mysql逻辑架构

Mysql逻辑架构 这个图相信大家并不陌生,这个就是mysql的逻辑结构图下面是主包让AI生成的翻译后的逻辑结构图: 我们先来看看各个部分的作用是什么 第一层:客户端连接层 (Client Layer) 这一层负责处理所有客户端连接到服务器的请求。责任就…

Git 版本回退与撤销修改

作为版本控制管理器,Git应当具备版本回退等一系列功能——它的应用场景也很常见,当你在工作区开发时,忽然发现:怎么我这版本写的代码还不如上一版本好?这时,版本回退功能就派上用场了。一.版本回退1.概览首…

学习日记-JS+DOM-day54-9.12

1.javascript基本说明知识点核心内容重点JavaScript基础控制HTML内容与属性,实现动态行为(如开灯/关灯效果)src属性路径修正(./与../的区别)前端三要素HTML(内容)、CSS(样式&#xf…

使用tree命令导出文件夹/文件的目录树( Windows 和 macOS)

你可以在终端(命令提示符)中使用 tree 命令来清晰直观地查看和导出文件夹的目录结构。下面我会详细告诉你如何在 Windows 和 macOS 上使用它。 🖥️ tree 命令基本用法 tree 命令的核心作用是以树状图的形式展示指定路径下的目录和文件结构。…

GrapeCity Documents V8.0 Update2 重磅发布:性能飞跃、AI 赋能与文档处理全流程升级

作为葡萄城旗下服务端文档组件库,GrapeCity Documents(简称"GcDocs")凭借跨平台、高兼容的优势,已成为 众多开发者构建文档生成、编辑、转换与管理系统的首选。 近日,GcDocs 迎来 V8.0 Update2 版本更新&am…

水质在线监测系统御控物联网解决方案

一、行业背景与需求痛点水质安全是饮用水供应、工业生产、生态保护的核心要素。随着《水污染防治行动计划》的深入实施,传统水质监测方式面临三大挑战:时效性不足:人工采样-实验室分析周期长达24-72小时,难以实时捕捉污染事件&…

【完整源码+数据集+部署教程】仓库物品分类检测图像分割系统源码和数据集:改进yolo11-convnextv2

背景意义 研究背景与意义 随着现代物流和仓储管理的快速发展,物品分类与检测技术在提高仓库运营效率、降低人工成本方面发挥着越来越重要的作用。传统的物品管理方式往往依赖人工识别和分类,效率低下且容易出错。为了解决这一问题,基于计算机…

浏览器稳定性提升之路:线上崩溃率优化中的 Return 与 CHECK 之争

一、前言在大型 C 工程(例如 Chrome 浏览器内核)中,开发者经常会遇到这样的选择: 到底应该在关键点使用 CHECK 直接崩溃,还是使用 return、LOG 记录错误然后继续执行?这看似只是一个代码风格问题&#xff0…

【数据结构与算法Trip第3站】双指针

我们来详细讲解一下算法中非常常用且重要的技巧——双指针法。 这是一个概念清晰但应用极其广泛的技术,掌握它能帮助你高效解决许多问题。 一、什么是双指针法? 核心思想:顾名思义,就是在遍历对象(通常是数组或链表&am…

时序数据库选型指南:基于大数据视角的IoTDB应用优势分析详解!

目录 一、时序数据库选型的基本原则 1.1 数据特征与需求分析 1.1.1 数据规模与写入负载 1.1.2 查询需求 1.1.3 数据保留与归档策略 1.1.4 系统扩展性与高可用性 1.2 技术架构与系统性能评估 1.2.1 写入性能 1.2.2 查询性能 1.2.3 数据压缩能力 1.2.4 高可用性与灾备…

缓存三大劫攻防战:穿透、击穿、雪崩的Java实战防御体系(三)

第三部分:缓存雪崩——大量key失效引发的“系统性崩溃” 缓存雪崩的本质是“大量缓存key在同一时间失效,或缓存集群整体故障”,导致请求全量穿透至DB,引发“系统性崩溃”。 案例4:电商首页的“批量过期”灾难 故障现场…

解决docker配置了镜像源但还会拉取官方镜像源的问题

🏓我们有时候虽然配置了Docker国内镜像源,但是还是会绕过去请求官方镜像源(docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded),现在我们就来解决一…