火星妓术:Ubuntu 12.04下使用PC喇叭Beep

公司电脑没音箱,但是又需要一个提醒闹钟。很多年前用Windows的时候,用的是一个自己用BCB写的简单程序。后来换了Linux,用的是一个简单的beep脚本,然后放到cron里去跑的。不过最近升级到Ubuntu 12.04以后发现它不响了……

那个发声的脚本是很简单的:

#!/bin/sh
for i in $(seq 4)
    do
        /usr/bin/beep -f 800 -l 125 -D 125 -r 2
        /bin/sleep 0.5
    done

出来的音调是:以800HZ的频率响0.125秒,停0.125秒,如此两次以后停0.5秒,循环四次。声音大致是:嘟嘟。嘟嘟。嘟嘟。嘟嘟。

一个需要注意的小技巧是:在脚本里调用程序一定要用全路径,因为放在cron里跑的时候默认是没有用户环境的,即没有PATH,没有全路径的话会发生找不到程序错误。

使用之前需要安装一下beep:

sudo apt-get install beep

不过即使这样,在Ubuntu 12.04下还是没有声音。用xset查了一下设置也没问题:

xset -q | grep bell

当然,如果这个没开的话,可以打开:

xset b on

但是打开还是没声音。查了半天才想到驱动可能没装:

lsmod | grep pcspkr

打开 /etc/modprobe.d/blacklist.conf ,果然有这么一行:

blacklist pcspkr

注释之,并:

sudo modprobe pcspkr

加载PC喇叭驱动。果然解决。

吐槽一下:现在的电脑机箱居然普遍把PC喇叭给省了,我现在用的电脑喇叭还是从老电脑机箱上拆下来的,还好主板上还有PC喇叭接口——在这个已经没有IDE和PCI的时代,真是难能可贵。

再吐槽一下:12.04这个LTS虽然比前两个非LTS版要好很多,但它的问题还是比前一个LTS 10.04要多很多。比如在命令行启动gvim居然会挂起……这让我们vim党情何以堪,居然还有emacs党趁火打劫……

还好还是有人肉解决方案的,推荐令狐虫的一篇《自己编译vim,解决Ubuntu 12.04 terminal里执行gvim会挂起的问题》。BTW:退格键问题已解决。

推送到[go4pro.org]