2013年1月31日 星期四

KVM libvirt with openvswitch

一般來說,實體主機或虛擬主機要連接 802.1q VLAN tagging 只要裝上 vconfig 套件,再加上一些設定,應該就沒有太大的問題,網路上有很多文章可以參考,不外乎就是:
# apt-get install vlan
# vconfig add eth0 100
# ifconfig eth0.100 <YOUR_IP> <YOUR_NETMASK> up
關於 Linux VLAN/vconfig 你可以參考 這篇

這次為了要讓 Hypervisor 裏面模擬一台帶有 VLAN tag 的 swtich(虛擬第一層),並幫 Hypervisor 裏面的虛擬機路由 802.1q VLAN tagging 的封包(虛擬第二層),所以用到了 nested KVM 與 openvswitch 的技術。要這麼做的話,你對於 KVM、Libvirt、iptables 要有一些基礎的了解。

nested KVM 是參考 這篇
openvswitch 是參考 這篇 還有 這篇 文章,當然你最好能先看看 Open vSwitch 官網的說明,包含支援的版本以及操作。
http://binarybitme.blogspot.tw/2011/09/using-open-vswitch-with-libvirt-and.html

Libvirt 0.9.11 或更新的版本已經支援使用 Open vSwitch,透過 .deb 或 .rpm 安裝 libvirt 與 openvswitch,我在 debian 裝的版本如下:
libvirt-bin    0.9.12-5    amd64        programs for the libvirt library
libvirt0    0.9.12-5    amd64        library for interfacing with different virtualization systems
openvswitch-brcompat    1.4.2+git20120612-9    amd64        Open vSwitch bridge compatibility support
openvswitch-common    1.4.2+git20120612-9    amd64        Open vSwitch common components
openvswitch-datapath-dkms    1.4.2+git20120612-9    all          Open vSwitch datapath module source - DKMS version
openvswitch-switch    1.4.2+git20120612-9    amd64        Open vSwitch switch implementations

大致上就是參考前面提到的文章裏面的安裝與設定,我摘錄一些我的步驟:
# apt-get install openvswitch-common openvswitch-switch openvswitch-brcompat openvswitch-datapath-dkms

# vi /etc/default/openvswitch-switch
BRCOMPAT=yes

我有重新開機,然後檢查:
# lsmod |grep brcom
brcompat_mod           13031  0 
openvswitch_mod        67948  2 brcompat_mod

# service openvswitch-switch status
ovsdb-server is running with pid 3361
ovs-vswitchd is running with pid 3449
ovs-brcompatd is running with pid 3473

到此,應該不會有太大的問題,不過你原來有安裝設定過 openvswitch,中間設定調整數次後出了問題,例如 brcompat_mod 的 module 原來掛的起來後來又出錯,或是原來會通的設定之後又不運作了,建議你可以把前述 packages 移除再重裝看看。

接著就是要將你規劃的網路架構,用 openvswitch 來實現:
openvswitch 用一個 bridge 來實現 tagging 及其 tag id,但是它並非真的 bridge 而是一個 internal port/interfacce,用來傳送 tagging 封包,稱為 fake bridge。我的案例是做出一個 fake bridge vlan10 其 tag id 是 10,虛擬機藉由 vlan10 帶有 tag id 10 連出:
# ovs-vsctl add-br br0
# ovs-vsctl add-port eth0
# ovs-vsctl add br vlan10 br0 10
# ovs-vsctl show

# ovs-vsctl show
aedc8e9e-1881-4c0c-8846-22a7f6d424a8
    Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
        Port "eth0"
            Interface "eth0"
        Port "vlan10"  <===== 就是這個
            tag: 10
            Interface "vlan10"
                type: internal
    ovs_version: "1.4.2"


# ovs-vsctl list port vlan10

