2007年5月31日 星期四

ubuntu 6.06 升級 6.10

兩個方法:

(1) 使用update-manager,較為簡單
$gksu "update-manager -c -d"

(2) 手動使用apt-get
$sudo apt-get install ubuntu-desktop

$sudo sed -e 's/\sdapper/ edgy/g' -i /etc/apt/sources.list

$sudo apt-get update

$sudo apt-get dist-upgrade

$sudo apt-get -f install

$sudo dpkg --configure -a

重開機後就升級完畢了

2007年5月30日 星期三

console port login in ubuntu 6.10 and later

之前用 6.06 時,要關掉console port(ex: /dev/ttyS0)只要到/etc/inittab 裡把相關的敘述comment起來就可以了,但是我在另一塊板子要關時,居然沒有/etc/inittab這個檔,google一下發現原來6.10把login相關設定都交給/etc/event.d/去做了,所以 ls 一下/etc/event.d/,裡面大概長這個樣子
$ ls /etc/event.d

control-alt-delete  rc0           rc1  rc4  rcS          tty1  tty4  ttyS0
logd                rc0-halt      rc2  rc5  rcS-sulogin  tty2  tty5
rc-default          rc0-poweroff  rc3  rc6  sulogin      tty3  tty6

$

打開 ttyS0 來看,改了一下就可以把console login 關掉了

2007年5月29日 星期二

在 Ubuntu Linux 中安裝 TinyOS

TinyOS是一套開發Sensor/Mote系統的開發函式庫,由柏克萊大學所開發.在官方首頁上,提供了windows平台上的tinyos安裝套件,當然,是基於cygwin環境下的軟體,但卻沒有方便於Linux平台的安裝方法(官方所提供的是Red Hat平台下的rpm套件),這對於一些Linux使用者實在大為不便,在看了Chad Metcalf這篇TinyOS Installation for Moteiv's Tmote Sky後,知道原來已經有人在ubuntu上成功裝了tinyos,而且還可以用來開發Tmote Sky,這對於目前參與協助的TestBed計畫實在有大大的助力,於是就來裝裝看吧!

1. 首先拿出這次的硬體平台,也就是之前用過的net4501,並在上面先裝好ubuntu(我實驗的版本為6.10).

2. 接著在 /etc/apt/sources.list 中加入
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu edgy main

以及 ubuntu edgy multiverse版本軟體套件

3. 準備好一些基礎軟體
$sudo apt-get update

$sudo apt-get install cvs subversion autoconf automake1.9 python-dev

$sudo apt-get install g++-4.0 gperf swig sun-java5-jdk graphviz alien fakeroot

$sudo apt-get install g++-3.4 tinyos-msp430 tinyos-avr

4. 為了方便我們在使用tinyos以及本機上的Linux,我們加入一些shell script讓我們方便切換環境變數
先下載 .bash_tinyos放在家目錄下,然後在.bashrc中加入
# Add this to your .bashrc

if [ -f ~/.bash_tinyos ]; then
. ~/.bash_tinyos

fi

這麼一來,我們可以直接鍵入tos1將環境變數改成tinyos1.x的環境;鍵入tos2改為tiny0s2.x的環境,或是鍵入boomerang使用tinyos1.x+Boomerang的環境

5. 使用CVS將最新的tinyos開發套件全抓下來
tinyos 1.x


$cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login

$cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-1.x

$sudo mv tinyos-1.x /opt

tinyos 2.x (optional)
$cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login

$cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-2.x

$cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-2.x-contrib

$sudo mv tinyos-2.x /opt


6. 接著我們在Moteiv的網站上下載TMote所需要的工具軟體 Boomerang,然後轉成ubuntu上的deb套件檔來安裝
$mkdir tmote

$unzip tmote-tools-2_0_4.zip -d tmote

$cd tmote/common/rpms

$fakeroot alien -d tinyos-moteiv-2.0.4-1.cygwin.noarch.rpm

$sudo dpkg --install *.deb

$rm -rf tmote $sudo chown -R $USER /opt/moteiv

註:若使用tinyos1.x的話,也要把1.1.15的rpm檔轉成deb檔來down-grade系統的tinyos

7. 最後修改一下java serial communication的設定
在$TOSROOT/beta/TOSComm/comm/Makefile中,將JAVADIR指定為 /usr/lib/jvm/java-1.5.0-sun 即 JAVADIR=/usr/lib/jvm/java-1.5.0-sun

然而把它install
$alias g++=g++-3.4;

$cd $TOSROOT/beta/TOSComm/comm ; sudo make ; sudo make install

$cd $TOSROOT/beta/TOSComm/packet ; sudo make ; sudo make install

8. 最後檢查一下,看看有沒有錯誤,即大功告成
$/opt/tinyos-1.x/tools/script/toscheck

2007年5月21日 星期一

Open PCMan 2007 Beta 釋出

