個人心情和 Linux / FreeBSD 等技術

2007/04/30

putty 0.60版出現了

2007-04-29 PuTTY 0.60 is released

PuTTY 0.60 is out, containing mostly bug fixes

2007/04/21

預設的editor

$ls -l /usr/bin/editor
lrwxrwxrwx 1 root root 24 2007-04-22 03:55
/usr/bin/editor -> /etc/alternatives/editor

$ls -l /etc/alternatives/editor

lrwxrwxrwx 1 root root 9 2007-04-21 20:27
/etc/alternatives/editor -> /bin/nano

個人不習慣nano編輯器...且預設debian收錄的
vim也用不習慣..

$ls -l /etc/alternatives/vim
lrwxrwxrwx 1 root root 18 2007-04-21 20:27
/etc/alternatives/vim -> /usr/bin/vim.tiny

所以一並改掉了..
$sudo aptitude remove vim-tiny
$sudo aptitude install vim
$sudo rm /usr/bin/editor
$sudo rm /etc/alternatives/editor
$ln -s /usr/bin/vim.basic /etc/alternatives/editor
$ln -s /etc/alternatives/editor /usr/bin/editor

這樣子預設編輯器就成了vim了~~

或是直接指令改變
$sudo update-alternatives --config editor

2007/04/14

來到阿里山鄉十字國小

四月八號到了這飄渺在雲霧之間的國小代課,
初來時發現老師的宿舍蓋的像是民宿,老師宿舍的
中間有一段很陡的路,沿著這條路往上走印入眼底
的是十字國小的大門,第一個星期就執導護的我早
上要帶著小朋友走路隊。

第一眼印象是這裡小朋友的臉頰泛著淡淡的紅
暈,大概是天氣太冷的關係。帶著學生走在帶著青
苔的古老石階上,才發現自己體力真的不太好了><


小朋友裡大約有一半是鄒族原住民,感覺特別
的可愛。我帶的6年級班上只有四位學生,上課情
況比起一班28人的班級要好多了,我的嗓門本來就
不怎麼樣,在這裡我只需要用小小的嗓音就能上的
輕鬆愉快。在這主要是教授6年級的國語、數學、
健體和電腦課。

在這海拔1500公尺的地方,什麼都很美,唯獨
室溫永遠都在19度以下,不過來到這邊一個星期也
漸漸的習慣了。

有時候還能在室外發現不知名的鳥類,有歌聲
很好聽,有的是披著豔麗的羽毛。

附近還有其他不知名的飛蛾和蟲子,剛開始發
現蟲子飛進宿舍會黏著日光燈管不走,晚上睡覺還
會聽到蟲子振翅的聲音。

不曉得為什麼這邊的狗和貓咪都蠻怕人的,(XD)
看到我就跑的老遠,兩個星期下來更是難得看到一
隻灰色帶有虎班線條的貓咪,不過牠看到我跑的比
其牠狗還快。<囧 ...

在下過雨的晚上,會聽到青蛙此起彼落的嘓嘓
聲。我總在極為規律的作息時間,伴隨這些嘓嘓聲
睡著。

在這邊長住的話只靠速食和調理包是不行滴。
有的老師會在宿舍旁的土地種一些蔬菜,自己種自
己摘,儼然是個自給自足的小天地了。

快離開這裡的第三個禮拜,還有學生家長去採
筍子來送給老師們,但鑑於行李已經過重,只好忍
痛跟這些現採新鮮竹筍說掰掰了 > <。

這邊因為高山地處偏遠,小朋友家裡雖然有電
腦,卻沒有網路,(os..宿舍的網路速度非常慢= =)
感覺山上小孩子又比平地更為純樸。我們班上六年
級的孩子下課時間玩的遊戲是踩腳遊戲(猜拳勝的
可以踩猜輸的,猜輸的則是要躲開別讓他踩到),
天呀!這是我小學3年級後就沒有玩過的遊戲了~

那天的下課我傻笑的看著他們邊玩邊笑,不知
道為什麼我也跟著快樂起來...我想山上雖然物資不
如平地容易取得,卻也讓這些孩子比起平地的孩子
更能珍惜資源。

