2008年7月27日 星期日

Vim TOhtml

過去在blog上若遇到要寫原始碼, 總是自己以 html tag 一行行改寫, 寫久了, 難免感到不便, 所以 survey 了一下, 找到以 vim 利用 tohtml.vim自動轉碼的方法。
  1. 安裝 vim-script (主要是需要 tohtml.vim)
  2. 在 /etc/vim/vimrc.local 加入

    let html_use_css=1

    這是為了產生以ccs控制版面的 html code.
  3. 在 Blogger 的 template 加入 css 的 source code

    .Constant { color: #ff6060; }
    .Statement { color: #0000ff; }


使用範例:
:10,40Tohtml, 把第十到第四十行轉成 html

tohtml.vim 也可以轉出 XML
:let use_xhtml = 1

:help tohtml for more details.

2008年7月24日 星期四

Evince 日文顯示問題

在安裝了 xpdf-japanese 後就可以看到日文的 PDF, 但不知什麼原因, 並不是所有的文件都看得到日文字, 大概是字形設定有誤吧, Anyway, 在胡亂測試後, 找到下面這個解法。
  1. 安裝 xpdf, xpdf-japanese
  2. 下載 poppler-data-0.2.0.tar.gz 安裝 poppler-data
  3. 解開後
    make install datadir=/usr/share
  4. 編輯 /etc/fonts/conf.d/60-latin.conf 在<prefer>內加入日文字形
    <alias>
      <family>serif</family>
        <prefer>
          <family>Bitstream Vera Serif</family>
          ...
          <family>Kochi Mincho</family>
        </prefer>
      </alias>

Evince 中文顯示有問題的朋友,應該可以比照辦理。

References

2008年7月23日 星期三

Debian on the Fujitsu S2210

換了工作,也換了一台新的NB,因為工作的需要,得在NB上灌Linux,照舊寫個summary,方便日後參考。

這次還是灌 Debian, 大部分的安裝還是和以前一樣, 沒什麼特別的地方, 唯獨顯示晶片和無線要自己編譯kernel module, 所幸這部分並不難, 而且 apt 上都有 source 套件, 不需另外下載。

Video
安裝系統時,安裝程式會自動安裝 ati 的 driver, 並做好相關的設定, 就一般使用而言, 這樣已經足夠了。但自動安裝的環境不支援硬體的3D功能, 不幸的是, 小弟的工作會用到 3D 加速, 解決的方法有二, 第一是重編 mesa, 讓它只使用 software render, 第二種方法就是重編 kernel module, 讓module 支援 3D, 在這裡, 小弟選擇爽度較高的第二種方法:

  1. 因為要重編 module, 所以要先建立編譯 kernel的環境(安裝 gcc, linux-header 等族繁不及備載)
  2. 安裝 fglrx-modules-2.6.686, fglrx-control, fglrx-source
  3. 到 /usr/src 解開 fglrx.tar.bz2, 解開壓縮後到裡面執行 ./make.sh 就會自動編譯 fglrx.ko
  4. 把編譯好的 fglrx.ko copy 到 /lib/modules/2.6.25-2-686/nonfree/fglrx/ 取代原本的 module
  5. 把 /etc/X11/xorg.conf.fglrx-0 改成 xorg.conf

其實這個 flow 並不是最正確的做法, fglrx-module 應該是不用裝的, xorg.conf 裡有很多設定是不需要的, 但這個 flow 應該是最簡單的方法。

Dual Display
fglrx 似乎不支援 randr, 所幸 如果在載入 fglrx 時, 如果 detect 到 D-sub 有接, 會自動切到 clone mode, 作簡報時還滿方便的, 也可以在 xorg.conf 中強制指定

Option "DesktopSetup" "clone"

man fglrx for more details.

Wireless
S2210 的 wireless 是 Atheros 的 AR242x 系列, madwifi 有支援, 但需要自行編譯 kernel module:
  1. 安裝 madwifi-tool 和 madwifi-source 兩個套件

  2. 編譯 module
    1. 到/usr/src 解開 madwifi.tar.bz2
    2. 到 /usr/src/modules/madwifi/script/ 執行
      ./madwifi-unload
      ./find-madwifi-modules.sh $(uname -r)
    3. 到 /usr/src/modules/madwifi/ 執行
      make; make install
      所有的 driver 會裝到 /lib/module/$(uname -r)/net


  3. 載入 kernel module

    modeprobe ath_pci

    dmesg 看一下, 如果有下面這樣的error
    wifi%d: unable to attach hardware: 'Hardware revision not supported' (HAL status 13)
    表示無線模組被 disable 了, 最簡單的方法是重新開機,如果reboot無效, 就先進 windows 一次, 再回到 Linux。這一次 module 應該會自動載入, iwconfig 應該會看到 wifi0 和 ath0,如果有表示kernel module 載入無誤。

  4. 連上 AP
    ifconfig ath0 up
    iwconfig ath0 essid "<ESSID>" key <key number>

    如果要連上 DHCP server

    dhclient ath0

  5. 最後再 /etc/network/interfaces 加入
    iface ath0 inet static
    pre-up /sbin/iwconfig ath0 essid "<ESSID NAME>" key <key number>
    address 168.95.1.1
    netmask 255.255.255.0
    gateway 168.95.1.254

    這樣就可以用 ifup ifdown 來控制無線網卡

ACPI
把 user 加入 powerdev 的 group 就可以用 gnome-power-manager 來 suspend/ hibernate, 螢幕的亮度可以用 Function key 來調整, LID 也可以正常運作, 總之把使用者加入 powerdev 的 group 後,人生就變彩色的了。

待解決的問題:
因為這些問題, 不大影響日常工作, 所以暫時先擱著:
  • ACPI, function key 可以調整LCD的亮度, LID也可以正常運作, 但 suspend 有問題, 無法進入 suspend mode
  • Multimedai key, S2210 上方有一排多媒體按鍵, 有人寫了 driver 放在網路上, 但我懶得試... :p


Reference
Wifi:
MadWifi 'First Time User' HOWTO

Problem during the boot: "wifi%d: unable to attach hardware: 'Hardware revision not supported' (HAL status 13)"

2008年7月22日 星期二

Nvidia Driver Complains Xen Is Not Supported

之前一直都是用 debian 提供的 nv driver. 但因為最近工作的關係, 需要 3D 加速, 於是到 Nvidia 的網站下載 driver, 不過, 沒想到 Debian 裡 Linux kernel 2.6.25 竟然是內建support Xen 的... 偏偏 Nvidia 的 driver 不支援 support Xen 的 kernel... 挖哩咧~ 所幸在 nvnew.net裡找到下面這個解決方法:

cd /lib/modules/`uname -r`
grep CONFIG_XEN . -Rl | xargs -i sed -i -e 's/CONFIG_XEN/CONFIG_LUPO/g' {}
export IGNORE_XEN_PRESENCE=1
sh NVIDIA-Linux-x86-169.12-pkg1.run


Reference:
nVidia drivers on Debian Lenny with 2.6.25-2 kernel

2008年7月20日 星期日

Connect Bluetooth Mouse at Boot Time

Add device to hcid.conf
Edit "/etc/bluetooth/hcid.conf". Add following lines:

device <Bluetooth Address> {
name "<Device Name>"
}

Your can get the bluetooth address and device name by "hcitool scan"

Pair device
hidd --search

Connect at boot time
Edit "/etc/default/bluetooth". Change

HIDD_ENABLED=0

to

HIDD_ENABLED=1


All set! Restart your computer.

Reference:
HOWTO: Logitech Bluetooth Mouse & Keyboard

2008年7月1日 星期二

ForwardX11 in SSH

By default, ForwardX11 is not assigned. Modify /etc/ssh/ssh_config or ~/.ssh/config to make ForwardX11 enabled.

PS. There is also a X11Forwarding in sshd_config, but by default, it is set to "yes".