最近為了調試bootloader
發現在Linux上有一套帶有除錯工具的虛擬機器bochs
這套虛擬機器可以單步執行並可以查看記憶體位址、暫存器內容等等
但在ubuntu-12.04LTS中所預設的bochs是沒有dbugger的
必須自行編譯才可得到帶有debugger的bochs
以下為編譯方式
Step1. sudo apt-get install libgtk2.0-dev
Step2. sudo apt-get install libsdl1.2-dev
Step3. sudo apt-get install flex
Step4. sudo apt-get install bison
Step5. apt-get sources bochs
Step6. cd bochs-2.4.6/
Step7. ./configure --enable-debugger --prefix=/usr --with-sdl
Step8. make
Step9. sudo cp bochs /usr/bin/bochsdbg
建立bochsrc
在啟動bochs前要先建立bochsrc檔
以下為bochsrc內容
megs: 32
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
vga: extension=vbe
floppya: 1_44=boot.img, status=inserted
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
#ata0-master: type=disk, path=boot.img, mode=flat, cylinders=1,heads=1,sectors=1
ata0-slave: type=cdrom, path=dosml.iso, status=inserted
boot: floppy
log: bochsout.txt
mouse: enabled=0
cpu: ips=15000000
啟動bochs
bochsdbg -f bochsrc
隱藏文章
2013年2月16日 星期六
安裝bochs
2010年9月17日 星期五
用指令切換視窗工作區
透過下指令的方式切換視窗工作區
基本上可透過wnckprop或wmctrl做到工作區切換目的
1. wnckprop適用於Metacity管理介面
切換桌面wnckprop --workspace=1 --activate
顯示桌面wnckprop --screen=0 --show-desktop
2. wmctrl適用於Compiz管理介面
切換桌面wmctrl -o 1440,0
顯示桌面wmctrl -k on
2010年7月19日 星期一
2010年7月17日 星期六
2010年7月13日 星期二
用mencoder使rmvb轉avi
mencoder -ovc lavc -lavcopts vcodec=mpeg4 -oac lavc -lavcopts acodec=ac3 source.rmvb -o dest.avi
2010年7月10日 星期六
cannot lock /etc/passwd; try again
可能是因為ssh登入修改passwd時斷線
結果造成鎖定無法釋放,只要把/etc/passwd.lock刪除即可
而group.lock、gshadow.lock、shadow.lock亦同
2010年3月19日 星期五
Scim在Eclipse或Firefox無法回應
在Ubuntu 9.10中Scim在使用Eclipse或Firefox等軟體時
經常會產生輸入法失焦的狀況,必須縮小再放大視窗才能正常工作
發生這個問題實在很煩人,尤其正在專心寫程式時....
Google之後總算找到解決方法,目前為止問題似乎解決了。
$sudo apt-get install scim-bridge
如果無法安裝則可改安裝↓
$sudo apt-get install scim-bridge-gtk
修改
$sudo vim /etc/X11/xinit/xinput.d/scim
找到
GTK_IM_MODULE=xim
改為
GTK_IM_MODULE="scim-bridge"
Scim 安裝新酷音
ubuntu 9.10中預設沒有安裝新酷音輸入法
必須自行更新安裝
$sudo apt-get install scim-chinese
$sudo apt-get install scim-chewing
重新啟動scim即可
2009年10月20日 星期二
莫名其妙的無線網路
剛剛在更新pcscd時莫名其妙無線就打不開了
問題在於更新到一半居然將我的/etc/network/interfaces內容全砍了
只好手動把內容加回去了 :(
1. 先將wlan叫起來sudo ifconfig wlan0 up
2. 查看wlan訊息sudo iwconfig
3. 搜尋APsudo iwlist wlan0 scanning
4. 設定無線AP的SSIDsudo iwconfig wlan0 essid your_ssid
5. 連線sudo iwconfig wlan0 key your_wep
6. 取得ipdhclient wlan0
7. 開機啟動設定,更改/etc/network/interfacesauto wlan0
iface wlan0 inet dhcp
wireless-essid your_ssid
wireless-key your_wep
8. 重新啟動網路sudo /etc/init.d/networking restart
9. 安裝網路管理套件
這裡推薦WICD套件sudo apt-get install wicd
寫到這邊網路就復活啦~~ :)
2009年9月28日 星期一
Ubuntu 9.04 SCIM當機
在ubuntu 9.04下,scim經常會當機
似乎是scim對目前視窗失去焦點,因此必須對視窗調整大小,
才能在重新取得焦點,這在開發軟體時是一件非常令人厭煩的事情。
1.安裝scim-bridge$ apt-get install scim-bridge-client-gtk
2.修改 /etc/X11/xinit/xinput.d/scim將 GTK_IM_MODULE=xim 修改為 GTK_IM_MODULE="scim-bridge"
3.重新開機
2009年8月1日 星期六
變更軟體更新伺服器
就在昨天要裝一套軟體,無意間發現軟體更新伺服器掛了,台灣地區預設是連上tw.archive.ubunut.com,只好手動換台伺服器了。
1.設定軟體更新伺服器系統>管理>軟體原始碼>ubuntu軟體
選擇下載伺服器,也可測試自動選擇最佳的伺服器來源。
2.匯入金鑰
在執行軟體更新時若遇上W: GPG error: http://ppa.launchpad.net jaunty Release: 由於無法取得它們的公鑰,以下簽章無法進行驗證: NO_PUBKEY 6AF0E1940624A220
可手動指定匯入公鑰sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 6AF0E1940624A220
2009年7月29日 星期三
resize inode not valid
今天莫名其妙的在開機過程中遇上filesystem error
整個系統當在那邊,只秀出小小一行resize inode not valid
只好輸入Ctrl+D後登入root,進行硬碟修復
1.硬碟修復sudo fsck
一直按yes直到結束,再重開機就修復完成。
使用CVS@Eclipse
CVS是一個專案開發的版本控制器,它有什麼用呢?!通常一個專案由多人共同開發,成員間所修改的程式版本必須分類,避免衝突發生,也因此必須藉由CVS來統一管理版本。
為什麼獨自開發程式的我,會大費周張的去建立CVS呢!?!?
事出必有因!!就在昨天我在迷迷糊糊的狀態下,不小心把舊版的程式碼覆蓋過去了 (頓時心中的os:#$%@#%!$@# ),為了避免同樣的窘況,還是該好好學一下這套工具
1. 安装 cvs$ sudo apt-get install cvs
2. 安装 cvsd
$ sudo apt-get install cvsd
3. 建立專案集工作區$ sudo mkdir /var/lib/cvsd/myrepos
4. 初始化工作區$ sudo cvs -d /var/lib/cvsd/myrepos init
5. 設定cvsd的專案集使用者認証方式。$ sudo gedit /var/lib/cvsd/myrepos/CVSROOT/config
加入以下設定SystemAuth=no
*注意這裡的/tmp/myrepos是只相對於RootJail的路徑。
PamAuth=no
LockDir=/tmp/myrepos
6. 新增LockDir$ sudo mkdir /var/lib/cvsd/tmp/myrepos
7. 新增CVS帳號$ sudo cvsd-passwd /var/lib/cvsd/myrepos cvsuser
8. 編輯cvsd設定檔 $sudo gedit /etc/cvsd/cvsd.conf
RootJail /var/lib/cvsd
Repos /myrepos
Listen 192.168.2.2 2401
注意Listen預設值是 Listen * 2401,但若用預設值似乎無法bind位址,所以位址
必須指定明確的ip址。
9. 設定目錄權限 $ sudo chown cvsd:cvsd /var/lib/cvsd -R
10.重新啟動cvsd $sudo /etc/init.d/cvsd restart
11.將專案放置/var/lib/cvsd/myrepos
這樣就可以用你的開發工具連上cvs作備份或版本管理了 :)
12.測試CVS連線$cvs -d :pserver:cvsuser@localhost:/myrepos login
$cvs -d :pserver:cvsuser@localhost:/myrepos checkout
13.新增CVS專案@Eclipse
"File->New->Project"選擇"Projects form CVS",點選Next
13.選擇CVS儲藏庫
選擇"Create a new repository location",點選Next
14.設定CVS伺服器
Host:192.168.2.2
Repository path:/myrepos
user:cvsuser
pasword:密碼
connection type:pserver
15.選擇遠端專案
選擇"use an existing module",選則要開發的專案。
16.設定本地端專案名稱
選擇"checkout as project in the workspace"
project name:本地端專案名稱
點選下一步直到完成。
17.專案提交/更新
提交專案:"專案按右鍵->Team->commit"
更新專案:"專案按右鍵->Team->update"
ubuntu 9.04安裝FlashPlugin
ubuntu 9.04版似乎已經將FlashPlugin加入軟體頻道,以後要看youtube再也不是難事
1.安裝flashplugin
sudo apt-get install flashplugin-installer
2.安裝flashblock
sudo apt-get install flashblock
因為Firefox上若開過多的flash會莫名其妙使得Loading飆升,所以只好暫時將flash擋下來,直到使用者按下play才將flash載入。
消失的chkconfig
2009年7月27日 星期一
Firefox加速密技
用了Ubuntu那麼久總覺得Firefox的效率不甚理想,相較於Windows版的可說是天差地別,直到最近無意間翻到一篇改善效率的文章,主要方法就是將存取頻繁Cache移到RamDisk上。
方法一
1建立Ramdisk
例如要放在/tmp/cache,大小128MB。可編輯/etc/fstab,加上tmpfs /tmp/cache tmpfs size=128M 0 0
掛載快取磁區sudo mkdir /tmp/cache
2.設定FireFox的cache資料夾
sudo mount -a
在Firefox網址列中輸入about:config
右鍵>新增>字串,名稱輸入browser.cache.disk.parent_directory,內容輸入快取的放置位置/tmp/cache
方法二
在Ubuntu中有內建快取磁區/dev/shm,這個磁區是系統內建的而且可動態的調整大小所以不必考慮容量問題,想要看系統中有無這個磁區,可以輸入mount|grep /dev/shm即可得知。若有內建快取磁區,只要在Firefox中只要將快取位置設為/dev/shm即可。
2009年7月24日 星期五
解決MP3 TAG亂碼
在Linux下通常使用的編碼通常是UTF-8,所以若mp3 tag編碼是big5就會發生亂碼,在這裡有一個好用的軟體Easy TAG能夠處理這種惱人的狀況。
1.安裝Easy TAGsudo apt-get install easytag
2.掃描mp3
打開EasyTAG選擇所要得資料夾,EasyTAG會自動掃描所有的MP3檔。
3.設定讀取編碼
進入"設定>偏好設定>ID3標籤設定>讀取ID3標籤所用的字元集"設定為BIG5。
3.變更編碼
選擇所要變更的MP3,按下存檔即可完成轉碼。
2009年7月23日 星期四
VirtualBox設定NAT Forwar
VirtualBox內建的管理視窗,在網路設定方面還頗陽春的,只有簡單幾個選項NAT Bridge Host等選項,如果想在虛擬作業系統中開Service,這麼陽春的選項實在令人頭痛,請教google大神,原來VirtualBox有隱藏密技,不過這密技似乎只能靠指令完成。$VBoxManage setextradata winxp "VBoxInternal/Devices/pcnet/0/LUN#0/Config/BT/Protocol" TCP
$VBoxManage setextradata winxp "VBoxInternal/Devices/pcnet/0/LUN#0/Config/BT/GuestPort" 3661
$VBoxManage setextradata winxp "VBoxInternal/Devices/pcnet/0/LUN#0/Config/BT/HostPort" 3661
在這裡winxp是要開個虛擬os的名稱,而BT則是要開的PORT名稱可自訂。
2009年7月21日 星期二
ubuntu 9.04安裝skype
skype對Linux的User真的是滿友善的,支援滿多Linux版本
當然Ubuntu也不例外,只要到skype官網就能找到相對應版本
1.安裝libqt4-guisudo apt-get install libqt4-gui
2.安裝skypesudo dpkg -i skype-debian_2.0.0.72-1_i386.deb
3.設定skype
若登入後發現skype無聲,可到"選項>音效裝置>聲音進來/出去/鈴響"選擇"HDA Intel(hw:Intel,0)",注意這個設定依據各個硬體不同而有所不同。