來這裡以前就有聽說小朋友不喜歡寫功課,甚
至有時後會沒教作業。我到這裡的三個禮拜之間,
我想小朋友還挺賣我面子的 XD,作業幾乎都會寫
完除了數學作業,隔天批改時會發現有空著沒寫的
題目,這時候大概會了解這一方面的題型不會做,
再利用彈性時間補強。

離開前的一週,一直被小朋友要手機....Orz,
但由於一些個人考量並沒有給他們,都跟他們說我
不知道自己的手機號碼,不過很顯然他們並不相信
(純樸跟呆還是有程度上得區別...XD)他們還要我
打電話到他們手機上,以便顯示來電XD,well我也
照打了,不過在撥打前加上了 "#31#" ,呵呵...我
真壞。不但沒洩漏自己的電話還因此得知他們手機
,不過得知歸得知...要我再撥電話過去還要有點心
理建設。...也許半年後他們就把我忘了說不定。


well,我想我愛上了這個地方,這些小朋友。以後來
這養老好了。

2007/04/04

利用hdparm調整硬碟

hdparm 是用來查詢ATA/IDE 裝置參數用的工具
語法: hdparm [flags] [device]
如果沒有給予任何flags,hdparm會假設以-acdgkmnru來查詢硬碟

ex: $ sudo hdparm /dev/hdb
/dev/hdb:
multcount = 16 (on)
IO_support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 20023/255/63, sectors = 321672960, start = 0

先查查有無安裝
$ sudo hdparm -V
hdparm v6.9 (會看到工具版本)

取得硬碟資訊
$ sudo hdparm -i /dev/hdb
Model=HDT722516DLAT80, FwRev=V43OA96A, SerialNo=VD071GTE0D4TNK
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=51
BuffType=DualPortCache, BuffSize=7674kB,
MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6

AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: ATA/ATAPI-7 T13 1532D revision 1: ATA/ATAPI-2
ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6 ATA/ATAPI-7

* signifies the current active mode (星號表現在正使用的模式)


光碟機資訊
$ sudo hdparm -i /dev/cdrom

