ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2008年6月26日 星期四

gdmsetup

原來 要enable xdmcp - 遠端登入,有簡單的方法。 就是用 gdmsetup 這個程式來作 (需要GTK)。 他會修改 /etc/gdm/gdm.conf。 就是 enable remote 端,並且把一堆 security 拿掉,到 user 部份 "apply"。 然後就可以了。 可以reference 一下 enable前後的 gdm.conf。
原來 gdm, kdm, xdm 都是一樣的東西,只要選一樣就可以了。 debian default是 gdm,所以就用gdm 就好,不用再install kdm, xdm,都install 的話,反而會出現要你選default 的問題。

2008年6月21日 星期六

試試 git-svn 好了

要用公司的svn,又要作local的version control。以往用mercurual,但是這樣和svn又不能整合在一起。

所以還是用 git-svn 好了,雖然其他 bazzar , svk 好像也有支援svn。

但是...目前一堆 opensource 都已經用 git 了,那就follow main-stream吧。

gnome-blog

Try Blog with "撰寫網誌"

不知道可不可以用中文。

It's not so easy to find a suitable blog client which supports blogger's multi blog function.


恩,看來是OK喔。

2008年6月17日 星期二

Build VLC - MinGW OK, make error

唉,真的太不專心了....真的照著 Wiki 一步一步 install,就OK了。 其中只有:
  • msys 用1.0.11
  • MinGW 用 5.1.4
  • wget 沒裝 - 用原來 UnxUtil 的wget
  • Autoconf 沒update 到 2.60
這樣一直安裝到 automake 都OK沒問題。 這樣接著就可以繼續 INSTALL.win32 的內容了 安裝 prebuild codec
    tar xjvf contrib-20070412-win32-0.8.6b-bin-gcc-3.4.5-only.tar.bz2 -C /
bootstrape configure make 出現error :
include/sys/stat.h:113: error: syntax error before "off_t"
include/sys/stat.h:118: error: syntax error before '}' token
make[4]: *** [libaccess_output_file_plugin_a-file.o] Error 1
這是我懶惰,沒有follow configure option ,漏掉一些 --enable ? 還是 我沒有 upgrade autoconf 到 2.60 ? (因為他沒complain 呀) 所以,還是 fail. 這次

2008年6月16日 星期一

build VLC .. install msys, mingw

