九月 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 有趣且吸引人的地方,這個 “開放的” 作業系統,
從頭到腳你都可以看得到、摸得到、玩得到、用得到。 :-)

六月 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/

祝 使用愉快!

十月 8, 2005
» Hdparm Tuning

這一個軟體「hdparm」它可用來調整 IDE 硬碟的參數
,以求得到最佳效能。

很多人的測試下,證實 hdparm 的確可以增進硬碟的
效能,假使 HDD 規格越差,那麼增強的效果會越明顯!
(尤其是 NB’s HDD)

經過 hdparm 調整參數後,確實會有「些微」效能增加!
所以提出來跟大家分享,有興趣的朋友不妨試試看。

安裝完後,可以簡單的對自己的硬碟做一些基本檢測:

1:# hdparm -Tt /dev/hda
(可對 hda 做效能測試,會得到這顆硬碟的效能測試數據)

2:# hdparm /dev/hda
(可察看一下目前 hda 的參數設定狀態)

3:# hdparm -i /dev/hda
(可察看 hda 詳細資訊狀況與支援類型)

4:# man hdparm
(工欲善其事,必先利其器,man hdparm 這是一定要的)

了解 hdparm 的參數用法後,就可以來對硬碟做最佳化設定。

1:# hdparm -c3 -m16 /dev/hda
(打開 32-bit 存取模式,對於舊款硬碟,可提升加倍效能)

2:# hdparm -d1 -u1 /dev/hda
(反遮 IRQ 中斷,開啟 DMA 模式)

3:# hdparm -d1 -X udma5 /dev/hda
(開啟 Ultra DMA5 模式,ATA100/133)

4:# hdparm -c3 -m16 -u1 -d1 -X udma5 /dev/hda
(hda 火力全開,效能全開模式)

如果對以上參數的意義還不甚清楚的話,請務必 man hdparm!
或者查看 /usr/share/doc/hdparm/* 會有詳盡的說明!

修改開機啟動設定:

由於 hdparm 設定的參數,不能延續到下一次的開機,
若希望系統可以在每次開機時,都已做好最佳化參數設定,
那得必須修改 rc.local 檔,或者在 rcS.d/* scripts 加入
hdparm 的參數設定,如此可確保每次 reboot 後,依然
保有原先的 hdparm 設定值。

後記:

hdparm 除了在效能調教以外,對於電腦的電源管理也
很實用!若對 hdparm 電源管理有興趣,不妨參考:
http://www.gentoo.org/doc/zh_tw/power-management-guide.xml

九月 28, 2005
» X40 Backup Code

為了應急,替我的小黑 X40,隨手寫的 Full Backup
Script,僅自家用,先記錄下來 (有空在改)。

#!/bin/bash
mntpoint=”/mnt/backup”
hddstate=`mount $mntpoint 2> /dev/null && sudo chown cyj.cyj $mntpoint && df|grep sda5|sed ‘s/ \+/ /g’|cut -d” ” -f1`
declare -i freespace=`test -z $hddstate || df|grep sda5|sed ‘s/ \+/ /g’|cut -d” ” -f4`
bktime=`date +%F-%H%M`

backup_now() {
echo -e “\nBackup starting now!\n==================================>”
`mkdir -p $mntpoint/FullBK/$bktime`
bkpath=”$mntpoint/FullBK/$bktime”
bkpath2=”$mntpoint/FullBK/other”
`sudo cp -a /mydocs /EIO_Binders/ /bin/ /boot/ /dev/ /etc/ /home/ /lib/ /root/ /sbin/ /usr/ /var/ $bkpath2/* $bkpath`
`sleep 5;umount $mntpoint`
}

freespace_lt_10g() {
if !([ -z $hddstate ]) ; then
echo -e “\nIt’s too less freespace to backup!.. removing old backup files!\n==================================>”
oldfiles=`ls -l $mntpoint/FullBK/|head -2|tail -1|sed ‘s/ \+/ /g’|cut -d” ” -f8`
`sudo rm -rf $mntpoint/FullBK/$oldfiles;sleep 5`
backup_now
fi
}

freespace_gt_10g() {
if !([ -z $hddstate ]) ; then
backup_now
fi
}

if !([ -z $hddstate ]) ; then
if [ "$freespace" -lt "10240000" ];then
freespace_lt_10g
else
freespace_gt_10g
fi
echo -e “\nok! well done!\n<==================================\n”
else
echo -e “\nno usb_hdd interface found.\n<==================================\n”
fi

biggo.com.tw

A Django site.