_uuid               : be520db1-bc7f-4302-8521-32ded2a02eb9
bond_downdelay      : 0
bond_fake_iface     : false
bond_mode           : []
bond_updelay        : 0
external_ids        : {}
fake_bridge         : true
interfaces          : [76f652cb-e0b5-4be4-9acb-9488ebda72af]
lacp                : []
mac                 : []
name                : "vlan10"
other_config        : {}
qos                 : []
statistics          : {}
status              : {}
tag                 : 10  <===== 帶有 10 的 tag id
trunks              : []
vlan_mode           : []

接著就可以使用這個 fake bridge 作為虛擬機的網路介面,前述文章都說直接使用 vlan10 這個 interface/port 加到 VM 的 libvirt 設定中就可以,但是我怎麼弄,都沒辦法運作!

後來我是使用 br0 才會通,請參考看看:









# virsh edit <YOUR_VM_NAME> 看起來是這樣:






*有位網友有提到,要像下面這樣加入設定,到時候 libvirt 在啟動 VM 時,會自動帶起一個名為 vnet0 的 interface:
<interface type='bridge'>
    <mac address='52:54:00:43:1f:f4'/>
    <source bridge='br0'/>
    <virtualport type='openvswitch'>
    </virtualport>
</interface>

我無論有沒有加入 <virtualport type> 都可以運作,也許這是屬於舊版 libvirt+openvsiwth 的作法吧?

最後,也是我一直搞不定的,使用 tcpdump 檢查封包是否真的帶有 vlan tag id,我是參考 這篇,但是怎麼試都試不出來,也許有好心網友可以教教我,感謝 : )

2012年12月27日 星期四

領養了一台 Sony VAIO TX3

這是一個關於「一台即將被家人遺棄的筆電」的故事,我想換機潮這回事,不管是換什麼機,手機、相機、筆電或桌機,無時無刻不發生在我們身旁,在同儕間、在朋友間或在家人之間。這是一台家人喜新厭舊後的筆電,我個人是很不擅長把堪用的電子產品拿去賣,太舊賣了也沒錢,頂多就是看能不能廢物利用,或送人(也不一定有人要),通常都是堆在家裡某個陰暗的角落罷了。

Sony VAIO VGN-TX36TP 當時剛出來的時候,也是搶手昂貴的高檔筆電,號稱超薄超亮 LED 螢幕,非常輕的碳纖維機身,是超輕薄筆電的始祖之一,她大致的規格如下:
■處理器:Intel Core Solo Processor U1300(1.06GHz)
■螢幕:11.1吋寬螢幕(WXGA:1366x768)
■尺寸:272.4x195.1x28.5mm(WxDxH)
■顯示晶片:Intel 945GMS
■硬碟:60GB
■圖形加速器:Intel Graphics Media Accelerator 950
■記憶體:512MB DDR2(可升級至1.5GB)
■記憶卡插槽:Memory Stick/SD/MMC
■光碟機:DVD±RW光碟燒錄機(支援DVD+R DL光碟片)
■重量:1.25kg(含電池)

補充說明:
■硬碟:60GB
==> 是 1.8 吋 50 PIN IDE 4200 RPM 的超慢速硬碟

■記憶體:512MB DDR2(可升級至1.5GB)
==> 主版焊死 512MB,外接可額外加 512MB/1GB/2GB
==> 外加 2GB 的話,總共可使用量並不會是 2.5GB,而是 2GB
==> 只支援 Single Channel

■重量:1.25kg(含電池)
==> 電池是 6CELL 號稱 7800mAh

出廠的時候是裝著 Windows XP 系統,包含一切運作正常的 Sony VAIO 程式。現在一般都使用 Windows 7 了,那麼記憶體恐怕也得擴充,硬碟也得換個快一點的,還有電池早就掛了,還得另外買一顆!以下是採購清單:
1. 加一條 2GB 記憶體 = 0元
地上撿來的:DDR2 PC2-6400 2GB

