ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2008年12月29日 星期一

Bookmark - android for x86

Android 有人 port 到 x86 上了, 在 Android-port 討論區有人 po 出來: How to build Andriod Full source for X86 architecture like eee_pc 原先是build for eee_pc,後來有人 port 在 QEMU 上。

2008年12月27日 星期六

最近的一些news notes

PureDarwin OpenDarwin 停了,後繼者(?) PureDarwin 釋出 Preview for Developer 版本。 PureDarwin 是利用 DarwinBuild 做出來的 distribution (?)。目的在讓 Darwin Kernel 變成一個簡單易安裝的系統。 Linux 2.6.28 release 說得最多大概是ext4 檔案系統正式啟用。然後是 GEM,GEM 好像是graphic memory 的機制,大概是說,從 28 版開始,kernel 提供了 graphic driver memory management 的機制,讓所有的 graphic driver (fb, x, opengl,...) 都經由這個機制操作,彼此和諧的運作。 這篇文章不錯,一邊列出 28 版的項目,一邊來列出各 item 的 ref link。

2008年12月25日 星期四

自動 mount 拇指碟,要有 floppy 權限

插入拇指碟,出現 message 說權限不符。 只好手動 mount 進來,但是又不能任意修改,因為file owner 是 root (因為是用 sudo mount)。 是因為我沒有 存取 floppy 的權限,把自己加入 group : floppy 後,就會自動 mount 和跳出 檔案管理員。

2008年12月14日 星期日

Python : open and read binary file

原來python 開啟檔案的模式會影響read() function 的動作。
>>>img=open("c:\\keroro.jpg","r")
>>>img.read(32)
...略...
>>>img.tell()
1612L   !!! <--- 怎麼會這樣! 
後來發現,原來 binary 檔就要指定用 binary 的方式開啟:
 img=open("c:\\keroro.jpg","rb")
這樣 read( )動作和 tell()就會正常了。
用 google 搜尋 "python read binary file",會有很好的 binary read/write 範例。

2008年12月12日 星期五

Install Adobe Reader in Lenny

因為在看 datasheet時,有些section 顯示不出來,所以還是要裝 adobe 版的 archobat reader。 到 adobe 去download reader,手動選 linux 的 deb 包裝。 download 下來後,用 dpkg -i 安裝。 然後要 download 韓文字型: 到 http://www.adobe.com/tw/products/acrobat/acrrasianfontpack.html 選韓文下載。
其實這一頁是 google "adobe reader asia font pack"
解開,裡面有 INSTALL 這個檔,執行他。OK
他會說你的 adobe reader 裝在 /opt,好像是這樣。

2008年12月11日 星期四

Using iPod in Lenny : Rhythmbox

本來以為很麻煩,install 了 gtkpod 跟 amarok。
插入iPod 後還是沒反應,但是 dmesg 有找到 mass storage : sda1, sda2。

mount sda1 的話,不行,sda2 的話,可以用 vfat mount。

一旦 mount 進來後,gnome 的 default music player : Rhythmbox 就開起,也看到 iPod 的內容了。

然後,就可以直接用拖拉的方式把歌曲"拉"出來,但是檔名會是奇怪的字母就是。還好"property data" 還是正確的。

沒試可不可以直接把歌"拉"進去...

附帶記一下: Reset iPod 的方法:
  1. 把 hold button 推到 "hold" 再推回來。
  2. 同時按下 MENU,SELECT 6 ~ 8 sec
  3. 看到 Apple Mark,, 放開

然後我就把 amarok, gtkpod 都 remove了...

2008年12月10日 星期三

install flashplayer 10 in lenny

因為 youtube 看不到,所以要裝 flashplayer。裝了gash 也看不到,lenny non-free 的 flashplugin 也看不到,所以只好到 adobe 去 download install package - tgz 格式。 然後 run 裡面的 install script。 一開始用 sudo run ,結果在 指定 mozilla path 的時候,一直不會過,但是我已經確定是正確的呀
  /usr/lib/mozilla 
