2008年2月25日 星期一

如何讓Huawei E220 3G USB網卡(中華電信出售)在linux上動起來

最近拿到了一張CHT出的USB 3G網卡,找了半天資料終於把他弄好了。基本上一般的USB網卡都是以模擬tty的方式來運作,因此我們會需要使用到一些tty kernel選項。

首先需要在kernel裡面加入下面幾項支援(gentoo-sources-2.6.22-r9):

 Device Drivers
  ---> Network device support
      ---> PPP (point-to-point protocol) support
        [ ] PPP multilink support
        [ ] PPP filtering
        <*> PPP support for async serial ports
        <*> PPP support for sync tty ports
        <*> PPP Deflate compression
        <*> PPP BSD-Compress compression
        <*> PPP over Ethernet

  ---> USB support
      ---> USB Serial Converter support
        <m> USB Serial Converter support
        [*] USB Generic Serial Driver (沒這個insmod usbserial會錯誤)
        <m> USB Prolific 2303 Single Port Serial Driver

上面PPP支援是為了以後能夠順利利用3G網卡撥號。由於這張USB網卡kernel並不知道要幫他載入什麼dirver,因此需要把USB Serial Converter作成model,以便之後能夠以手動的方式強迫這個USB裝置裝載此driver。

處理好以後重新載入kernel,把網卡插入USB port,在 "/proc/bus/usb/devices" 裡面找找看有沒有一個 "Product=HUAWEI Mobile" 的裝置。這個裝置就是這張3G網卡了。我們需要把這個裝置的Vendor與ProdID抄下來(我的是 Vendor=12d1 ProdID=1003),接下來會需要用到這兩個參數。

再來就試試看是否能夠幫這張3G網卡裝載driver了。裝載時需要帶入剛剛抄下來的Vendor與ProdID。以我自己的裝置為例,命令為 'modprobe usbserial vendor=0x12d1 product=0x1003' ,如果沒有任何錯誤提示出現,恭喜你! driver已經成功載入了。你可以用 'dmesg' 來查看新增的裝置。如果發生錯誤,你也可以利用 'dmesg' 來看問題到底出在哪裡。

為了要能夠方便的設定撥號設定,這裡介紹一個相當好用的程式"wvdial"(其實沒介紹,裝了就知道)。安裝完以後直接下 'wvdialconf' 這個指令就可以自動偵測可以用的USB網卡。(事實上它會把所有可能的裝置都掃一遍,並且自動偵測網卡參數並寫入設定檔!)找到的網卡,他的設定會寫入到 '/etc/wvdial.conf' 裡面。你需要打開這個檔案並且修改裡面的"Phone"、"Username"、與"Password"參數。我是用中華的sin卡,所以我讓"Phone=*99#"。(其他業者的應該也一樣,國外的我就不知道了)而帳號與密碼隨便打就可以,只要不是空就好。最後把第一行 "[Dialer Default]" 改成 "[Dailer xxxx]" , 其中"xxxx"用你喜歡的名字。

完成後存檔,在命令列下打 'wvdial xxxx' ("xxxx"是你剛剛所使用的名字)。接下來應該就可以看到一連串的連線訊息跑出來。這時候就可以打開瀏覽器看看是否已經可以上網了!

下次要使用這個3G網卡的話,其實只要載入driver後打 'wvdial xxxx' 即可。所以我們甚至可以寫一個script讓udev在發現這個裝置時自動的撥號上網!

最後附上我自己參考了幾個網站別人的設定以後改的"wvdail.conf"檔:

  [Dialer cht]
  Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
  Modem Type = Analog Modem
  Phone = *99#
  ISDN = 0
  Username = a
  Init1 = ATZ
  Password = a
  Modem = /dev/ttyUSB0
  Baud = 460800
  Stupid Mode = 1
  FlowControl = Hardware (CRTSCTS)

2008年2月23日 星期六

Unicode環境下使用mplayer中文字幕

我目前使用的linux為gentoo,mplayer版本為1.0_rc2_p24929-r1。
雖然mplayer算是字幕支援度相當完善的播放軟體,但是要讓他真正能夠合我的心意還真是花了一點時間。

要讓mplayer可以使用自己指定的TTF字型來作為字幕顯示時使用,有幾點需要注意的地方:
  1. 編譯mplayer時,USE參數要加入"truetype"支援,不然在mplayer中設定tff字型給字幕用時,mplayer會警告無法使用該字型。
  2. 在"/etc/mplayer/mplayer.conf"中的"fontconfig=1"要改成"0"。如果發現明明已經給了一個支援繁簡字型的utf8字型後,字幕卻出現許多底線(下劃線, "_"),就代表fontconfig被設定成為"1"了。這是因為mplayer支援三種字幕字型指定方式:
    1. 使用fontconfig,設定畫面中要指定的是"字體名"而非"字體檔路徑"。(打"fc-list"就可以知道何謂字體名)
    2. 停用fontconfig,設定畫面中指定字體檔路徑。(我心理真正想用的方法)
    3. 停用fontconfig,設定畫面中指定font.desc檔路徑。
換句話說,如果沒有把"fontconfig"設定為"0",mplayer就會把你輸入的TFF檔案路徑當作是字體名了,結果當然就是沒辦法用對的字型來顯示字幕囉。