顯示具有 Ubuntu 標籤的文章。 顯示所有文章
顯示具有 Ubuntu 標籤的文章。 顯示所有文章

2015/03/28

重建不小心刪除的 Ubuntu /dev 目錄

若你跟我一樣不小心做了刪除  /dev 目錄的蠢事,以下是我嘗試重建的記錄。僅供參考,請自行應變。

簡單說,執行以下命令就可大部分重建回來:
cd /dev; sudo /sbin/MAKEDEV generic
若你想先確認這個指令做了哪些動作,可以加 "-n -v" 參數做一次 dry run (也就是沒有實際產生作用的演練,只看看輸出訊息)。

實際情況是,你不見得可以執行上述命令。譬如說,還沒關機就發現此狀況,但 terminal 已經開不起來;或關機了,可能就再也無法開機等等。這些狀況的應變太瑣碎,就不多談了。

2014/05/14

Ubuntu 與 Wake on LAN

Wake on LAN (WOL) 就是透過網路指定某一台 PC 開機。

被叫者的設定

需要被叫醒的 PC 必須完成以下設定:
  • BIOS 需啟動相關叫醒功能,譬如 Asus P5K 主機板的設定項目是:
    • Power > APM Configuration
      • Power on By PCI Devices [Enable]
      • Power on By PCIE Devices [Enable]
  • 然後網路卡 (NIC) 必須啟動 WOL 功能:
    • 在 Windows 底下,直接去查網路卡有沒有相關設定
    • 在 Ubuntu 底下,可用 ethtool 查詢和改變網路卡的設定
      • sudo ethtool eth0 來查看網路卡有哪些功能
        • "Supports Wake-on:"g 就是支援 WOL
        • 有沒有啟動 WOL 就看 "Wake-on:" 有沒有 g
      • sudo ethtool -s eth0 wol g 來啟動 WOL
      • sudo ethtool -P eth0 查出網路卡位址 (ether address 或 mac address),等一下會用到
  • 最後一點,就是要讓 PC 處於可被叫醒的狀態。譬如,我的 Asus P5K 先斷電再復電後是叫不醒的。一定要先做一次:手動按開機鍵,不用開完機,幾秒之後再按一次開機鍵關機,感覺好像是讓 BIOS 有機會將機器設成待命狀態。最簡單的檢查方法就是檢查網路埠的 link 燈號。可被 WOL 叫醒的機器,關機時 link 燈必須是亮著的,這樣才可以收到 WOL 封包。

叫人者的設定

執行叫醒任務的 PC 一般比較沒有限制,只要有合適的工具即可。以下只介紹 Ubuntu 的部份。請先安裝 wakeonlan 套件,然後執行以下命令即可:
wakeonlan 00:11:22:33:44:55 #這裡請改成被叫者的網路卡位址
沒有成功?請查被叫者的電源線是否接好且有電,以及網路線是否有 link 燈號且跟叫人者有連接起來。若以上都確認沒問題,也許查查叫人者 PC 是否有兩張網路卡。wakeonlan 似乎不能控制由哪張網路卡送出 WOL magic packet,以下方法可解決這個問題:
  • 方法一是指定哪個 subnet 的 broadcast:
    wakeonlan -i 192.168.0.255 00:11:22:33:44:55
  • 方法二是設定 static arp entry:
    sudo arp -i eth1 -s 192.168.0.1 00:11:22:33:44:55
    wakeonlan -i 192.168.0.1 00:11:22:33:44:55
還是沒有成功?我建議查網路相關連結,可以的話先試試將被叫者和叫人者直接連結起來。

參考資料

2014/03/14

[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)

[Simple translation for English only visitors]
The way to remove the warning log is to modify /etc/ssl/openssl.cnf before using openssl to generate the keys.

建置 https 伺服器時,/var/log/apache2/error.log 出現如標題一樣的警告訊息?

解決方法是在執行 openssl 產生 key 之前,修改 openssl.cnf:

