五月 22, 2009
» [tips] benq FP222WH + nvidia 達到原生解析度1680x1050的方法

最近辦公室的電腦換了一張nvidia 9400的顯示卡,
可是搭配上benq FP222WH ,
解析度怎麼調最大都只有640x480, (各種方法都試過了)
後來總算讓我查出是EDID的問題,
原本舊版的nvidia driver有一招是在xorg.conf設定
"IgnoreEDID" "true",
不過我新版的180.51 driver根本不適用這個方法,
後來我研究了快一天,
不過最後研究出來的解決方法倒是很簡單,
放在這提供有需要的人參考,
首先我先去抄ATI顯卡列出的EDID,
然後將它做成一個128 byte 的EDID
HEX file, 我已經做好了所以直接抓這個檔案擺在/etc/x11就可以

http://kalug.linux.org.tw/~tim/benq/benq-c.bin

然後在你的xorg.conf裡加上幾行,
(請自行比對xorg.conf的相異處)

Section "Monitor"

Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30.0 - 86.0
VertRefresh 60.0

# 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
Modeline "1680x1050_60.00" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync

EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"

Option "ConnectedMonitor" "DFP"
Option "CustomEDID" "DFP-0:/etc/X11/benq-c.bin"
Option "UseDisplayDevice" "DFP" # DVI out

SubSection "Display"
Viewport 0 0
EndSubSection
EndSection

我的是DVI接頭,
另外一個同事用的是DSUB(VGA) 的,
他說只要DFP改成CRT也可以用,
我們一個是用debian一個是用gentoo,
在預設情形下解析度都是錯誤的,
但是透過這個方法就可以達到原生解析度1680x1050. :)

九月 4, 2008
» Django 1.0 released !!

http://www.djangoproject.com/weblog/2008/sep/03/1/

Django 1.0 released!

1.0是Django project一個很重要的里程碑,因為一直以來官方對於Django 1.0有個很重要的承諾,就是在1.0之後的所有版本都將維持向前相容性,就是不論是到1.x多少版,都將維持對1.0版本程式的相容性而不會再作任何會打破相容性的重大變動。這也是為什麼1.0版本會遲遲不推出的原因。

不過1.0 release的這一天終於來了,
根據Django官方網頁的說法,自從上一個穩定版Django 0.96.2以來,到這次的1.0版本發佈,已經有超過三十五萬行的Django程式碼被修正或改變,足見改變之大。(改動350000行的python, orz)

這次總算是讓我可以使用Django的新版本了,畢竟用了0.95.x跟0.96.x實在是很久了,而Django的SVN trunk對於真的要上線的系統畢竟還是個比較危險的使用方式。不過美中不足的是debian lenny似乎還是會來不及將Django 1.0包進debian linux系統,看來以後安裝上線系統又要多費一番功夫。

想知道更詳細的改變內容跟新增功能請看Django 1.0 release notes

七月 14, 2008
» [tips] rewrite debian/ubuntu 's lighttpd conf script from perl to python

Today I want to port lighttpd on another platform which basically a debian sarge system but without perl and dpkg package system on it. Since it's a debian based platform so I start from porting debian's binary lighttpd package, however I've found there're some perl script lays in /usr/share/lighttpd which are used when lighttpd startup.

While I can easily dump the result of perl script into a textfile,
and then startup my lighttpd correctly, I thought "maybe port it to python is not a bad idea." (since my target platform has python!), so here is the effort:
create-mime.assign.py

#!/usr/bin/python
#
# This script directly translate from debian's lighttpd perl script:
# create-mime.assign.pl
#
# Author: timchen119.at.nospam.gmail.com
# License: Public Domain
#
import sys

try:
f = open("/etc/mime.types",'r')
extensions = {}
print "mimetype.assign = ("
for line in f:
line = line.strip()
if line.startswith('#'): continue
if line != "":
splitlist = line.split()
if len(splitlist) < 2: continue
mime = splitlist[0]
for ext in splitlist[1:]:
if ext in extensions.keys(): continue
extensions[ext] = 1
print '".%s" => "%s",' % (ext,mime)
f.close()
print ")"
except Exception,e:
print e
sys.exit(1)