2. 換一顆 64GB SSD = 23xx元(含運)
樂天購物找的:Kingspec KSD-CF18.6-064MS 64GB 1.8 inch IDE (MLC)
(現在 SSD 已經沒那麼貴了,至於 MLC 也沒關係,反正只支援最高 UDMA5 也快不到哪)

3. 買一顆副廠電池 = 18xx元(含運)
各大購物網都有,有三種可選 6/8/10CELL,我選了 8CELL 的,因為 6/8CELL 外觀是平的,放在筆電保護套不會凸出;10CELL 的比較厚,雖然放置於桌上會有墊高的效果,但不太適合塞進筆電保護套

硬體的部份:
1. 記憶體安裝就不用說明了,筆電背面正中央那片蓋板就是了
2. 硬碟則需要拆到 C蓋,網路上很多拆機實錄,例如這個

拆開之後,照片中央下方的就是硬碟了



















新舊硬碟 PIN 腳是一模一樣,而且還有防呆(圓形與橢圓形的孔)
























將減震橡皮從舊硬碟(左)的四角拔下,放到新硬碟(右)上


裝上去的樣子,別忘了還有硬碟固定架!


按 F2 進 BIOS 看看,HDD 63GB

可能是 8CELL 缺貨吧?店家送來的是 10CELL的!號稱 13000mAh,想必是不太可能吧



















電池厚度足足是 6/8CELL 的兩倍高,是有好有壞,但頗重歐!



















塞進電腦保護套,整個膨起來



















軟體的部份:
再來就是 TX3 安裝 Winodws 7 以及 VAIO 軟體的問題了,還好這個問題老早就已經克服了,要是當初 Windows 7 剛上市的時候裝,大概會遇到一堆問題吧!現在完全可以參考這個連結安裝完成,我表列如下:
1. 先將 Windows 7 升級到最新(升級按到沒得按為止),只會差一個讀卡機驅動程式沒裝好
2. 下載驅動程式公用程式,解壓縮成 Drivers 與 Utilites 備用

3. 安裝讀卡機驅動程式,在 Drivers 下的 Memory_Card 目錄
4. 依序安裝下列程式,都放在 Utilites 目錄下,執行該目錄的 setup.exe
SonyUtils DLL
Sony Shared Library
Setting Utility Series
Vaio Control Center
Vaio Event Service
AV Mode Button Utilty 選擇性安裝,就是在 Windows 下,可使用 AV MODE 那排按鍵
5. Vaio Power Manger 我是裝這個版本
6. Pointing Driver 觸控版指標裝置,我是裝這個版本
7. Wireless Switch Setting Utility
8. Instant Mode 是讓您能使用 AV MODE 鍵,開機至另一個系統,操作多媒體之用
(我裝在 HDD 可以運作,但裝在 SSD 卻不動了,所以不裝)
其他像是 HDD protection 或 Battery checker 或 Bluetooth Stack 我都沒裝,我看裝了也沒用

再參考 SSD 優化大全 的說明,做了一些調整,到此為止,大致都差不多了。

剛裝好硬碟時,用 Linux LIVE-CD 開機,測了一下讀寫速度,寫似乎有點慘 ...



















剛裝好 Windows 7 時,檢查 UDMA MODE,是 UDMA5 沒錯



















系統記憶體 2.5GB



















* 如果您遇到「硬碟指示燈 恆亮」的問題,可能是電源管理中「關閉光碟機」所造成的,為了會閃爍的硬碟指示燈,只好犧牲一點點電量囉,光碟機就開著吧
* 如果有網友能正常使用 InstantON 的,請不吝分享,是不是「這顆 SSD」的問題?HDD 我可以正常安裝與使用
* 這個電池,在正常使用的情況下(非閒置),目前可以撐 7 小時左右,重量則是不敢恭維

2012年12月11日 星期二

Linux 顯示伺服器(display server)的另一種選擇 Wayland

