Linux发行版实在是太多了,之前尝试过了Ubuntu、CentOS、Debian等等许多的发行版,用过了KDE、Xfce等一些桌面环境,感觉都不是很适合自己,之后了解到Deepin这个发行版,得知是国人精心打造的产物,而且桌面环境做得超赞,有心使用,但可能是自己的电脑是ATI+Intel双显卡的原因,导致该发行版安装后卡在桌面,试过网上的一些办法,都没什么效果,只得暂时放下转而选择先体验Manjaro DDE 发行版。

系统环境

设备:Lenovo XIAOXIN V4000
显卡:AMD & Intel
CPU:Intel core i7
系统:Manjaro 18.0.4 Illyria
DE:Deepin 15.10

双显卡问题

NVIDIA (由于电脑是ATI显卡 所以暂未尝试)

  1. bumblebee
  2. Nvidia Prime

AMD/ATI

闭源驱动:安装官方提供的闭源驱动

开源驱动:
sudo cat /sys/kernel/debug/vgaswitcheroo/switch # 查看切换状态 DIS独显 IGD集显

如果文件不存在,可能存在的问题:

  1. 闭源驱动卸载未卸载(不彻底)
  2. 内核不支持/未启用VGA_SWITCHEROO
1
2
3
4
5
6
7
xrandr --listproviders            # 使用xrandr显示可支持的显卡

xrandr --setprovideroffloadsink 1 0 # 设置此处后可以使用DRI_PRIME为某个应用选择使用哪张显卡

glxinfo | grep "OpenGL renderer" # 查看正在使用的显卡

DRI_PRIME=1 glxinfo | grep "OpenGL renderer" # 加上DRI_PRIME=1参数 为glxinfo启用独显

应用不支持fcitx中文输入法(可尝试)

打开对应命令文件,如 /usr/bin/wps
头部加入

1
2
3
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"

EFI

GPT+EFI 多次重复安装Linux不同发行版 导致 EFI多出来很多启动项

解决方案:

  1. efibootmgr
  2. 直接挂载UEFI分区 删除启动项对应文件夹 (没尝试过…)

SS/SSR代理

  1. 全局:直接在deepin DE网络中配置代理
  2. 终端:
    export http_proxy="http://127.0.0.1:12333" # or https_proxy

打包压缩

tar是Linux下最常用打包程序

  1. 基本用法
  2. tar调用 (tar在打包的同时提供调用其他压缩程序的功能),如tar -xzf xxx.gzip # -z参数代表指定调用gzip压缩程序

启动器图标

这两个路径下可以编辑

  1. /home/evan/.local/share/applications
  2. /usr/share/applications

Chrome Flash插件

chrome不同于firefox,在chrome中是自带flash插件的,当需要更新flash插件时,只需要在地址栏输入chrome://components,然后找到Adobe Flash Player插件,检查更新即可。正常情况下这样即可,不过我遇到一个问题,更新完flash插件后,打开需要flash的网页仍旧显示插件过期,并且点击升级插件会提示点击右键运行插件,不过按着提示操作后没有任何反应。尝试了很多方法后无果,几近放弃,不过无意间看见~/.config/google-chrome/PepperFlash/32.0.0.192/libpepflashplayer.so这个文件(即flash插件)没有可执行权限,抱着死马当活马医的态度,执行命令chmod +x ~/.config/google-chrome/PepperFlash/32.0.0.192/libpepflashplayer.so,赋予libpepflashplayer.so文件可执行权限,再次尝试……终于出来了。

pacman安装的软件包版本回退

我们在使用系统的过程中难免会遇到这样的问题,升级软件包后出现了一些问题或者是自己更喜欢以前的版本,这时候我们便不得不将已安装的软件包进行版本回退。pacman通常会将它下载的软件包放在系统/var/cache/pacman/pkg路径下,一般情况下pacman是不会清理这部分文件的,除非自己手动执行pacman -Sc,这个命令会保留软件包的当前有效版本,旧版本的软件包会被清理掉。我们要进行软件包版本回退,首先得在这个路径下找到软件包的旧版本,如果找不到可以到网上一些镜像源里下载到本地。之后需要执行命令sudo pacman -U xxx.pkg.tar.xz安装本地软件包。为了防止下次软件更新时再次将软件包升级,可以到/etc/pacman.conf修改添加IgnorePkg=xxx

pacman常用命令

换源

生成国内可用源列表:
$ sudo pacman-mirrors -i -c China -m rank
在弹出窗口中选择较快的源,让本地包数据库与远程软件仓库同步:
$ pacman -Syy # 或者使用pacman -Syu同时进行同步软件库与更新系统到最新状态

安装软件包

安装或者升级单个软件包,或者一列软件包(包含依赖包),使用如下命令:
pacman -S package_name1 package_name2
在不同的软件仓库中,一个软件包有多个版本(比如extra和testing)。可以选择一个来安装:

1
2
pacman -S extra/package_name
pacman -S testing/package_name

你也可以在一个命令里同步包数据库并且安装一个软件包:
pacman -Sy package_name

卸载软件包

删除单个软件包,保留其全部已经安装的依赖关系
pacman -R package_name
删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:
pacman -Rs package_name

包数据库查询

可以使用 -Q 标志搜索和查询本地包数据库。详情参见
pacman -Q --help
可以使用-S 标志搜索和查询远程同步的包数据库。详情参见
pacman -S --help

其它

下载包而不安装它:
pacman -Sw package_name
安装一个本地包(不从源里):
pacman -U /path/to/package/package_name-version.pkg.tar.gz
完全清理包缓存(/var/cache/pacman/pkg):
pacman -Scc

Manjaro无法识别USB存储设备

现象描述:Manjaro系统无法识别UBS存储设备,包含U盘和移动硬盘
问题确认:
1、看能否正常载入USB存储模块
sudo modprobe usb-storage
返回结果为:
modprobe: FATAL: Module usb-storage not found in directory /lib/modules/4.19.45-1-MANJARO
可以看到无法找到需要加载的usb-storage。查询/lib/modules目录:
ls /lib/modules
返回内容为:
4.19.49-1-MANJARO extramodules-4.19-MANJARO
发现主要问题是需要加载的版本和实际的版本不一致。初步定位是ArchLinux滚动更新版本带来的问题。

2、查看正在运营的版本和已安装的版本

1
2
3
4
5
6
➜  ~ uname -r
4.19.45-1-MANJARO
➜ ~ pacman -Q linux
linux419 4.19.49-1
➜ ~ cat /proc/version
Linux version 4.19.45-1-MANJARO (builduser@development) (gcc version 8.3.0 (GCC)) #1 SMP PREEMPT Wed May 22 17:16:41 UTC 2019

同时可以到Manjaro的内核设置页面进一步确认运行版本

确实存在实际与描述不符的问题。

解决方案:更新启动引导程序并重启
sudo update-grub
最终,问题解决。