用于自动内核编译的 Shell 脚本

用于自动内核编译的 Shell 脚本

我正在尝试编写一个 shell 脚本来在 Arch Linux 上构建自定义内核。

我已经成功地编写了 Arch Linux 内核编译页面中描述的所有步骤: https://wiki.archlinux.org/index.php/Kernels/Compilation/Traditional

但我被困在“重新编译 VirtualBox 来宾模块”的最后一步:

We need to do one more thing before we reboot to our new kernel. We have to recompile the VirtualBox guest module so that things like screen resizing will still work when we reboot to the new kernel.

First, make sure you have the virtualbox-guest-dkms package installed:

sudo pacman -S virtualbox-guest-dkms
If you have it installed already, pacman will ask you if you want to reinstall. Say no, but note the version number of the module.

Recompile the VirtualBox guest module by running:

sudo dkms remove  vboxguest/version-number -k kernel-version
sudo dkms install vboxguest/version-number -k kernel-version

Substitute your vboxguest version number and your kernel version string.

如果我sudo pacman -S virtualbox-guest-dkms在终端中运行,我会得到以下输出:

warning: virtualbox-guest-dkms-4.3.26-2 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Packages (1) virtualbox-guest-dkms-4.3.26-2

Total Installed Size:  5.26 MiB
Net Upgrade Size:      0.00 MiB

:: Proceed with installation? [Y/n]

如果我选择安装它,它会告诉我通过运行命令继续安装--dkms install vboxguest/version-number

由于我想让 shell 脚本尽可能健壮,因此我需要执行以下操作:

  1. 如果已经安装了 guest 模块,只需从 pacman 查询中获取版本号并退出。

然后我只需要运行以下两个命令:

sudo dkms remove  vboxguest/version-number -k kernel-version
sudo dkms install vboxguest/version-number -k kernel-version
  1. 如果未安装 guest 模块,请进行安装并dkms install vboxguest/version-number从 pacman 查询中获取命令并退出。

跑步sudo dkms install vboxguest/version-number

剩下的就和上面场景一一样了。

第一种情况是最有可能的。

有人可以帮我解决这个问题吗?

提前致谢!

相关内容