.. _jetson_xfce4: ===================== Jetson运行Xfce4桌面 ===================== 不知道为何NVIDIA Jetson nano默认的桌面是庞大而沉重的Gnome 3环境,这对仅仅4G内存的ARM系统来说是非常占用资源的。启动缓慢,操作经常卡顿。(不过,应该也和我使用较为慢速的SD卡有关)。 我的目标是类似在 :ref:`jetson_remote` 中所述,使用轻量级的Xfce4桌面替换沉重的Gnome 4,将更多的系统资源用于计算。 Xfce和Xubuntu区别 =================== 有两种方式可以安装Xfce桌面: - 安装 ``xfce4`` 软件包获得基本的Xfce4桌面 - 安装 ``xubuntu-desktop`` 软件包获得完整的Xubuntu体验 - 安装xfce4:: sudo apt install xfce4 - (我没有选择)安装完整XUbuntu:: sudo apt install xubuntu-desktop 在安装 xubuntu-desktop 时会提示选择 display manager ,可以选择 ``lightdm`` 获得更轻量级显示管理器。 .. note:: 我感觉 xubuntu 安装的软件包实在太多了,包含了大量的打印驱动,桌面插件甚至带上了firefox。而我实际上只需要非常简单的工作环境。所以,我最终只选择 ``xfce4`` 。 清理Unity ========= Ubuntu自带的Unity是一个深度定制的Gnome3环境,对于我来说使用非常不便且占用资源。所以我在安装了xfce4之后,希望清理掉Unity。不过,这是一个具有风险的操作, 清理:: sudo apt remove nautilus gnome-power-manager gnome-screensaver gnome-termina* gnome-pane* gnome-applet* gnome-bluetooth gnome-desktop* gnome-sessio* gnome-user* gnome-shell-common compiz compiz* unity unity* hud zeitgeist zeitgeist* python-zeitgeist libzeitgeist* activity-log-manager-common gnome-control-center gnome-screenshot overlay-scrollba* && sudo apt-get install xubuntu-community-wallpapers 安装lightdm显示管理器(可选,我现在已经默认采用字符终端启动,所以不再需要显示管理器):: sudo apt install lightdm 清理不需要的软件:: sudo apt autoremove lightdm登陆(不再使用) ---------------------- lightdm登陆时,虽然密码输入正确,但是提示 ``Failed to start session`` ,不过 :ref:`jetson_remote` 还能够正常工作。 导致 lightdm 无法登陆xfce4桌面的解决方法参考 `How to solve ‘Failed to start session’ with LightDM and Xfce `_ ,原因是一些错误配置文件导致的,主要发生在Ubuntu Server上安装Xfce或者在Ubuntu上从一个旧的桌面版本切换到奥Xfce会话。 .. note:: Ubuntu的LightDM是为Unity配置的,所以需要特别为Xfce配置LightDM。 - 删除 Unity配置文件:: rm /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf - 为LightDM创建Xfce配置文件 ``/usr/share/lightdm/lightdm.conf.d/50-xfce-greeter.conf`` 内容如下:: [SeatDefaults] greeter-session=unity-greeter user-session=xfce 然后重启系统 .. note:: 使用lightdm,登陆桌面以后,观察 ``top`` 输出,我发现 ``/usr/sbin/unity-greeter`` 占用内存居然有105MB(lightdm),占用了实际使用内存的1/7,让我非常无语。如果不是为了远程访问xrdp,或许还是从字符终端直接使用 ``startx`` 启动桌面比较节约内存。 - 如果希望禁止guest用户登陆并且启用自动登陆选项,添加以下行:: allow-guest=false autologin-user= autologin-user-timeout=0 配置默认字符启动 ------------------ 为了能够尽可能节约系统资源,并且采用 :ref:`xpra` 远程访问Jetson服务器,我将系统修订成默认字符终端启动:: rm /etc/systemd/system/default.target ln -s /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target - 在用户目录添加 ``~/.xinitrc`` 内容如下:: exec startxfce4 - 在字符界面通过 ``startx`` 命令启动图形系统可以解决窗口管理器消耗的系统资源(节约内存)。 移除xfce4 ============ 如果不再使用xfce4,则可以使用以下命令移除:: sudo apt purge xubuntu-icon-theme xfce4-* sudo apt autoremove 如果是通过 xubuntu-desktop 软件包安装Xfce,则使用如下命令移除:: sudo apt purge xubuntu-desktop xubuntu-icon-theme xfce4-* sudo apt purge plymouth-theme-xubuntu-logo plymouth-theme-xubuntu-text sudo apt autoremove 此外可以反向把lightdm回退到gdm3:: sudo apt remove -y lightdm sudo apt install --reinstall -y gdm3 sudo reboot 中文输入 ========== .. note:: 我现在使用 :ref:`jetson_xpra` ,没有特别的中文输入需求,则可以忽略这段配置。 默认安装的Xfce4已经很好显示中文,字体也非常美观。和 :ref:`xfce` 一样安装fcitx中文输入法:: #apt install fcitx fcitx-sunpinyin apt install fcitx-bin fcitx-googlepinyin 进入xfce4桌面,在终端运行 ``fcitx-configtool`` 命令提示输出:: fcitx-configtool 在 ``Input Method Configuration`` 中点击 ``+`` 添加输入方法,注意需要去除 ``Only Show Current Language`` 的勾选,然后就可以选择 ``Google Pinyin`` - 传统的 ``fcitx`` 的图标比较简陋,可选安装新的UI:: # Remove classic UI sudo apt remove fcitx-ui-classic # Install new UI sudo apt install fcitx-ui-qimpanel - 需要修改 ``XMODIFIERS`` ,即在 ``~/.xinitrc`` 添加:: export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx .. note:: 详细Xfce4设置请参考 :ref:`xfce` 参考 ===== - `Install Xfce Desktop on Ubuntu and Turn it Into Xubuntu `_ - `Ubuntu 19.04: Install Xfce for desktop environment `_ - `Fcitx Chinese Input Setup on Ubuntu for Gaming `_