gentoo 上安装 xrdp (1)

2023-05-16

第一次在 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一样的配置来配置它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gentoo 上安装 xrdp (1) 的相关文章

随机推荐

  • 嵌入式总线与通信

    嵌入式总线与通信 I2C通信I2C通信的特点I2C通信协议I2C硬件连接I2C在一条数据线SDA上如何实现双向传输 xff1f xff08 如何实现半双工 xff09 SOC上的I2C通用硬件接口I2C接口与接口之间的连接I2C设备在整个A
  • jquery为动态dom元素绑定点击事件(比如动态生成的表格)

    js为动态dom元素绑定点击事件 需要给页面动态加载还未出现的元素添加事件时 xff0c 可以用jQuery的on xff0c live xff0c delegate来绑定事件 叫做委派事件 比如控制的动态生成的表格 xff0c 给一列中的
  • 嵌入式Arm+Linux中断与异常全流程讲解

    嵌入式ARM 43 Linux中断全流程讲解 ARM处理器级别的中断 异常 ARM的异常类型CPU如何检测到异常信息 进入异常处理后怎么返回前置知识 xff1a 流水线 xff0c 指令周期 xff0c 机器周期 xff0c 时钟周期复位
  • Linux设备树

    Linux设备树 1 设备树的引进与体验字符设备驱动程序的三种写法使用设备树时对应的驱动编程只想使用设备树不想深入研究怎么办 本文章基于韦东山关于设备树的课程以及自己的一些想法 xff0c 目录结构和韦东山老师的视频结构相同 1 设备树的引
  • 一些零碎知识点的索引

    一些零碎知识点的索引 前言操作系统 xff08 主要是纯Linux系统级的 xff09 Linux内存管理slab的着色写时复制的应用场景内核高端内存栈查看一个进程的地址空间分布 xff08 代码 数据 栈 xff09 匿名映射Linux中
  • Linux wget遭遇证书不可信(Wget error: ERROR: The certificate of is not trusted.)解决方法

    新安装的debian9系统使用中发现wget时提示证书问题 xff0c 搜索资料得知是缺少ca certificates包引起 Linux安装ca certificates包命令 CentOS系统 用这个 yum install y ca
  • 使用Dnsmasq来解锁Netflix(奈飞)流媒体服务

    原理 xff1a 在一台能看Netflix的IP配置Netflix解锁DNS脚本 xff0c 然后其他不能看Netflix的小鸡使用这个能看的机器的DNS xff0c 达到能看的目的 参考文章 xff1a https www 863134
  • 将它人docker镜像备份到自己docker仓库

    前提 xff1a 机器上安装好docker 1 先创建Docker hub 帐号 xff0c 并创建仓库 首先你需要一个docker hub 帐号 xff0c 记住username xff0c password xff0c email xf
  • CentOS 7 自己手动开启 BBR 加速教程

    下载更换内核 最新内核查看这里 xff1a http elrepo org linux kernel el7 x86 64 RPMS 1 运行以下代码 xff1a rpm import https www span class hljs p
  • Linux中提示-bash: wget: command not found的解决方法

    Liunx系统中 xff0c bash wget command not found是找不到命令的意思 xff0c 也就是无法执行下载命令 xff0c 主要是因为你的系统太干净了 xff0c 没有安装下载命令的控制器 xff0c 我们给系统
  • Linux如何更改root用户密码

    可以使用passwd命令来修改用户的密码 passwd命令用于对用户的密码进行管理 xff0c 可以设置 修改 删除密码 用法示例 xff1a 修改root用户的密码 sudo passwd root 或者直接passwd root
  • Debian 9快速开启Google BBR的方法

    Google BBR是一个TCP加速优化工具 xff0c 类似于锐速 xff0c 可用于优化TCP连接 xff0c 最近Google开源了其TCP BBR拥塞控制算法 xff0c 并提交到了Linux内核 根据实地测试 xff0c 在部署了
  • 解决xshell终端主机名和用户名不显示颜色

    设置完成后是这样 步骤如下 1 打开你连接的Linux服务器 2 在用户文件夹下 xff0c 打开终端 xff0c 或者输入ctrl 43 h显示隐藏文件 3 打开这个文件 bashrc 把这个注释取消掉就可以了
  • 关于安卓唯一标识的汇总及最佳做法

    前言 识别用户唯一性 xff0c 是每个做应用所遇到的问题之一 通常我们会希望有一个唯一的字符 xff0c 去识别关联我们的用户 标识符特性 Android 操作系统提供了多种具有不同行为特性的 ID 我们应该使用何种 ID 取决于以下特性
  • java字符串数组排序_在Java中对字符串数组进行排序

    允许用户使用字符串数组进行演奏 他们可以将字符串添加到数组中 xff0c 从数组中删除字符串 xff0c 在数组中搜索字符串 xff0c 最终他们将能够对数组进行排序 排序使我很困惑 我尝试了几种不同的方法 第一种方法是将数组转换为Arra
  • Arch Linux 新手安装教程

    前言 安装环境 虚拟机软件 xff1a vmware workstations pro 15 5 1安装的arch linux版本 xff1a arch linux 2020 02 01 本文的目的旨在降低新手安装arch linux的难度
  • vm虚拟机摄像头调试_双机调试

    文章来源 xff1a 华盟论坛 条件 xff1a 已经安装好Visual Studio 2015 VM Win7 x64 wdk10 为什么要搭建双机调试 xff0c 普通的应用程序可以直接在本机进行调试 xff1b 但内核程序出错 xff
  • django无法生成迁移文件_Django初始化项目环境精讲

    上一节中 xff0c 我们完成了对 settings py 文件的基本配置 xff0c 本节我们还需要对新建的项目进一步的操作 xff0c 从而完成项目的初始化工作 在 settings py配置文件详解 一文中 xff0c 我们介绍了 I
  • mysql多少g_mysql表能有多大?

    MySQL 3 22 had a 4GB 4 gigabyte limit on table size With the MyISAM storage engine in MySQL 3 23 the maximum table size
  • gentoo 上安装 xrdp (1)

    第一次在 ubuntu 上安装 xrdp 用的是 https c nergy be blog p 61 14888 后来重装了ubuntu 就对照上面脚本和 https github com neutrinolabs xrdp wiki B