看一下 script,發線如果是 root 安裝的話,他會一直詢問 directory,所以就不用 sudo 來 run。 這樣果然就過了。 :) 現在已經可以看了。

2008年12月1日 星期一

Samba : 同時 enable user 和 no password share

使用 samba server,但是區分為需要和不需要 password 的兩個(種) folder。

是 follow 這一篇的:Private and guest (no password prompt) Samba shares with security=user
其他的文章,都是2選1。
也就是說,要嘛把 security 設為 share,enable guest nobody。這樣所有 share folder都不需要 password。
要嘛把 security 設為 user。這樣就都要 輸入 username, password。

要是要同時有兩種 folder的話,倒是比較少文章說明。

方法大概是:
  1. 設定為要 user, password。
  2. 將username, password 錯的login。 map 為 guest (當作是 guest)。
  3. 將要 public 的 folder 設為 guest 可以 access。
smb.conf 所要增加的 option就是:
map to guest = bad user
guest account = nobody
然後要 public 的 folder 設為:
guest ok = yes
guest account = nobody
要注意 folder 的 attrib。要是 nobody 可以 x, r 的。
如果有不行的,到 /var/log 去看 error log..

2008年11月25日 星期二

終於 可以使用 中文 輸入

這個robert 的 lenny...


一直follow 著安裝 中文的步驟:安裝SCIM, scim-chewing,font,設定 XMODIFIERS...etc。
一直到開啟 gedit,選中文輸入..都 OK 了。
但是還是沒辦法在browser 或其他 ap 中開啟中文輸入...

只好..logout,在 gdm login 畫面選 中文輸入... 然後...就 OK 了。

進入後,所有 interface 都變成中文了,開啟 browser 後用 ctrl-space 也叫出 輸入法..

也就是說.. OK了。



也就是說...無法在英文環境下,使用中文輸入囉?

用 locale 看,所有都變成 zh_TW 了...

2008年11月21日 星期五

Install E17 in Debian, ubuntu

要安裝 EFL 好像要裝 E17。 E17 好像還不是很 stable,所以還沒有進 Debain , ubuntu 的 repository。 所以要用其他的 source。 follow E17 user guide : installing using Linux distribution package ubuntu hardy 的話。就是 follow blog 的這一篇 : 把
  deb http://e17.dunnewind.net/ubuntu hardy e17
加到 sources.list 中, 取得 pgp key,然後就可以 找得到 e17 這個 package 了.. Debian 的話,follow 這一個 blog ,要加的是 這個:
  deb http://debian.alphagemini.org/ unstable main

2008年11月12日 星期三

Samba and XP網芳的連線數限制

因為 XP pro/home 的網路芳鄰有限制最多 10 人同時連線。

所以想說能不能在 XP 上裝 Samba,這樣10 人連線限制就消失了...

但是找不到在 XP 上裝 Samba 的方法,難道要裝 Cygwin 嗎?

2008年11月11日 星期二

TortoiseSVN : branch fail

這一版 TortoiseSVN 有點問題..
TortoiseSVN 1.5.5, Build 14361 - 32 Bit , 2008/10/24 18:06:34 Subversion 1.5.4, apr 1.2.12 apr-utils 1.2.12 berkeley db 4.4.20 neon 0.28.3 OpenSSL 0.9.8i 15 Sep 2008 zlib 1.2.3
不知道是因為我是從舊svn升級,還是什麼原因。不能 branch working copy. 會出現:
C:\WINCE500\PLATFORM\STMP37xx_BSP\SRC\BOOTLOADER\RBoot\ROmain.cpp
Commit failed (details follow):
File
'/svn/PND/RN1-RN2/branch/SW/Charles/tmp/081111_justtest/SRC/BOOTLOADER/RBoot/ROmain.cpp'
already exists
這樣的 Error。 奇怪的是我在另一台機器就不會有這樣的問題。 Google 的結果,雖然優有一些人有相同的問題,但是developer 的回答都是:他不會發生,所以沒辦法 debug... ...這大概是 local svn cache 的問題吧。 所以,使用大絕招:
  1. create patch
  2. delete entire source tree
  3. checkout
  4. apply patch
  5. brach ! .... OK