include-conf-enabled.py
#!/usr/bin/python
#
# This script directly translate from debian's lighttpd perl script:
# include-conf-enabled.pl
#
# Author: timchen119.at.nospam.gmail.com
# License: Public Domain
#

import os,glob

confdir = "/etc/lighttpd/"
enabled = "conf-enabled/*.conf"

os.chdir(confdir)

for file in sorted(glob.glob(enabled)):
print 'include "%s"' % file

use-ipv6.py
#!/usr/bin/python
#
# This script directly translate from ubuntu's lighttpd perl script:
# use-ipv6.pl
#
# Author: timchen119.at.nospam.gmail.com
# License: Public Domain
#

import socket

##this sometimes not accurate. (like in vserver mode)
#if socket.has_ipv6:
#

try:
if socket.socket(socket.AF_INET6,socket.SOCK_STREAM,0):
print 'server.use-ipv6 = "enable"'
except:
pass

All of these files can be found in http://kalug.linux.org.tw/~tim/lighttpd-debian-python-script/
Well something quite interesting happened when I port the debian's create-mime.assign.pl into python, It's that my python script's final result is not equivalent to perl one and has more mime types than its :
--- perlmime.txt    2008-07-14 15:29:23.000000000 +0800
+++ pymime.txt 2008-07-14 15:29:33.000000000 +0800
@@ -114,6 +114,11 @@
".dvi" => "application/x-dvi",
".rhtml" => "application/x-httpd-eruby",
".flac" => "application/x-flac",
+".pfa" => "application/x-font",
+".pfb" => "application/x-font",
+".gsf" => "application/x-font",
+".pcf" => "application/x-font",
+".pcf.Z" => "application/x-font",
".mm" => "application/x-freemind",
".gnumeric" => "application/x-gnumeric",
".sgf" => "application/x-go-sgf",
@@ -193,6 +198,11 @@
".pk" => "application/x-tex-pk",
".texinfo" => "application/x-texinfo",
".texi" => "application/x-texinfo",
+".~" => "application/x-trash",
+".%" => "application/x-trash",
+".bak" => "application/x-trash",
+".old" => "application/x-trash",
+".sik" => "application/x-trash",
".t" => "application/x-troff",
".tr" => "application/x-troff",
".roff" => "application/x-troff",
@@ -282,6 +292,7 @@
".tgf" => "chemical/x-mdl-tgf",
".mcif" => "chemical/x-mmcif",
".mol2" => "chemical/x-mol2",
+".b" => "chemical/x-molconn-Z",
".gpt" => "chemical/x-mopac-graph",
".mop" => "chemical/x-mopac-input",
".mopcrt" => "chemical/x-mopac-input",

