九月 28, 2009
» Setting Up an MPICH2 Cluster in Ubuntu 8.04 LTS Server (Quick-Note)

MpichCluster

Setting Up an MPICH2 Cluster in Ubuntu 8.04 LTS Server (Quick-Note)
(https://wiki.ubuntu.com/MpichCluster)

===========================
1. 更改 /etc/hosts,方便遠端直接快速連結。
===========================

假設有兩個 mpi node,所有 node 的 /etc/hosts 都需修改

master@mpi-1:~$ sudo vi /etc/hosts
master@mpi-2:~$ sudo vi /etc/hosts

10.211.55.5 mpi-1
10.211.55.6 mpi-2

=================================
2. 安裝及設定 NFS,讓各 node 有共享的 master folder。
=================================

master@mpi-1:~$ sudo apt-get install nfs-kernel-server

(在此以 mpi-1 主機作為 master)

設定 NFS 目錄與掛載權限

master@mpi-1:~$ sudo mkdir /mpi
master@mpi-1:~$ sudo vi /etc/exports

/mpi *(rw,sync)

master@mpi-1:~$ sudo chown master:master /mpi
master@mpi-1:~$ sudo /etc/init.d/nfs-kernel-server restart

在其他 node 掛載 mpi-1 master folder

master@mpi-2:~$ sudo mkdir /mpi
master@mpi-2:~$ sudo chown master:master /mpi
master@mpi-2:~$ sudo apt-get install nfs-common
master@mpi-2:~$ sudo mount -t nfs mpi-1:/mpi /mpi

==========================================
3. 安裝 ssh,設定金鑰讓各 node 之間以 master 帳號連結不用輸入密碼。
==========================================

(主要是為了方便往後可在 scripts 裡設定各 node 自動串連)

master@mpi-1:~$ sudo apt-get install ssh
master@mpi-2:~$ sudo apt-get install ssh

master@mpi-1:~$ ssh­-keygen ­-t dsa
master@mpi-1:~$ scp .ssh/id_dsa.pub master@mpi-2:~/mpi-1.pub
master@mpi-2:~$ cat mpi-1.pub >> .ssh/authorized_keys

master@mpi-2:~$ ssh­-keygen ­-t dsa
master@mpi-2:~$ scp .ssh/id_dsa.pub master@mpi-1:~/mpi-2.pub
master@mpi-1:~$ cat mpi-2.pub >> .ssh/authorized_keys

測試登入 (不用輸入密碼)

master@mpi-1:~$ ssh mpi-2
master@mpi-2:~$ ssh mpi-1

============
4. 安裝 MPICH2
============

http://www.mcs.anl.gov/research/projects/mpich2

只要在 mpi-1 master folder 安裝一次即可

master@mpi-1:~$ cd /mpi
master@mpi-1:/mpi $ wget http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.1.1p1/mpich2-1.1.1p1.tar.gz

master@mpi-1:/mpi $ sudo apt-get install build-essential
master@mpi-1:/mpi $ mkidr mpich2
master@mpi-1:/mpi $ tar xzvf mpich2-­1.1.1p1.tar.gz
master@mpi-1:/mpi $ cd mpich2­-1.1.1p1
master@mpi-1:/mpi/mpich2­-1.1.1p1 $ ./configure --­prefix=/mpi/mpich2
master@mpi-1:/mpi/mpich2­-1.1.1p1 $ make
master@mpi-1:/mpi/mpich2­-1.1.1p1 $ sudo make install

設定 PATH 環境變數 (每個 node 都要設定)

master@mpi-1:~$ vi .bashrc
master@mpi-2:~$ vi .bashrc

export PATH="/mpi/mpich2/bin:$PATH"
export LD_LIBRARY_PATH="/mpi/mpich2/lib:$LD_LIBRARY_PATH"

在各個 node 上測試程式路徑是否正確

master@mpi-1:~$ which mpd
master@mpi-1:~$ which mpiexec
master@mpi-1:~$ which mpirun

master@mpi-2:~$ which mpd
master@mpi-2:~$ which mpiexec
master@mpi-2:~$ which mpirun

============
5. 設定 MPICH2
============

在各個 node 上建立 .mpd.conf 及 mpd.hosts

master@mpi-1:~$ vi mpd.hosts
master@mpi-2:~$ vi mpd.hosts

mpi-1
mpi-2

master@mpi-1:~$ echo MPD_SECRETWORD=xxx-xx > .mpd.conf
master@mpi-1:~$ chmod 600 .mpd.conf
master@mpi-2:~$ echo MPD_SECRETWORD=xxx-xx > .mpd.conf
master@mpi-2:~$ chmod 600 .mpd.conf

啟動各個 node 的 mpi service

master@mpi-1:~$ mpd &
master@mpi-1:~$ mpdboot -n 2
master@mpi-2:~$ mpd &
master@mpi-2:~$ mpdboot -n 2

在各 node 上檢查是否運行成功

master@mpi-1:~$ mpdtrace
mpi-1
mpi-2

master@mpi-2:~$ mpdtrace
mpi-1
mpi-2

完工

=====================
6. 另外可搭配安裝設定 mpiBLAST
=====================
master@mpi-1:~$ sudo apt-get install libncbi6 libncbi6-dev ncbi-data ncbi-tools-bin ncbi-tools-x11 libncbi6-dbg csh

Installation Guide:
http://www.mpiblast.org/Docs/Install

.

三月 11, 2009
» PostgreSQL backup/restore command (Quick-Note)

把 PostgreSQL backup/restore 會用到的 command 以及參考資料作個整理:

環境建制 (安裝):
$ sudo apt-get install apache2 php5 libapache2-mod-php5 libapache2-mod-auth-pgsql php5-pgsql phppgadmin postgresql-8.3

切換成 postgres 的身份執行:
$ sudo -u postgres psql template1

修改 postgres 的密碼:
template1=# alter user postgres with password ‘PASSWORD’;

建立 pg_root 使用者 (平日存取用途):
template1=# create user pg_root with password ‘PASSWORD’ createuser;

全伺服器備份:
$ pg_dumpall -U pg_root > dump-all.sql
$ pg_dumpall -U postgres > dump-all.sql

使用 postgres 登入之後,還原全伺服器:
$ psql -U postgres < dump-all.sql

單一備份資料庫:
$ pg_dump cbeta -U pg_root > cbeta-dump.sql
$ pg_dump cbeta -U postgres > cbeta-dump.sql

使用 postgres 登入之後,單一資料庫還原:
$ psql -d cbeta -U postgres < cbeta-dump.sql

在 postgres 帳戶家目錄建立 .pgpass
$ cat > .pgpass
localhost:5432:database:username:password
[Ctrl+D]
$ chmod 600 .pgpass

使用 postgres 使用者於 Crontab 中自動備份資料庫:
# vi /etc/crontab
sudo -u postgres pg_dump cbeta > cbeta-dump.sql
sudo -u postgres pg_dumpall > dump-all.sql

參考資源:

二月 25, 2009
» Plone Hosting:One-Click Install scripts (Tests)

在先前一篇 Plone Hosting:One-Click Install with Buildout (Tests) 所展示的方法是利用 buildout 方式來自動建立多個 Plone Site,但這會產生 port 數量的問題。

因此這次的改寫,是將它改成在一個 Zope Instance 之下,自動建立許多個 Plone Site,並且處理好各別 Plone Site 的 Admin 權限問題。換句話說,每一個自動建立的 Plone Site 能有自己獨立的 Admin 權限,而這權限不會擴展到上層的 Zope ZMI 之中。

mkplone.py
Need Three arguments:<sitename><admin><password>
$ bin/instance run ./mkplone.py  Project1  Yenjinc  12345

#!/usr/bin/env python
import sys
import os

from AccessControl.SecurityManagement import \
newSecurityManager, noSecurityManager

from Products.CMFCore.utils import getToolByName
from zope.app.component.hooks import setSite
from Testing.makerequest import makerequest

import transaction

# site:admin:pwd
arguments = sys.argv[1:]
pname = arguments[0]
myname = arguments[1]
rpwd = arguments[2]

# ZMI Admin log in
app = makerequest(app)
acl_users = app.acl_users
admin_username='admin'
user = acl_users.getUser(admin_username)
user = user.__of__(acl_users)
newSecurityManager(None, user)

# Add New Plone-site
pid = pname
factory = app.manage_addProduct['CMFPlone']
factory.addPloneSite(pid, title='Portal')

# Add Manager
site_id = pid
portal = getattr(app,site_id)
setSite(portal)
mtool = getToolByName(portal, 'portal_membership')
regtool = getToolByName(portal, 'portal_registration')
regtool.addMember(myname, rpwd, ['Manager'])

# Log out and commit
transaction.commit()
noSecurityManager()
app._p_jar.sync()

print "Finished adding Plone site"

最後利用 Plone+Apache+mod_rewrite 的方式,僅針對各別目錄 rewrite 即可,就能完成一個初階的 Plone Hosting 構想。

完成這隻程式主要參考:

二月 23, 2009
» Plone Hosting:One-Click Install with Buildout (Tests)

在安裝好 Plone Unified Installer 之後,可以利用 paster 工具來建立 plone buildout 目錄,在這 buildout 目錄底下,除了視作為一個 Plone 開發環境之外,也可將這個 buildout 當作上線的 Plone-Site 使用。

Unified Installer 的安裝介紹可參考:Installing Plone 3 with the Unified Installer。下載完檔案後,打開 README.txt 了解如何安裝:

To install Plone 3.2.1 in a stand-alone (single Zope instance) configuration:
* cd to the installer directory and issue the following command:
>> sudo ./install.sh standalone

To install Plone 3.2.1 in a ZEO Cluster (ZEO server, 2 clients) configuration:
* cd to the installer directory and issue the following command:
>> sudo ./install.sh zeo

安裝完成後,即可使用 buildout 來建置 Plone 系統,事前可參考 Working with buildout 這份文件。更完整的教學可以參考 Managing projects with Buildout

以下簡略將安裝步驟整理:

安裝 unified-installer
$ sudo ./install.sh standalone

設定 PATH
$ export PATH="/opt/Plone-3.1/Python-2.4/bin:$PATH"
$ vi .profile; which python ; python -v

更新 ZopeSkel
$ sudo easy_install -U ZopeSkel
$ sudo paster create --list-templates

設定專案目錄
$ paster create -t plone3_buildout MyBuildout

設定起始環境
$ cd MyBuildout ; python bootstrap.py

下載與安裝
$ bin/buildout

啟動 Plone
$ cd ~/MyBuildout
$ bin/instance start | fg

修改與更新
$ bin/buildout -No

以上是利用 buildout 建立 Plone-Site 的範例。

接下來要展示 Plone One-Click Install with Buildout 的測試範例,用來模擬 Plone Hosting 可能的概況。使用者可透過一個互動介面來輸入 Project Name,接著系統將自動產生一個 Plone-Site 提供給這個 Project 使用。

使用 shell scripts 將 buildout 過程自動化,並額外執行 install.py 來修改 buildout.cfg 的內容,主要目的是產生 random password 以及 port number。最後再執行 siteAutoInstall.py 自動產生 Plone-Site。

Shell Scripts 長像這樣:

#!/bin/bash
read -p "Please Insert Project Name:" pname

paster create -t plone3_buildout --no-interactive $pname
cd $pname && python bootstrap.py
cp buildout.cfg buildout.cfg.ori
cp buildout.cfg buildout.cfg.tmp

python ../install.py
bin/buildout
bin/instance run ../siteAutoInstall.py $pname admin
bin/instance start

port=`cat port.txt`
pwd=`cat pwd.txt`
echo -e "已完成安裝!"
echo -e "Plone-Site: http://localhost:$port/$pname"
echo -e "Password: $pwd (登入後請立即更改密碼)"

install.py 用途是修改 buildout.cfg 的 admin pwd 跟 port,主要使用的 function 如 Python random passwordPython search-and-replace string in files,整個 scripts 會長得像這樣:

>>>from random import Random
>>>import string
>>>from glob import *
>>>import re
>>>
>>>PWD = ''.join( Random().sample(string.letters+string.digits, 12) )
>>>f=open('pwd.txt', 'w')
>>>f.write(PWD)
>>>f.close
>>>
>>>f=open('../port-num.txt', 'r')
>>>old_num=f.read()
>>>f.close()
>>>tmp_num=int(old_num)
>>>tmp_num2=tmp_num+1
>>>new_num=str(tmp_num2)
>>>f=open('../port-num.txt', 'w')
>>>f.write(new_num)
>>>f.close
>>>
>>>f=open('port.txt', 'w')
>>>f.write(new_num)
>>>f.close
>>>
>>>fileList = glob('buildout.cfg.ori')
>>>pattern = re.compile('admin:', re.IGNORECASE)
>>>replace = "admin:"+PWD
>>>cfg = open('buildout.cfg.tmp', 'wU')
>>>for filename in fileList:
>>>        for line in file(filename):
>>>                print >>cfg,pattern.sub(replace, line),
>>>cfg.close()
>>>
>>>fileList2 = glob('buildout.cfg.tmp')
>>>pattern2 = re.compile('8080', re.IGNORECASE)
>>>replace2 = new_num
>>>cfg2 = open('buildout.cfg', 'wU')
>>>for filename in fileList2:
>>>        for line in file(filename):
>>>                print >>cfg2,pattern2.sub(replace2, line),
>>>cfg2.close()

最後一個執行的 Scripts 是 siteAutoInstall.py,這個檔案用途是自動化建立一個 Plone-Site(with NuPlone Skin)。如果僅是純粹產生 Default Plone-Site 的話,可以執行:

>>>from sys import exit
>>>import transaction
>>>from AccessControl.SecurityManagement import \
>>>    newSecurityManager, noSecurityManager
>>>from Testing.makerequest import makerequest
>>>
>>>app = makerequest(app)
>>>admin_username='admin'
>>>
>>>oids = app.objectIds()
>>>pid = 'Plone'
>>>if pid in oids:
>>>    print "A Plone site already exists"
>>>    exit(1)
>>>
>>>acl_users = app.acl_users
>>>user = acl_users.getUser(admin_username)
>>>if user:
>>>    user = user.__of__(acl_users)
>>>    newSecurityManager(None, user)
>>>    #print "Retrieved the admin user"
>>>else:
>>>    print "Retrieving admin user failed"
>>>    exit(1)
>>>
>>>factory = app.manage_addProduct['CMFPlone']
>>>factory.addPloneSite(pid, title='Portal')
>>>print "Added Plone"
>>>
>>>transaction.commit()
>>>noSecurityManager()
>>>
>>>print "Finished adding Plone site"

最後參照 Running Plone and Zope behind an Apache 2 web server 來設定 mod_rewrite,把新建立的 buildout Plone 位址對應到 ex: http://localhost/CMS or http://localhost/project ..etc。

目前這些測試,是在 Shell 底下執行,另外必須研究如何將這互動介面產生到 Web Page 或者是 Plone 頁面上,並且在最後執行成功時,自動 Email 給註冊者相關網址及帳號資訊等 (搭配 mail server)。

以上是直覺化的使用 buildout 建立多個 Plone-Site,每個專案網站擁有一個自己的 buildout 目錄。但這種方式在處理 port 數量以及 Plone+mod_rewrite 時會有問題 (因為要對應許多 port),相對的這些 port 也會造成更多的安全疑慮問題。

因此另一種較好的方法是,研究 siteAutoInstall.py 程式的運作原理,另外撰寫自動化 scripts,並處理好各別 Plone-Site 的 Admin 權限問題後,利用 mod_rewrite 的方式,僅針對各別目錄 rewrite 即可,就能完成一個初階的 Plone Hosting 構想。

Google 上也有類似的 Plone Hosting 構想 (Easier Plone Hosting: Some Ideas),但未見其實作的內容。若 Plone Hosting 的考量需像 http://objectis.org/ 這樣的完整時,需考量及面臨的技術問題就更具規模了。

一月 7, 2009
» Atheros Wireless Not Working after Suspend

If you had the same issue in Ubuntu8.10, you could found the solution included in the “8.10 Release Notes“.

Atheros ath5k wireless driver not enabled by default

The version of the ath5k driver for Atheros wireless devices included in Linux 2.6.27 interferes with the use of the madwifi driver for some wireless devices and as a result has been disabled by default. Many Atheros chipsets will work correctly with the madwifi driver, but some newer chipsets may not, and the madwifi driver may not work with WPA authentication. If you have an Atheros device that does not work with madwifi, you will want to install the linux-backports-modules-intrepid-generic package, which includes an updated version of the ath5k driver. While not installed by default, this linux-backports-modules-intrepid-generic package is included on the Ubuntu 8.10 CD and DVD images for ease of installation.

Wireless doesn’t work after suspend with ath_pci driver

Wireless devices that use the ath_pci kernel driver, such as the Atheros AR5212 wireless card, will be unable to connect to the network after using suspend and resume. To work around this issue, users can create a file /etc/pm/config.d/madwifi containing the single line:

SUSPEND_MODULES=ath_pci

This will cause the module to be unloaded before suspend and reloaded on resume.

五月 12, 2008
» Ubuntu on Sony VAIO TZ37TN/B (五) Less Watts Tips & Tricks (8.04 LTS)

在這一篇 Ubuntu on Sony VAIO TZ37TN/B (二) Fan Speed Controller 提到 TZ37 在運作 Ubuntu 時,電腦會特別的燙,原本以為是 CPU 風扇控制不良,於是寫了風扇控制的 Scripts 來降溫。後來發現原來最大的熱源來自於 Intel 4965AGN 這張網卡,於是來到了 LessWatts.org 網站來挖寶。

目前以 Fan Speed Controller Scripts 搭配 LessWatts.org Tips & Tricks 之後,我的 TZ37 已經不再發燙。

根據 LessWatts.org Tips & Tricks 所修改的設定:

echo 5 >/sys/bus/pci/drivers/iwl4965/0000\:03\:00.0/power_level
echo 1 >/sys/devices/system/cpu/sched_mc_power_savings
echo 10 >/sys/bus/usb/devices/usb1/power/autosuspend
echo 10 >/sys/bus/usb/devices/usb2/power/autosuspend
echo 10 >/sys/bus/usb/devices/usb3/power/autosuspend
echo 10 >/sys/bus/usb/devices/usb4/power/autosuspend
echo 10 >/sys/bus/usb/devices/usb5/power/autosuspend
echo auto >/sys/bus/usb/devices/usb1/power/level
echo auto >/sys/bus/usb/devices/usb2/power/level
echo auto >/sys/bus/usb/devices/usb3/power/level
echo auto >/sys/bus/usb/devices/usb4/power/level
echo auto >/sys/bus/usb/devices/usb5/power/level
echo 10 >/sys/module/snd_hda_intel/parameters/power_save
echo 1500 >/proc/sys/vm/dirty_writeback_centisecs
hal-disable-polling --device /dev/cdrom
hdparm -B 1 -S 12 /dev/sda
echo ondemand >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 5 >/proc/sys/vm/laptop_mode
ethtool -s eth0 wol d
ethtool -s eth0 autoneg off speed 100
ifconfig eth0 down

關閉藍牙以及內建CD-ROM的電源:

echo 0 > /sys/devices/platform/sony-laptop/bluetoothpower
echo 0 > /sys/devices/platform/sony-laptop/cdpower
hciconfig hci0 down

刪除沒用到的一些硬體相關的核心模組:

rmmod hci_usb ohci1394 sbp2 ieee1394 bluetooth joydev pcmcia parport_pc lp parport tpm_infineon tpm tpm_bios yenta_socket rsrc_nonstatic pcmcia_core ricoh_mmc

PowerTop 測試一下:

Cn Avg residency P-states (frequencies)
C0 (cpu running) ( 2.1%) 1333 Mhz 0.4%
C1 0.0ms ( 0.0%) 1067 Mhz 0.0%
C2 0.1ms ( 0.0%) 800 Mhz 99.6%
C3 7.4ms (97.8%)

Wakeups-from-idle per second : 133.7 interval: 15.0s
Power usage (ACPI estimate): 7.4W (8.2 hours)

Top causes for wakeups:
35.9% ( 65.2) : Rescheduling interrupts
20.1% ( 36.5) : i915@pci:0000:00:02.0
12.3% ( 22.4) : extra timer interrupt
10.9% ( 19.9) compiz.real : schedule_timeout (process_timeout)
9.5% ( 17.2) firefox : futex_wait (hrtimer_wakeup)

雖然 PowerTop 跑出 7.4W (8.2 hours),但可想而知,8.2 hours 是不切實際的數字,下次再來把實際的使用時間記錄下來,看看服用了這些保命長壽丹之後,TZ37 的續航可以延長到多久。

五月 11, 2008
» Ubuntu on Sony VAIO TZ37TN/B (四) Running Hardy Heron 8.04 LTS

先前的 Ubuntu on Sony VAIO TZ37TN/B (一) Hardware & Desktop 是在 7.10 的環境下測試,這次我把系統升級到了 8.04 (Hardy Heron) LTS,藉這個機會整理一下 Sony VAIO TZ37TN/BUbuntu 8.04 LTS 的相容性。

相較於在 7.10 還需手動調整的項目,在 8.04 預設裝好就已經能動的有:

  • Sound 耳機孔輸出與筆電喇叭的輸出已經正常了,不會有耳機已經插上去了,結果筆電喇叭也同時還在唱的窘境。
  • FN Keys 音量調整鈕能動, LCD背光也能動了!

原本在 7.10 能動的,在 8.04 卻掛了的有:

  • Integrated Media Buttons (退片鈕也不能動了) 解決的辦法是,使用偏好設定 -> 鍵盤捷徑鍵,將退片動作 binding 在特殊的按鍵上。

除了上述三項以外,其他的就跟 Ubuntu on Sony VAIO TZ37TN/B (一) Hardware & Desktop 大同小異啦!有些預設不能動的東西,改一下就能動了。下面特別整理出幾個在 8.04 要改的東西,因為這些改法跟過去在 7.10 的方式不同。

HSDPA modem (HUAWEI E220 3.5G) 的驅動:
改服用 vodafone-mobile-connect-card-driver-for-linux-2.0.beta2-ubuntu-installer.run 試試,如果遇到問題無法啟動裝置的話,那就只能手動來設定網卡,設定內容可參考 Wireless in Debian II (Huawei E220 3.5G Modem)

Touchpad 的解析設定:
Section “InputDevice”
Identifier “Synaptics Touchpad”
Driver “synaptics”
Option “Device” “/dev/psaux”
Option “Protocol” “auto-dev”
Option “HorizEdgeScroll” “0″
Option “MinSpeed” “0.1″
Option “MaxSpeed” “0.8″
Option “AccelFactor” “0.2″
Option “EdgeMotionMinSpeed” “15″
Option “EdgeMotionMaxSpeed” “15″
Option “UpDownScrolling” “1″
EndSection

Suspend to Ram & Hibernate 終於沒問題了:
$ sudo vi /etc/modprobe.d/alsa-base
options snd-hda-intel probe_mask=1
$ sudo vi /etc/pm/config.d/modules
SUSPEND_MODULES=”ehci_hcd uhci_hcd”

殘念的是,在我的系統上 Hibernate 依舊沒辦法成功,猜測可能是我沒有設定 Hibernate partition 的關係?還沒能去 Debug 這問題。不過話說回來,只要 Suspend to RAM 能一切正常,我就滿足了,這樣就能像在用 Macbook 一樣,隨走即蓋,隨開即用!方便多了。

Ubuntu 8.04 (Hardy Heron) LTSSony VAIO TZ37TN/B 的支援還算不錯,大部分的硬體都能支援,除了 Fingerprint Sensor 還有怪怪的 Memory Card Reader (Ricoh) 以外。不過還存在一個問題需處理,就是增加續航力跟風扇控制的問題,我在下一篇會整理在 8.04 下,如何讓 TZ37 更省電,續航更久。(風扇控制依舊參考這篇 Ubuntu on Sony VAIO TZ37TN/B (二) Fan Speed Controller.)

更多的 Ubuntu on Sony VAIO TZ 討論,請參照 Sony Vaio TZ Series: Quest for 100% Compatibility

四月 16, 2008
» How to install Grub from a live cd

老方法了, 最近一直碰到這檔事, 貼起來做個紀錄. From: How to install Grub from a live Ubuntu cd.

  • $ sudo grub
  • grub> find /boot/grub/stage1
  • grub> root (hd?,?)
  • grub> setup (hd?)
  • grub> quit

如果是拿 Debian net-install 開機片修復其他磁區的 boot-loader,
可以這麼做:

  • # mkdir /mnt/XXX
  • # mount -t XXX /dev/XXX /mnt/XXX
  • # mount -t proc none /mnt/XXX/proc
  • # mount -o bind /dev /mnt/XXX/dev
  • # chroot /mnt/XXX
  • # grub
  • grub> find /boot/grub/stage1
  • grub> root (hd?,?)
  • grub> setup (hd?)
  • grub> quit

四月 14, 2008
» Ubuntu on Sony VAIO TZ37TN/B (三) Performance Tuning

一拿到 TZ37 時, 馬上感受到, 哇靠! 這真是一台超輕薄的筆電, 但是隨即而來的就是: 漸漸的不能忍受他龜慢的速度, 尤其又是一台 1.8″吋 4200rpm 的硬碟在拖垮效能, 於是想起了過去 小黑愛機 X40 不好的歷史....

首先用 bootchart 測一下 TZ37 的開機速度, 測出來為: 1分5秒, 完整的開機到能使用桌面應用程式, 總共花費 2分17秒!

嗯, 真的很慢, 光開個機就要等上兩分多鐘, 於是我祭出了海陸套餐:

這下子調整完後, 咱們看看 TZ37 是否有跑的更快一點, bootchart 測出秒數為 26秒, 完整的開機到能使用桌面應用程式, 總共花費 1分35秒!

嗯, 還不夠快, 後來我把腦筋動到了高速隨身碟上, 由於 1.8″ ZIF 介面的 SSD 目前價位都還貴的離譜, 因此參考這篇 分秒必爭 24款USB高速閃存盤橫評總結, 買了一支 ADATA PD7 (8G) 回來當作主系統碟使用!

動了一點手術, 我把 TZ37 的 Ubuntu Linux 全部移植到這支 PD7 裡, 把內建硬碟的系統全砍了, 將 1.8″吋 120G 的硬碟當作資料碟及備份碟使用, 測試的結果發現 PD7 快閃碟拿來當作系統碟時, 存取速度還蠻快的, 開啟應用程式也不會有一般機械式硬碟那種 lag 的感覺, 一整個就很流暢!

使用 bootchart 測速, 安裝在 PD7 上的 Ubuntu, 開機只要 21秒, 完整的開機到桌面底下, 花費 44秒!! 接著使用 hdparm 來測存取速度, PD7 測出來的 Timing cached reads: 648.17MB/sec, Timing buffered disk reads: 30.42MB/sec, 對照 TZ37 內建的 ZIF介面 1.8″ HDD 為 644.42MB/sec28.27MB/sec.

雖然 hdparm 測出來兩者差距不大, 但是系統實際在運作時, 速度明顯的快速許多, 猜想是快閃碟平均檔案存取速率(Average access time) 以及隨機讀取速率非常快的因素所致, 這點跟 SSD 性質很類似!

對於目前的 Ubuntu on TZ37+PD7 的速度, 大致上已經很滿意了, 接下來如果還能 tuning 出更多的效能的話, 再繼續寫續集吧! :-P

(PS: 最後補充一下 TZ37 在 Ubuntu 下的續航力: 裝一般電池+PD7系統碟+USB 無線光學鼠+螢幕亮度開第三格+開啟無線網路, MSN聊天+上網找資料, 可使用 4小時40分鐘左右... 很讚吧!)

» Ubuntu on Sony VAIO TZ37TN/B (二) Fan Speed Controller

Sony Vaio TZ Series: Quest for 100% Compatibility 討論串裡看到有人問到: I would like to know if around 60 degrees C is a normal temperature (normal use) for the processors. Sometimes I increase the fan speed (using spicctrl) but very soon it decreases. I did not see any option in the bios to get more fan speed at a given temperature. Do you have an idea?

我也測試了一下, 果真發現 TZ37 在 Ubuntu 底下, 風扇控制不甚理想, 為了讓機器更涼快點, 於是寫了一段碼, 即時監控 CPU 溫度, 讓他不飆超過 55度c!

$ sudo apt-get install spicctrl
$ vi /home/cyj/bin/FanSpeedController.sh

  • #!/bin/bash
  • declare -i temp=`spicctrl -T`
  • if [ "$temp" -gt "55" ]; then
  • spicctrl -f 255
  • fi

$ sudo vi /etc/rc2.d/S99FanSpeedController

  • watch -n 120 “/home/cyj/bin/FanSpeedController.sh”

這樣系統每隔兩分鐘 check 一次 CPU 溫度, 如果超過 55度c 的話, 它就 “全速運轉” 一陣子, 直到溫度低於 55度c , 就會恢復原本該有的預設風速! (如果覺得兩分鐘太頻繁的話, 可手動修改 watch 的秒數, 即使改成 10分鐘一次, 也能有效降溫...)

» Ubuntu on Sony VAIO TZ37TN/B (一) Hardware & Desktop

告別過去的 Macbook Triple Boot: Used Bootcamp, 以及 Ubuntu 7.04 on MacBook: Used Bootcamp 之後, 近日接手一台 Sony Vaio TZ37/TN, 沒有了 Parallels / Bootcamp 後, 終於能玩玩 pure Linux 了 (純的喔!)

直接上陣的是 Ubuntu 7.10, 參照 Sony Vaio TZ Series: Quest for 100% Compatibility 來安裝系統, 在預設未調整的 Base-System下, 一裝好能 work 的有 (out-of-the-box):

  • Intel 950 Graphics (3D 正常, 1366×768 寬螢幕解析正常)
  • Wired Ethernet
  • Intel 4965 (A,G,N Wireless)
  • Bluetooth (Bluetooth Mouse on Ubuntu)
  • Touchpad (包含右邊的滑動區域都正常)
  • Integrated Media Buttons (僅有退片鈕可以動)
  • FN Keys (音量調整鈕能動, LCD背光不能動)

調整後能 work 的有:

  • Sound (除了耳機孔輸出與喇叭輸出分開外, 一切正常)
  • Headphone Jack Sensing (正常)
  • Motion Eye (正常)
  • HSDPA modem (HUAWEI E220 3.5G 正常)
  • Suspend to Ram (僅有 AC_power 時才能, Battery_power 會當掉)
  • Suspend to Disk (無論如何, 死當就是了....)

確定無法啟動的有:

  • Fingerprint Sensor
  • Memory Card Reader (Ricoh)

.
Sound Card 的調整:
$ sudo vi /etc/modprobe.d/alsa-base
添加 options snd-hda-intel model=sony-assamd
.
HSDPA modem (HUAWEI E220 3.5G) 的驅動:

  1. https://forge.vodafonebetavine.net/frs/?group_id=12&release_id=11
  2. http://static.scribd.com/docs/6kdtdm1khgp7g.pdf

.
LCD 背光 FN Keys 設定:
$ sudo vi /etc/init.d/hotkey-setup (修改下列)
Sony*)
#modprobe sonypi; (把 modprobe sonypi 註解)
modprobe sony-laptop
.
Touchpad 的解析設定:
$ sudo vi /etc/X11/xorg.conf
Section “InputDevice”
Identifier “Synaptics Touchpad”
Driver “synaptics”
Option “AlwaysCore”
Option “SendCoreEvents” “true”
Option “Device” “/dev/input/mouse1″
Option “Protocol” “auto-dev”
Option “ZAxisMapping” “4 5″
Option “Emulate3Buttons” “yes”

