Linux 下 GNOME 声音设置里只有“假输出”

这几天换用 Arch Linux 之后遇到两次了,今天终于找到了解决方法。

在网上查了相关资料,在中文社区没有找到比较靠谱的解释。于是查了一下这个假输出,英文原文是 “Dummy Output”(在 Launchpad 的翻译站上找到的),换用英文 Google 后得到了以下解决方法(适用于 GNOME 3 / Unity 等桌面环境)。

Reference: http://forums.opensuse.org/english/get-technical-help-here/tumbleweed/465124-pulseaudio-only-dummy-output.html

遇到这个问题的原因是,我用 gnome-session-quit –logout 注销了,再进来就没有声音了,查看上面的声音设置,只有一个“假输出”(图是恢复后的了)。

解决方法就是——将你的用户加入 audio 组,并重启 pulseaudio。

sudo gpasswd -a $USER audio
sudo killall pulseaudio

顺便说一句:Infinality 补丁版的 FreeType 渲染效果太 TMD 好了!麻麻再也不用担心 Linux 上的字体丑了~

在 Linux 下配置罗技 V470 鼠标的滚轮横向按钮功能

由于罗技的 SetPoint 驱动没有 Linux 版,也就没办法自定义横向滚轮的功能。这里介绍一下如何通过 X.org 自带的配置功能来实现。

我想要实现的是横向滚轮后退和前进网页的功能,有些复杂的功能是不能通过修改配置实现的。测试环境:Ubuntu 12.10 x86,X.Org X Server 1.13.0 / X Protocol Version 11,鼠标设备是罗技 V470 蓝牙鼠标。当然,理论上这些配置也都适用于任何使用 X 的操作系统,以及任何使用标准 X.org 输入驱动的鼠标设备,也可以调整包括左右键、滚轮上下以及大部分自带按键。

1. 使用 xev 检查需要调整的键号。在 Xorg 下的终端中启动 xev,在弹出的白色框中,按下想要调整的鼠标按钮(我这里就是横向滚轮咯),会看到终端中出现类似下面的信息:

ButtonPress event, serial 41, synthetic NO, window 0x4400001,
    root 0xaf, subw 0x0, time 41339809, (78,81), root:(794,134),
    state 0x10, button 6, same_screen YES

ButtonRelease event, serial 41, synthetic NO, window 0x4400001,
    root 0xaf, subw 0x0, time 41339809, (78,81), root:(794,134),
    state 0x10, button 6, same_screen YES

ButtonPress event, serial 41, synthetic NO, window 0x4400001,
    root 0xaf, subw 0x0, time 41340743, (78,81), root:(794,134),
    state 0x10, button 7, same_screen YES

ButtonRelease event, serial 41, synthetic NO, window 0x4400001,
    root 0xaf, subw 0x0, time 41340743, (78,81), root:(794,134),
    state 0x10, button 7, same_screen YES

在按键过程中不要移动鼠标或按键盘(否则会产生很多事件),并记下上面的数据中 button 后面的数字,这就是你刚才按的键号。以上四个事件分别代表:按钮 6(滚轮左)按下、弹起、按钮 7(滚轮右)按下、弹起。

2. 使用 xinput 检查需要调整的设备名称。在连接鼠标的情况下,终端中运行 xinput 命令,即可获得类似下面的信息:

