Posts

Fortran: Operator 優先順序

最近在程式的的一個 bug 了解到 Fortran operator 的優先順序:正負號優先於乘號。如果 a = 2 * - 3,a 的值是多少呢? 我剛看到時以為是打錯字,沒想到編譯竟然沒問題。原本以為是 compiler 的 bug,後來仔細想想才想通。正負號的優先權高於乘號,所以這個算式相等於 2*(-3)。同樣的在 2 * + 3 這個例子中,等同於 2*(+3)。

用 LVM 來擴展原本的分割空間

事先說明:如果一開始要擴展的分割就不是在 LVM 磁區中的話,這篇文章是一點用處也沒有的。 安裝 Fedora 11 時,我都習慣用預設的分割,這樣安裝系統會自動把 / 裝在一個 LVM 磁區中。現在我要拿另一個分割區來擴展 / 的空間,就相當容易了。先用系統中的 LVM 圖型工具 (沒辦法,懶得記指令) 來把新磁區 initialize,然後加入目前使用的 VG 中,再指定給 / 所使用的 LV。理論上是可以 on line 執行這些步驟,但我比較膽小,還是用開機 usb stick 進到 Fedora 11 live 中去操作。接下來的步驟則是讓原本的檔案系統擴大。它不會自動擴大,所以要用 resize2fs 這個指令。雖然在使用之前因為怕它不支援 ext4 而膽戰心驚,查了好些文章也沒特別說不支援 (也沒明確說支援…),還好弄下去沒問題。記得磁碟 device 用了 LVM 後不再是 sd?? 了,而是 /dev/vg_??????/lv_???? 這種的,或是 /dev/mapper/vg_???-lv_???,例如: resize2fs /dev/mapper/vg_neumann-lv_root 後面不加容量,就表示把這個分割所有的剩餘空間都用完。 2009/4/28 加註:resize2fs 直接在線上使用好像也可以

MPI: 工作目錄

用 mpich2 時,一開始不知道怎麼指定工作目錄,因此在 slave node 寫入檔案的時候發現問題,不知道 slave 到底覺得自己是在哪個目錄裡面(好像也不是家目錄,算是在…神秘空間?)。後來找到指定工作目錄的方法,原來是 mpiexec 的一個 option: mpiexec -n 2 -wdir `pwd` ./a.out

Fedora 11 安裝 VirtualBox 的 usb 問題

以 Fedora 11 當 host 安裝 VirtualBox 後,guest 沒辦法存取 usb device 的問題已經存在很久了,主因是 Fedora 中控制使用者能使用哪些 usb device 是由 udev 來控制的,因為 udev 沒有關於 VirtualBox 的 rule,所以它沒辦法存取 usb device。麻煩的做法是去加一條 udev 的 rule,不過這很複雜,不如用簡單的方法,直接讓使用者有存取 usb device 的權限。做法是在 fstab 加入 none /sys/bus/usb/drivers usbfs devgid=502,devmode=664 0 0 這邊的 502 是某個 gourp (我是拿 vboxusers 這個),而且使用者的帳號也要屬於這個 group,掛上這個 usbfs 就可以了。

Decibel Audio Player

我一直很討厭 GNOME 的欽定音樂播放程式:Rhythmbox,感覺很功能太多導致介紹混亂,音量調整鈕又會影響系統的,用起來整個火大。重點是在我的音效卡上用起來感覺很差,音樂速度會不正常,一做別的動作又有雜音 (好吧,我知道這些該怪的是 decoder,和 player 沒關係,不過我就是愛遷怒)。後來找到一個專精於播音樂,完全沒其他我不需要的功能的軟體: Decibel ,用起來覺得感覺不錯,介面簡潔操作直覺。不過一樣做了別的動作會出現雜音…好嘛,我知道這是 decoder 的錯…還是我的音效晶片的錯? 補充:真的是音效晶片的錯,換到主機板內建的晶片就沒問題了,該死的 Creative,死守晶片的 spec 不讓 open source driver 出來,自己又不提供好 driver。學學人家 Nvidia 嘛,不 open 至少自己也提供品質夠好的 driver 供大家使用。