Option “LeftEdge” “102″
Option “RightEdge” “921″
Option “TopEdge” “80″
Option “BottomEdge” “641″
Option “MaxTapTime” “180″

# Cover the whole 1280×800 display from one edge to the other:
Option “MinSpeed” “0.1″
Option “MaxSpeed” “0.8″
Option “AccelFactor” “0.2″
Option “EdgeMotionMinSpeed” “15″
Option “EdgeMotionMaxSpeed” “15″
Option “UpDownScrolling” “1″

# Button handling:
# - Middle and Right click are *REVERSED* on the pad buttons
# (as I more often middle-click than right-click)
# - Top Right simulates MIDDLE click
# - Bottom Right simulates RIGHT click
Option “RTCornerButton” “2″
Option “RBCornerButton” “3″
Option “LTCornerButton” “0″
Option “LBCornerButton” “1″
Option “TapButton1″ “0″
Option “TapButton2″ “3″
Option “TapButton3″ “2″
Option “SHMConfig” “on”
EndSection
.
Motion Eye 的細節設定較繁複:
參照 Sony Vaio TZ Series: Quest for 100% Compatibility.

Suspend to Ram & Disk 的細節設定較繁複:
參照 Sony Vaio TZ Series: Quest for 100% Compatibility. 或者直接採用 這裡 的檔案!

