-
曾經好幾度想要放棄博士班的學業
Breaking Night講的是Liz Murray的故事,算自傳吧
Subtitle中,有一句是"My journey from homeless to harvard"
是的,曾經無家可歸的她(曾經還在街上流浪),不僅讀到哈佛,還拿到哈佛的博士
除了她,還有另一個類似的例子,也是進哈佛,還拍成電影:風雨哈佛路
請友人幫我從美國回來時帶回來(Amazon收我7NT的海外購物費,不厚道啊,我明明是寄到美國)
才看到第一頁就很悲慘
不僅是她媽的悲慘
我也很悲慘
生字一堆……
誰能告訴我:Mary-friggin-Poppin到底是什麼意思啊?(我猜是一首歌……)
第一頁在回憶她媽的悲慘青年時
主要是回憶她媽的話,第二頁從她媽的話中再間接描述她爸
我想,因為她媽和她爸如此悲慘,她的童年才會如此悲慘
她媽說的Pumking,應該是是在叫主角(一開始我以為是她爸的暱稱)
希望看了這本書能讓我有繼續的動力
人生的機會不多,有就要好好把握和珍惜
如果情況如此悲劇的她,都能唸到名校的博士
狀況好得多的我沒理由撐不下去
但我首先要先撐下去在寫論文的餘暇把書看完……Orz
-
2011年1月5日 星期三
2010年11月17日 星期三
VituralBox安裝guest addition的方法
.
這篇文章其實是篇備忘
我個人以往安裝VirtualBox的guest addition都是將geust addition的安裝光碟mount起來後,再將其copy到某個資料夾,再在該資料夾下安裝(執行./VBoxLinuxAdditionals-x86.run)
因為若不這樣做,而是直將在guest addition的光碟中執行安裝程式,那麼若將該光碟移除,你的VirtualBox guest os將會失去guest addition的功能
但有一天我在某處找到另外的安裝方法,特擷取出來給大家,我其實忘了在哪找到的,因此,若你是原作者,請通知我,謝謝
(我剛用google搜尋到一篇,應該是出自這裡)
指令如下,其實和copy guest addition的內容後再安裝沒什麼差別
但個人覺得這種方法比較好,因此就擷錄出來了
下列的指令執行後,會將guest addition安裝到"~/vbox"下
另外,我忘了,需不需要在安裝前,先將"~/vbox",如果有機會重灌vm,我會注意的
.
這篇文章其實是篇備忘
我個人以往安裝VirtualBox的guest addition都是將geust addition的安裝光碟mount起來後,再將其copy到某個資料夾,再在該資料夾下安裝(執行./VBoxLinuxAdditionals-x86.run)
因為若不這樣做,而是直將在guest addition的光碟中執行安裝程式,那麼若將該光碟移除,你的VirtualBox guest os將會失去guest addition的功能
但有一天我在某處找到另外的安裝方法,特擷取出來給大家,我其實忘了在哪找到的,因此,若你是原作者,請通知我,謝謝
(我剛用google搜尋到一篇,應該是出自這裡)
指令如下,其實和copy guest addition的內容後再安裝沒什麼差別
但個人覺得這種方法比較好,因此就擷錄出來了
下列的指令執行後,會將guest addition安裝到"~/vbox"下
另外,我忘了,需不需要在安裝前,先將"~/vbox",如果有機會重灌vm,我會注意的
1. [裝置] -> [安裝客端額外功能] ,把VboxAdditions這片光碟掛載起來,並到終端機內
2. 進入光碟機的目錄下:cd /media/cdrom0
3. 執行VBoxLinuxAdditionals-x86.run,並把目標指定到/vbox的目錄下:
./VBoxLinuxAdditionals-x86.run --target ~/vbox
.
2010年10月14日 星期四
在Linux mint 8 (Ubuntu 9.10)下安裝ns 2.29
.
之前雖然成功的在Fedora Core 5下成功的安裝了ns 2.29和BittorrentSim
但是我常用的VM還是LinuxMint 8
若要同時開兩個VM,這不是個辦法
真要解決問題,還是得在Linux mint 8 (Ubuntu 9.10)下將ns 2.29裝起來才行
你會看到這篇文章的出現,就代表我已經成功的裝了起來
1.下載ns-allinone-2.29.3.tar.gz並解開
2.在.bashrc下設定一些變數,設定完後logout,再login一次,讓變數發生作用
我自己的變數設定如下:
PS:
這裡的變數設定有參考 linux下安裝ns
但為什麼我的變數為NSPATH229而非NSPATH?
因為我之前有安裝過ns2.34,NSPATH已經被用掉了,因此我將原來的NSPATH comment掉,而NSPATH229就留給ns2.29
3.
在ns-allinone-2.29下,執行
結果應如下:

