摘要
本文记录了我在Hyper-V里安装manjaro KDE Edition的过程,以及我遇到的一些问题和解决办法。本文基于 Windows 10.0.20197 和 manjaro KDE 20.0.3。
基础设置
在Hyper-V管理器里创建新的虚拟机,需要注意以下几点:
- 选择创建Generation 2类型虚拟机
- 不要使用动态内存 (uncheck
Use Dynamic Memory for this virtual machine
) - 关闭Secure Boot
- 添加DVD Drive并且选择加载manjaro iso
- (可选)关掉Check Points
启动X Window
在使用manjaro安装盘启动VM之后,系统不会自动启动X Window,屏幕底部此时显示类似这样的内容:
Failed to start Simple Desktop Manager.See ‘systemctl status sddm.service’ for details.
不用紧张,因为manjaro的Live CD中缺少相关的驱动程序,所以这是正常的情况。可以按 Alt+F2
组合键打开一个新的 tty
会话,然后根据屏幕上的提示输入用户名和密码登录进命令行模式。然后用下面的命令安装驱动并启动X Window。
su
pacman –Sy
pacman –S xf86-video-fbdev
systemctl restart sddm
进入X Window后,双击 Install manjaro Linux
图标启动安装程序。整个过程非常简单,就不再赘述。由于前面安装的驱动只是针对Live CD,所以在把manjaro安装到硬盘并重启系统后,我们会再次遇到缺少 xf86-video-fbdev
的问题,但是这次的现象是卡在 Hyper-V
logo界面。可以重复上述步骤和命令安装xf86-video-fbdev
。
安装xrdp包
Linux系统需要安装 xrdp
软件包来使用Hyper-V Enhanced Session功能的。不同于Ubuntu,manjaro默认的软件包源中是没有 xrdp
包的,我们需要自己编译和安装 xrdp
。幸好微软的这个repo里提供了arch的编译和安装脚本,我们直接使用就好。
- 我们可以下载linux-vm-tools源码zip包或者用git把它克隆到本地。
- 打开
Konsole
依次运行下面三条命令:
cd <linux-vm-tools-folder>/arch
./makepkg.sh
sudo ./install.sh
编辑.xinitrc
我们需要对 ~/.xinitrc
文件进行两处修改,否则在启用Enhanced Session后会无法登录到系统。
- 默认的
.xinitrc
文件中指定的DEFAUTL_SESSION
是startkde
,但是manjaro
中应该使用startplasma-x11
,所以我们需要将
DEFAUTL_SESSION=startkde
修改为
DEFAUTL_SESSION=startplasma-x11
2. 修改dbus参数,将
local dbus_args=(--sh-syntax --exit-with-session)
里的 --exit-with-session
删除,修改为
local dbus_args=(--sh-syntax)
启用Enhanced Session
- 关闭(
shutdown
)正在运行的manjaro虚拟机 - 在Hyper-V宿主机(
Windows
)中按Win+X
组合键,然后选择Windows PowerShell (Admin)
- 在打开的窗口中运行下面的命令:
Set-VM -VMName <YOUR-VM-NAME> -EnhancedSessionTransportType HvSocket
如果不知道VMName的话可以用
Get-VM
命令查询。
4. 重新启动manjaro虚拟机就可以通过Enhanced Session连接了。
后续:安装官方版本的VS Code
微软官方并没有为manjaro或者arch Linux创建VS Code安装包。manjaro官方的软件源中虽然有开源版本的VS Code但是有一些常用的插件(比如 Remote Development
和 Visual Studio IntelliCode
)并不支持开源版本的VS Code,所以使用官方版本的VS Code会有更好的体验。我创建了一个脚本来半自动的更新VS Code。步骤非常简单:建立一个名为 update_vscode.sh
的文件,并为其添加可执行属性 ( chmod +x update_vscode.sh
)。其内容如下:
你可以修改 VSCODE_HOME
把VS Code安装到其他目录。
后续2: 使用lightdm替换sddm
sddm是Manjaro KDE Edition默认的显示管理器,但是它的登录界面( sddm-greeter
)有CPU占用高的问题,而且这个问题已经存在了超过5年。看起来官方并没有解决它的意思了。既然 sddm
官方不解决,那么就换一个显示管理器吧。在manjaro里安装和启用 lightdm
很简单,只要这么两条命令:
sudo pamac -S lightdm lightdm-slick-greeter lightdm-settings
sudo systemctl enable lightdm.service --force
重启之后就可以卸载 sddm
了,同样也很简单
sudo pacman -R sddm-kcm sddm
然后就再也没有奇怪的CPU占用问题了。