公司電腦沒音箱,但是又需要一個提醒鬧鐘。很多年前用Windows的時候,用的是一個自己用BCB寫的簡單程式。後來換了Linux,用的是一個簡單的beep指令碼,然後放到cron裡去跑的。不過最近升級到Ubuntu 12.04以後發現它不響了……
那個發聲的指令碼是很簡單的:
#!/bin/shfor 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會掛起的問題》。