--- /etc/ssl/openssl.cnf    2012-04-20 00:29:01.000000000 +0800
+++ /etc/ssl/openssl.cnf    2014-03-14 16:11:58.225994353 +0800
@@ -237,7 +237,7 @@
 # extensions.
 #basicConstraints = critical,CA:true
 # So we do this instead.
-basicConstraints = CA:true
+basicConstraints = CA:false

 # Key usage: this is typical for a CA certificate. However since it
 # prevent it being used as an test self-signed certificate it is best
我不確定這樣改有多少影響。建議 key 產生完畢後再改回原來的設定。

2014/02/25

用 lame 批次將 .wav 轉成 .mp3

在 Ubuntu 底下,批次將 .wav 轉成 .mp3 的方法如下:

先安裝轉檔工具:

sudo apt-get install lame

再執行 lame 將 .wav 檔一個一個轉成 .mp3:

ls *.wav | sed -e 's/\.wav//' | xargs -i -n 1 lame -h -b 128 "{}.wav" "{}.mp3"

2013/08/31

在 Ubuntu 使用 USB RS232 轉接線

現在的 PC 或 NB 已經很少看到 RS232 接口了。但有些時候,如開發 embedded system 時,還是很需要 serial console。此時就需要 USB RS232 轉接線。

在 Ubuntu 上使用 USB RS232 轉接線很簡單。首先,插入 USB RS232 轉接線後馬上執行以下命令查出 device name:
$ dmesg | grep tty
[ 7842.193255] usb 2-2: pl2303 converter now attached to ttyUSB0
如上述範例的  device name 的是 ttyUSB0。一般來說,你可能會沒有足夠的權限:
$ ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0  8月 31 10:33 /dev/ttyUSB0
像上述範例,你如果不是 root,就要把自己加入 dialout 那個 group (修改 /etc/group)。然後就可用自己喜好的 terminal emulator 開始上工了。

以下是其他一些可能會需要的診斷工具,僅供參考:
  • 查看連接上的 USB 裝置的資訊:lsusblsusb -v
  • 查查裝置剛插入時有什麼狀況發生:tail /var/log/syslog

2013/08/02

在 Ubuntu 上將 YouTube 的 MV 轉成 MP3 檔

先聲明,以下這方法不是最簡單的,只是個人喜好的步驟 (其實,有網站提供此服務)。

首先,先在 Firefox 安裝可下載 YouTube 影片的 Add-on,譬如:1-Click YouTube Video Download。將喜歡的 MV 轉成 MP4 檔。

然後,執行以下指令:
avconv -i input.mp4 -f mp3 -vn output.mp3
若不能成功,可能是缺少 mp3 codec,用以下方法安裝:
sudo apt-get install libavcodec-extra-53
不習慣 avconv (亦即之前的 ffmpeg) 命令列的,可以安裝 winff 來用 GUI。

參考資料:


2013/07/20

Ubuntu 的網路設定

一般來說,Ubuntu 的網路設定不會是個問題,安裝時幾乎就幫你搞定一切了。但若你後來更換網路卡,或者將安裝硬碟換到不同的機器,你可能就需要自己稍微調整一下設定了。以下是我的一些經驗,僅供參考。

