ubuntu 22.04.3 升级到 linux 6.5.0-14 后出现的问题

ubuntu 22.04.3 升级到 linux 6.5.0-14 后出现的问题

自从从 6.2.0-39 升级到 Linux 6.5.0-14 以来,我遇到了 2 个问题:

#1:我无法编译 vmware Workstation Player 17 所需的模块。版本 17.0.2 build-21581411。起初它找不到 gcc-12。按照另一篇文章的建议,我安装了 gcc-12 并链接了它。通过执行以下操作:sudo apt install gcc-12

sudo ln -s -f /usr/bin/gcc-12 /usr/bin/gcc

完成上述操作后,它开始编译但失败了。以下是 vm 日志文件中的一段代码:

2024-01-16T21:14:35.424Z In(05) host-4433 make[2]: *** [/usr/src/linux-headers-6.5.0-14-generic/Makefile:2037: /tmp/modconfig-XOkG7f/vmnet-only] Error 2
2024-01-16T21:14:35.424Z In(05) host-4433 make[1]: *** [Makefile:234: __sub-make] Error 2
2024-01-16T21:14:35.424Z In(05) host-4433 make: *** [Makefile:117: vmnet.ko] Error 2
2024-01-16T21:14:35.424Z In(05) host-4433 Unable to install all modules.  See log for details.
2024-01-16T21:14:35.424Z In(05) host-4433 

#2 我遇到的另一个问题是我无法再使用 ssh 登录。当我尝试时,我收到此消息:“ssh:连接到主机 nero 端口 22:参数无效”。使用 linux 6.2.0-39 启动时,我没有遇到这些问题。

答案1

VMWare Player 17+ 似乎需要 gcc 12.3.0。Ubuntu 22.04.3 LTS 应该已经安装gcc-12,但如果没有,您可以安装它。--reinstall为了以防万一,我会使用该标志来安装它。

sudo apt install --reinstall gcc-12

然后,您可以通过运行 来检查 是否gcc是 的一部分update-alternatives(或符号链接)sudo update-alternatives --list gcc,但我最近没有看到gccupdate-alternatives。由于它是一个符号链接,因此您只需更新链接以指向gcc-12或指向 的二进制文件即可x86_64-linux-gnu-gcc-12

sudo ln -s -f /usr/bin/gcc-12 /usr/bin/gcc

或者

sudo ln -s -f /usr/bin/x86_64-linux-gnu-gcc-12 /usr/bin/gcc

非常欢迎您update-alternatives按照此处的答案将其添加到如何选择默认的gcc和g++版本?。或者,我添加了下面的几行来添加它(我只会执行gcc和而不是ccg++行等):

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/x86_64-linux-gnu-gcc-12 30

102030优先级数字,数字越大,优先级越高。

您现在可以通过运行以下命令来update-alternatives检查:gcc

$ update-alternatives --list gcc
/usr/bin/gcc-11
/usr/bin/gcc-12
/usr/bin/x86_64-linux-gnu-gcc-12

然后要配置gcc不同的版本,请运行以下命令:

$ sudo update-alternatives --config gcc
There are 3 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path                              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/x86_64-linux-gnu-gcc-12   30        auto mode
  1            /usr/bin/gcc-11                    10        manual mode
  2            /usr/bin/gcc-12                    20        manual mode
  3            /usr/bin/x86_64-linux-gnu-gcc-12   30        manual mode

Press <enter> to keep the current choice[*], or type selection number: 

VMWare Player 17.0.2 似乎与6.5.0-14-generic内核不兼容。在粘贴箱您在第 210 - 213 行发布的是以下错误:

2024-01-17T11:02:29.957Z In(05) host-3229 /tmp/modconfig-ghwCI1/vmnet-only/bridge.c:1413:11: error: implicit declaration of function ‘skb_gso_segment’; did you mean ‘tcp_gso_segment’? [-Werror=implicit-function-declaration]
2024-01-17T11:02:29.957Z In(05) host-3229  1413 |    segs = skb_gso_segment(skb, 0);
2024-01-17T11:02:29.957Z In(05) host-3229       |           ^~~~~~~~~~~~~~~
2024-01-17T11:02:29.957Z In(05) host-3229       |           tcp_gso_segment

这表明vmnet-only桥接器的驱动程序无法构建,并且错误正在调用segs与新内核不兼容的。该17.5.0驱动程序的版本已更新,并且与内核 6.5.0-14-generic 兼容。

您可以从以下位置下载 VMWare Player 17.5.0https://customerconnect.vmware.com/en/downloads/details?downloadGroup=WKST-PLAYER-1750&productId=1377&rPId=111473并安装它。

chmod +x VMware-Player-Full-17.5.0-22583795.x86_64.bundle
sudo ./VMware-Player-Full-17.5.0-22583795.x86_64.bundle

希望这可以帮助!

相关内容