.

桌面 3D 環境美化及調整:

硬體驅動及設定完成後, 先給他 dist-upgrade 一下, 接著安裝 lazybuntu, 輕輕鬆鬆搞定桌面應用軟體, 如果覺得預設桌面環境不夠炫的話, 可參考下面文章來美化桌面!

.
視窗邊框半透明:
$ sudo apt-get install emerald
CCSM -> 視窗裝飾 -> 指令 -> emerald --replace (解決視窗邊框消失問題)
Emerald Theme Manager (細部微調邊框半透明樣式)

到此為止, Ubuntu 7.10 在 TZ37 上已經相當好用了, 不過還是遇到了投影機外接螢幕的問題, 參照了 Ubuntu 7.10 的切換螢幕程式, 輕鬆搞定!

目前已經處理完 TZ37 的硬體驅動以及桌面應用環境的佈設, 在下一篇文裡, 將分享 TZ37+Ubuntu 效能調校的測試數據!

一月 14, 2008
» Triggers in PostgreSQL (using PL/sh & PL/pgSQL)

測試如何在 PostgreSQL 建立一個 觸發器 (Triggers)

測試的目標是:
當 users 資料表的 username 欄位新增資料時,
Trigger 會寄一封信件給管理者,通知欄位資料已經新增。

Google 之後發現 pgMail 以及 PgSendMail 可以做這件事,
但在實際安裝測試後,發現有些錯誤訊息,目前還未能花時間去 Debug,
於是找了另外一個替代方案:使用 PL/sh Procedural Language Handler
手動寫 Shell Scripts 來執行寄信的動作。