首先,確認 kernel 認到多少張網路卡:
root@ubuntu:~# dmesg | grep eth
[    1.678186] i2c-core: driver [aat2870] using legacy suspend method
[    1.678186] i2c-core: driver [aat2870] using legacy resume method
[    2.718021] via-rhine 0000:01:06.0: eth0: VIA Rhine II at 0xfebffc00, 00:11:22:ab:cd:ed, IRQ 19
[    2.718735] via-rhine 0000:01:06.0: eth0: MII PHY found at address 8, status 0x782d advertising 01e1 Link cde1
[    2.726899] forcedeth: Reverse Engineered nForce ethernet driver. Version 0.64.
[    2.727153] forcedeth 0000:00:0f.0: PCI INT A -> Link[LMAC] -> GSI 20 (level, low) -> IRQ 20
[    2.727160] forcedeth 0000:00:0f.0: setting latency timer to 64
[    3.253390] forcedeth 0000:00:0f.0: ifname eth1, PHY OUI 0x732 @ 1, addr 00:33:44:ab:cd:ed
[    3.253394] forcedeth 0000:00:0f.0: highdma pwrctl mgmt gbit lnktim msi desc-v3
以上輸出,很清楚看到系統抓的兩張網路卡,eth0 & eth1。有些時候,你會看到 "eth0 is renamed to eth1" 之類的訊息。這時候,你用 ifconfig 去看時,會發現網路界面的名稱跟系統抓到的好像不一致。遇到這種情況,請檢查 /etc/udev/rules.d/70-persistent-net.rules:
# PCI device 0x1106:/sys/devices/pci0000:00/0000:00:0a.0/0000:01:06.0 (via-rhine)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:ab:cd:ef", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10de:/sys/devices/pci0000:00/0000:00:0f.0 (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:33:44:ab:cd:ef", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
也就是說,網路界面的名稱可被 udev 重新定義。確認網路界面之後 (確認沒有的網路卡,可以直接刪除),就可以設定各個界面的網路型態:
root@ubuntu:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
以上範例,eth0 會自動取得 IP,eth1 則自行指定 IP 位址。

2013/04/17

Epson Stylus Office TX610FW 灰階列印 @ Ubuntu

彩色墨水不便宜,因此我習慣不需要時就用灰階列印。Epson Stylus Office TX610FW 在 Ubuntu 上的驅動程式沒有很 user friendly,用灰階列印需要一點巧門。

一般來說,要啟用灰階列印是:
  • 在列印對話框選定 Epson 印表機
  • 進入「進階」選項
  • 在 Paper & Quality Options 的 Color 選 「Grayscale」
  • 上一動會出現警告圖示,只說設定有衝突,很難猜出原因是什麼。解法是在底下的 Color Management 將 Color Mode 從 「Epson Vivid」 改成 「No Color Adjustment」
若你想將灰階列印設成預設模式,就要去改變印表機的屬性:
  • 系統 > 管理 > 列印
  • 選定印表機 > 右鍵 > 屬性 > 印表機選項
  • 接下來的動作和前面所述一致,但須注意可能有中英文的差異:
    • Color = 彩色
    • Grayscale = 灰階
    • Epson Vivid = EPSON 鮮艷色彩
這個課題還沒有結束。如果你按照本人介紹的方式 在 Ubuntu 上安裝 Acrobat Reader,這版 Acrobat Reader 串接印表的方式似乎不是 Ubuntu 的標準作法,或者有其他 bug。我的心得是:根本無法切換彩色或灰階模式,因為無此選項。

我懷疑是 bug,因為 Acrobat Reader 點選列印之後,你可以點 Properties 去設定列印參數,而這些參數有兩個一樣的 Color 選項,但都不是用來選擇 Color 或 Grayscale 的。我的解法是先去改設定印表機的預設模式,再啟動 Acrobat Reader 出來列印,注意一下 Properties 的 Printer Command 有 「-o Color=Grayscale」 這一參數即可。

2013/03/31

Remote Desktop 和 Desktop Sharing

這兩個應用很接近,不小心就會混淆。

Remote Desktop 是遠端桌面。也就是在某 PC 上登入並獨自擁有一份遠端主機的桌面,就像你用本地的螢幕鍵盤來登入和操控本地主機的桌面一樣。譬如,你家裡電腦開著,然後在辦公室連回家裡,看到的是和在家裡時一樣的登入畫面。從登入、操作到登出,這個 session 都是你自己在進行。一台主機,通常允許建立很多的遠端桌面,大家各作各的,不會有衝突。

Desktop Sharing 則是桌面分享。也就是你已經登入某一台主機之後,開放權限讓遠端另一個人也可以看到或操作你的桌面。通常這是為了解決某些問題,譬如你不會安裝某個軟體,請遠端的朋友代勞。桌面只有一份,所以要先講好某個時間由誰操作,不然會亂成一團。

