gentoo 上安装 xrdp (1)

第一次在 ubuntu 上安装 xrdp 用的是 https://c-nergy.be/blog/?p=14888 ;

后来重装了ubuntu, 就对照上面脚本和 https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian-8 , 一步步手工执行,以便进一步了解系统。

但我现在主力系统已经从 ubuntu 换成 gentoo, 需要在 gentoo 上安装 xrdp, 但 xrdp 目前不包含在 gentoo 官方 repository 中, 且官方支持不推荐手工源码编译安装,而是建议使用名叫 ace 的非官方 overlay (https://forums.gentoo.org/viewtopic-p-8544259-highlight-.html#8544259). 下面记录下我的安装步骤,在用 OpenRC 和 systemd 的系统上都试过。

首先根据 https://wiki.gentoo.org/wiki/Eselect/Repository 添加 ace repository:

emerge --ask app-eselect/eselect-repository
eselect repository list
eselect repository enable ace
emerge --sync ace

然后安装 xrdp:

emerge --ask net-misc/xrdp

这里会提示包是mask 掉的,我是通过如下方式 unmask:

emerge --ask --autounmask --autounmask-write net-misc/xrdp

确认 Yes 添加配置更改后再运行:

dispatch-conf

下面会提示添加的配置更改项, 按 u 表示接受更改, 如果有多个候选配置更改,提示内容不是当前安装相关的,可以按 n 切换到下一个配置更改。

完了再执行

emerge --ask net-misc/xrdp

并yes 确认安装。

在使用 systemd 的系统上(openrc 的类似,只是命令不同,略过),用如下命令启动服务并查看状态:

systemctl enable xrdp-sesman.service
systemctl enable xrdp.service
systemctl start xrdp-sesman.service
systemctl start xrdp.service
systemctl status xrdp-sesman.service
systemctl status xrdp.service

接下来可以安装并使用 xfreerdp 来测试 xrdp :

emerge --ask net-misc/freerdp
xfreerdp /v:192.168.100.109 /u:username /p:password /size:800x600 /sound:latency:100

/v 后面ip地址换成实际地址, /u 后面用户名使用一个不同于当前登录的用户名(因为同一账户同时登录多次的问题有些复杂)

运行命令后,我看到窗口闪现了一下就退出了,/var/log 目录下的 log 里面也说 authentication 通过了啥的, 支持人员给指了路 https://github.com/neutrinolabs/xrdp/issues/1796 , 我在 username 用户的$HOME 下面建立了 .xinitrc 文件,指明了启动桌面环境就可以了。

下面是 .xinitrc 内容, 一开始的xrandr 是用来设屏幕分辨率的,远程桌面里并不起作用,我系统没有激活 Display Manager (sddm,gdm 啥的),开机命令行登录后直接运行 startx 进入图形界面。

xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --addmode VGA-1 "1920x1080_60.00"

exec dbus-launch --exit-with-session startplasma-x11
#exec dbus-launch --exit-with-session gnome-session

export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE="fcitx"
export GTK_IM_MODULE="fcitx"

但登进去后发现两个问题:
1。拼音输入不行,提示无输入窗口
2。声音无法工作,运行 pulseaudio -k 后也不行,
运行 pactl list modules short 显示结果里没看到 xrdp 相关 pulseaudio module

之前ubuntu 上配的至少拼音还行,声音也有,只是有卡顿: https://www.zhihu.com/question/439924648

有进展再接着写吧。

更新:拼音的问题解决了: 首先,xfreerdp 登录后运行 echo $QT_IM_MODULE , 返回为空,说明 .xinitrc 里面设置的环境变量 xfreerdp session 更本没用;

编辑 startwm.sh 文件:

nano /etc/xrdp/startwm.sh

把环境变量设置部分放在对 .xinitrc 调用部分前面,拼音就可以用了:

#!/bin/sh

# try hard to respect Gentoo's wm choice
. /etc/profile
[ -f /etc/rc.conf ] && . /etc/rc.conf
export XSESSION

export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE="fcitx"
export GTK_IM_MODULE="fcitx"


USERINITRC="$HOME/.xinitrc"
if [ -f "$USERINITRC" ]; then
    . "$USERINITRC"
else
    . /etc/X11/xinit/xinitrc
fi

这和 https://fcitx-im.org/wiki/Configure_(Other)/zh-hans 里的如下描述是一致的:

也许您在用vncserver或者其他什么的,您需要找出您的启动脚本,比如
vncserver用的是/.vnc/xstartup。用/.xinitrc一样的配置来配置它。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值