相信許多常使用BBS系統的人,都對PCMan很熟悉,PCMan最早是由現任陽明大學醫學系洪任諭同學所開發,經過不斷的改良,在2005年與數名熱心網友共同重新開發出以GTK+為基礎的PCMan X pure gtk+2,這個版本的特點就是可跨平台.然而,在2006年底洪同學無私地將PCMan原碼以GPL釋出,讓所有人都能夠參與開發,也更名為Open PCMan,雖如此,大家還是視洪同學為主的Open PCMan開發團隊所釋出的為官方版本,目前最新版是前幾天所發佈的Open PCMan 2007,即是國產軟體,又是Open Source專案,為目前使用BBS的首選軟體.

Dell 推出 ubuntu PC

自由軟體技術網看到的新聞,原文連結來自Desktoplinux.com

主要是Dell推出了一部PC還有一部Notebook,其預載的作業系統是Ubuntu Linux,其實在台灣這種銷售方式一直都有,雖然非常地少,而且說實在的沒什麼搞頭,因為台灣一般的電腦使用者還是使用Windows,加上一些特定軟體以及遊戲都綁在Windows上,要這些使用者改變他們的習慣去重新學習使用Linux,是不太可能的事,或許電腦新手能夠很容易的學習,但這畢竟是少數.而一些習慣使用非windows的人呢?不管他們買的是搭載什麼作業系統的電腦,都有能力能夠把它變成他們想要的,這麼一來,又何必特別去購買搭配Linux的電腦呢?

此外,發展Linux的是各個社群,並非有商業行為的公司行號(Red Hat公司賣的是服務,並非Linux軟體),所以要把它拿來跟Windows或是Mac作比較,我個人是覺得不太合適,因為他們的定位跟本是不一樣的,常聽到有人會說什麼幾年後Linux會打敗Windows這種鬼話,這至少要等到Linux作業系統本身商業化後再來談論,目前來講是不可能的.當然,並不是Linux差,而是它本身在作業系統的市場中,並不是扮演一個產品的角色,而是一個自由發展的系統,所以也不用去管它到底贏不贏了.

2007年5月18日 星期五

虛擬化技術簡介

以下文章部分內容參考自Run!PC160期,”x86伺服器虛擬化的進度/何信達”一文

----------------------------------------------------------------------------------------------------------------------------------

前陣子買Notebook時作了一點功課,在比較CPU效能時,發現Intel有一項新的賣點,就是虛擬化技術(Virtualization Technology).而許多人花了錢,買了俱有VT的CPU,真的能增加效能嗎?事實上大部分的User根本用不到VT,那麼VT到底是什麼呢?

在伺服器的領域當中,常為了節省硬體成本,而在一部server利用虛擬機器軟體,模擬出數台虛擬伺服器,達到一機多用的結果,但是這樣所帶來的缺點,就是效能大大地降低,而VT技術就是在CPU裡動手腳,使得虛擬系統可以更快速的使用硬體,這樣不僅能讓可以增加VM數量,提高伺服器使用率,也帶來更大的效能.

目前x86伺服器的虛擬化技的發展,大概有三種不同的架構

  • Hosted-Base


不變更作業系統及硬體,虛擬化軟體以應用程式的角色在系統上執行,這樣效能最差,而且其它應用程式亦會影響其效能.


  • Hypervisor-Based


Hypervisor-Based是目前的主流發展,常見的VMWare,Microsoft及Xen皆屬於這種,概念上就是簡化及加速虛擬化軟體使用硬體,實作的方式大概又分為兩種,一種將虛擬機所需要的driver內建於原作業系統中,這麼一來,作業系統就會變的很龐大,另一種方式就是由各虛擬機器管理各自的driver,這樣可以達到比較好的效能,例如WinHEC裡提到的MicroKernelize架構,使得虛擬機器可以直接使用硬體.


  • Kernel-Based


這是目前許多人在探討的一項新技術,像是Qumranet所提出的KVM(Kernel-based Virtual Machine)概念,讓作業系統的kernel可以直接使用Intel VT或AMD-V的虛擬化技術,在kernel上需要搭配QEMU的CPU模擬程式,讓虛擬機器可以直接使用硬體.

以往在x86的protected mode下,有四種優先權的處理模式:Ring0~Ring3,Ring0是最大的權限,可以直接存取硬體,而Ring3就是應用層軟體的權限.一般CPU加上虛擬化軟體的架構下,Hypervisor/VMM擁有Ring0,虛擬機器擁有Ring1,而Ring1要存取硬體需要經過一些轉換,降低了效能,所以VT技術就被提出,用來解決此問題,概念上就是設計一個特殊權限讓虛擬機器可以直接存取硬體,用來管理這個的元件,在Intel CPU上稱作Virtual Machine Extensions,這麼一來,虛擬機器就直接以Ring0執行,而不需經過轉換,效能就可以提升很多.