PL/sh 的安裝方式可以使用 apt-get install postgresql-8.2-plsh,
也可以來 官網 下載 TarBall 編譯安裝。

安裝完成後,需在 PostgreSQL 裡宣告使資料庫支援 PL/sh 語言,
先找到 createlang_pgplsh.sql 的所在位置,找到後執行:
$ sudo -u $USER psql -d $DBNAME -f $PREFIX/createlang_pgplsh.sql

例如:
$ sudo -u plone psql -d zope_sqlpas -f /usr/share/postgresql-8.2-plsh/createlang_pgplsh.sql

(PS: 以上均為同一行,這裡因為排版關係它自動跳行)

安裝完成後,來到 PostgreSQL 建立 PL/sh function:

CREATE FUNCTION email(text,text,text) RETURNS trigger AS ‘
#!/bin/sh
echo $3 > /tmp/email-trigger
mail $1 -s $2 < /tmp/email-trigger
‘ LANGUAGE plsh;

(PS: 在函數裡使用 shell scripts 寫寄信動作)

建立完成時,可用 SQL 語法測試 Function 有沒有錯誤:
select email(’cyj@localhost’,'Subject’,'Message body’);

如果 cyj@localhost 有收到信件的話,表示此 email() 已能正確運作。

接著必須使用 PL/pgSQL 在 PostgreSQL 裡建立 Trigger Function,
在這 Function 裡呼叫剛才的 PL/sh email() 做觸發的動作。