⎡ Virtual core pointer                     id=2  [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer               id=4  [slave  pointer  (2)]
⎜   ↳ Bluetooth Laser Travel Mouse             id=11 [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                 id=16 [slave  pointer  (2)]
⎣ Virtual core keyboard                    id=3  [master keyboard (2)]
...(以下省略)

从中很容易看出触摸板及鼠标的名称,复制下其中要调整的鼠标名称,我这里就是“Bluetooth Laser Travel Mouse”。

3. 修改 xorg.conf,调整鼠标的按键映射表(Button Mapping)。按照 X.org 的规范,用户配置文件应该放置在 /etc/X11/xorg.conf.d(如果没有请自行创建)文件夹下。在此创建一个配置文件 20-xiaodu-mouse.conf 并使用以下内容(点此下载):

Section "InputClass"
 Identifier "Xiaodu @ Du9L.com - Logitech Mouse Mapping"
 MatchProduct "Bluetooth Laser Travel Mouse"
 MatchDevicePath  "/dev/input/event*"
 Option "ButtonMapping" "1 2 3 4 5 8 9"
EndSection

其中,MatchProduct 后面是第二步获得的设备名称,而 Option “ButtonMapping” 后面就是我们要修改的映射表。一般用户可以直接搜索 “设备名称 + ButtonMapping” 获得自己的设备对应的值,这里讲一下该值的意义及手动修改的方法。

首先,默认的映射为 1 2 3 4 5 … 32 -> 1 2 3 4 5 … 32 的一一对应,即按下 Button 1 时触发 Button 1 的功能,以此类推。我们要修改的是映射的右边,即按键的功能表。常用的 1 至 9 分别对应着:

1–鼠标左(主)键,2–鼠标中键(现代鼠标通常为滚轮按下),3–鼠标右(副)键,4–滚轮向上滚动,5–滚轮向下滚动,6–滚轮向左滚动,7–滚轮向右滚动,8–鼠标后退键,9–鼠标前进键。

其他 10 以上的值我不知道,网上也没有查到相关资料,欢迎补充。接下来我们就是要把刚才获得的 6 和 7 号按钮映射到 8 和 9 号功能,因此映射表就是:”1 2 3 4 5 8 9″。建议先使用 xinput –set-button-map …(具体语法 man xinput) 命令进行测试,确定功能没错再填入配置文件中。

4. 重启 X server ( kill -KILL `pgrep X` ) 并测试新配置是否生效。

 

参考资料:

1. Disabling the mouse scroll wheel … — KLUDGE-O-MATIC

2. Mouse button mapping — Ubuntu Forums (@jbg7474)

 

国内推荐的 NTP 授时服务器

Ubuntu (Debian) Linux 下使用 ntpdate 工具进行时间同步。默认的时间服务器是国外的,下面介绍几个推荐的国内 NTP 授时服务器。

ntpdate 软件的配置文件位于 /etc/default/ntpdate 。我目前的配置如下:

NTPDATE_USE_NTP_CONF=no #不使用 /etc/ntp.conf 转而使用下面的列表
NTPSERVERS="ntp.tuna.tsinghua.edu.cn 210.72.145.44 ntp.api.bz 0.cn.pool.ntp.org ntp.sjtu.edu.cn"
NTPOPTIONS=""

这个列表是国内几个比较快和稳定的服务器,包括教育网及公网电信、联通的地址。我记得推荐是使用三个服务器以内,可以按照网速去掉两个用不到的。

当然,如果使用其他 NTP 客户端,例如 ntpd 或者 chrony,也可以相应的在 /etc/ntp.conf、/etc/ntpd.conf 或 /etc/chrony.conf 中,修改或增加以下几行:

server ntp.tuna.tsinghua.edu.cn
server 210.72.145.44
server ntp.api.bz
server 0.cn.pool.ntp.org
server ntp.sjtu.edu.cn

 

Ubuntu 默认安装后建议替换/删除的软件

最近刚全新安装了一次 Ubuntu 12.10 amd64,把安装过程中替换和删除的软件做一下笔记,方便参考。

1. 所有安装、删除操作均使用 Synaptic (新立得包管理器) 进行,刚装好的系统建议只保留以下几个 meta packages 作为“手动”,其他都改为自动,方便今后删除无用包:

ubuntu-desktop, ubuntu-standard, ubuntu-minimal (这三个是推荐软件), linux-generic (内核不解释), language-pack-gnome-en, language-pack-gnome-zh-hans (这两个是语言包)

2. 自带浏览器——Firefox

这个因人而异,如果你喜欢火狐就用着,它跟 Ubuntu 系统集成是最紧密的,也是带 Logo 的官方维护版。可用的替换包括:

chromium-browser (开源版,软件源里面有), google-chrome-stable (需要到 Google 官方下载,比楼上的强力), Opera (没用过不知道包名,也需要到官方下载)

3. 自带办公套件——LibreOffice

LO 和之前的 OOo (现在的 Apache OOo) 对 Microsoft Office 的文件兼容性都一般,尤其是包含排版问题的 Word 和 Powerpoint,因此建议卸载后选用永中 (官方网站有,强力推荐这个) 或 WPS (官方还在封闭测试,估计我有生之年看不见稳定版了)。

4. 自带播放器——Totem

这个基本没用过,也基本没人用,可以按照自己喜好选择比较成熟的播放器:

vlc (VideoLan 很多人用), smplayer (mplayer 作为后端,Qt 前端)。同时建议安装 ubuntu-restricted-extras 带来的 GStreamer 和 FFmpeg (libav) 系列解码器。

5. 自带输入法——IBus

个人感觉 fcitx 比 ibus 稍微成熟一点,支持更多后端以及可用的云输入法 (IBus 的云输入法要自己编译,自称还不成熟)。推荐的搭配为 fcitx + fcitx-libpinyin + fcitx-module-cloudpinyin 而不要用传统的拼音引擎。

反正你说成熟吧,Ubuntu 桌面版就没有什么成熟的玩意,我就不多吐槽了,谁用谁怀孕。

6. 自带 BitTorrent 客户端——Transmission

它本身没啥不好的,但是在下载六维之类 IPv6 PT 的时候总会有些种子下载不到,包括 Vuze (Azureus)、Deluge、qBitTorrent 等我测试过的都有一些问题,具体问题我也懒得去检查(本来那些 PT 毛病就很多,我也不吐槽了),总之建议换用 uTorrent Server (也就是 uTorrent 的 Linux 版本)。虽然官方说是 Alpha 测试阶段,可是 uTorrent 的代码质量我觉得也没问题,本来就是拿到 Linux 上重新编译一遍而已嘛。可以从官方下载到 x86 / amd64 的可执行文件。

7. 其他可以精简的软件:

各种乱七八糟国家的字体 (ttf- / fonts- 开头,根据语言自己选择删除),
各种乱七八糟牌子的打印机驱动 (printer-driver- 开头,有一个不能删,其他不用打印机可以都删掉),
自带游戏 (除非你喜欢,否则在新立得的 “组别–游戏和娱乐” 中删掉即可),
各种显卡、输入设备驱动 (xserver-xorg-video- / xserver-xorg-input- 开头,不懂的尽量别碰),
Unity Lens (Dash 里那些智能搜索,不用的可以把这些 unity-lens- / unity-scope- 开头的还有 zeitgeist 都删掉),
empathy (不支持我大 QQ 还留着干嘛,不需要可删),
gwibber (支持新浪和搜狐,不需要可删),
thunderbird (看邮件的客户端,不需要可删),
smbclient (Samba 是跟 Windows 共享文件夹用的,不需要可删)。

8. 都清理好了之后,别忘了在新立得的 “状态 — 已安装(可自动删除)” 里把余下的库啥的都删掉。

配置Linux下的VirtualBox虚拟机使用USB设备

包括添加用户组,下载安装扩展包,配置 USB 设备等部分,可以在虚拟机内直接访问主机的 USB 设备,如打印机、摄像头、手机等。

安装 VirtualBox 的过程不再重复,这里演示使用的版本是 virtualbox-4.2 (4.2.0-80737~Ubuntu~precise)。

1. 将当前用户添加到 vboxuser 组中。只有这样的用户才有访问USB设备的权限。

sudo gpasswd -a `whoami` vboxusers

2.(可选) 到官方网站下载 Oracle VM VirtualBox Extension Pack 扩展包,提供 USB 2.0 设备的支持。如果USB设备运行在1.0下,或者运行没有问题,则可以不安装。这个包(以及虚拟机内的Guest Additions)有版权限制,仅限个人用户使用。

下载页面:https://www.virtualbox.org/wiki/Downloads 请按照 VirtualBox 的版本下载,双击即可提示安装。

3. 在虚拟机设置页面中,启用 USB 支持并添加相应的设备过滤器。(暂时没有图片,稍后补上)

点击“USB 设备”项,勾选“启用 USB 控制器”,如果安装了扩展包还可以勾选“启用 USB 2.0 (EHCI) 控制器”,然后点击右侧的加号,选择要使用的设备,确定即可。

4. 启动虚拟机,等待安装新硬件(如果有单独的驱动,也要一并安装)即可。