這樣就 OK 啦。

2008年11月6日 星期四

Dillo 2.0 release

有名的 (?) Lightweight browser : Dillo,出 2.0 版囉。 先前說 2.0 版新增很多功能,並且轉移到 FLTK 2.0。但是因為經費不足 (或是不爽?)。 所以再沒有找到 founder 之前,2.0 不會 release。 現在,不知道是不是找到 founder 了還是因一堆 mobile 版 browser 漸漸出現,所以終於宣佈 2.0 release.. 這一篇有一些試用心得. 大概是說 非常的快,porting 到 FLTK2.0 後,比 GTK+ 還快一倍 (GTK+版已經比 FF 快 5倍)。 但是..不支援 Javascript 是 致命的...

2008年10月26日 星期日

virtualbox, lxde

ubuntu 8.04 的 OSE (open source edition) virtualbox 鍵盤失效。

結果是要裝 scim-bridge-qt,重要的是,裝完後要重開機 (不然也要重開 X : Ctrl-Alt Backspace)。 這樣才會生效。

另外,在 VirtualBox 上 run lxde 的話,要記得 enable virtualbox 的音效卡,否則 lxde 的 task bar 會顯示不出來。

2008年10月22日 星期三

Practice : Linux as Domain Controller

安裝 samba. Workgroup/Domain Name 是 VBoxDebian。
因為沒裝 dhcp,所以沒有啟用 WINS support。

啊~沒看清楚,剛剛那個只有講到 samba file server,沒有說到 Domain controller ...

