自从从 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
,但我最近没有看到gcc
是update-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
和而不是cc
或g++
行等):
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
、10
和20
为30
优先级数字,数字越大,优先级越高。
您现在可以通过运行以下命令来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
希望这可以帮助!