先download MSYS,auto-installation。 裝完後, download MINGW 覆蓋 c:\msys\1.0\mingw ? VLC wiki 里的說明好像比較update一點.. 以下參考 Wikil.. 這個Wiki很不錯,可以順便知道 MinGW download頁面一堆 東西的安裝方式... MinGW-5.0.3 的auto-install 在 proxy 後面會有問題。 5.1.4 就 OK。-- 要注意安裝環境是 c:\msys\mingw 而不是 default c:\mingw ? 好像認真把 mingw download頁面的"Unstanding MinGW Package"說明 看完 就會知道.. download wget 是為了要run mingwport.sh wget 一樣會認識 http_proxy 這個environment variable喔 - 還是因為我以前裝了 UnxUtils ? 所以這個shell直接可以run ? * ftp_proxy 也要設好,因為有些src是用ftp. fstab 設好是為了 run mingwport.sh 時,要安裝到 mingw 目錄 Autoconf 需要 perl .. !!! autoconf 沒過 !!! 說是 m4 版本不合,但是 autoconf 已經可以run. 繼續 到 vlc source 作 ./configure.. 出現 exception : libintl-8.dll --- 但是確認後,會繼續 run 下去 (大概是因為本來就是 check function,exception 只是確認該 exe (msgfmt.exe) 不能run. 接著安裝autmake 檢查到 autoconf不能run...所以fail. 原來,ref 這一篇,原來是我沒裝 DTK,所以m4 和 perl 的版本不相容。 安裝完後,autoconf 就可以build了。 但是 automake一樣不能build,一樣complain autoconf 不能run。 所以使fail。

2008年6月13日 星期五

Journaling Filesystem Strategies.

ref: Anatomy of Linux Journaling Filesystem. 一般Journaling strategy 可以分為三類
  1. WriteBack :metadata 列入journaling,data直接寫到對應位置。這樣有可能發生的問題是只有data發生損毀時,metata journaling list無法用來恢復。所以要改用 Ordered。
  2. Ordered:一樣只有 metata 列入journaling。但是先寫入data後,再jornaling metata。所以只有metadata有紀錄,代表data部份一定也紀錄進去了。
  3. Data:metata和data都列入journaling,好處是...?,但是壞處就是效能會受影響。

2008年6月12日 星期四

Root HD Image : fake sh - hello

繼續上一篇..準備 "sh" 就準備一個 名叫"sh" 的執行檔讓kernel load 就可以了.. 標準的 hello.c:
#include 
#include 
#include 

void main(int argc,char* argv[])
{
setsid();
(void) open("/dev/tty0",O_RDWR,0);
(void) dup(0);
(void) dup(0);

write(1,"Hello!\n",strlen("Hello!\n"));

_exit(2);
}
因為 Linux 0.01 提供的 function 不多,所以要這樣寫 (這是參考 linux 0.01 gcc4.0 port的作者網站資料)。 另外 該作者也已經修改 kernel,從a.out格式改為 elf格式。所以直接用 gcc 4.0 build就可以囉!
gcc -o hello hello.c -nostdlib -nostdinc -e main
-Ttext=100 -static -fno-builtin
../linux-0.01-rm-3.5/lib/lib.a
-I../linux-0.01-rm-3.5/include
上面是build的command。 就是要指定不使用stdlib,stdinc。 改指定 linux0.01中的lib.a和 include。 build完後,再把剛剛的 root hd image mount 回來,create bin directory,再把hello copy到 bin中,rename成 sh就可以了。 這樣開機message在 Ok. 後,就會出現 Hello! 代表剛剛寫的 hello.c 真的被kernel load進去執行囉!

Root HD Image : tty0

Linux 0.01 build 完只有 kernel image,缺 root 。 所以要建 root。 follow 上次的方法,create了 hd image 和 partition,filesystem後。 QEMU boot message是:
Booting from Floppy

Loading system ...

Partition table ok. <--hd.c
40513/40950 free block  <--super.c
13663/13354 free inodes
_
因為 init/main.c 中的 init( ) 會去 open /dev/tty0,所以我們要先在 root hd image中,先準備好 /dev/tty0。 /dev/tty0 是 char device,所以開啟fs/char_dev.c 來看.. 可以看到 character device的 major number table:
static crw_ptr crw_table[]={
 NULL,        /* nodev */
 NULL,        /* /dev/mem */
 NULL,        /* /dev/fd */
 NULL,        /* /dev/hd */
 rw_ttyx,    /* /dev/ttyx */
 rw_tty,        /* /dev/tty */
 NULL,        /* /dev/lp */
 NULL};        /* unnamed pipes */
其中 /dev/tty0 的index是4 (ttyx)。 所以 /dev/tty0 的 major number 是 4。 把 root image mount 起來,然後
sudo mkdir dev
sudo mknod tty0 c 4 0
這樣的hd root image,boot 後,會增加以下的message..
1513 buffers = 1549312 buffer space
Ok.
child 2 die with code ff00
-
對照 init/main.c 的 init( )來看,可以知道剛剛的 /dev/tty0 有作用了。 接下來的fail message是fork( )後去執行"/bin/sh" 發生問題。 因為 root hd 中沒有 /bin/sh.. 所以要準備 sh...

Middle Button - Scroll

ubuntu (Linux) 中 R40e 的支援度真是ThinkPand裡面最低的。 backlight, volume hotkey 是不能用了。 還好 trackpoint 的middle 還可以用,但是要手動修改 /etc/X11/xorg.conf,用以下的section取代 Input Device 中的 Mouse
Section "InputDevice"
   Identifier    "Trackpoint"
   Driver        "mouse"
   Option        "CorePointer"
   Option        "Device"        "/dev/input/mice"
   Option        "Protocol"        "ImPS/2"
   Option        "ZAxisMapping"        "4 5"
   Option        "Emulate3Buttons"    "true"
   Option        "EmulateWheel"          "true"
   Option        "EmulateWheelButton"    "2"
EndSection
然後重開機,middle button 就可以恢復 scroll 的功能了。

To Support Linux 0.01 minix fs

Linux 0.01 , GCC 4.0 port 提供的 qemu hd image 不能直接 mount ,會說不認識filesystem。 follow 原 post: 原來是要加上 10240 的offset:
losetup -o 10240 /dev/loop0 hd_oldlinux.img
mount /dev/loop0 hddir
這樣就認出 minix filesystem了。

2008年6月11日 星期三

Linux 0.01 with GCC 4.0

Linux Journal 說,有人(Abdel Benamrouche) 把 Linux 0.01 版 port 到 GCC 4.0 版。 在 KernelTrap 中,這一篇。 follow instruction,download linux-0.01-rm-0.35。 再download hd image,解開後,就可以用qemu boot 了。
qemu -fda Image -hdb hdb.img -boot a -m 8
結果boot 到
 Kenel panic: HD controller not ready
就掛了。 解決的方法(?),就是去 kernel/hd.c ,修改 controller_ready( ),直接return true。 之後就可以開機了。 kernel 開機後,會去 root dev 開啟 /bin/init來執行,並且需要 /dev/tty0。 所以當作root device 的 hg image要準備好這些東西。

Memo - After installing ubuntu - install Lazybuntu

裝玩 8.04 後,應該要follow 這一篇 安裝Lazybuntu.。 這樣裝完後,一切都 OK 了。 當然,請在網路頻寬大的地方執行,因為會要download很多檔案。 有關LazyBuntu 包含的package,還是請到 Lazybuntu的網站去看好了。

標籤

網誌存檔