只好 follow 這一篇..(http://www.rrcomputerconsulting.com/view.php?article_id=2)
直接作 samba + ldap.

哇!好複雜!... 大概會 fail 吧..

再作一次的注意事項:
  1. install debian server 時,要自己選一個domain name 。就叫 vboxnet.com,server name是 vboxdebian2g。
  2. 修改 smb.conf 時,要先備份。
  3. 要注意所有 server 都要對 internal 的 network adaptor 上。
改一下 procedure 好了... 先 install DNS..

  • 因為 install 會找 "primary NIC",所以先把 internal network 那個 Network adaptor disable。
  • 裝完 base system 後,要記得 snapshot 一下...

Practice : Linux as Domain Controller - 準備

練習一下,用 Linux 管理 windows 網路。

目前看到最完整的應該是 samba + openldap,大約可以做到 AD 的 程度。
但是很難,所以先作 small business 的部份就好了..

Samba:整合 Windows Network (http://tech.seety.org/debian/SambaConf.html)
使用 virtualbox 來作,一個 vm : debian 4.0 as server,2 個 xp as client。

使用 NAT ?

VirtualBox 中,兩個使用 NAT 的 VM 的 ip address 竟然是相同的 ,而且(所以)不 互通。

使用 Internal Network ?

這樣 兩個 VM 是互通的,但是因為 internal network 中沒有 dhcp ,所以 ip 都要是 static。除非其中一個 vm 裝了 dhcp server。

... 但是因為使用了 Internal Network,所以無法連到外界...所以沒辦法經由 aptitude 安裝package..

除非要在 host interface 模式下,把需要的 package 都裝好,再切到 internal network。

dhcp 裝上去有點危險,萬一在使用 bridge mode時,dhcp server 是打開的,那麼所有網路上的 pc 都會受影響..

所以.. 就用 static ip好了。在 bridge mode 下裝完所有需要的 package...

!!!
有點蠢.. 每個 VM 可以有 3 個網路卡呀。把 debian 那個 VM 設兩個網卡就好了!
Adapter 0 : Host Interface (bridge)
Adapter 1 : Internal Only

啟動後,再手動 configure Adapter 1 (eth1) 就可以了。

sudoers

原來 sudoers 的有效命令只有最後的有效... 格式是:
  user    servers=(as user) command
前面的一堆 USER_ALIAS,SERVER_ALIAS (用"::=") 的,使BNF 指令,用來簡化一堆list.. 簡單的可以不用設。 舉例
 charles-chang   vboxdebian2g=(ALL) ALL
意思是說,charles-chang 可以在 vboxdebian2g 這個 server 上,以任何身份 (username) run 任何command。

2008年10月20日 星期一

Debian Virtualbox : GuesOS bridge NIC

follow 這一篇: http://wiki.debian.org/VirtualBox 安裝 bridgre-utils, uml-utilies。 修改 /etc/networks/interface 後,啟動了br0 這個 NIC。 然後 host OS 可以利用 br0 連線了。 之後 Vbox command :
VBoxAddIF vbox0  br0
之後,就可以在 GuesOS 的 Setting 中,使用vbox0 最為 NIC。 如果第二個 GuestOS也要 bridge,要用
VBoxAddIF  vbox1  br0
再create 一個 bridge NIC ,同樣的 bride 到 br0 (..因為我只有一個NIC呀.) 然後,GuestOS setting 就可以用 vbox1 了。

2008年10月19日 星期日

log - install lxde in virtualbox

follow virtualbox 的安裝頁面,加入 sun 的 repository 到 deb source 中,安裝 virtualbox 2.02 版,結果configure 時,到 compile vboxdrv module 後就中斷了,所以不成功。
不知道vboxdrv module source 是不是要手動 download,還是用 ose (open source edition 的
所以只好 remove 掉,裝 ose 版。
很奇怪,ose 版 (也就是 ubuntu repository 的版本),virtualbox 會額外安裝 libalan110,和...

另外,外了 enable network,所以也 install 了 bridge-utils, uml-utilities。

安裝完了,vboxdrv 會自動 load。把自己加到 vboxdrv 的 groupe中。可以啟動 virtualbox了。


先dowbload lxde 試試.. 裝完沒有東西,發現...因為 會檢查因音效卡,所以 virtualbox 要隨便設一張音效卡,下面的 command bar 才會出現....

但是..網路卡還是沒起來..

2008年9月29日 星期一

IDE for Python

畢竟是個懶人,所以還是選個 IDE 來用,因為不知道哪一個好,IDLE 又太陽春,所以就裝了 SPE 和 ERIC 試試..

2008年8月10日 星期日

make qconfig error

上次 make qconfig 一直說沒有安裝 gtk+-2.0, glib-2.0, libglade-2.0 的問題終於解決。

原來這三個都要裝 *-dev 的 package,光裝 runtime library 是不行的。

在此,也學到 test 的方法。就是用 pkg-config --libs "packagename" 來看。

最後發現 packagename gtk+-2.0, glib-2.0 都有正確列出 lib define,但是 libglade-2.0 就沒有,安裝過 libglade2-dev 後才 OK。

SMC 2536W AG - linux support great

因為 ubuntu 用的 wifi adaptor (wifi--ethernet) 好像有問題 (power adaptor 斷掉),所以只好買一個 pc card 介面的,結果找到:SMC 2536W AG。

因為是 linux 要用的,所以查一下 linux 的 support 如何,結果不錯喔,適用 athero 的,madwifi 有支援。不錯。

而且一片才 260 (還要家運費 70 所以是 330),所以就下標買了,很快,第二天早上就收到了,還有附發票喔。

先拿 XP 驗收看看,,, 哇,不用安裝driver 耶,XP 內建就支援了。

那 拿來 ubuntu 試試:

插入 pcmcia slot,module 就自動 load 了, ifconfig 出現 ath0, wifi0 這兩個 if。
真方便。

但是要 config 就有點麻煩,亂搞一陣。發現原來 ubuntu 8.04 的網路管理程式就已經支援。無線網路會自動啟動,然後會將search 到的 ap 列出來,所以只要點選就可以。然後輸入 WPA key 就OK了。

和 XP 比起來的差別是,以上search, configure, connect, get ip 的動作慢了一些。大約每個動作都要 1 min。所以都會以為沒動作。

為此,我還安裝了 wifi-radar 用來 search ap -- 其實這個沒用,只是 search 心安的。因為內建的 網路管理程式會自動顯示。

還有一點:

"網路設置" 這個程式,要設為"漫遊"的介面,才能正常的 update,好像設成手動後,都沒效。
(應該說第一次有效)。


總而言之,使用這一塊 linux 有支援的 wifi card 真的太方便了,比起上一塊要用 ndiswrapper 的 baffulo 方便太多了。

update - 404 not found

今天用新買的 wifi card 作 update 時,有4 個 update 竟然說 404 not found,一陣子後在 update 一次,有 3個 OK了,,還剩 3 個,好像是 tzdata, emesene 和 xorg server,所以就去把 repository serve 改為"主要",那三個 update 就download 下來了。

這樣不知道是不是 taiwan mirror 的問題?

2008年8月6日 星期三

pkg-config and PKG_CONFIG_PATH

作GTK+2.0 練習時,follow instruction 安裝了 libgtk+2.0-dev 之後 run
 $pkg-config --libs gtk+-2.0
卻出現 message 說找不到:
 Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
所以 找一下 gtk+-2.0.pc:
 $sudo find /usr | grep gtk+-2.0.pc
找到在 /usr/lib/pkgconfig。 所以加入..
 $export PKG_CONFIG_PATH=/usr/lib/pkgconfig
重新login 後再run pkg-config --libs gtk+-2.0,變成出現:
 Perhaps you should add the directory containing `pthread-stubs.pc'
to the PKG_CONFIG_PATH environment variable
Package 'pthread-stubs', required by 'XCB', not found
所以....又要再找 pthread-stubs.pc 了...結果在 /usr/share/pkgconfig,所以 改成:
 export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig
重新login 後,就OK了...
 $ pkg-config --libs gtk+-2.0
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm
-lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

這樣順便解決了一個問題... kernel build - make gconfig 結果一直說我沒有install gtk+-2.0,但是我明明有install。

aptitude, ap-get proxy setting

自從 proxy 從 10.1.1.242 換到 192.168.147.242 後,雖然我把 package 和 proxy 設定都改好了,但是 下 "sudo aptitude ..." 時,還是會到 10.1.1.242 去。 但是 su 成 root 後,又能正確的經過 192.168.147.242 。 查到,是 /etc/apt/apt.conf 的設定沒改。 所以有關 aptitude, apt-get 的 proxy 設定,要注意的地方有:
  1. local 變數 http_proxy
  2. /etc/apt/apt.conf
  3. UI 介面的 network_proxy
  4. synatpic 的 network proxy 設定

2008年8月4日 星期一

todos..

XEN---不能動,所以換KVM試試 KVM---可以動,但是 bridge NIC 起不來,check 一下 QEMU == 可以了,是用 brctl 和 tun QEMU---看到 jserv說的新 2.6 版 kernel 支援 kdbg,所以想試試
KDBG---除了要build kernel 外,還需要 root disk image,一樣,jserv有介紹新kernel 支援的 initramfs。
INITRAMFS---要先build kernel。
LINUX_KERNEL---make gconfig 需要 GTK
GTK....
DJANGO
FFMPEG - 主要是想看 mpeg file format - stream 的 leading symbol

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的網站去看好了。

標籤

網誌存檔