X11 的架構可能被嫌太肥了,所以才有 Wayland 的出現,Wayland 並不是一種新的 X server,而是一種新的顯示伺服器(display server),詳細的說明可以參考 維基 或 Wayland 官網。文中有提到某些 Linux disto 將會使用 Wayland 作為顯示伺服器,如 Ubuntu 或 Fedora。

參考 Wayland 官網可以自行編譯並使用,似乎沒有太大問題,但是還是挺麻煩的。現在有個更好的選項,就是使用 live-CD 直接玩。

RebeccaBlackOS 做了 Wayland 的 live-CD,我們可以從 SF 取得 ISO,做成 CD 或 USB。目前的版本是 2012/11/10 釋出的,作業系統是基於 Ubuntu Quantal 並加入 Wayland,它也提供使用者藉由此 live-CD 進行硬碟安裝,不過安裝過程中有 grub 的問題(因為它少裝了 grub2 的套件),因為只有 boot loader 沒有裝進硬碟,事後我們可以進行修正。

選 Native Weston Display Server



















進入桌面後,上方工具列有些東西可以玩玩(重要的是 terminal)



















這是 flower 與 smoke 的效果















根據 Wayland 的文件說,應該會有下列項目可以測試:
- 'terminal' is a simple terminal emulator, not very compliant at all, but works well enough for bash
- 'flower' draws a flower on the screen, testing the frame protocol
- 'gears' glxgears, but for wayland
- 'smoke' tests SHM buffer sharing
- 'image' loads the image files passed on the command line and shows them
- 'view' does the same for pdf files
- 'resizor' demonstrates smooth window resizing (use up and down keys)
- 'eventdemo' reports libtoytoolkit's events to console (see eventdemo --help)

不過 RebeccaBlackOS 所包的 live-CD 並沒有全部做出來,大家就先加減玩玩!

2012年12月4日 星期二

在 Chrome 設定,點擊啟動 Flash(關閉自動播放 Flash)

不想再看到 Flash 廣告在眼前晃來晃去,孤僻是不需要廣告的!













1. Chrome 右上角找到「選單」的按鈕 ,選擇「設定」:




2. 頁面最下方有個「進階設定」:








3. 找到「內容設定」的按鈕:








4. 在「外掛程式」那裡,點選「點選播放」:














以後你的 Flash 就得經過你的同意,才能被播放。當然,常用的非廣告 Flash 是可以設定成永遠開放,當 Chrome 阻擋 Flash 時,右上角會出現如下圖示,點圖示可以進行單獨網頁/網站的設定,例如 youtube.com 的 Flash 當然是要允許開啟的。




現在,廣告就變成這樣了 ... 雖然有點麻煩,但是比礙眼好!



2012年11月29日 星期四

Galaxy Nexus 已經可以升 4.3 (OTA 台灣地區)

等了好一陣子,今天才收到 OTA 通知!五告讚


解開 SIM 的畫面不太一樣了

























Jelly bean 4.2 其它的新功能,請參考 http://www.android.com/whatsnew/,在此不多說。

解鎖打開相機的捷徑不見了!
使用 Google Earth (開 3D 圖層) 還是照當不誤,有沒有人跟我一樣?

(過兩天之後,現在已經可以 OTA Jelly bean 4.2.1)
(過了幾週之後,是 OTA Jelly bean 4.2.2)
(2013/07/31,已經可以 OTA Jellybean 4.3)


2012年11月21日 星期三

小黑涼一下!

我家門口的小黑 ... 不是今天主角























今天主角是 Thinkpad X200,在很多 Linux distro 應該都有 thinkpad_acpi 這個模組,至少 debian/ubuntu 有,我們就透過這個模組來幫小黑降溫~

看看模組是否已經掛載:
# lsmod |grep thinkpad

先將模組拿掉:
# rmmod thinkpad_acpi

自己新增一個檔案:
# vi /etc/modprobe.d/thinkpad_acpi.conf