將system=MP-RAS-`awk '{print $3}' /etc/.relid'`
的'刪除
變成system=MP-RAS-`awk '{print $3}' /etc/.relid`
將所有有多出'的Makefile.in的行改掉,如下圖

4.我在這裡會遇到下面的問題:
解法是參考這裡:NS-2 problem llType
簡單說,先安裝一些套件:
再下載tk-8.4-lastevent.patch (點我下載)
然後進入ns-allinone-2.29/tk-8.4.11/下
執行:
再修改下列目錄中的"Makefile.in",將@CC@改成gcc-4.1,@CPP@改成g++-4.1
若你在這之前有執行ns-allinone-2.29下的./install過,記得到ns-allinone-2.29/otcl-1.11/中執行make clean
(原文有說還要砍掉"Makefile",但我實驗的結果是,make clean即會砍掉"Makefile")
到這裡,我執行完ns-allinone-2.29下的./install
ns2.29就裝起來了
可喜可賀
.
之前雖然成功的在Fedora Core 5下成功的安裝了ns 2.29和BittorrentSim
但是我常用的VM還是LinuxMint 8
若要同時開兩個VM,這不是個辦法
真要解決問題,還是得在Linux mint 8 (Ubuntu 9.10)下將ns 2.29裝起來才行
你會看到這篇文章的出現,就代表我已經成功的裝了起來
1.下載ns-allinone-2.29.3.tar.gz並解開
tar zxvf ns-allinone-2.29.3.tar.gz
2.在.bashrc下設定一些變數,設定完後logout,再login一次,讓變數發生作用
我自己的變數設定如下:
NSPATH229=$HOME/ns-allinone-2.29
PATH=$NSPATH229/bin:$NSPATH229/tcl8.4.11/unix:$NSPATH229/tk8.4.11/unix:$PATH
LD_LIBRARY_PATH=$NSPATH229/otcl-1.11:$NSPATH229/lib
TCL_LIBRARY=$NSPATH229/tcl8.4.11/library
export NSPATH229 PATH LD_LIBRARY_PATH TCL_LIBRARY
PS:
這裡的變數設定有參考 linux下安裝ns
但為什麼我的變數為NSPATH229而非NSPATH?
因為我之前有安裝過ns2.34,NSPATH已經被用掉了,因此我將原來的NSPATH comment掉,而NSPATH229就留給ns2.29
3.
在ns-allinone-2.29下,執行
grep 'system=MP-RAS-' ***/*/* -n
結果應如下:
將system=MP-RAS-`awk '{print $3}' /etc/.relid'`
的'刪除
變成system=MP-RAS-`awk '{print $3}' /etc/.relid`
將所有有多出'的Makefile.in的行改掉,如下圖
4.我在這裡會遇到下面的問題:
undefined reference to `__stack_chk_fail_local'
ld: libotcl.so: hidden symbol `__stack_chk_fail_local' isn't defined
ld: final link failed: Nonrepresentable section on output
make: *** [libotcl.so] Error 1
otcl-1.11 make failed! Exiting ...
解法是參考這裡:NS-2 problem llType
簡單說,先安裝一些套件:
sudo apt-get install libx11-dev libxmu-dev libxmu-headers libxt-dev libtool g++-4.1
再下載tk-8.4-lastevent.patch (點我下載)
然後進入ns-allinone-2.29/tk-8.4.11/下
cd ns-allinone-2.29.3/tk-8.4.11/
執行:
patch -p0 < tk-8.4-lastevent.patch
再修改下列目錄中的"Makefile.in",將@CC@改成gcc-4.1,@CPP@改成g++-4.1
otcl-1.11/, line 7 : CC = gcc-4.1
tclcl-1.17/, line 40 : CC = gcc-4.1
tclcl-1.17/, line 41 : CPP = g++-4.1
ns-2.29/ , line 36 : CC = gcc-4.1
ns-2.29/ , line 37 : CPP = g++-4.1
nam-1.11/, line 44 : CC = gcc-4.1
nam-1.11/, line 45 : CPP = g++-4.1
若你在這之前有執行ns-allinone-2.29下的./install過,記得到ns-allinone-2.29/otcl-1.11/中執行make clean
(原文有說還要砍掉"Makefile",但我實驗的結果是,make clean即會砍掉"Makefile")
到這裡,我執行完ns-allinone-2.29下的./install
ns2.29就裝起來了
可喜可賀
.
2010年10月6日 星期三
在Windows 7,錄製桌面時沒有聲音 (Realtek HD打開立體聲混音)
.
最近需要在Windows 7下面錄製桌面,遇到的最大困難為錄製不到聲音……
我的Notebook的音效晶片為Realtek ALC662
首先,Realtek HD立體聲混音(Sterio Mix)裝置是隱藏的,且被停用
要打開它
這是Realtek(瑞昱)的裝置管理員圖示

在該圖上按右鍵,選音訊裝置

接著,先將頁面切換到錄製頁面
在下面的裝置上,按右鍵,選擇"顯示已停用的裝置"

如圖,在"顯示已停用的裝置"被打勾後,會看到"立體聲混音"這個裝置跑出來
要注意,這個時候它是透明的,因為這時它預設是停用的,圖中可以看到狀態為"停用"
在"立體聲混音"上按右鍵,選啟用

啟用"立體聲混音"後,"立體聲混音"變成非透明的,狀態為"就緒"

此時,再去錄製桌面,錄音裝置選"立體聲混音"就應該有聲音了
但也有可能沒有聲音,我就是這個case
在google一番後,有人說是Realtek HD的driver有問題,要安裝官網的版本才會有聲音
是的,我在裝置管理員中去選Realtek HD這個device,並選"更新驅動程式",它一直跟我說,你的驅動程式已經是最新,無需更新
但是,在我到Realtek的官網去下載最新的驅動程式並安裝後,我的"立體聲混音"裝置就有聲音了
在Realtek的官網上,它似乎將所有驅動程式整合成一包,不再是根據晶片去分,只有根據OS去分
WinXP/2000一包
Win7一包
Win7的版本為:Vista_Win7_R252
而在裝完後,版本為6.0.1.6194
有圖有真相,圖中可以看到我的驅動程式版本為:6.0.1.6194

.
最近需要在Windows 7下面錄製桌面,遇到的最大困難為錄製不到聲音……
我的Notebook的音效晶片為Realtek ALC662
首先,Realtek HD立體聲混音(Sterio Mix)裝置是隱藏的,且被停用
要打開它
這是Realtek(瑞昱)的裝置管理員圖示

在該圖上按右鍵,選音訊裝置

接著,先將頁面切換到錄製頁面
在下面的裝置上,按右鍵,選擇"顯示已停用的裝置"

如圖,在"顯示已停用的裝置"被打勾後,會看到"立體聲混音"這個裝置跑出來
要注意,這個時候它是透明的,因為這時它預設是停用的,圖中可以看到狀態為"停用"
在"立體聲混音"上按右鍵,選啟用

啟用"立體聲混音"後,"立體聲混音"變成非透明的,狀態為"就緒"

此時,再去錄製桌面,錄音裝置選"立體聲混音"就應該有聲音了
但也有可能沒有聲音,我就是這個case
在google一番後,有人說是Realtek HD的driver有問題,要安裝官網的版本才會有聲音
是的,我在裝置管理員中去選Realtek HD這個device,並選"更新驅動程式",它一直跟我說,你的驅動程式已經是最新,無需更新
但是,在我到Realtek的官網去下載最新的驅動程式並安裝後,我的"立體聲混音"裝置就有聲音了
在Realtek的官網上,它似乎將所有驅動程式整合成一包,不再是根據晶片去分,只有根據OS去分
WinXP/2000一包
Win7一包
Win7的版本為:Vista_Win7_R252
而在裝完後,版本為6.0.1.6194
有圖有真相,圖中可以看到我的驅動程式版本為:6.0.1.6194

.
motoroal的藍芽晶片(CSR)搜尋藍芽裝置
在VirtualBox的windows guest os中和host os進行資料夾分享
.
紀錄一下在virtual box中,若guest os為windows,如何進行和host os資料夾分享
host os指的是你真的主機的os,也就是你virtual machine的宿主,在這個範例中,我的host os為windows xp
guest os指的是你安裝的virtual macine,在這個範例中,我的guest os也為windows xp
而現在,我想在host os和guest os兩者間進行資料的分享,要如何設定?
首先,在開啟virtual machine前,打開VirtualBox的設定,選擇左下的"共用資料夾"後,再選右上的加入

接著,在資料夾路徑中選其其他,選到你想要和guest os分享的資料夾
接著輸入欲分享的資料夾名稱
按下確定

設定完成後,如圖
以圖中來講,我將我的D:\vm\vmsf分享出來,分享的名稱為vmsf
記住分享名稱,在guest os中設定時會用到
設定完開啟virtual machine

進入virtual machine後,開啟檔案總管,在左邊我的電腦上按右鍵,選"連線網路磁碟機"

接著,設定網路磁碟機
磁碟機,選擇你欲分享的磁碟機代號,圖中我設定為R:
資料夾,輸入你要連線的對像名稱,格式為"\\vboxsvr\分享名稱"
我在guest os中設定分享名稱為vmsf,那麼我在這裡就要輸入:
如圖中的名稱為\\vboxsvr\music,那表示圖中的分享的資料夾名稱為music(其實是我抓錯圖)

連線成功後的樣子
可以看到我R槽有資料了
如此,virtual machine中的R槽就對應到host os的d:\vm\vmsf共享資料夾了

.
紀錄一下在virtual box中,若guest os為windows,如何進行和host os資料夾分享
host os指的是你真的主機的os,也就是你virtual machine的宿主,在這個範例中,我的host os為windows xp
guest os指的是你安裝的virtual macine,在這個範例中,我的guest os也為windows xp
而現在,我想在host os和guest os兩者間進行資料的分享,要如何設定?
首先,在開啟virtual machine前,打開VirtualBox的設定,選擇左下的"共用資料夾"後,再選右上的加入
接著,在資料夾路徑中選其其他,選到你想要和guest os分享的資料夾
接著輸入欲分享的資料夾名稱
按下確定
設定完成後,如圖
以圖中來講,我將我的D:\vm\vmsf分享出來,分享的名稱為vmsf
記住分享名稱,在guest os中設定時會用到
設定完開啟virtual machine
進入virtual machine後,開啟檔案總管,在左邊我的電腦上按右鍵,選"連線網路磁碟機"
接著,設定網路磁碟機
磁碟機,選擇你欲分享的磁碟機代號,圖中我設定為R:
資料夾,輸入你要連線的對像名稱,格式為"\\vboxsvr\分享名稱"
我在guest os中設定分享名稱為vmsf,那麼我在這裡就要輸入:
\\vboxsvr\vmsf
如圖中的名稱為\\vboxsvr\music,那表示圖中的分享的資料夾名稱為music(其實是我抓錯圖)
連線成功後的樣子
可以看到我R槽有資料了
如此,virtual machine中的R槽就對應到host os的d:\vm\vmsf共享資料夾了
.
2010年9月9日 星期四
在ns-2.29下安裝並執行bittorrentsim
.
ns-2.29安裝後,開始安裝bittorrentsim
bittorrentsim的作者為Kolja Eger(點我連結網站)
作者網頁寫得很簡單,其實沒有那麼清楚
我還是紀錄一下安裝和測試過程吧
作者網站上有三個檔案
bittorrent.patch
bt_flashcrowd_flow.tcl
bt_flashcrowd_star.tcl
bittorrent.patch是作者的bt的實作
而後兩個檔案(bt_flashcrowd_flow.tcl和bt_flashcrowd_star.tcl)則是simulation的script file
請自行mapping到相對應的目錄
我的目錄是這樣
/root/ns-allinone-2.29/ns-2.29
安裝bittorentsim
將bittorrent.patch copy到ns-2.29後,在ns-allinone-2.29/ns-2.29下,依序執行:
第一步驟執行後(上patch),會在ns-2.29下多出一個目錄:bittorrent
ns-2.29/bittorrent中的檔案就是作者bt的實作了
但要重新make ns才能將作者的實作的node加入ns中,讓simulation script file可以用
到這,bittorrensim就安裝進ns了,你可以寫simulation了
但是裝好我測試了一下……
本來不會有warning message的simulation script file在裝完bittorrentsim後,再執行同樣的simulation會跑出一堆warning……
anyway,只是warning而已,至少還是可以動的
20110104更新:
在將BTSim裝入NS229之後,之後跑任何script都會跳出"warning: no class variable Node::AppRunning_"這個warning,很煩
解法是在ns-default.tcl中加這一行:
重編NS(這步我不確定要不要,我是習慣重編)
然後這warning就會消失囉
測試作者提供的兩個script file
測試過程中我遇到一些困難,在這我直接提解法,而為什麼會產生這些問題要等我trace code後才能回答了
在ns-2.29/bittorrent下再開一個folder:scripts
將兩個script file(bt_flashcrowd_flow.tcl和bt_flashcrowd_star.tcl)copy到該目錄(ns-2.29/bittorrent/ns-2.29/bittorrent/scripts)下
回到ns-2.29,也要copy兩個script file(bt_flashcrowd_flow.tcl和bt_flashcrowd_star.tcl)到這裡,執行
第一個參數為peer數
第二個參數為random number generator
第三個參數為上傳頻寬(單位為kpbs)
所以上述的命令為:跑一個packet-level的simulation,10個peers,上傳頻寬為1000kbps
執行後,就會開始跑simulation,simulation的結果會在ns-2.29/bittorrent下再開新目錄,將結果寫入
以我的case,執行時會跑出下列這一行
這表示simulation完後,結果會被寫入
bittorrent/results_flash_packet_star_100MB_N_P_10_C_125000.0Bps_seed_1_1284040923這個資料夾
.
ns-2.29安裝後,開始安裝bittorrentsim
bittorrentsim的作者為Kolja Eger(點我連結網站)
作者網頁寫得很簡單,其實沒有那麼清楚
我還是紀錄一下安裝和測試過程吧
作者網站上有三個檔案
bittorrent.patch
bt_flashcrowd_flow.tcl
bt_flashcrowd_star.tcl
bittorrent.patch是作者的bt的實作
而後兩個檔案(bt_flashcrowd_flow.tcl和bt_flashcrowd_star.tcl)則是simulation的script file
請自行mapping到相對應的目錄
我的目錄是這樣
/root/ns-allinone-2.29/ns-2.29
安裝bittorentsim
將bittorrent.patch copy到ns-2.29後,在ns-allinone-2.29/ns-2.29下,依序執行:
patch p1 < bittorrent.patch
./confugrue
make clean
make
第一步驟執行後(上patch),會在ns-2.29下多出一個目錄:bittorrent
ns-2.29/bittorrent中的檔案就是作者bt的實作了
但要重新make ns才能將作者的實作的node加入ns中,讓simulation script file可以用
到這,bittorrensim就安裝進ns了,你可以寫simulation了
但是裝好我測試了一下……
本來不會有warning message的simulation script file在裝完bittorrentsim後,再執行同樣的simulation會跑出一堆warning……
warning: no class variable Node::AppRunning_
see tcl-object.tcl in tclcl for info about this warning.
anyway,只是warning而已,至少還是可以動的
20110104更新:
在將BTSim裝入NS229之後,之後跑任何script都會跳出"warning: no class variable Node::AppRunning_"這個warning,很煩
解法是在ns-default.tcl中加這一行:
Node set AppRunning -1
重編NS(這步我不確定要不要,我是習慣重編)
然後這warning就會消失囉
測試作者提供的兩個script file
測試過程中我遇到一些困難,在這我直接提解法,而為什麼會產生這些問題要等我trace code後才能回答了
在ns-2.29/bittorrent下再開一個folder:scripts
將兩個script file(bt_flashcrowd_flow.tcl和bt_flashcrowd_star.tcl)copy到該目錄(ns-2.29/bittorrent/ns-2.29/bittorrent/scripts)下
回到ns-2.29,也要copy兩個script file(bt_flashcrowd_flow.tcl和bt_flashcrowd_star.tcl)到這裡,執行
ns bt_flashcrowd_star.tcl 10 1 1000
第一個參數為peer數
第二個參數為random number generator
第三個參數為上傳頻寬(單位為kpbs)
所以上述的命令為:跑一個packet-level的simulation,10個peers,上傳頻寬為1000kbps
執行後,就會開始跑simulation,simulation的結果會在ns-2.29/bittorrent下再開新目錄,將結果寫入
以我的case,執行時會跑出下列這一行
bittorrent/results_flash_packet_star_100MB_N_P_10_C_125000.0Bps_seed_1_1284040923
這表示simulation完後,結果會被寫入
bittorrent/results_flash_packet_star_100MB_N_P_10_C_125000.0Bps_seed_1_1284040923這個資料夾
.
訂閱:
文章 (Atom)