Ubuntu 上的 Remote Desktop,server 端可以安裝 xrdp/vnc4server (背景執行),client 則用 tsclient/rdesktop (應用程式 > 網際網路 > 終端伺服器客戶端)。

Ubuntu 上的 Desktop Sharing,server 端可以用 vino-server (系統 > 設定 > 遠端桌面),client 則用 vingare (應用程式 > 網際網路 > 遠端桌面檢視器)。

2013/03/20

修改 xterm 的 title

我是 Gnome Terminal 分頁的重度使用者,往往一開就是十多個分頁。有些在不同工作目錄編輯文件;有些可能在用 gdb 除錯;有些連到其他主機做編譯之類的任務。這樣非常方便,但有一個很大的困擾:經常找不到想去的分頁。

Gnome Terminal 分頁預設以使用者+主機+工作目錄當作 title。乍看之下,似乎可以達到某個程度的分辨功能,但一來相似度太高,二來分頁一多 title 就只剩下前面相同的部份。因此,到後來只能憑腦袋記憶分頁位置。無奈,年紀越大,記憶就越不靈光...

以下介紹解決這個問題的方法:自訂 xterm 的 title (只針對 bash 來介紹,其他 shell 可能能需要些微調整)。

修改 title 的指令為:
echo -ne "\033]0;NEW TITLE\007"
若你當場測試,八成會說我騙你。請再試試以下指令:
echo -ne "\033]0;NEW TITLE\007"; read
第一個指令看起來無效的原因是因為 bash 在完成你的指令之後,馬上又將他改掉了。第二個指令多加一個 read,就是為了讓你看清楚。利用這個特性,內容如下的 ~/bin/vi 在你用 vi 編輯 hello.c 時分頁 titile 會是 "vi hello.c",讓你一目了然:

#!/bin/bash
echo -ne "\033]0;vi $*\007"
/usr/bin/vi $*
同樣的方法,你可以應用到 gdb、adb、minicom 等等。

順道一提,每次在 bash shell 執行完指令就會設定一次 titile,這個動作是設定在 .bashrc 的以下段落:
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac
注意 PS1 定義。其中 \e 和 \a 相當於前面指令的 \033 和 \007、\u 是使用者名稱、\h 是主機名稱、\w 是工作目錄。切換目錄時 title 會跟著改,就是因為 \w 的關係。\w 用在 prompt 很好,但當作 title 就太長了,建議用 \W 當 title,也就是整個路徑的最後一個目錄名稱。

參考資料

2013/03/12

在 Ubuntu 上安裝字型

我對字型的要求不高,只要夠用就好,但有時不得不需要安裝一些新字型。譬如,拿到一份重要的 PDF 文件,因為缺字型的關係,Acrobat Reader 上文字變成小黑點無法閱讀。我直覺是少了 A 字型,用相近的預設 B 字型取代不就好了?但似乎沒有這麼簡單,因為找不到這種設定方法。

有一種解法是上傳到 Google Doc,從 Google Doc 閱讀。若想要在 PC 上閱讀,就只能新增該種字型了。以下是 Ubuntu 安裝字型的方法:
  1. 先取得字型檔。以個人下載兩個字型的經驗,FontZone 字型不少,下載也很方便。
  2. 執行以下命令將字型複製到預設目錄,並讓字型生效 (亦可參考網友 Han-Pei Lin 的留言):
    sudo cp FONT-DOWNLOADED /usr/share/fonts/truetype
    sudo fc-cache -f -v

2013/02/13

Epson Stylus Office TX610FW @ Ubuntu

在 Ubuntu 要列印到 Epson Stylus Office TX610FW?沒問題,方法如下:
  1. http://www.openprinting.org/driver/epson-stylus-office-tx610fw-series 下載 Epson 提供的 package,我試過 1.0.0 (DEB for LSB 3.2) 這一個。注意!請正確選擇 32bit 或 64bit 版本,而且必須先安裝 lsb 套件。
  2. 安裝指令 sudo dpkg -i epson-inkjet-printer-stylus-office-tx610fw-series_1.0.0-1lsb3.2_amd64.deb
  3. 安裝好之後,打開 Epson 印表機電源。然後執行印表機設定程式 (非 Unity:系統>管理>列印;Unity:點左上的 Ubuntu logo,輸入 printer 搜尋就會出現)
  4. 在印表機程式畫面點「加入」,再點「網路印表機」。一開始只會出現各種 protocol 的選項,稍等一兩分鐘之後,就會出現 Epson Stylus Office TX610FW 選項。點這個選項,再按「下一步」便會出現印表機的名稱設定,直接「套用」就完成了。