Fedora 11 今天更新後 RPM Fusion 的 nvidia driver 版本出錯

今天 Fedora 11 更新後,重開機後突然沒辦法進入 X,看了一下 /var/log/messages 中出現錯誤訊息: NVRM: API mismatch: the client has the version 185.18.14, but this kernel module has the version 180.51. Please make sure that this kernel module and all NVIDIA driver components have the same version. 查了一下網路,看來是很新的問題,只有 Fedora Forum 有討論,看來是 RPM Fusion 那邊出了問題。解決的方法有兩種,一種是用 yum downgrade 回舊版的 driver,等 repository 那邊弄好了再更新 (前述的討論區內有說做法),另一個方法是把 nvidia 的 driver 都移掉,再 rm /etc/X11/xorg.conf ,重開機讓系統自己抓原本的 open source driver,等之後沒問題後再更新成 Nvidia 的 non-open source driver (當然還是要透過 RPM Fusion。儘量不要自己去裝 Nvidia 官方下載的,因為很麻煩,每次更新 kernel 都要重弄一次)。 補充:在看過 /etc/modprobe.d/blacklist-nouveau.conf 的內容後發現,如果用 lsmod 還是看得到 nouveau 的話,要重新做一個 init image 以免 nouveau 被強制載入,就算有 black list 也一樣。指令是:mkinitrd -f /boot/initrd-$(uname -r).img $(uname -r)。我這樣做過後就沒有這篇寫的問題了。

新版 iFolder

如果現在用 ifolder 當關鍵字去搜尋,會找到一個網站: Kablink Home 。點進去看才發現這是個專門開發共同合作軟體的計畫,iFolder 已經變成其中的一個計畫。現在的 iFolder 網站比以前的專業多了,軟體一直有在發展,文件也很齊全,不像以前要死要死的樣子。不過要把舊的 iFolder 3.2 轉到現在的 3.7 系統感覺還是很難,沒辦法直接轉移,只能要求使用者重新下載他們的文件,這也是個大工程。最好是能在 server 端轉移,client 端也可以直接安裝新版軟體就好,使用者完全不用再重新下載或上傳他們的 iFolder 目錄。

修復 registry

當 registry 壞掉,要修復的時候,要用 load hive 來把好的 load 上來,再複製到壞掉的那部分。 http://forums.kustompcs.co.uk/showthread.php?t=39742

fused multiply-add instructions

http://www.fftw.org/faq/section2.html#fma 看來只有 PowerPC、IA-64、PA-RISC 有 FMA 指令,所以寫程式的時候不用特別先乘再加。

rpmbuild

我認為在有套件管理系統的 Linux 上面安裝軟體,應該儘量使用其套件管理系統安裝軟體,少用 tar.gz 直接 make install。因此為了在我的 FC5 上安裝 PCMan X,下載 tar.gz 後不直接用傳統的 ./configure,make,make install 來安裝,而是先 ./configure 來產生 spec 檔,然後將 tar.gz 移到 /usr/src/redhat/SOURCE 裡面去,再以 rpmbuild -bb pcmanx.spec 來製作 rpm,如此就能用 rpm 來安裝管理 PCMan X。

apache 將原本由上層目錄繼承而來的保護拿掉

實驗室網頁有個部分要用 .htaccess 去設定密碼來保護,某此較資深的人才有密碼,而在保護的目錄之下有個目錄又想讓一般使用都可以存取,感謝 apache manual 很體貼系統管理員,有特別說明如何作。 Require Directive

iFolder