檔案裏面只有這一行:
options thinkpad_acpi fan_control=1

將模組掛上:
# modprobe thinkpad_acpi

接著可以透過 # cat /proc/acpi/ibm/fan 來觀察目前狀態;
透過 # echo level XXX > /proc/acpi/ibm/fan 來調整風扇轉速。

剛開機的時候 level=auto, speed=0 應該是因為剛開機,小黑不會太熱,所以風扇沒在轉:






不囉唆摧下去 level=7,speed=44xx:






我的桌面監控看到的 speed 也大約在 43xx,是因為轉速沒有很穩定,不過差不多就好:





脫韁野「狗」模式啟動! level=disengaged, speed=56xx,立馬大量噴出!(我是說~風)





不繼續玩的話,就將 level 定在 auto,小黑當然會自己控制風扇轉速。但是有時候鍵盤都已經發熱了,小黑頑強抵抗不降溫,這時候這招應該有點用處 ... 而且很炫「有木有 ... 聽得出來我的筆電很涼吼」!

2012年11月19日 星期一

老摩也吃果凍豆

Moto Milestone 初代機,2010/2 上市時採用安卓閃電泡芙(Android Eclair) 的系統,那個年代出的安卓機,現今要升級也有個極限,我看頂多升到冰淇淋三文治(Android Ice Cream Sandwich) 就差不多了。手邊剛好有一支觸控螢幕故障的 MM1,也不是觸控壞掉就不能用,只是這支壞就壞在觸控的中間那條(撥號鍵的 2 5 8 0 那條),只好靠實體鍵盤輔助操作,看似是 MM1 的通病(*1),所以它就轉職成「職業鬧鐘」了!送修?過保就別了吧...

先來一張:
























參考 xda 論壇(*2) 上面的說法,其實 MM1 的記憶體是不夠用來安裝 Jelly Bean 的,所以他們採用 2ndboot 的方式來實現,重點有 2 個:
1. SD 上面要割出第 2 的分割區;
2. 要使用專用的 OpenRecovery;

下載這 3 個東西:
1. 當然是 4.1.2 的 ROM,這是 CM10 的版本;
2. 還有 GApps;
3. 重點是 OpenRecovery 要用 2ndboot 的版本。

準備一張大於 1GB 空的 Micro SD 卡,先將此 SD 分割成 2 個分割區,我是分割成 3 個:




第 1 個是要當作原本 EXT SD 用的(FAT32),第 2 個則是一部份系統與 GApps 用(ext3/ext4),第 3 個我是拿來當 swap。

解開 OR(2ndboot) 並將 OpenRecovery 目錄與 update.zip 檔案複製到第 1 個分割區的根目錄,將 cm-10-2012mmdd-NIGHTLY-umts_sholes.zip 與 gapps-jb-sd_ext-20120802.zip 複製到第 1 個分割區的 OpenRecovery 目錄裏面的 updates 目錄下。

開機進入 OR,第一次需要先執行 update.zip,進 OR 前會先看 2ndboot 的「碎玻璃」背景,進入 OR 後可以看到版本是 1.46(by Skrilax_CZ) 這個與之前的 OR 相同,但是多了 Mod Version 2ndbootOR v1.0(by nadlabak)。

先來 3Wipe(也就是 3 個 Wipe XXX 都做一次);接著 Apply Update 選  cm-10-2012mmdd-NIGHTLY-umts_sholes.zip;然後 Apply Update 選 gapps-jb-sd_ext-20120802.zip。

開機並耐心等候 ...

















































就算是觸控壞了, 至少還可以玩玩 Hill Climb Racing (截圖還 lag 了一下)

就這樣,老摩吃了果凍豆,職業依然還是鬧鐘!

*1 http://5i01.com/topicdetail.php?f=567&t=1830186&last=27875557
*2 http://forum.xda-developers.com/showthread.php?t=1941570