在 Ubuntu 上有一個好處:任何支援列印的程式,你都可以用「列印到檔案」的方式來產生 PDF 文件。我經常使用這項功能,但自從安裝 TX610FW 相關套件之後就有一個小麻煩:每次開啟列印的時候都要等很久。因為系統要讀 TX610FW 印表機的狀態,而我只有想列印的時候才會開這台印表機,所以只能等系統 timeout 放棄之後,我才能去選列印到檔案。

這問題有一個簡單的解法,就是新增一台假的本地印表機來當作預設印表機:
  1. 執行印表機設定程式,點選「加入」
  2. 序列埠 #1 > Generic > text-only printer > 輸入你想要的名稱
  3. 選這台剛新增的印表機,印表機 > 設為預設值
這樣下次開啟列印的時候就不會有等待的時間,你可以馬上選擇列印到檔案或 TX610FW。

2012/12/04

自建 Ubuntu 的動態 Wallpaper

Ubuntu 真的好用,當然也有缺點。其中之一,就是想對桌面作一些調整時會比較麻煩。譬如,動態 Wallpaper 是既有的功能,但你想建立自己的版本,就要花一點心思。發行較久的 Ubuntu,可能已經有人開發 GUI 來簡化這個程序。但這套 GUI 又不見得可以適用於最新的 Ubuntu 發行版。我在 Ubuntu 12.10 就遇到這個問題。底下是我的解決方法。

首先,建立動態 wallpaper 的定義,譬如:~/wallpaper.xml:
<background>
  <starttime>
    <year>2003</year>
    <month>6</month>
    <day>14</day>
    <hour>05</hour>
    <minute>30</minute>
    <second>00</second>
  </starttime>
  <static>
    <duration>1795.0</duration>
    <file>/path/to/picture-1.png</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/path/to/picture-1.png</from>
    <to>/path/to/picture-2.png</to>
  </transition>
  <static>
    <duration>1795.0</duration>
    <file>/path/to/picture-2.png</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/path/to/picture-2.png</from>
    <to>/path/to/picture-1.png</to>
  </transition>
</background>
其中:
  • 可以是過去或未來。若是未來,就是等到那個時間才會更換 wallpaper;若是過去,設好就馬上生效。
  • 就是設定要顯示哪一個圖形?要顯示多少秒數?
  • 就是設定從一個圖形轉換到另外一個圖形要轉換多久?轉換到哪一個圖形?
  • 要成對出現,而且要設成可以頭尾連接。
Wallpaper.xml 設定檔完成之後,就要告訴系統以此作為 wallpaper:
gsettings set org.gnome.desktop.background picture-uri 'file:///path/to/wallpaper.xml'

2012/01/20

Oneiric Ocelot 的 mpeg4ip-utils 套件

Ubuntu 更新到 Oneiric Ocelot 之後,有些套件已經不支援了,例如 mpeg4ip-utils。臨時有急用,所以只好跟 Natty Narwhal 借。

方法是從 https://launchpad.net/ubuntu/+source/mpeg4ip 下載以下套件:
  • libmp4v2-0_1.6dfsg-0.2ubuntu9_amd64.deb
  • libmpeg4ip-0_1.6dfsg-0.2ubuntu9_amd64.deb
  • mpeg4ip-utils_1.6dfsg-0.2ubuntu9_amd64.deb
然後用 dpkg 依序安裝即可:
dpkg -i libmp4v2-0_1.6dfsg-0.2ubuntu9_amd64.deb
dpkg -i libmpeg4ip-0_1.6dfsg-0.2ubuntu9_amd64.deb
dpkg -i mpeg4ip-utils_1.6dfsg-0.2ubuntu9_amd64.deb