iFolder 原本是 Novell Enterprise Linux 裡面的一個軟體,在幾個月之前 open source。原本是 Enterprise 系統的軟體,其品質自然有一定水準,但是 open source 之後,似乎感覺沒有其他軟體 open source 後的充滿活力,品質一直提升,反正變得愈來愈沒有活力,最後好像連開發進度都停下來了。網頁上有聲明說目前正在和 Novell 討論之後的發展進度,我猜可能是 open source 後還沒規畫好未來的發展,以及 Novell 該提供多少支援,就一股腦地猛衝,所以現在正在補作之前該完成的規畫。也許是因為用的人不多,所以加入的開發者也比較少吧,因此會感覺有點停滯。總之,耐心期待吧,這個東西應該是可以成為桌面應用的殺手軟體。 這邊特別記錄一下,在 Fedora 安裝 iFolder,因為 Fedora extra 在五月的時候開始收錄 xsp 這個套件,在經過兩三次更新後,變得和 iFolder 不相容,該有的執行檔不見了,所以還是用原本 Novell 那邊來的 xsp 套件就好,要在 yum.conf 裡面加上 exclude,不要自動去更新 xsp。

用 cygwin 的 rsync 遇到中文檔名時

我在一些 Windows 2003 server 上使用 cwrsync 來作檔案備份的工作。自從某個版本的 cygwin.dll 之後,rsync 處理中文檔名就會出現 file has vanished 的錯誤。用這個來作關鍵字搜尋,找到這個網頁: UTF-8 Cygwin 有 patch 過的 cygwin.dll 供人下載,替換掉原本的檔案後就可以處理中文檔名了。

Xen: an open source virtual machine system

因為要幫學弟妹上 Fortran 的教學,需要一台機器讓他們登入、編譯,又不想在研究室已上線的機器中加入這些暫時的帳號。而且在這個 virtual machine 技術開始成熟的時代,另外弄一台破電腦來用已經是古代人在作的事了。因為以上的考量,所以興起想玩玩 Xen 的念頭。 Xen 的虛擬技術和 Vmware、Virtual PC 這些不太一樣。它們是模擬出一台 PC,連 BIOS 都有,Xen 則不是用軟體模擬 PC 的硬體,而是在目前的 kernel 之上再加入一個 hypervisor,由其控制硬體給所有的 virtual machine,所以要用包含 hypervisor 的 kernel 來開機才能執行 virtual machine。 在 FC5 首先要安裝含 hypervisor 的 kernel,再用這個 kernel 開機,就能開始建立 virtual machine 了,驚人的簡單。簡單作些設定後,就能開始安裝作業系統。之前找 Xen 的資料時,一直看到只能運行「修改過的作業系統」,讓我有點怕。安裝作業系統目前只支援 nfs、ftp、http,我直接指定 ftp://linux.nctu.edu.tw/dists/fedora/core/5/x86_64/os ,很順地就進入安裝畫面了。因為是用 terminal 連接 virtual machine,所以沒辦法出現 X-window 安裝畫面,這時可選擇要用文字介面安裝還是 vnc。我沒試過 vnc 安裝介面,所以就試試,結果也很讓人驚喜,無比的順暢和方便。Virtual machine 的網路預設是 bridged 模式,所以在學校有固定 ip 可以使用的話,直接設個 ip 給 virtual machine 就好,和一般安裝在電腦上一樣。 安裝完用 xm 這個指令來控制開關機,試著登入使用後的結果,不知道是 host machine 有兩個 CPU,記憶體也很多的關係,還是本來 Xen 的效能就很好,使用的感覺很棒。下次作個量化的測試,看看 Xen 的效能到底是如何。我沒去找如何使用 virtual machine 的 X-window ,如果也行的話應該會更棒,不過現在這樣我就很滿足了,因為主要的目地就是憑空生出一台「假的」伺服器。 參考網頁: FedoraXenQuickstartFC...

在 en_US 的 locale 下使用輸入法