參考這篇 PostgreSQL - Trigger 入門 寫了一個 email_mytrigger():

CREATE FUNCTION email_mytrigger()
RETURNS “trigger” AS
$BODY$BEGIN
PERFORM * FROM users WHERE username = NEW.username;
PERFORM email(’cyj@localhost’,'Subject’,'Message body’);
RETURN NEW;
END;$BODY$
LANGUAGE ‘plpgsql’ VOLATILE;

此時 email_mytrigger() 已建立完成,接著要決定套用在哪個資料表上:

CREATE TRIGGER email
BEFORE INSERT ON users
FOR EACH ROW
EXECUTE PROCEDURE email_mytrigger();

設定 users 資料表新增資料時,PostgreSQL 會觸發 email_mytrigger(),
在這個 Function 裡會執行用 PL/sh 寫的 email() 去做寄信的動作。

到此為止,這個 Triggers 的測試目標已經達成,在撰寫 Function 過程中,
如果有遇到 PostgreSQL 語法的問題時,可先查找 PostgreSQL Manuals

十一月 30, 2007
» System Security Overview @ NCCU

2007/12/3 即將在 政大應數 分享一個 Talk,
議題是關於 Linux System Security。

我規劃中理想的 Linux System Security 可分以下幾個流程進行:

nccu-se-0.jpg

