為了可以在 GNU/Debian Linux 上看 HBO, 非凡電視台跟一些台灣的節目,只好重新再裝了 Wine。以便可以收看裝在高雄親戚家 Sling Box 轉出來的視訊。

參考 How To Run SlingPlayer on Linux OS 一文,步驟十分簡單。

  • 先裝了 Debian sid 的 wine 0.9.59-1
  • 再裝了SlingPlayer Dependencies package 中的檔案,把 qcap.dll, quartz.dll, msxml3.dll 與 msxml3r.dll 丟進 windows\system32。
  • 然後 regsrv32.exe 註冊 msxml3.dll 檔。還得將 msxml3, qcap, quartz 設定為 strictly native。

另外一個問題是執行時,wine 會抱怨 GdipDrawPieI, GdipDrawPolygon unimplemented,顯然是 Wine 的 GdiPlus 實做尚未齊全,解決方法是先偷 DLL-Files.com 上得檔案來用,丟進 system32 後就可以執行沒有問題了。

SlingPlayer 成了少數我會再 Linux 上執行的私有軟體之一。要不是找不到成本低廉的多媒體個人電腦,我才不想用Sling Box 呢。

附註: 在 Windows 上測試時,出了 Error: 0x80072AFC,結果發現是網路斷線,花了我五分鐘才查出來
(If you encountered Error: 0x80072AFC with SlingPlayer, check your network setting and cable. It’s probably beaause SilingPlayer can not reach SlingMedia’s server.)

華碩選擇接近 4/1 釋出 Eee PC SDK 真是一個好時機阿,雖說 Sourceforge 上在 3/18 時就可以下載,這個 SDK 包含了

  • Open Circulation Edition of the Xandros Desktop OS
  • Eclipse development environment
  • Qt4 toolkit
  • Developer’s guide
  • Sample applications
  • Multilingual VMware testing and debugging environment.

晤,其實整組 SDK 並沒有對於開發 Eee PC 上的軟體有特別幫助阿。開發者比較需要的是 Software packaging framework 的說明吧,至少是關於選單系統的說明等。至於開發環境裝 Debian 就可以了嘛。:-)

雖說已經改用 Brasero 作為日常燒錄資料的工具,但是每週一次的例行性備份若老是得用圖形介面軟體整理,其實還是頗麻煩。

Brasero

因此還是得學著用 genisoimage 與 wodim,為了能夠一次燒錄接近 4G 的資料片,希望能夠以 On the fly 方式直接燒錄,節省產生 ISO Image 的時間與磁碟空間,於是寫了一個 otf.sh,直接燒錄某個目錄或檔案。

#!/bin/sh
MKISOFSOPTS=" -r -joliet-long "
TSIZE=$(mkisofs -print-size ${MKISOFSOPTS} -q $@)

mkisofs ${MKISOFSOPTS} $@ |
wodim driveropts=burnfree \
gracetime=0 \
-eject \
-overburn \
gracetime=0 \
speed=12 \
tsize=${TSIZE}s -dao -pad  -

有時候在偵測無線網路問題的時候,總想知道附近有哪些 STA 正在使用那些 AP,Kismet 可以達到這樣的目的,不過實在不太 Fancy。

Wiviz2 screenshot

為了達到相同的目的,可以使用 Nate TrueWi-viz2,它被設計成即時的繪出所監聽到的 AP 與 STA 之間的關係圖,因此可以見到周圍的連線狀態。原始碼位於。舊版網址於 http://devices.natetrue.com/wiviz/

WKnock 是由 Laurent Oudot 在 2005 年的 Black Hat EuropeWLAN and Stealth Issues 議程公開的計畫。非常的有趣的概念,可以防止無線網路訊號被偵測到,如此可以防止被 WarDriving 時被發現有 Wireless Access Point 存在,有效避免被路人盜用或完全的隱藏偷藏在別人公司裡的無線小後門