使用 Linux 時,我習慣用英文的系統。如果不需要桌面系統或應用程式的中文介面,和直接安裝英文系統相比,能「看中文」和「輸入中文」的系統需要再安裝的套件其實不多。 以我目前用的系統 Fedora Core 5 來說明。首先就是字型,安裝中文的 ttf 字型就好了。輸入法的話,我愛用 gcin,也有 rpm 可以直接下載來安裝。安裝完 gcin 後,如果是在 zh_TW 的話不用改什麼東西就可以直接用了,本篇最重要的就是解說要如何在 en_US 中使用 gcin。 系統判斷用什麼輸入法,是由 /etc/X11/xinit/xinput.d/ 下面的檔案來判斷。裝完 gcin 就可以看到有一個 zh_TW 的例子,照著那個檔案作出一個 en_US 的即可。照理說這樣就好了,但再來是比較特殊的一個地方,我當時就卡在這。在 /etc/gtk-2.0/i386-redhat-linux-gnu/gtk.immodule 這個檔裡面寫了一些輸入法的資訊,我裝完 gcin 後似乎沒有更新 (在 zh_TW 就會更新?),所以要用 gtk-query-immodules-2.0-32 > /etc/gtk-2.0/i386-redhat-linux-gnu/gtk.immodules 這個指令來更新。如果前面幾步作完,沒辦法用 Ctrl+Space 來叫出輸入法,也確定 gcin 已啟動的話,可以試試最後這一步。

Kernel level CPU frequency scaling

AMD X2 PowerNow! & Linux performance — Twibble.Org Enhanced Intel SpeedStep® Technology and Demand-Based Switching on Linux 目 前在我的 laptop 上使用 FC5,有個問題就是內建的 cpuspeed 控制 CPU 頻率變動的速度不是很快,導致整個系統用起來就是有一種不順手的感覺。雖然把頻率固定在極速也是一種解決辦法,但這樣 laptop 的風扇就會轉不停,聽起來也有點煩人。而且後來在某次更新後,沒辦法固定頻率了,也感謝這個問題發生,讓我找到一勞永逸的解決方法。 看了以上兩個連結,才知道現在有新的,kernel 層級的 CPU fequency scaling governor,會比從 userspace 這邊控制快上好幾倍 (有數百倍吧)。使用方法也很簡單: /sbin/modprobe cpufreq_ondemand echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 把 這些寫在 rc.local,然後不要使用 cpuspeed。看了 Intel 的文章,以為這只能用在 Intel 的 CPU 上,後來才想起第一篇用的 CPU 是 Athlon X2,沒有只能用 Intel 的這回事。不過不知道這兩家的 CPU 用起來效果相不相同就是了。

餅乾大事紀 » Blog Archive » OpenVPN

餅乾大事紀 » Blog Archive » OpenVPN 先記下來,我試過後再整理。

ipfilter

最近在 cauchy (Compaq DS25) 上裝了 ipfilter 這個 firewall。安裝時有些小問題,但還是弄上去了。要加規則的話是更改 /etc/ipf.rules 這個檔案,然後用 ipf -Fa -f /etc/ipf.rules 來更新規則。另外可跑 ipfstat -hi 來看 in 的每條規則和統計。

LinuxHall - 在 Windows 上存取 Linux 的 ext3/reiserfs 分割區檔案

LinuxHall - 在 Windows 上存取 Linux 的 ext3/reiserfs 分割區檔案 如果要在 Windows 下存取 ext3 filesystem 的話,可以試試看。

trac: Integrated SCM & Project Management

trac: Integrated SCM & Project Management 之前老師想要一個系統,能記綠每次 meeting 的大致內容和結論,以及保存每次 meeting 用的投影片,無論好壞。大概的功能就是能直接從網頁上輸入資料,例如報告者、日期,然後直接從網頁上傳投影片檔案上去。本來叫學弟用 php 寫一個,但他似乎寫不太出來。其實這種簡單的功能我應該一下子就能寫完,但我是想找找一個更完整,不是急就章的解決方案,最好是用 wiki,能讓大家自由添加內容進去。有想過用 MediaWiki 這個當紅的 wiki 系統,但試過後發現它對上傳檔案的定義和我要的不太一樣。它對上傳檔案的定義是圖片這類的多媒體檔案,和我要的單純上傳檔案功能不太相同,用起來也不順手。 後來在某處發現有人介紹 trac 這個系統,定位的使用者是軟體開發團隊。重點是有上傳檔案的功能,所以想看看這個適不適合我們使用。