System Security Overview

User Authorization / su、sudo
PAM 認證機制 / SSHD 安全性設定

chroot / xen / vserver
Tripwire 系統稽核查驗

Network Service Security (APACHE. MAIL. FTP…)
Tcp_wrapper、iptables firewall

系統紀錄管理與監控、自我偵測掃描、攻擊
system log / Testing & Monitoring

完善的備份策略
System Backup (network backup)

.
12/3 的 Talk 只會基礎的談論 System Security Overview,
並整理一些『最快速的系統安全實作 Topic』讓大家參考。

在 System Security Overview 之後的五個主題,
則是更繁雜且深入的內容,留在未來再分享討論吧!

完整投影片 PDF 下載:System Security Overview @ NCCU
課堂中使用的相關檔案下載:NCCU_961203_Files.zip

九月 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
» Feisty Performance - “Fly Like A Butterfly”

Feisty 效能調教,這可能不是最完善的,但是值得參考!
對 Linux 效能調教及更多資訊,有興趣者不妨 Google 一下,
有好文章也歡迎提供囉!

FYI: Feisty Performance - “Fly Like A Butterfly”

八月 16, 2007
» Linux Administration Course

根據前一篇 My Linux Hand Book (branch) ,我將更詳細的內容記載在
網頁上,底下是我在 OSSF::自由軟體鑄造場 工作時所完成的教材資料,
有興趣不妨參考、修改取用。

