2009年12月21日 星期一
2009年11月8日 星期日
2009年9月23日 星期三
QTCreator 如何新增自訂的library
projects -> Build settings -> build steps -> qmake -> additional arguments:
LIB+= (library的完整路經檔名)
LIB+= (library的完整路經檔名)
2009年9月17日 星期四
linux設定serial console
當系統當掉直接重新開機時,怎麼去debug呢?
rs232是一個相當方便的工具
在linux下要如何開啟kernel debug message輸出到 rs232呢?
相當容易以FC6 with XEN kernel
grub modify
kernel /boot/xen.gz-2.6.18-1.2798.fc6 noreboot dom0_mem=131072 com1=115200,8n1 console=com1,vga
module /boot/vmlinuz-2.6.18-1.2798.fc6xen ro root=LABEL=/1 rhgb
quiet console=ttyS0,115200
module /boot/initrd-2.6.18-1.2798.fc6xen.img
inittab modify
6:2345:respawn:/sbin/mingetty tty6
c:2345:respawn:/sbin/mingetty ttyS0
橘黃色字體的部份是要XEN kernel不要直接重開機,把訊息輸出到com1
紅色字體的部份就是設定ttys0(com1)摟
這樣開機後~只要用另外一台電腦設定好接收鮑率就可以源源不絕的收到debug資訊了。
是不是很容易啊~
修改後執行 "init q"重新載入inittab
2009年9月15日 星期二
2009年7月26日 星期日
NX下使用SCIM輸入法
下面是我的修改,有興趣的人可以看看:
1.先裝scim-bridge-client-gtk, scim-bridge-client-qt, scim-bridge-client-qt4
2.新增一個用來launch gnome的script檔,我是放在/usr/NX/bin/gnome.sh
我的內容是這樣
#! /bin/bash
export LC_CTYPE=zh_TW.utf8
export XMODIFIERS=@im=SCIM
export QT_IM_MODULE=scim-bridge
export QT4_IM_MODULE=scim-bridge
export GTK_IM_MODULE=scim-bridge
export USE_XOPENIM=t
/usr/bin/scim -d &
/usr/bin/dbus-launch --exit-with-session gnome-session
3.修改/usr/NX/etc/node.cfg
把
CommandStartGnome="/usr/bin/dbus-launch --exit-with-session gnome-session"
改成去執行2那個script
CommandStartGnome="/usr/NX/bin/gnome.sh"
4.修改scim的輸入法快速鍵,讓快速鍵不會跟本機的相衝。
另外要注意Windows鍵在用NX遠端時好像沒有用(我弄不出來,說不定只是我不會用,有興趣的可以試試看)。
5.重開NX的Session應該就可以用了。
1.先裝scim-bridge-client-gtk, scim-bridge-client-qt, scim-bridge-client-qt4
2.新增一個用來launch gnome的script檔,我是放在/usr/NX/bin/gnome.sh
我的內容是這樣
#! /bin/bash
export LC_CTYPE=zh_TW.utf8
export XMODIFIERS=@im=SCIM
export QT_IM_MODULE=scim-bridge
export QT4_IM_MODULE=scim-bridge
export GTK_IM_MODULE=scim-bridge
export USE_XOPENIM=t
/usr/bin/scim -d &
/usr/bin/dbus-launch --exit-with-session gnome-session
3.修改/usr/NX/etc/node.cfg
把
CommandStartGnome="/usr/bin/dbus-launch --exit-with-session gnome-session"
改成去執行2那個script
CommandStartGnome="/usr/NX/bin/gnome.sh"
4.修改scim的輸入法快速鍵,讓快速鍵不會跟本機的相衝。
另外要注意Windows鍵在用NX遠端時好像沒有用(我弄不出來,說不定只是我不會用,有興趣的可以試試看)。
5.重開NX的Session應該就可以用了。
2009年7月16日 星期四
OpenOffice & Scim
Ubuntu以及其中OpenOffice使用Scim輸入中文的問題。
配置中文環境,安裝scim-pinyin,在gedit裡面可以輸入和顯示中文。OpenOffice中,還有Firefox顯示網頁的輸入框中無法輸入中文。
(此時OpenOffice可顯示中文)
在Hongshan的指導下,在[用戶目錄].bash_profile中添加了:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
問題未能解決,後又添加了:
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim
問題解決。
2009年7月7日 星期二
Making Linux Recognize an eSata-Drive as Removable
在/etc/hal/fdi/policy建一個新的policy, 範例如下
true
true
string可以由hal-device指令來查
string可以由hal-device指令來查
2009年6月21日 星期日
2009年5月14日 星期四
windows下改變mouse wheel scroll line (wine也試用)
User Key: [HKEY_CURRENT_USER\Control Panel\Desktop]
Value Name: WheelScrollLines
Data Type: REG_SZ (String Value)
Value Data: 0 - 0xFFFFFFFF
Value Name: WheelScrollLines
Data Type: REG_SZ (String Value)
Value Data: 0 - 0xFFFFFFFF
2009年5月11日 星期一
(SCIM)編輯chewing的詞庫, 從網路上copy來的
新酷音要自訂詞彙有兩種方式:
正常的方式,是以「使用者詞庫」的方式建立,它會另外儲存到一個詞庫檔當中。
這種方式的缺點是,使用者詞庫的優先權似乎超級低,因此當遇到使用者詞庫和內建詞庫衝突時,很容易有問題,相關討論如下網址:
http://forum.talkdigi.net/phpBB2/viewtopic.php?t=513
見解如下:
以及
上述的共享詞庫,就是使用者詞庫。
剛討論內容是,「三交」這個網友認為新酷音詞庫維護團隊更新的實在太慢了,而且更新的並不符合使用習慣,他希望新酷音能夠有類似Google輸入法的功能,可以線上共享詞庫,因此以討論區手動的方式來進行詞庫整理。
使用者詞庫:
要在Linux上使用「使用者詞庫」,基本上有下列幾點要知道的:
1. 使用者詞庫檔案所在路徑、檔名
2. 當使用者詞庫有任何問題時,只需要將該目錄下的檔案刪除即可,尤其是「uhash.dat」這個詞庫檔
3. 「使用者詞庫」編輯工具
Linux下我目前並沒有找到「使用者詞庫」編輯工具,所以要使用,可以從 Windows 上把「使用者詞庫」編輯工具複製到 Linux,接著搭配 wine 來執行,我測試後,基本上除了「新增詞彙」不能動作之外,其他的功能應該都是正常的。
新增詞彙的動作怎麼辦?
可以直接利用「Ctrl + 2、3、4、5」添加詞彙,再把使用者詞庫檔讀取出來。
Windows上「使用者詞庫」編輯工具所在的路徑、檔名是:
4. 要使用前面網友「三交」的詞彙
步驟其實很簡單,下載他的詞彙檔,解壓縮後會得到檔案uhash.dat,接著刪除「~/.chewing/uhash.dat」,利用「wine HashEd.exe」將網友的uhash.dat匯入(匯入前正常情況應該是完全沒有詞彙的),接著存檔即可。
網 友「三交」有提到我們自己的詞彙跟他的詞彙整合的問題,方法上其實也很單純,先把我們自己的詞彙輸入之後匯出成「uhash.dat」這樣的檔案,然後刪 除「~/.chewing/uhash.dat」,再來把他的uhash.dat匯入,最後再匯入我們自己的「uhash.dat」
內建詞庫:
因為上述提過的原因,使用「使用者詞庫」有時候並不是好方法,再加上「使用者詞庫」沒辦法自行設定破音字的輸入,例如:「嫉ㄐ一ˋ妒」,這個「嫉ㄐ一ˋ」其實應該是「嫉ㄐ一ˊ」,但大家都用錯了,久而久之就變成非法的破音字。
這樣的詞彙沒辦法定義在「使用者詞庫」中,使用者詞庫無法允許不存在的字的詞彙,這時候我們就必須要修改「內建詞庫」。
內建詞庫的修改主要參考:
http://chewing.csie.net/chewing_dict_edit.html
首先我們先把流程列出來,流程如下:
1. 用 svn 下載「新酷音詞庫團隊」最新的詞庫檔
2. 產生內建詞庫相關的檔案
之後會產生出好幾個「.dat」的檔案,這些檔案就是內建詞庫的檔案,檔案如下:
3. 將內建詞庫所需檔案複製到系統中
首先要知道,Ubuntu 下「內建詞庫」的目錄在:
接著要知道,內建詞庫所需的檔案除了上述的 5 個「.dat」外,還有個「pinyin.tab」,操作如下:
4. 最後有個步驟要注意,「內建詞庫」在 Ubuntu 中,有個專門的套件,名稱叫做「libchewing3-data」,要記得把這個套件鎖定,否則系統更新後,改過的「內建詞庫」會被改寫掉
解說完更新的整個流程後,接著要來稍微解說如何改「內建詞庫」,「內建詞庫」的檔案就 2 個,檔名和功能如下(檔案存在 libchewingdata/utf-8/ 下):
phone.cin 定義所有字的注音(注意,它的注音是以英文表示,例如:「傅ㄈㄨˋ」會定義成「傅zj4」),因此要加入破音字可以修改這個檔加入
tsi.src 定義所有內建的詞庫(這邊注意到,它有個特性,就算「phone.cin」中沒有定義「嫉ㄐ一ˊ」,但它還是可以接受詞彙中同時有「嫉ㄐ一ˊ妒」、「嫉ㄐ一ˋ妒」)
tsi.src的詞彙格式如下:
酷音 1000 ㄎㄨˋ ㄧㄣ
其中1000表示優先順序,數值越大優先權越高
正常的方式,是以「使用者詞庫」的方式建立,它會另外儲存到一個詞庫檔當中。
這種方式的缺點是,使用者詞庫的優先權似乎超級低,因此當遇到使用者詞庫和內建詞庫衝突時,很容易有問題,相關討論如下網址:
http://forum.talkdigi.net/phpBB2/viewtopic.php?t=513
見解如下:
經三交的觀察,應該是使用者自建詞庫(hash.dat)與統計字頻率資料(us_freq.dat)發生搭配上的錯亂所致
而且執行「存入使用者詞庫」的次數愈多,問題就愈嚴重
當然,這有可能三交才會有的情況,或說是個案也可以
在研究「新酷音詞庫修改教學」之後
摸索出以下的方法,不敢保證一定有用
卻有相當程度的解決成效以及
Roger大,讓三交來跟你解釋一下
「工件」這個字在共享詞庫是不存在的
而是在內建詞庫才有
基本上內建詞庫(也就是裝好新酷音預設的詞庫)的詞
輸出的優先權永遠大於共享詞庫
所以三交再怎麼改,「工件」的優先權一定都會先於「弓箭」
改善方式就是如您文中所說的,「弓箭」連續打三次才能改善
算是內建詞庫的「原罪」吧Orz
共享詞庫沒這麼厲害的說上述的共享詞庫,就是使用者詞庫。
剛討論內容是,「三交」這個網友認為新酷音詞庫維護團隊更新的實在太慢了,而且更新的並不符合使用習慣,他希望新酷音能夠有類似Google輸入法的功能,可以線上共享詞庫,因此以討論區手動的方式來進行詞庫整理。
使用者詞庫:
要在Linux上使用「使用者詞庫」,基本上有下列幾點要知道的:
1. 使用者詞庫檔案所在路徑、檔名
~/.chewing/uhash.dat2. 當使用者詞庫有任何問題時,只需要將該目錄下的檔案刪除即可,尤其是「uhash.dat」這個詞庫檔
3. 「使用者詞庫」編輯工具
Linux下我目前並沒有找到「使用者詞庫」編輯工具,所以要使用,可以從 Windows 上把「使用者詞庫」編輯工具複製到 Linux,接著搭配 wine 來執行,我測試後,基本上除了「新增詞彙」不能動作之外,其他的功能應該都是正常的。
新增詞彙的動作怎麼辦?
可以直接利用「Ctrl + 2、3、4、5」添加詞彙,再把使用者詞庫檔讀取出來。
Windows上「使用者詞庫」編輯工具所在的路徑、檔名是:
C:\WINDOWS\system32\IME\Chewing\HashEd.exe4. 要使用前面網友「三交」的詞彙
步驟其實很簡單,下載他的詞彙檔,解壓縮後會得到檔案uhash.dat,接著刪除「~/.chewing/uhash.dat」,利用「wine HashEd.exe」將網友的uhash.dat匯入(匯入前正常情況應該是完全沒有詞彙的),接著存檔即可。
網 友「三交」有提到我們自己的詞彙跟他的詞彙整合的問題,方法上其實也很單純,先把我們自己的詞彙輸入之後匯出成「uhash.dat」這樣的檔案,然後刪 除「~/.chewing/uhash.dat」,再來把他的uhash.dat匯入,最後再匯入我們自己的「uhash.dat」
內建詞庫:
因為上述提過的原因,使用「使用者詞庫」有時候並不是好方法,再加上「使用者詞庫」沒辦法自行設定破音字的輸入,例如:「嫉ㄐ一ˋ妒」,這個「嫉ㄐ一ˋ」其實應該是「嫉ㄐ一ˊ」,但大家都用錯了,久而久之就變成非法的破音字。
這樣的詞彙沒辦法定義在「使用者詞庫」中,使用者詞庫無法允許不存在的字的詞彙,這時候我們就必須要修改「內建詞庫」。
內建詞庫的修改主要參考:
http://chewing.csie.net/chewing_dict_edit.html
首先我們先把流程列出來,流程如下:
1. 用 svn 下載「新酷音詞庫團隊」最新的詞庫檔
svn co http://svn.openfoundry.org/libchewingdata/2. 產生內建詞庫相關的檔案
cd libchewingdata/utf-8
rm *.dat *.dat_bin
wine dat2bin.exe之後會產生出好幾個「.dat」的檔案,這些檔案就是內建詞庫的檔案,檔案如下:
ch_index.dat
dict.dat
fonetree.dat
ph_index.dat
us_freq.dat3. 將內建詞庫所需檔案複製到系統中
首先要知道,Ubuntu 下「內建詞庫」的目錄在:
/usr/share/libchewing3/chewing/接著要知道,內建詞庫所需的檔案除了上述的 5 個「.dat」外,還有個「pinyin.tab」,操作如下:
cd libchewingdata
cp pinyin.tab /usr/share/libchewing3/chewing/ (pinyin.tab在 libchewingdata/ 下)
cd utf-8
cp *.dat /usr/share/libchewing3/chewing/ (產生出來的 *.dat 在 libchewingdata/utf-8/ 下)4. 最後有個步驟要注意,「內建詞庫」在 Ubuntu 中,有個專門的套件,名稱叫做「libchewing3-data」,要記得把這個套件鎖定,否則系統更新後,改過的「內建詞庫」會被改寫掉
解說完更新的整個流程後,接著要來稍微解說如何改「內建詞庫」,「內建詞庫」的檔案就 2 個,檔名和功能如下(檔案存在 libchewingdata/utf-8/ 下):
phone.cin 定義所有字的注音(注意,它的注音是以英文表示,例如:「傅ㄈㄨˋ」會定義成「傅zj4」),因此要加入破音字可以修改這個檔加入
tsi.src 定義所有內建的詞庫(這邊注意到,它有個特性,就算「phone.cin」中沒有定義「嫉ㄐ一ˊ」,但它還是可以接受詞彙中同時有「嫉ㄐ一ˊ妒」、「嫉ㄐ一ˋ妒」)
tsi.src的詞彙格式如下:
酷音 1000 ㄎㄨˋ ㄧㄣ
其中1000表示優先順序,數值越大優先權越高
2009年4月12日 星期日
autofs.smb
pay attention for crendential file!! it should be /etc/auto.smb.$key
!/bin/bash
# $Id$
# This file must be executable to work! chmod 755!
key="$1"
# Note: create a cred file for each windows/Samba-Server in your network
# which requires password authentification. The file should contain
# exactly two lines:
# username=user
# password=*****
# Please don't use blank spaces to separate the equal sign from the
# user account name or password.
credfile="/etc/auto.smb.$key"
# Note: Use cifs instead of smbfs:
mountopts="-fstype=cifs,file_mode=0644,dir_mode=0755,uid=user,gid=users"
smbclientopts=""
for P in /bin /sbin /usr/bin /usr/sbin
do
if [ -x $P/smbclient ]
then
SMBCLIENT=$P/smbclient
break
fi
done
[ -x $SMBCLIENT ] || exit 1
if [ -e "$credfile" ]
then
mountopts=$mountopts",credentials=$credfile"
smbclientopts="-A "$credfile
else
smbclientopts="-N"
fi
$SMBCLIENT $smbclientopts -gL $key 2>/dev/null \
| awk -v key="$key" -v opts="$mountopts" -F'|' -- '
BEGIN { ORS=""; first=1 }
/Disk/ { if (first) { print opts; first=0 };
gsub(/ /, "\\ ", $2);
sub(/\$/, "\\$", $2);
print " \\\n\t /" $2, "://" key "/" $2 }
END { if (!first) print "\n"; else exit 1 }
'
!/bin/bash
# $Id$
# This file must be executable to work! chmod 755!
key="$1"
# Note: create a cred file for each windows/Samba-Server in your network
# which requires password authentification. The file should contain
# exactly two lines:
# username=user
# password=*****
# Please don't use blank spaces to separate the equal sign from the
# user account name or password.
credfile="/etc/auto.smb.$key"
# Note: Use cifs instead of smbfs:
mountopts="-fstype=cifs,file_mode=0644,dir_mode=0755,uid=user,gid=users"
smbclientopts=""
for P in /bin /sbin /usr/bin /usr/sbin
do
if [ -x $P/smbclient ]
then
SMBCLIENT=$P/smbclient
break
fi
done
[ -x $SMBCLIENT ] || exit 1
if [ -e "$credfile" ]
then
mountopts=$mountopts",credentials=$credfile"
smbclientopts="-A "$credfile
else
smbclientopts="-N"
fi
$SMBCLIENT $smbclientopts -gL $key 2>/dev/null \
| awk -v key="$key" -v opts="$mountopts" -F'|' -- '
BEGIN { ORS=""; first=1 }
/Disk/ { if (first) { print opts; first=0 };
gsub(/ /, "\\ ", $2);
sub(/\$/, "\\$", $2);
print " \\\n\t /" $2, "://" key "/" $2 }
END { if (!first) print "\n"; else exit 1 }
'
2009年2月22日 星期日
解決 RPC idmapd無法啟動的問題
Then I need to add
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0
to the file /etc/fstab
then
mount -a
[root@localhost ~]# service rpcidmapd start
Starting RPC idmapd: [ OK ]
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0
to the file /etc/fstab
then
mount -a
[root@localhost ~]# service rpcidmapd start
Starting RPC idmapd: [ OK ]
訂閱:
意見 (Atom)