So I start to dig why this happened, and I've found a strange perl regex filter all these mimetypes out, I believe it's a minor bug in original perl program. (or it does implicitly doing something meaningful? well I can't figure it out.)
--- create-mime.assign.pl    2008-07-14 15:35:58.000000000 +0800
+++ create-mime.assign.pl.new 2008-07-14 15:36:07.000000000 +0800
@@ -7,7 +7,7 @@
chomp;
s/\#.*//;
next if /^\w*$/;
- if(/^([a-z0-9\/+-.]+)\s+((?:[a-z0-9.+-]+[ ]?)+)$/) {
+ if(/^([A-Za-z0-9\/+-.~%]+)\s+((?:[A-Za-z0-9.+-~%]+[ ]?)+)$/) {
foreach(split / /, $2) {
# mime.types can have same extension for different
# mime types

replace this line and this will produce same results as mine.

usage:
just copy these py scripts to /usr/share/lighttpd
and change these lines if you're using debian based system
#### external configuration files
## mimetype mapping
#include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/create-mime.assign.py"

## load enabled configuration files,
## read /etc/lighttpd/conf-available/README first
#include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.py"

四月 24, 2008
» ifort 10.1.015 note again

On etch

apt-get install libstdc++5 lib32gcc1 ia32-libs

二月 17, 2008
» Mercurialized home

最近我把 $HOME 裝進 Mercurial 了。

應該有很多人會這樣作。還沒有試的人可以試試看,味道不錯。下個 hg init ~/ 來在 $HOME 裡建立 .hg 貯庫,然後 .bashrc.vimrc.irssi/ 就可以通通塞進去了。

... continue...

二月 6, 2008
» dos/unix

今天不小心。

... continue...

» Am I getting old or ....The lenny is coming this year???

根據 http://lwn.net/Articles/267722/的說法,

下一個版本的 debian (lenny) 將在今年9月release.

這可真是出乎我預期的快... etch... 不是去年四月才出的嗎?

**<小孩勿看>** 大便 難道真的落屎了嗎? **< / 小孩勿看>**

然後話說 /bin/sh link to dash 有了ubuntu帶頭衝之後 還真的debian就跟進了.

我的預言(詛咒)成真?! 看來lloyd大又要怨恨了 :P

(話說 難道再下版inittab也是難逃upstart之手了嗎??? ...有待下回茅房分解...)

這一行果然是很難混的啊.... XD

還有python 2.5.X 啥時要給我進default啊... 時間也該到了吧...

一月 7, 2008
» 細明體

細明體是個好字型,因此我又在 Debian 上玩了一次。

這次我要記下來了。

... continue...

九月 7, 2007
» Debian Tuning (apt-build + debfoster)

以前我自己的 Debian System 會用一種變態的手法來調整,
調整出來的系統相較於直接安裝,確實有快一些,在我的
IBM X40 有明顯的感受,沒辦法 X40 的 1.8 吋超慢效能,
逼的我非這麼嘗試不可。 :-P

首先用 net-install 光碟安裝好 “最基礎” 的 base-system
(裝最少且能開機的系統,預設大概 200 多MB),接下來,
安裝 kernel-source,根據自己的硬體來 rebuild kernel,
用不到的模組、功能、選項統統都取消,然後 “必用” 的
直接編入核心 (不採用模組方式)。

接著用 dselect 把所有已經安裝的 package 巡視一遍,
把 “不用的” packages 統統刪除,把 base-system 再瘦身,
瘦身完的 base-system 會更精簡在更小些。

完成之後,安裝 apt-build 以及 debfoster。先使用 dpkg
將系統中目前最精簡的 package 名單備份出來,然後開始
apt-build world,在 build world 的過程中,系統會安裝
一大堆其他套件,這時先不用管它 (最後會刪除這些套件)。

過了好久,apt-build 終於完成,upgrade 上 recompile 的
套件後,同樣用 dpkg 列出目前已安裝的套件資訊,這時
套件的數量大概比原先 base-system 的清單多出約 200 多個,
這些都是多裝的,用 diff 比對原本的備份清單,找出哪些
是新增加的,在來全部移除。

清完後,debfoster 也派上用場了,它可用來 “二度清潔”。
再來就差不多了,往後看你要安裝什麼套件,就用 apt-build
來裝,裝完就用 debfoster 來清。

大功告成,base-system 快了乾淨了,接下來蓋城堡時
也要遵守這個原則 (apt-build+debfoster),要玩什麼,
要裝什麼,通通自己來吧!

最後要說的是,”效能調教” 還有其他更多玩法及細節,
apt-build+debfoster 只是其中一種,還有許多更好玩的,
這就是 Linux 有趣且吸引人的地方,這個 “開放的” 作業系統,
從頭到腳你都可以看得到、摸得到、玩得到、用得到。 :-)

七月 27, 2007
» Debian 的奇怪 mercurial 設定

/etc/mercurial/hgrc.d/hgext.rc 這個檔怪里怪氣的,看 /usr/share/doc/mercurial/README.Debian 的日期,說是過時太久了也不一定。

這個奇怪的 hgext.rc 會載入一些在 lenny (current testing of Debian) 的 mercurial 0.9.4 裡沒有包的 extension。像是 hgext/churn。結果會讓 mercurial 在執行的時候跑出來一些煩人的警告訊息。幸好無害。

不過,它的有害影響是讓 hg view (hgk) 無法動作。這就讓人困擾了。為了正確在 Debian 上啟動 hgk,我用 export HGRCPATH="$HOME/.hgrc" 來使 mercurial 不要去讀取系統裡的 mercurial 設定檔 (就是那個奇怪的設定檔)。

當然,不要忘了 apt-get install tk8.4,不然沒有 wish,hgk 也不會啟動喔。

七月 5, 2007
» 自編 Python 要記得裝的 dependency (Debian)

$ apt-get install zlib1g-dev libbz2-dev \
 libdb4.4-dev libncursesw5-dev libreadline5-dev \
 libsqlite3-dev libssl-dev

忘記的話會很煩,一直重編。

六月 29, 2007
» Wireless in Debian II (Huawei E220 3.5G Modem)

最近有空可以好好的玩一下 Huawei E220 3.5G Modem
今天下午測了一下,很快的,我的 Debian 已經可以 Work 了。

很簡單,四個步驟搞定。

1. 安裝 wvdial。sudo apt-get install wvdial。

2. 設定 /etc/wvdial.conf,由於我的是遠傳電信,
所以下面內容只適用於 FETNET,其他電信業者是否相通,
則有待確認。

[Dialer Defaults]
Phone = *99#
APN = internet
Username = username
Password = password
Stupid Mode = 1
Dial Command = ATDT
Modem = /dev/ttyUSB0
Baud = 460800
Init2 = ATZ
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem

3. 把 3.5G USB 無線網卡插上去後,lsusb 一下,
請找到無線網卡的資源,例如下列:

Bus 004 Device 001: ID 0000:0000
Bus 002 Device 002: ID 12d1:1003 <---這一行!
Bus 002 Device 001: ID 0000:0000

接著請重新啟動 usbserial (kernel modules)。

sudo rmmod usbserial
sudo modprobe usbserial vendor=0×12d1 product=0×1003

4. 接著請撥號連線。sudo wvdial &。
撥通後就可以 3.5 G 無線上網了,很簡單吧。

» Wireless in Debian I (ipw2200/wpa_supplicant)

在剛裝好的 Debian Base System 時,如何啟動內建的無線網卡,
很簡單,五個步驟就好。

1. 下載官方的 Firmware,
http://ipw2200.sourceforge.net/firmware.php 可以下載。
下載完成後,請解開丟到 /usr/lib/hotplug/firmware 裡。

2. 重啟 ipw2200 modules,只要 sudo rmmod ipw2200,
sudo modprobe ipw2200 即可。

3. 更改 /etc/network/interfaces 使其符合 eth1(wireless) 的設定。

4. 如果你的無線網路是 dhcp 分配 IP 的話,只要 sudo dhclient eth1
重抓 IP,更新後即可無線上網。

5. 如果需要採用 wpa_supplicant (無線網路加密) 的話,
請先建立 /etc/wpa_supplicant.conf 設定檔,接著打以下指令:
sudo wpa_supplicant -w -i eth1 -D wext -B -c /etc/wpa_supplicant.conf
sudo dhclient eth1
抓到 IP 後就可以上網啦!

以上是簡記,完整資訊可參考過去的一份記錄:
—ipw2200/ipw2915 from-scratch

九月 7, 2006
» Debian on Powerbook G4

自從上次,我的 Linux 資料完全毀損之後,我大概已經好久一陣子,
沒有碰 Linux 了!對我這個 Linux 狂熱份子來講,還真的不好受!

三日不碰 Linux,言語無味、面目可憎乎?不!要改成:三日不碰
『Debian GNU/Linux』,言語無味、面目可憎啊!

其實也沒有那麼嚴重啦!只是自己對 Debian 系統充滿了無比的興
趣與熱忱,而且身為 Debian 教徒的一份子!我應該要… blah blah …

好吧!其實是因為我的小黑 X40 借給女朋友使用,我現在打算將所有
的事情都放在自己的另一台電腦 Powerbook G4 上來做!以前是兩台
同時都在用,所以 Linux 歸 Linux,OSX 歸 OSX,如今想要整合為一
,不然當個『雙槍俠』常常兩台電腦帶在身上也很麻煩!

為了繼續延續對於 Debian GNU/Linux 的研究與專精,我在 PB G4 上
,也切了一個 partition 來裝 Debian 了!這次重新開始的經驗相當的
美妙,因為回想起最後ㄧ次在 PPC 上安裝 Debian 已經是一兩年前的
事情了!(當時我的工作機是 iBookG4,也在上面裝 Debian。)

一兩年後的今天,在 Apple Laptop 上安裝 Debian 讓我最感到開心的是
:原生的 Wireless Card (Broadcom bcm43xx) 終於可以使用了!

(註:逆向工程破解出 Driver.. 官方沒釋出 PPC Driver,因此一兩年前
要在 Apple Laptop 上使用原生無線網卡上網是無解的!)

不過令人遺憾的!X-window 的 3D 加速還是沒辦法使用,Nvidia 依然
沒有打算釋出 Linux Driver for PPC…

Anyway!這次的重新開始一掃之前的陰霾 (X40 硬碟資料毀損),總算
讓我又勇敢的踏上 Linux 專研之旅!不過這次換了平台!算是繼續延續
一兩年前的 Linux on PPC 之旅! :-D

Linux on Laptop (Powerbook):
http://www.linux-laptop.net/
http://www.mamiyami.com/powerbook/
http://www.ncc.up.pt/~rvr/kh/kh.html

七月 24, 2006
» PPTP-Client Setup (SLED10 & Debian)

延續上次寫到的這篇 Linux Connect to a VPN Server ,這次再來詳細
的簡述一下『真實的安裝過程』。

當然啦!你也可以直接看 HOWTO, 裡面有各式各樣 Distro 的安裝
方法。在這裡我簡記一下,自己在 SLED10 以及 Debian 的安裝過程!

Debian 的話,安裝就很容易了!只要把相關 source.list 加入,全部使
用 apt-get install 就可以搞定啦!

增加 source.list:

  • deb http://quozl.netrek.org/pptp/pptpconfig ./

# apt-get update
# apt-get install pptp-linux pptpconfig

接著使用 root 執行 pptpconfig,然後把 Server 的 IP、帳號、密碼等
相關資訊一一填入,再來比較特別要注意的是,在 Routing 的頁面當中,
必須選擇『All to Tunnel』,因為經過實測後,若沒有選擇此項,最後
會連不出去。

這樣就大功告成啦!

接下來,下面就是在 SLED10 (SuSE Linux Enterprise Desktop 10)
安裝的過程啦! 在 HOWTO 裡面講解的是 SuSE 10.0 的安裝法,基本
上跟自己在 SLED10 安裝時,是有一點出入,所以如果有朋友在 SLED10
安裝 pptpconfig,可參考小弟這篇為主。

首先,你必須要安裝下面這串劈哩啪啦的東西:

  • db1-1.85-90.i586.rpm
  • gnome-libs-1.4.1.7-690.i586.rpm
  • libglade-0.17-237.i586.rpm
  • libgtk+extra0-0.99.17-5mdk.i586.rpm
  • orbit-0.5.17-339.i586.rpm
  • php4-gtk-4.4.0_1.0.2-1mdk.i586.rpm
  • php-gtk-pcntl-1.0.2-1.i386.rpm
  • php-pcntl-4.4.0-1.i386.rpm
  • pptpconfig-20060214-1suse.noarch.rpm

要特別注意的是,上面這些,有些還有 rpm 相依行的問題,不過基本上
它們所相依的軟體都可以直接在 SLED10 官方套件中找到。其他官方套
件沒有的相依軟體,小弟都已經幫各位整理放在上面了!你也可以直接
下載我的壓縮包 (點我下載),該有的軟體都在裡頭囉!剩餘的就是您自己
的 SLED10 安裝片啦!

解開壓縮包之後,接下來就是全部安裝啦!

# rpm -ivh *.rpm

這部份如果還有出現相依行問題,那表示其中有些套件,必須拿出安裝光碟
來安裝相關軟件。

OK!安裝好後,要來設定防火牆規則:

  1. 打開『YaST』
  2. 點選左方『System』
  3. 打開『/etc/sysconfig Editor』
  4. 點選『Netwoks』→『Firewall』→『SuSEfirewall2』
  5. 在『FW_SERVICES_EXT_TCP』加入一個值『1723』
  6. 在『FW_SERVICES_EXT_IP』,『FW_SERVICES_DMZ_IP』,『FW_SERVICES_INT_IP』加入一個值『GRE』
  7. 最後點選『完成 (Finish)』

好啦!到這裡就全部設定完成了!

接下來要使用 root 權限來開啟 pptpconfig啦!注意喔!這邊必須使用『sux -』
指令來切換成 root 。如果只使用 sudo 或者 su - 都會產生錯誤訊息,例如:
php-gtk:display cannot open ... 等等。所以這邊記住要使用 sux - 才行。

$ sux -
# pptpconfig

執行 pptpconfig 後,把 Server 的 IP、帳號、密碼相關資訊一一填入,一樣的
在 Routing 的頁面當中,必須選擇『All to Tunnel』,若沒有選擇此項,最後
網路可能會連不出去。

這樣就大功告成啦!

七月 11, 2006
» How To Install XGL on Debian

最近從 Novell 網站下載了 SuSE Linux Enterprise Desktop 10
,最讓我驚豔的是,SLED 10 已經內建把 XGL 裝好啦!

也就是說,系統一裝好的預設環境下,就可以直接享用 XGL
的特效囉!

雖然 XGL 很炫,但是個人是覺得「實質的」效益並不大啦!
就只是「很炫」而已,雖然這麼說,但我還是希望在自己的
Debian 上來搞 XGL 哈哈哈哈 ...

於是我在網路上找到了這篇:—How To Install XGL on Debian
據說是照著作保證成功哦!而且作者還有寫 Scripts 可以讓你
「一指搞定」,在 Debian 上裝好 XGL!

正打算要來實驗時,一看到這一段字:
- be sure you have Xorg 6.8 or 6.9 NOT Xorg 7.0 some problem for the moment.

當場不弄了... 因為我的 Debian 是跑 unstable source.lst 的,
Xorg 已經破 7.0 了,看來既然覺得 XGL 不實用,那我也
就不搞他啦!(其實是...)

當我要玩 XGL 時,只要到 SLED 10 下,一樣可以玩啦!
呵呵... 同時間我的 Debian 也可以好好的使用,事實上我
認為即使 Xorg 7.0 以上還是可以搞 XGL 的啦...

只是目前沒有多餘的時間可以去測這些 (這才是重點 XD)。

五月 2, 2006
» My X40 Monitor Layout

使用暴力法,終於使 LCD 與 Output 可以同步顯示了!
解決了 X40 長期以來的最大問題!

Section “Device”
Identifier “Intel Corporation 82852/855GM Integrated Graphics Device”
Driver “i810″
Option “MonitorLayout” “CRT,LFP”
Option “Clone” “true”
BusID “PCI:0:2:0″
EndSection

三月 30, 2006
» ipw2200/ipw2915 from-scratch

(一):
「Drivers and Firmware」
http://ieee80211.sourceforge.net/INSTALL
http://ipw2200.sourceforge.net/INSTALL

(二):
「Wireless-Tools」
ifconfig(8), iwconfig(8), iwspy(8), iwlist(8), iwevent(8),
iwpriv(8), wireless(7).

(三):
If you want to use WPA-PSK+TKIP.. and other
mode, you can choose「WPAsupplicant」

「Wpasupplicant」
less /usr/share/doc/wpasupplicant/README.Debian
less /usr/share/doc/wpasupplicant/examples/wpa_supplicant.conf.gz

「Create Startup Script for Wpasupplicant」
# /etc/default/wpasupplicant
# Useful flags:
# -D Wireless Driver
# -D wext less /usr/share/doc/wpasupplicant/README.Debian
# -i Interface (required, unless specified in config)
# -c Configuration file
# -d Debugging (-dd for more)
# -w ait for interface to come up
ENABLED=1 #<— important!!!
OPTIONS=”-w -i eth1 -D wext -B -c /etc/wpa_supplicant.conf”

「Make sure you have a configuration file」
# Minimal /etc/wpa_supplicant.conf to associate with open
# access points. Please see
# /usr/share/doc/wpasupplicant/examples/wpa_supplicant.conf.gz for more
# complete configuration parameters.
# Also see the other files in /usr/share/doc/wpasupplicant/examples/ for
# specific configuration examples.
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
### Example of basic WPA-PSK secured AP
network={
ssid=”Denny’s Home”
psk=”ABCDEFG”
}

「Make sure you set “ENABLED=1″ to “/etc/init.d/wpasupplicant”」
# insane defaults
OPTIONS=”-Bw” # daemonize and wait for interface
CONFIG=”/etc/wpa_supplicant.conf”
ENABLED=1 #<— important!!!

(四):
Have Fun :-D

二月 3, 2006
» Suspend to Ram/Disk

對於使用筆記型電腦的朋友們,相信這是一個簡單卻很
實用的 Tips,在筆記型電腦上如何啟用 Suspend to
RAM & Suspend to DISK?

雖然目前的 Linux distro 在這部份已經支援相當良好,
但免不了還是有失敗的例子,以下分享小弟在 Linux 下
啟用 Suspend to RAM & DISK 的過程,提供參考。

(一)測試:

先察看您的系統是否已經支援休眠模式了。
#cat /sys/power/state
mem disk standby
(如果有 mem、disk... 等值,表示系統已支援休眠模式)

可以簡單的測試一下休眠是否成功
#echo -n mem > /sys/power/state
#echo -n disk > /sys/power/state

如果上面的測試後,系統可以順利休眠與甦醒,那麼這時
即可使用 Klaptop 或 Kpowersave (如果是 KDE 環境)
,來詳細設定 Notebook 的相關休眠動作。

PS:
如果「(一)測試」的部份,cat /sys/power/state 的值
mem 與 disk 均有,但 Suspend to DISK 是失敗的,
可以檢查一下 menu.lst (如果是 GRUB 的話),是否有
帶入 resume=XXX 的值給 kernel。

而 resume=XXX 的值,即是 resume partition
(save the suspended image)。
e.g: resume=/dev/hda7 或 resume=/dev/hdX ...

(二) 編譯核心:

//-- 不建議 Linux 新手或不熟的朋友重新編譯,避免發生
不可預期的後果。請在編譯核心之時,確保知道自己在做
什麼。--//

如果系統預設不支援休眠該怎麼辦?一種可能是相關的
ACPI 模組沒有被掛載上來,另外也許是 kernel 並沒有把
相關功能編入進去。

如果曉得模組的相關名稱為何的話,可以使用 modprobe
將相關模組掛載上來,並按照(一測試)的部份試看看休眠
模式是否順利開啟。

這裡小弟的使用方法,則是 re-build 一份 kernel,直接將
相關的 ACPI/APM 模組編入核心,小弟使用的 kernel 為:
linux-source-2.6.15 (2.6.15-3)

首先 reload 先前的 .config 檔,接著將以下相關的選項
打 * ,編入核心:

Code maturity level options ---> (注意 !!! EXPERIMENTAL!!! )
[*] Prompt for development and/or incomplete code/drivers
[*] Select only drivers expected to compile cleanly

Power management options (ACPI, APM) --->
[*] Software Suspend
(/dev/hda7) Default resume partition (這裡可設定您的 Resume partition)
[*] Encrypt suspend image

ACPI (Advanced Configuration and Power Interface) Support --->
[*] ACPI Support
[*] Sleep States
[*] /proc/acpi/sleep (deprecated)

編譯完成後,建立 initrd (mkinitrd),修改 menu.lst... 等等
接著 reboot 以新的核心啟動系統,新核心啟動完畢後,
可繼續「(一)測試」 的步驟,測試系統是否已經支援休眠模式。

若 re-build kernel 後,可以順利支援 Suspend to RAM
& DISK,那麼真的恭喜您啦!

倘若還是不行,那麼可能就要朝多方向去 Debug 了,
已不在本文的範疇中了 :P 。不過,不妨參考本文後面的
Reference,或許可幫助您更順利解決問題。

(三) 後記:

以上簡單描述小弟在 Linux 下啟用 Suspend to RAM
& DISK 的過程,提供參考,如果大家有相關資料或文獻
要補充那真的太感謝了!

小弟的測試環境:
測試機器: IBM X40
測試版本: Debian (with kernel 2.6.15-3)

更多資源:
http://moto.debian.org.tw/viewtopic.php?t=3149
http://moto.debian.org.tw/viewtopic.php?t=8304
http://moto.debian.org.tw/viewtopic.php?t=4286
http://www.suspend2.net/

一月 6, 2006
» vnc2swf Easy-Howto

其實要在 Linux Desktop 上,錄製教學影片非常的容易!
首先介紹大家 vnc2swf 這個軟體。

這套軟體有 C-version & Python-version,
這裡我們採用 Python Version。

安裝與使用方式非常的簡單:

(一) 首先配置好 Python 環境

* Python (2.3 or above)
* Pygame (1.6 or above)
* Optional: PyMedia (1.3.5 or above - required for mpeg encoding)

以 Debian 為例,我們用 apt-get install 來安裝這些軟體

# apt-get install python python-tk python-pygame
(其他 distro 請依照各家的安裝方式來安裝它)

(二) 接著至少安裝以下其中一個 VNC server

* RealVNC or TightVNC
* x11vnc
* GNOME Vino

我們這裡則是採用 x11vnc
以 Debian 為例,我們用 apt-get install 來安裝這些軟體

# apt-get install x11vnc
(其他 distro 請依照各家的安裝方式來安裝它)

(三) 下載 vnc2swf (Python version) 軟體

* Download vnc2swf (Python) tar.gz or zip
http://www.unixuser.org/~euske/vnc2swf/
(AT download section)

* 解壓縮
$ tar xzvf pyvnc2swf-0.8.1.tag.gz

(四) 開始錄製教學影片

* 啟動 VNC Server
$ x11vnc -localhost -viewonly

* 進入 vnc2swf (pyvnc2swf 解開的目錄)
$ cd pyvnc2swf-0.8.1

* 執行轉錄程式 (vnc2swf.py)
$ ./vnc2swf.py -o filename.swf
(註: 檔名可以自己取,但是副檔名要為swf,這裡的示範為 filename.swf)

(五) 查看結果

* 停留在當前目錄下,尋找 filename*
$ ls filename*
filename.html filename.swf

* filename.swf 也就是剛才所錄製完成的 Flash 檔案,filename.html
即為錄製完成並把 Flash 嵌入完成的網頁。

* 如此即大功告成啦!

(六) 後記

如此輕輕鬆鬆就可以建立一份 Flash 錄製檔案,很簡單吧! :-)

以後各位也可以使用這種錄影的方式,
可以讓初學者更清楚的學會您所分享的文件內容哦!

當然小弟這份文件,也是直接參照 vnc2swf 網站所整理出來的文件,
有興趣了解更多實用技巧的朋友們,不妨前往一探究竟:

http://www.unixuser.org/~euske/vnc2swf/

祝 使用愉快!

biggo.com.tw

A Django site.