.
Linux Administration Course

.
背景資訊:

課程的內容與規劃,依照下列三部份來循序漸進: 1. 初學入門 2. 系統管理
3. 網路伺服器架設與管理。預期的目標是,讓學員從初學入門以至於具備
從無到有,自己建立、管理、維護 Linux Server 的能力。以 GNU/Linux
為基礎,整理出一份適合大學生以及研究生,入門 UNIX-Like 的教材。
此教材曾在政治大學應用數學系—暑期研習課程中採用。最近一次完整的
使用紀錄是在法鼓佛教研修學院開設一學期的 Linux Admin 課程。

.
教材大綱:

此份教材內容,主要遵照下列課程大綱來設計。

* 政治大學應數系-暑期研習課程:
o http://yenjinc.info/wp-content/uploads/2006/07/Outline.pdf
o http://yenjinc.info/wp-content/uploads/2006/07/Courses.pdf

* 法鼓佛教研修學院-課程綱要:
o http://yenjinc.info/chibs/Courses.pdf

.
參考資源

此份教材內容的設計,主要參考下列資源。

* Linux 書籍
o 柏青哥的 SUSE Linux 10 (上奇科技)
o Unix/Linux 作業系統原理與管理實務 (學貫)
o LPI Linux Certification in a Nutshell, 2/e. 2006 (O’Reilly)
o Linux Cookbook. 2004 (O’Reilly)

* Linux 網路資源
o http://linux.vbird.org/
o http://kalug.linux.org.tw/~lloyd/LLoyd_Hand_Book/book/book1.html
o 其他更多資源,列表在每週課程檔案的第二頁裡

.
已經完成的電子檔

此份教材的電子檔案,目前分散在以下位置。

* 政治大學應數系-暑期研習課程:
o 第一版:http://yenjinc.info/wp-content/uploads/2006/10/old.pdf
o 第二版:http://yenjinc.info/wp-content/uploads/2007/01/my-linux-hand-book.pdf

* 法鼓佛教研修學院:
o 每週的上課講義與實作內容:http://yenjinc.info/chibs/

.
法鼓佛教研修學院上課記錄
(2007.2/28 ~ 2007.6/27)