2011/12/11

保留 Firefox 的列印設定

我習慣將網路上看到的好文章列印成 PDF 檔保存。在 Ubuntu 上列印成 PDF是標準功能,不需額外安裝和設定。不過,在 Ubuntu 11.10 上用 Firefox 列印網頁,卻有幾個小困擾:
  1. FF 的預設印表機是 Postscript 印表機,不是 PDF 印表機
  2. FF 提供額外的頁首頁尾等資訊,但預設值都不是我想要的
因此,每次列印時都要重新點選相關設定,非常麻煩。經過一番努力,終於找出手動修改預設值的方法。
  1. 在網址列輸入 about:config 然後按 Enter (Firefox 會提醒你要小心修改)
  2. 在 Filter 輸入 default.print 縮小範圍,然後修改或新增以下項目:
printer_PostScript/default.print_footercenter =>
printer_PostScript/default.print_footerleft =>
printer_PostScript/default.print_footerright =>
printer_PostScript/default.print_headercenter =>
printer_PostScript/default.print_headerleft =>
printer_PostScript/default.print_headerright =>
printer_PostScript/default.print_to_filename => ~/firefox.pdf
以上是將列印檔名預設為 firefox.pdf,頁首頁尾設成空白。若你的設定不一樣,要先在列印對話框的 Options 做好設定列印一次,再重新進入 about:config。找出以下看起來是亂碼的設定項目:
printer_列印至檔案.print_...
就可以看出設定字串如何寫 (譬如 "&T"),將此字串複製到 default.print 對應那一部份就可以了。

2011/11/28

在 Ubuntu 解 Windows 的 ZIP 壓縮檔

有沒有搞錯?這不是很簡單嗎?

是的,這很簡單。但問題是有些在 Windows 壓縮的 ZIP 檔內含的中文檔名是 Big5 編碼,Ubuntu 的壓縮檔管理員解開時會是亂碼。原因是 ZIP 格式並未定義如何標示檔名的編碼,所以壓縮檔管理員一律當成 Unicode 來解。

遇到這個問題,可以用 command line 的 unzip 來解決:
unzip -O big5 your_compressed_file.zip
PS: 我發現 Ubuntu 10.04 的 unzip 已經移除 -O 的功能 (怪怪~~稍微新或舊一點的版本卻都有)。需要此功能的朋友,可以到以下頁面下載稍微新一點的版本來用:
http://packages.ubuntu.com/oneiric/unzip

2011/11/18

縮小 Ubuntu Unity 的圖示

Ubuntu Unity 的圖示有 48 點,實在有夠大。縮小的方法是安裝 Compiz Configuration Settings Manager (簡稱 CCSM):
sudo apt-get install compizconfig-settings-manager
執行 ccsm 之後,找到 Ubuntu Unity Plugin > Experimental 的 Launcher icon size,就可自由調整 (最小 32 點)。

2011/11/17

Ubuntu Unity 與 Skype

最近重新安裝 Ubuntu,才注意到 Unity 搭配 Skype 有兩個問題。

第一個問題是 Skype 的圖示不會出現在 notification area。Ubuntu 13.04/13.10 的解法是:
sudo apt-get install sni-qt:i386
Ubuntu 12.04 之前的版本,解法需先安裝 dconf-tools 這個套件:
sudo apt-get install dconf-tools
接著執行 dconf-editor 並找到 com.canonical.Unity.Panel.systray-whitelist (較新的作法) 或 desktop.unity.panel.systray-whitelist (較舊的作法),然後在最後加上 'Skype' 即可 (需登出再登入)。例如:
['JavaEmbeddedFrame', 'Wine', 'scp-dbus-service', 'Update-notifier', 'Skype']

第二個問題是,若 Skype 啟動後再點 Unity 上的 Skype 圖示,這動作並不是叫出 Skype 的視窗,而是重新再起動另一份 Skype (會因重複登入而錯誤)。解法在參考資料二,有用但需要一點小技巧。(Ubuntu 12.10 和 Skype 4.1.0.20 的組合,似乎無此問題)