雖然無線網路介面可以將 ESSID Broadcast 關閉,但是介面還是會送 Beacon,雖然沒有 ESSID,還是可以讀到 BSSID,因此非常容易被偵測到有 AP 存在 。WKnock 的基本的概念是平時都將無線網路介面設定為 RF Monitor 模式,並且聽取其他人的 Probe Request,只有再正確的 ESSID 出現時,才啟動該無線網路介面。因此無法透過一般的無線網路工具偵測到該 AP 的存在。(當然,如果連上了網路而啟動了該介面,系統還是會送 Beacon,如此還是有機會曝光的)

今日重新讀了 OpenWRT 中付的 qos-scripts,發現它其實高度整合了 IMQL7-Filter 等機制與 HFSC, SFQ, RED scheduling algorithms ,並且使用了新的 UCI 設定介面。

預設的設定是

# QoS configuration for OpenWrt

# INTERFACES:
config interface wan
	option classgroup  "Default"
	option enabled      1
	option overhead     1
	option upload       128
	option download     1024

# RULES:
config classify
	option target       "Bulk"
	option ipp2p        "all"
config classify
	option target       "Bulk"
	option layer7       "edonkey"
config classify
	option target       "Bulk"
	option layer7       "bittorrent"
config classify
	option target       "Priority"
	option ports        "22,53"
config classify
	option target       "Normal"
	option proto        "tcp"
	option ports        "20,21,25,80,110,443,993,995"
config classify
	option target       "Express"
	option ports        "5190"
config default
	option target       "Express"
	option proto        "udp"
	option pktsize      "-500"
config reclassify
	option target       "Priority"
	option proto        "icmp"
config default
	option target       "Bulk"
	option portrange    "1024-65535"
config reclassify
	option target       "Priority"
	option proto        "tcp"
	option pktsize      "-128"
	option mark         "!Bulk"
	option tcpflags     "SYN"
config reclassify
	option target       "Priority"
	option proto        "tcp"
	option pktsize      "-128"
	option mark	        "!Bulk"
	option tcpflags     "ACK"

# Don't change the stuff below unless you
# really know what it means 🙂

config classgroup "Default"
	option classes      "Priority Express Normal Bulk"
	option default      "Normal"

config class "Priority"
	option packetsize  400
	option maxsize     400
	option avgrate     10
	option priority    20
config class "Priority_down"
	option packetsize  1000
	option avgrate     10

config class "Express"
	option packetsize  1000
	option maxsize     800
	option avgrate     50
	option priority    10

config class "Normal"
	option packetsize  1500
	option packetdelay 100
	option avgrate     10
	option priority    5
config class "Normal_down"
	option avgrate     20

config class "Bulk"
	option avgrate     1
	option packetdelay 200

於是系統可以辨識使用的是哪一種協定,且 TCP ACK 跟 SYN 會有比較高的優先值,因此使用非下載的協定如 TELNET 等反應速度會比較快。而 ICMP、ssh、DNS 等協定會有比較高的優先值,接下來是常用的網頁、電子郵件等服務。而 P2P 如 eDonkey, BitTorrent 與其他協定則只能排在最低的優先次序。如此即便上網同時養動物,也可以避免影響到一般的網頁瀏覽與電子郵件使用。

如此的實做跟一般裝在 Windows 系統上的 cFosSpeed (cFosSpeed 原理中文說明) 為異曲同工。跟前幾天見到 Mobile01 上的 AXIMCom P2P Gear 討論 以及 Lantech WL54G-MIMO BR 的討論,應該也是使用相同的技術與原理。FON 所銷售的 Fonera 是基於 OpenWRT 開發,其實也使用同樣的技術來作 QoS,因此若在 User Zone 啟用了這樣的機制,就不用擔心透過 Public ESSID 使用 P2P 軟體所造成的頻寬影響。

Linux 上還有一個比較簡單陽春的實做,是 Wonder Shaper,基本上原理相同,也是避免上下傳封包佔滿小水管,以便讓一般的網路連線可以正常使用。這個 Script 已經被移植到 DebianOpenWRT 中。技術細節可以參考 Linux Advanced Routing & Traffic Control