Model=ASUS DRW-1612BL, FwRev=1.10, SerialNo=
Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=0kB, MaxMultSect=0
(maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
IORDY=yes, tPIO={min:383,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 *udma4

AdvancedPM=no
Drive conforms to: unknown: ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5
ATA/ATAPI-6 ATA/ATAPI-7

* signifies the current active mode


參數要特別記下MaxMultSect 和 UDMA的模式可支援到多高
1. 設定DMA模式 "-d" flag (1/0 | 打開/關閉)
DMA 模式很重要,例如要播放 DVD 或是燒錄光碟片的話,
就最好開啟 DVD-ROM/RW 的 DMA 模式,不然很可能播放會跳格,
燒錄速度一直拉不上去,甚至可能燒錄失敗。
一般光碟機和硬碟開啟 DMA 模式也很有幫助,
可以大幅提升速度,降低 CPU 負載。
$ sudo hdparm -d1 /dev/hdb
$ sudo hdparm -d1 /dev/cdrom

2.傳輸模式 (PIO/SDMA/MDMA/UDMA) "-X" flag
由於其他模式的傳輸直遠低於UDMA,所以以UDMA模式為最先考量
模式:udma0 udma1 udma2 udma3 udma4 udma5 udma6
參數: 64 65 66 67 68 69 70
由於我的硬碟可支援到udma6,光碟機則可到udma4
$ sudo hdparm -X70 /dev/hdb
$ sudo hdparm -X68 /dev/cdrom
hdparm也支援以傳輸模式為名稱的寫法 ex:
$ sudo hdparm -X udma6 /dev/hdb
$ sudo hdparm -X udma4 /dev/cdrom

3.32位元的I/O支援 ("-c" flag)
I/O 支援的4個層級
0預設 16 位元
132 位元
216 位元
332 位元 + sync
能使用32位元是最好的 so
$ sudo hdparm -c3 /dev/hdb

4.設定同步讀取多個sector ("-m" flag)
一般來說,設定此模式,可降低系統因為讀取磁碟而損耗的效能,
這裡要用到MaxMultSect這個值,以"-i" flag可以查詢的到

$ sudo hdparm -m16 /dev/hdb
大多數新碟磁機應該都能用 MultSect 16,比較舊的用 8。
修改這個設定之後應該能減少磁碟存取消耗的系統資源,增加磁碟頻寬。
**注意** man page中提到
Some drives claim to support multiple mode, but lose dataat some
set‐tings. Under rare circumstances, such failurescan result in
massive filesystem corruption.


XD...鳥哥網頁上有寫到WD的硬碟最好別開...

5. unmaskirq ("-u" flag)
對裝置查詢或設定interrupt-unmask,啟用umask (-u1) 會大大提升
linux反應和消除"serial port overrun"的錯誤。

**注意** 某些IDE crontroler在開啟此選項後會導致嚴重
filesystem corruption特別是CMD-640BRZ1000 IDE crontroler

6.寫入快取 ("-W" flag)
-W 是關閉/開啟(0/1)寫入快取功能

**注意**不是小寫w選項,小寫w是reset功能。且gentoo的wiki
上寫了writing-cache功能被人發現在journaling filesystem
ext3,Reiser fs建議別開啟 ~.~,看來不管是大小寫的w
最好都別用


7.read-lookahead功能 ("-A" flag)
關閉/開啟 (0/1) IDE driver的read-lookahead 功能,在預設值通常是開啟的

8.開啟read-ahead功能 ("-a" flag)
此flag可為檔案系統開啟/設定磁區預讀功能。能夠增進系統讀取大檔案的
連續驅段。
$sudo hdparm -a256 /dev/hdb

9.最後在開機後馬上啟用最佳化
Debian在/etc/hdparm.conf可讓我們設定硬碟的最佳化參數,我的參數有
command_line {
hdparm -a256 -A1 -c3 -d1 -m16 -u1 -X69 /dev/hda
}
command_line {
hdparm -a256A1c3d1m16u1X70 /dev/hdb
}
command_line {
hdparm -d1c1X68 /dev/cdrom
}
command_line {
hdparm -d1c1X68 /dev/cdrom1
}

P.S 事實上寫在 /etc/default/hdparm似乎也可以,摘錄裡面的註解
# This is run before the configuration in hdparm.conf. Do not use
# this arrangement if you need modules loaded for your hard disks,
# or need udev to create the nodes, or have some other local quirk
# These are better addressed with the options in /etc/hdparm.conf



最後,裝置測試
$sodo hdparm -Tt /dev/hdb

Timing cached reads: 1924 MB in 2.00 seconds = 962.25 MB/sec
Timing buffered disk reads: 180 MB in 3.00 seconds = 59.98 MB/sec

結論:hdparm還是有一些淺在危險的參數XD,要開啟前一定要查閱
manpage。

參考網站
1. man hdparm
2. man hdparm.conf
3.http://www.gentoo-wiki.com/
4.鳥哥
5.Linux Tunning Guide

2007/04/03

linux上的I/O排程

筆記一下查到的資訊~~
Linux2.6 包含的 4 個 I/O 排程器分別是
No-op I/O scheduler, Anticipatory I/O scheduler,
Deadline I/O scheduler, CFQ I/O scheduler

No-op scheduler 是一個簡化的排程程式它只作最基本的合併
與排序。與上管理系統系統的關係不是很大,主要用在一些
特殊的軟體與硬體環境下,這些軟體與硬體一般都擁有自己的
排程機制對核心支援的要求很小,這很適合一些內嵌式系統
環境。作為上管理系統用戶我們一般不會選取它。

Anticipatory scheduler 是目前核心中預設的 I/O 排程器。
它擁有非常好的效能,在 2.5 中它就相當引人注意。在與
2.4 核心進行的對比測試中,在 2.4 中多項以分鐘為單位
完成的工作,它則是以秒為單位來完成的。正因為如此它
成為目前 2.6 測試版中預設的I/O 排程器。但它也存在著
弱點,它本身是比對龐大與複雜的,在一些特殊的情況
下,特別是在資料吞吐量非常大的資料程式庫系統中它會
變的比較緩慢

Deadline scheduler 就是針對 as 的缺點進行改善而來的
,還處於測試階段,但已經很穩定了。目前表現出的效能
幾乎與 Anticipatory一樣好。且比 Anticipatory 更加小巧,
是相當有前途的排程器。

CFQ scheduler 為系統內的所有工作配置相同的頻寬,
提供一個公平的工作環境,它比較適合桌面系統環境
事實上在測試中它也有不錯的表現

gnome-session

在 /etc/X11/Xsession.d/55gnome-session_gnomerc
內容是
# If we are running the GNOME session, source ~/.gnomerc

BASESTARTUP=`basename "$STARTUP" | cut -d\ -f1`
if [ "$BASESTARTUP" = gnome-session -o \
\( "$BASESTARTUP" = x-session-manager -a \
"`readlink /etc/alternatives/x-session-manager`" = \
/usr/bin/gnome-session \) ]; then
GNOMERC=$HOME/.gnomerc
if [ -r "$GNOMERC" ]; then
. "$GNOMERC"
fi
fi


so....
$ vi ~/.gnomerc
export LC_ALL=zh_TW.UTF-8
export LANG=zh_TW.UTF-8
export XMODIFIERS="@im=gcin"
exec gcin &

目前只知道是這樣~~改天再來補個文件XD

2007/04/02

什麼是I-squared-C

http://zh.wikipedia.org/wiki/I2C

2007/04/01

make xconfig時的錯誤

產生config檔時出現的錯誤

$ make xconfig

CHECK qt
*
* Unable to find the QT installation. Please make sure that
* the QT development package is correctly installed and
* either install pkg-config or set the QTDIR environment
* variable to the correct location.
*

solved =>
$ aptitude search libqt3
確認libqt3-mt-dev 已經安裝,我缺了libqt3-mt-dev
$ sudo aptitude install libqt3-mt-dev

os.QT模組會和TK8.3模組相衝~ 安裝了libqt3-mt-dev後記得移除tk8.3

GNOME下的totem-xine

最近在Debian安裝totem-xine,來做點筆記
$ sudo aptitude install totem-xine
要能觀看 .mov , .mp4和 .rmvb 的檔案
先到Mplayer 官方網站下載 all-20061022.tar.bz2的win32code
解開後放在你想要的位置,然後編輯 ~/.gnome2/totem_config
修改底下兩行
decoder.external.real_codecs_path: (your_path)
decoder.external.win32_codecs_path: (your_path)
我自己是把codec丟到 /usr/local/lib/codecs/
(這是mplayer預設路徑,你想解到哪邊都可以)

$ sudo mkdir /usr/local/lib/codecs
$ sudo mv all-20061022/* /usr/local/lib/codecs/

所以我的 ~/.gnome2/totem_config長成這個樣子 :p
decoder.external.real_codecs_path:/usr/local/lib/codecs/
decoder.external.win32_codecs_path:/usr/local/lib/codecs/

當你都做完發現還是無法播放rmvb檔案時,totem有個好處是
可以使用debug模式

$ totem --debug,這時候可以播看看rmvb檔看看出現什麼訊息
我的totem少了libstdc++.so.5,查一下系統下的libstdc放在哪

$ locate libstdc++.so
> /usr/lib/libstdc++.so.6 (symlink to /usr/lib/libstdc++.so.6.0.8)
> /usr/lib/libstdc++.so.6.0.8

先嘗試欺騙他看看

$ sudo ln-s /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.5

再撥這次出現`GLIBCPP_3.2' not found (required by blabla...) XDD,
只好乖乖安裝libstdc++.so.5

$ sudo rm /usr/lib/libstdc++.so.5
$ sudo aptitude install libstdc++.so.5

裝完收工~
參考文件: xine的faq