參考資料:

1. How can I get the Skype notification back in the system tray?
2. Unity launcher and multiple instances of Skype 
3. How do I add a Skype indicator?

2011/10/26

在 Ubuntu 上使用玉山銀行的 WebATM

玉山銀行的 WebATM 是極少數不但支援 Windows + IE 平台,也支援 Linux + Firefox/Chrome 等平台的網路銀行。單這一點,就值得大力推薦。

WebATM 安裝方法還算簡單,請參考:
可以歸納為三個步驟:
  1. 安裝 Ubuntu 提供的 pcscd 套件
  2. 安裝讀卡機提供的驅動程式
    • cd driver_ezusb_v1.5.3_for_64_bit/
    • sudo ./install
  3. 在 Firefox 安裝玉山銀行提供的 WebATM plugin (看第六點)
不過,根據我在 Ubuntu 11.10 和 12.10 上的經驗,這樣的安裝程序似乎還不夠。可到 WebATM 健診頁面跑檢測程式:
我的情況是前三關都順利通過,但就是抓不到讀卡機。且在 /var/log/syslog 會出現以下錯誤訊息:
pcscd: readerfactory.c:965:RFInitializeReader() Open Port 0x200000 Failed (USB:0CA6/0010:LIBUDEV:0:/DEV/BUS/USB/004/002)
pcscd: readerfactory.c:275:RFAddReader() CASTLES EZ100PU init failed.
pcscd: hotplug_libudev.c:377:HPAddDevice() Failed adding USB device: CASTLES EZ100PU
這問題有兩個解法:第一個較簡單,第二個較安全。

解法一是舊式的作法,需以 root 身份執行 pcscd。請先修改 /etc/init.d/pcscd,將以下片段的 "exit 0" 註解掉,再重開機即可:
# DO NOT start the daemon on startup
# comment the line to have the same behavior as in version < 1.6.0
#exit 0
解法二是較安全的方式,是以使用者身份動態執行 pcscd,但你必須賦予這台讀卡機特殊的權限。作法是新建一個檔案:/etc/udev/rules.d/92-pcscd-ccid.rules。內容如下:
# If not adding the device, go away
ACTION!="add", GOTO="pcscd_ccid_rules_end"
SUBSYSTEM!="usb", GOTO="pcscd_ccid_rules_end"
ENV{DEVTYPE}!="usb_device", GOTO="pcscd_ccid_rules_end"

# Castles Technology Co., Ltd EZUSB PC/SC Smart Card Reader
ATTRS{idVendor}=="0ca6", ATTRS{idProduct}=="0010", GROUP="pcscd"

# All done
LABEL="pcscd_ccid_rules_end"
注意上面的 idVendor 和 idProduct 必須對應到讀卡機的 USB ID。你可用 lsusb 查出 USB ID,譬如:
Bus 003 Device 003: ID 0ca6:0010 Castles Technology Co., Ltd EZUSB PC/SC Smart Card Reader
改完後 sudo service udev restart,應該就大功告成了。

參考資料

2011/10/20

Ubuntu Unity UI 的術語

Ubuntu 11.04 的 Unity 感覺不是很穩,所以試用一陣子之後就 改用 AWN 了。此次,趁升級到 Ubuntu 11.10 時,又重新玩玩看。感覺進步不少,所以決定再給他一次機會:長時間持續使用並勉強自己克服既有操作習慣。

一週下來,還算理想。唯一的麻煩是有問題時不容易找答案:因為 google 時很難下 keyword,不知道該怎麼稱呼 Unity 的各個部位。後來,終於找到一份 Unity UI 的術語可作為參考:
PS: Oneiric 的 Unity 似乎跟 scim 相衝。因 Natty 之前 ibus 的酷音輸入法一直有問題,所以只能換成 scim。升級到 Oneiric 後,這個問題看起已經解決,換回 ibus 之後 Unity 和酷音輸入法都很正常。