* 3/07. Linux 簡介與取得、系統裝置名稱與分割區概念、系統安裝
o — http://yenjinc.info/chibs/960307.pdf

* 3/21. Linux 入門、系統遊走檢視、檔案目錄管理
o — http://yenjinc.info/chibs/960321.pdf

* 3/28. 檔案檢視工具與 vi 編輯器
o — http://yenjinc.info/chibs/960328.pdf

* 4/04. bash 入門篇 (變數、別名、通配字元、歷史清單、設定檔案…)
o — http://yenjinc.info/chibs/960404.pdf

* 4/11. bash 進階篇 (導向、管線與過濾器程式…)
o — http://yenjinc.info/chibs/960411.pdf
o — http://yenjinc.info/chibs/960411Sed.txt

* 4/18. 檔案的打包、壓縮、尋找、萬用字元、正規表示式
o — http://yenjinc.info/chibs/960418.pdf
o — http://yenjinc.info/chibs/960411Sed.txt

* 4/25. 使用者與群組管理、檔案系統權限管理
o — http://yenjinc.info/chibs/960425.pdf
o — http://yenjinc.info/chibs/960425_PIC.tgz

* 5/02. 工作與行程管理、工作排程、套件管理程式與 TarBall 管理
o — http://yenjinc.info/chibs/960502.pdf
o — http://yenjinc.info/chibs/960502_PIC.tgz
o — http://yenjinc.info/chibs/960502TarBall_Plone.txt

* 5/09. 檔案磁碟系統管理 (磁碟分割,檔案系統建立、掛載,備份、救援…)
o — http://yenjinc.info/chibs/960509.pdf
o — http://yenjinc.info/chibs/960509_ppt.pdf
o — http://yenjinc.info/chibs/960509_scripts.txt
o — http://yenjinc.info/chibs/960523_ppt.pdf

* 5/16. 系統開機、運作流程管理、LILO/GRUB 開機管理程式、編譯核心、系統紀錄檢視
o — http://yenjinc.info/chibs/960516.pdf
o — http://yenjinc.info/chibs/960516lpi201.pdf
o — http://yenjinc.info/chibs/960516lpi202.pdf

* 5/23. Linux 系統管理實務 I
o — (4/25—5/16 課程內容複習、案例探討、實作練習、討論…)
o — http://yenjinc.info/chibs/960523_ppt.pdf

* 5/30. Linux 系統管理實務 II
o — (4/25—5/16 課程內容複習、案例探討、實作練習、討論…)
o — http://yenjinc.info/chibs/960530-example1.txt
o — http://yenjinc.info/chibs/960530-example2.txt

* 6/06. Linux 伺服器架設 I (基本網路工具、基礎網路服務、架設、實務應用…)
o — http://yenjinc.info/chibs/960606_ppt.pdf
o — http://yenjinc.info/chibs/960606-pam_tally.txt
o — http://yenjinc.info/chibs/960606-iptables.txt

* 6/13. Linux 伺服器架設 II (SECURITY、HTTP、FTP、MAIL、DNS、SAMBA、NAT、DHCP…)
o — http://yenjinc.info/chibs/960613_Server.txt
o — http://yenjinc.info/chibs/960613_other_urls.txt

* 6/20. Linux 桌面環境應用 (生活應用、課程討論、總檢討、意見反應…)
o — (6/06—6/13 課程內容複習、案例探討、實作練習、討論…)

.
政治大學應數系 暑期研習課程
(2006.7/28 ~ 2006.8/11)

* 完整上課教材 (第一版)
o — http://yenjinc.info/wp-content/uploads/2006/10/old.pdf

* 完整上課教材 (第二版)
o — http://yenjinc.info/wp-content/uploads/2007/01/my-linux-hand-book.pdf

.
原始檔案下載

* 所有教材之完整原始檔案下載
o http://yenjinc.info/UNIX_Administration.rar

.

» My Linux Hand Book (branch)

政大應數系 以及 法鼓山中華佛學研究所 使用的 Linux 教學資料,
統一放至 rt.openfoundry.org

Linux Administration Course [*註一]
http://rt.openfoundry.org/Foundry/Project/?Queue=807

以上這份文件將不再正式維護,未來我會採用『另外的方式』,
將累積下來的資料,重新改版為『最精簡』而且可符合『小班制課堂』
(類似補習班的每堂授課那種模式) 直接上場採用的版本。

至於實際的執行方式,目前我還在規劃中,若朋友們有什麼想法或意見
歡迎提供給我。

[註一]:過去相關的文章可參考:
—My Linux Hand Book
—Chibs Linux class files

七月 1, 2007
» Linux user friendly on NoteBook II (My X40)

延續上一篇:
—Linux user friendly on NoteBook I (My X40)

今天裝了 Ubuntu 7.04,發現預設裝好時,桌面系統也已經
非常完整了,以上所述也都支援了 (全不需要手動)。

不過相比較於 SLED,我個人還是覺得差了一點。

應該是預設的客戶群導向不同,企業版的 Desktop 真的
在辦公環境的整合度提升不少,而且對於 Laptop 的支持,
我覺得比 Ubuntu 要好一點點,需要手動的地方更少。

在 Ubuntu 有些地方還是需要有基本 Linux Background 才行,
在 SLED 下,真的只要開心的使用電腦即可,管他 Li 不 Linux。

話說回來,長期使用 Debian (也身為 Debian Fans) 的我,倒是五味雜陳。

一個大便系統,從 Base-System 到 Desktop 裝到要讓人滿意,
光是手動調教部分,就要花費不少時間。但是 Ubuntu / SLED
一裝好就都幫你全搞定了,需要手動調教的地方很少。

不過我覺得,要玩 Debian 才能真正體會玩 Linux 的樂趣,
可藉由從 Base-System 一步一步建構到 Xserver 以至於令人滿意的
桌面系統。在這過程裡,磨練自己的技能,也更能深入瞭解 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

biggo.com.tw

A Django site.