FreeBSD 切换声音输出到音响或耳机

FreeBSD 的自动切换有问题,不知如何设置,谁知道告诉我一下。先说一下手动切换的方法。

命令行

sysctl hw.snd.default_unit=0  # /dev/dsp0.0 我这里这个设备是音响
sysctl hw.snd.default_unit=1  # /dev/dsp1.0 我这里这个设备是耳机

GNOME


两个设备切换选择即可。

Over!

FreeBSD 配置 Webcam

安装软件包

pkg_add -r cuse4bsd-kmod
pkg_add -r webcamd

配置 cuse4bsd

echo '''cuse4bsd_load="YES"''' >> /boot/loader.conf

配置 webcamd

echo '''webcamd_enable="YES"''' >> /etc/rc.conf

重启系统或启动相关服务

shutdown -r now

kldload cuse4bsd
/usr/local/etc/rc.d/webcamd start

增加权限
建议将用户加入 operator 分组,不建议设置权限为 0666 或 0644 !

chmod 0640 /dev/video0

Over!

FreeBSD 降低硬盘的 Load Cycle Count

最近用 FreeBSD 系统总能感觉到硬盘突然工作了,在论坛上一问,是硬盘电源管理方面的事情,问题还挺严重,直接影响到硬盘的寿命,之前 Ubuntu 也发生过此事。

实测发现 FreeBSD 8.1 系统里硬盘默认的电源管理级别是 0x60,ATA 手册中是 Intermediate power management levels with Standby。

delphij 给出了一个方法将电源管理级别提高到 0xFE,这样硬盘不会挂起了,用电也相对多了。

camcontrol cmd ada0 -a "EF 05 00 00 00 00 00 00 00 00 FE 00"

可以将其加入 root 用户的 crontab 中,条件是 @reboot。

ATA 手册中电源管理级别

Over!

不使用 HAL 配置 X 输入设备解决了崩溃问题

在 FreeBSD 8.1 系统里使用 X 图形系统,当处置的USB鼠标插入后,不一会X就崩溃了。测试发现是鼠标的问题,而且发现只有部分USB鼠标会引发这样的问题。

X图形系统的配置文件是通过 Xorg -configure 生成的,默认是使用 HAL 获取设备信息并增加的。在 Pagxir 的建议下,我手动指定输入设备信息,不使用 HAL 自动配置,问题解决。

X 配置文件

Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
 
Section "ServerFlags"
	Option "AutoAddDevices" "off"
	Option "AutoEnableDevices" "off"
EndSection
 
Section "Files"
	ModulePath   "/usr/local/lib/xorg/modules"
	FontPath     "/usr/local/lib/X11/fonts/misc/"
	FontPath     "/usr/local/lib/X11/fonts/TTF/"
	FontPath     "/usr/local/lib/X11/fonts/OTF"
	FontPath     "/usr/local/lib/X11/fonts/Type1/"
	FontPath     "/usr/local/lib/X11/fonts/100dpi/"
	FontPath     "/usr/local/lib/X11/fonts/75dpi/"
	FontPath     "/usr/local/lib/X11/fonts/cyrillic/"
	FontPath     "/usr/local/lib/X11/fonts/bitstream-vera/"
	FontPath     "/usr/local/lib/X11/fonts/wqy/"
	FontPath     "/usr/local/lib/X11/fonts/ubuntu-font-family/"
EndSection
 
Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection
 
Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/sysmouse"
	Option	    "ZAxisMapping" "4 5 6 7"
EndSection
 
Section "Module"
	Load  "dbe"
	Load  "dri"
	Load  "dri2"
	Load  "extmod"
	Load  "glx"
	Load  "record"
EndSection
 
Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection
 
Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "NoAccel"            	# [<bool>]
        #Option     "SWcursor"           	# [<bool>]
        #Option     "ColorKey"           	# <i>
        #Option     "CacheLines"         	# <i>
        #Option     "Dac6Bit"            	# [<bool>]
        #Option     "DRI"                	# [<bool>]
        #Option     "NoDDC"              	# [<bool>]
        #Option     "ShowCache"          	# [<bool>]
        #Option     "XvMCSurfaces"       	# <i>
        #Option     "PageFlip"           	# [<bool>]
	Identifier  "Card0"
	Driver      "intel"
	VendorName  "Intel Corporation"
	BoardName   "Mobile 4 Series Chipset Integrated Graphics Controller"
	BusID       "PCI:0:2:0"
