打算将OpenSUSE15.3升级至15.4吗?看完这篇文章再说吧

OpenSUSE 15.3升级到15.4过程记录

升级到Leap 15.4

目前已经成功升级到OpenSUSE 15.4,并且将大部分遇到的问题已经解决。

如果你也有升级的想法,但愿你不会遇到跟我一样的问题。

由于OpenSUSE 一直以来的 不携带h264解码器安装包,需要通过VLC提供的镜像源安装H264解码器,因此升级后遇到的问题大部分跟 H264解码器有关。

升级到15.4操作

常规的升级方式是:


# Refresh all repositories to 15.4
sudo zypper --releasever=15.4 ref

# Update the distro to 15.4
sudo zypper --releasever=15.4 dup -y

这里,由于个人定制了一些安装包版本,因此升级过程中遇到的问题比较多,使用zypper dup升级提示非常多的依赖问题,因此放弃了使用dup方式,是选择了zypper update方式。

sudo zypper --releasever=15.4 up

这时,升级的软件包不包含依赖有问题的软件包,并且达到了系统升级目的。

升级后,继续一个个的解决依赖有问题的软件包。

VLC播放器缺少H264解码器问题

这个问题是每次升级系统后都会出现的,因为升级后的系统没有安装H264解码器,所以VLC播放器无法播放视频。

添加VLC官方提供的镜像源是:

sudo zypper ar https://download.videolan.org/pub/vlc/SuSE/15.4/ VLC

添加完成后,重新安装VLC播放器:


sudo zypper ref
sudo zypper in -f --from VLC vlc libavcodec vlc-codecs ffmpeg

安装成功后,我们就可以使用VLC播放 h264编码的视频文件了。

虽然,VLC播放器安装成功了,但是播放视频时无法快进,因此选择源码编译VLC播放器。

wget -c http://get.videolan.org/vlc/3.0.17.3/vlc-3.0.17.3.tar.xz
tar Jxvf vlc-3.0.17.3.tar.xz

./configure --prefix=/usr
make -j$(nproc)

安装过程可能会提示缺少一些依赖包,缺啥安装啥就可以了。

编译过程遇到下面的问题:

ERROR   : codec/avcodec/vaapi.c:54: 26:  field ‘hw_ctx’ has incomplete type
     struct vaapi_context hw_ctx;
                          ^~~~~~
make: *** [Makefile:1445: all] Error 2

查看了源码,当前使用库已经弃用此结构体,先禁用此选项。

但接下来又遇到了其他问题,比如跟chromecast有关的问题,我就禁用了chromecast的支持。

最终使用下面方法编译成功了:

./configure --prefix=/usr --disable-a52 --disable-libva --disable-chromecast

解决了VLC播放器使用的各种问题。

mpv播放器h264解码器问题

新升级15.4版本系统的mpv存在 h264解码器问题,运行后报错信息如下:

 mpv clash_for_android.mp4 
 (+) Video --vid=1 (*) (h264 1080x2240 47.550fps)
File tags:
 Comment: Recorded by scrcpy 1.17
Failed to initialize a decoder for codec 'h264'.
Video: no video
No video or audio streams selected.

按照VLC的方式安装h264解码器依然没解决问题,虽然h264解码器库安装了,但官方提供的mpv安装包与其自带的vlc编译过程都是不携带h264解码器的。

现在有两个选择:

  1. 找到提供支持h264解码器库的mpv安装包的镜像源。
  2. 编译mpv播放器源码方式。

我选择了源码编译mpv ,具体操作如下:

git clone https://github.com/mpv-player/mpv.git
cd mpv
git checkout v0.34.1
./bootstrap.py
./waf configure --prefix=/usr
./waf build
sudo ./waf install

如果编译顺利的话,就可以使用mpv播放器了。

但编译时还是有一些依赖问题,比如下面这个关键问题:

INFO:cfg:err: Package xscrnsaver was not found in the pkg-config search path.
Perhaps you should add the directory containing `xscrnsaver.pc' to the PKG_CONFIG_PATH environment variable
No package 'xscrnsaver' found
Package xscrnsaver was not found in the pkg-config search path.  
Perhaps you should add the directory containing `xscrnsaverpc' to the PKG_CONFIG_PATH environment variable
No package 'xscrnsaver' found
INFO:cfg:from /apps/code/github/mpv-0.34.1: The configuration  failed
INFO:cfg:no ('x11 >= 1.0.0 xscrnsaver >= 1.0.0 xext >= 1.0.0 xinerama >= 1.0.0 xrandr >= 1.2.0' not found)
no ('x11 >= 1.0.0 xscrnsaver >= 1.0.0 xext >= 1.0.0 xinerama >= 1.0.0 xrandr >= 1.2.0' not found)
INFO:waflib:no ('x11 >= 1.0.0 xscrnsaver >= 1.0.0 xext >= 1.0.0 xinerama >= 1.0.0 xrandr >= 1.2.0' not found) 
Checking for X11                             : no ('x11 >= 1.0.0 xscrnsaver >= 1.0.0 xext >= 1.0.0 xinerama >= 1.0.0 xrandr >= 1.2.0' not found) 

这个问题的解决方法:

sudo zypper in -y xscreensaver libXss-devel

之后就非常顺利的编译成功了。

更详细的mpv编译过程请阅读 《源码编译系列之mpv播放器编译教程》文章。

Nvidia显卡驱动问题

如果你没有锁定默认的显卡驱动(在Yast2软件管理中可以设置锁定显卡驱动不更新),那么可能会出现显卡使用问题,因此重新安装显卡驱动是有必要的。

N卡驱动安装包来自于官网下载,Nvidia驱动地址

下载完驱动包(xxxx.run)后,继续下面的安装过程。

当然,安装显卡驱动是不可以在图形界面运行的,切换到命令行界面进行安装。


# 禁用开源显卡驱动(Nvidia驱动自动会添加,因此不需要手工添加下面内容)
sudo cat << END > /etc/modprobe.d/nvidia-installer-disable-nouveau.conf
blacklist nouveau
END


# 设置下次启动时使用命令行界面
sudo systemctl set default multi-user.target

# 重启系统
reboot


# 开始安装显卡驱动
sh /path/to/xxxx.run

# 安装成功后,需要切换会图形界面

# 设置下次启动时使用图形界面
sudo systemctl set default graphical.target

reboot


最后

总结一下,升级前后的对比情况,毕竟目前 15.4版本是候选版本,还没有发布稳定版本,所以发这篇文章的时候,我就是尝鲜一下。

  1. 升级后对4K分辨率显示效果更好,可能得益于 KDE Plasma 升级到了 5.24 LTS 版本吧。
  2. 多音频输出源切换更简单了,可以在系统托盘的小喇叭里直接选择不同输入输出源,以前需要点开设置窗口切换。
  3. 升级后显卡驱动也存在不稳定情况,比如Blender渲染比较大的文件时就直接白屏了。
  4. 其他个人编译的软件除了跟视频解码相关的软件外都没有受到影响。

这次升级还是比较顺利,不过还在继续运行一段时间,发现一个问题解决一个问题了。

最后,给大家的建议时,升级时使用 zypper up 命令升级,这样可以避免升级时的一些问题。

本来已经写完这篇文章了,但还没保存这篇文章显卡驱动就又挂掉了,还要有自动保存功能,不然就要抓狂啦。。。

看来,驱动的问题还是比较明显的,显卡驱动具体什么原因分析起来还真的比较难…

猜你喜欢

转载自blog.csdn.net/dragonballs/article/details/126110267