EndSection
 
Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

建议停止使用 HAL
删除 /etc/rc.conf 中如下内容

hald_enable="YES"

Over!

解决 Pidgin 登录 MSN 的 SSL 错误

原因
MSN 最近更新了证书,新证书信息

Common name: *.contacts.msn.com
 
Fingerprint (SHA1): ac:7e:e4:5f:97:b8:7e:f0:0b:ac:a6:51:9f:ba:51:f0:ad:73:17:8b
 
Activation date: Tue Nov 16 05:28:19 2010
 
Expiration date: Thu Nov 15 05:28:19 2012

解决方法
下载新证书 http://heiher.info/sftp/files/omega.contacts.msn.com

cp omega.contacts.msn.com ~/.purple/certificates/x509/tls_peers/

Over!

解决 FreeBSD 8.1 + Xfce 4 环境 ibus 无法切换

在 FreBSD 8.1 系统上安装了 xfce 4 桌面环境并安装了 ibus 输入法框架,相关的环境变量已经设置,但是输入法死活无法使用 Ctrl + Space 切换,只能使用 GTK+ 程序输入框中的输入法菜单强制切换。

原因
安装程序没有自动调用 gtk-query-immodules-2.0 程序更新 gtk-immodules。

解决方法

gtk-query-immodules-2.0 > /usr/local/etc/gtk-2.0/gtk.immodules

重启桌面环境即可。

Over!

咪咕音乐盒修复记

中国移动加入了 Linux 基金会,成为了啥金会员,这个和我关系不是很大哦。它开发了一个跨平台的音乐播放器 咪咕,这个和我有点关系。我安装上后发现音乐不能正常播放,程序会自动从第一首尝试到最后一首,就是没有一首可以播放,当时我就火了,立即删除之骂这破播放器垃圾。

从朋友那得知它使用的非常好,我觉得我处理问题有点草率了,很有可能问题不在咪咕上。(后来事实证明问题就在ISP(中国联通承德分公司)恶意修改我的HTTP请求头的UA字段值,咪咕也有责任,明知我们这些用户在中国还让这样的事发生,中国是这什么样的地方啊!!) 就在这个时候我突然想到是不是因为我的ISP会自动把我的HTTP请求头中的UA字段值修改导致的?以前在给布布的博客上留言时就发现我的浏览器是 IE,系统是 Windows XP,抓包发现ISP有这样的行为的。

我原本的 UserAgent

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12

ISP 恶意修改后

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

给咪咕这样的程序提供音乐下载的服务器可能会校验一下UA是不是咪咕播放器的,虽然这个不能作为保证,但是可能性很大,于是我又抓包找出咪咕可能连接的服务器IP地址:

60.217.241.141
60.217.232.190
60.217.241.79
60.217.241.72
221.206.124.233
125.39.39.111
221.204.242.118

我又将上面的IP表编辑成路由命令,使访问这些IP都经过远在美国的VPS路由,终于听到美妙的音乐啦!

route add 60.217.241.141 dev tun0
route add 60.217.232.190 dev tun0
route add 60.217.241.79 dev tun0
route add 60.217.241.72 dev tun0
route add 221.206.124.233 dev tun0
route add 125.39.39.111 dev tun0
route add 221.204.242.118 dev tun0

我听个歌容易嘛……

Over!

OpenVPN 客户端 down 脚本不执行?

在OpenVPN客户端中配置了智能路由的启用和禁用脚本,当OpenVPN启动时启用脚本执行正常,但是当VPN停止时,路由表里的路由项没有被删除。经查找后发现是由于我使用了 user group 将openvpn进程工作在 nobody 和 nogroup 用户上,导致权限不够。

解决方法是注释配置文件中这两项,使 OpenVPN 进程进行在 root 权限上。

;user nobody
;group nogroup
 
script-security 2
up scripts/vpnup
down scripts/vpndown

Over!