星期三, 11月 28, 2012

Lenovo ThinkPad T420 to enable wireless to AP mode

某次開會看到同樣是使用T420的同事可以在Win7下變更wireless adapeter為Access Point,想到如果wireless chip有支援那應該在Linux下也是啟動AP Mode的可能性。

連線方式
internet - eth0 - nat service - wireless (ap) - wireless client

又是拜G大神找到許多相關的資料,其中原始的來源有:
http://linuxwireless.org/en/users/Drivers/mac80211_hwsim

$lsmod | grep mac80211

mac80211              506816  1 iwlwifi
cfg80211              205544  2 iwlwifi,mac80211

確定系統自動load了mac80211,該網站寫到
mac80211_hwsim is a software simulator of 802.11 radio(s) for mac80211
系統不會自動load,必需手動load mac80211_hwsim來做為驅動的中介driver。

需要的軟體套件有
hostapd
dhcp3-server
wpasupplicant

如果是用Ubuntu
$sudo apt-get install hostapd dhcp3-server wpasupplicant

編輯檔案
$vi /etc/hostapd/hostapd.conf

# SSID to be used in IEEE 802.11 management frames
ssid=<ap ssid name>

# Operation mode (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g,
# Default: IEEE 802.11b
hw_mode=g

# bit1 = IEEE 802.11i/RSN (WPA2) (dot11RSNAEnabled)
wpa=1

# $wpa_passphrase  <ssid name>  <passphrase> and copy&past to here
wpa_psk=<dot11RSNAConfigPSKValue>  #要用指定加密出對應的字串

接下要設定ap client的dhcp ip range
$sudo vi /etc/dhcp3/dhcpd.conf # Adding lines
subnet 192.168.0.0 netmask 255.255.255.0
{
        range 192.168.0.2 192.168.0.10;
        option routers 192.168.0.1;
        option domain-name-servers 168.95.192.1;
}

最後弄一個script把啟動必要的動作集合起來。
#!/bin/sh
nat()
{
iptables -A INPUT -i wlan0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
}

ap_mode()
{
hostapd -B /etc/hostapd/hostapd.conf
}

dhcpserver()
{
dhcpd wlan0
}

#MAIN
case $1 in 
start)
modprobe  mac80211_hwsim
ifconfig wlan0 192.168.0.1
nat
ap_mode
dhcpserver
;;
stop)
pkill -15 hostapd
                pkill -15 dhcpd
iptables -X
echo "0" > /proc/sys/net/ipv4/ip_forward
;;
*)
echo "$0 start or $0 stop"
esac

如果執行完enable_ap.sh start後沒有出現錯誤情況,就可以開始拿出手機測試wifi上網。待使用完畢要停止ap mode服務,執行enable_ap.sh stop。

列出Linux下支援ap mode的chip list



星期五, 11月 02, 2012

在Ubuntu下設定滑鼠其他按鍵功能, 增加Page Up/Down

電腦工作者長時間使用電腦滑鼠在桌面上跑來跑去,一天七八個小時下來很容易引起身體的不適,於是從同事那拿到一支羅X早期的軌跡球滑鼠,不過沒有內建滾輪方便上下頁捲軸控制。但有其他按鍵可以做類似的事。
首先先找出滑鼠按鍵的定義:
xev | grep button
書面上會出現白色方框,把遊標移入方框內按下想查詢的滑鼠按鍵如:
將定義成page down的button:

    state 0x10, button 8, same_screen YES  
    state 0x10, button 8, same_screen YES
將定義成page up
    state 0x10, button 9, same_screen YES
    state 0x10, button 9, same_screen YES

安裝package:
sudo apt-get install imwheel

編輯啟始檔:
sudo vi /etc/X11/imwheel/startup.conf 
IMWHEEL_START=1
IMWHEEL_PARAMS='-b "0 0 0 0 8 9 10 11 12"'

編輯設定檔加入這幾行: ImWheel to assign button 8 to action Thumb1, button 9 to action Thumb2
sudo vi /etc/X11/imwheel/imwheelrc
".*"
None, Thumb1,   Down,   Page_Down
None, Thumb2,   Up,     Page_Up

最後在console下找個視窗測試定義好的按鍵。
sudo imwheel -k

技術來源參考連結
http://www.gdargaud.net/Hack/LinuxMouse.html

星期四, 9月 20, 2012

Setup Adaptec SATA RAUD HBA monitoring for Linux

長期以來一直使用Adaptec AAR-2410SA PCI SATA 4channel 作為 Linux File System Server硬硬資料保護,不過很困擾的是他的硬碟錯誤偵測不是很強還滿常需要人為介入作進一步問題的檢查,比如說硬碟壞軌,硬碟離線等。

必需加入遠端Monitor機制才能提早發現硬碟問題,在作了些功課後決定使用SNMP(sample network manager protocol)。

Drive部份直到CentOS6.3都還有內建aacraid的module。
Download appliance部份 http://ftp.dell.com/scsi-raid/afa-apps-snmp.2807420-a04.tar.gz
Download ucd-snmp source code http://nchc.dl.sourceforge.net/project/net-snmp/ucd-snmp/4.2.7.1/ucd-snmp-4.2.7.1.tar.gz

準備compiler "ucd-snmp-4.x.x" source code:
tar vxzf ucd-snmp-4.2.7.1.tar.gz
cd ucd-snmp-4.2.7
$ ./configure --enable-reentrant --with-mib-modules=agentx
$make
$make install

編寫 snmpd.conf
vi /usr/local/share/snmp/snmpd.conf and add below two lines:

master  agentx
pass .1.3.6.1.4.1.795 /usr/sbin/afasnmpd


準備安裝AAR-2410SA monitor tool:
tar vxzf afa-apps-snmp.2807420-a04.tar.gz
rpm -ihv afaapps-4.1-0.i386.rpm
rpm -ihv afasnmp-4.0-0.i386.rpm
vi /usr/local/share/snmp/afasnmpd.conf

trapcommunity "public"
trapsink localhost
trapsink [HOSTNAME]


CentOS系統本身不會自動產生/dev/afa0 檔,而這個檔是afacli cli必需存取的介面,可以透過以下步驟達成自動產生/dev/afa0:
cp MAKEDEV.afa /sbin/

vi /sbin/MAKEDEV.afa # make sure MAKEDEV.afa cd's /dev 
加入udev 設定檔
vi /etc/udev/rules.d/99-local.rules​

BUS=="pci", DRIVERS=="aacraid", PROGRAM="/sbin/MAKEDEV.afa afa0"

修改開機引導程式:
vi /etc/init.d/afasnmpd, 加入藍色部份:
....

case "$1" in
  start)
        echo -n "Starting snmpd: "
        /usr/local/sbin/snmpd
        sleep 2
        echo -n "Starting afasnmpd: "
        daemon /usr/sbin/afasnmpd
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/afasnmpd
        echo
        ;;
  stop)
        echo -n "Shutting down afasnmpd: "
        killproc afasnmpd
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/afasnmpd
        echo
        echo -n "Shutting down snmpd: "
        killproc snmpd
        ;;
....

收尾:


/sbin/chkconfig --add afasnmpd
/sbin/chkconfig --level 35 afasnmpd on

測試:
本地端 CentOS
snmpwalk localhost -c public -v2c enterprises.795.3.5

遠端 Ubuntu
snmpwalk [IP] -c public -v2c iso.3.6.1.4.1.795.3.5

SNMP OUTPUT


enterprises.795.3.5.1.0 = "AAC SNMP Version: 2.8-0 (Build #6076)"
enterprises.795.3.5.2.0 = 1
enterprises.795.3.5.3.1.1.1 = 1
enterprises.795.3.5.3.1.2.1 = "AFA0"
enterprises.795.3.5.3.1.3.1 = "No Info"
enterprises.795.3.5.3.1.4.1 = "File System: 1.1-7 (Build #28000)Miniport: 1.1-7 (Build #28000)Software: 4.2-0 (Build #8209)BIOS: 4.2-0 (Build #8209)Hardware: 2.64"
enterprises.795.3.5.3.1.5.1 = 2
enterprises.795.3.5.3.1.6.1 = 5
enterprises.795.3.5.3.1.7.1 = "BIOS Version: 4.2-0 (Build #8209)"
enterprises.795.3.5.3.1.8.1 = "Kernel Version: 4.2-0 (Build #8209)"
enterprises.795.3.5.3.1.9.1 = "Monitor Version: 4.2-0 (Build #8209)"
enterprises.795.3.5.3.1.10.1 = "Hardware Version: 2.64"
enterprises.795.3.5.3.1.11.1 = 67108864
enterprises.795.3.5.3.1.12.1 = 16777216
enterprises.795.3.5.3.1.13.1 = 50331648
enterprises.795.3.5.4.1.1.1 = 1
enterprises.795.3.5.4.1.2.1 = 1
enterprises.795.3.5.4.1.3.1 = 0
enterprises.795.3.5.4.1.4.1 = 238471
enterprises.795.3.5.4.1.5.1 = "/dev/sdh"
enterprises.795.3.5.4.1.6.1 = "Mirror"
enterprises.795.3.5.4.1.7.1 = "Valid"
enterprises.795.3.5.4.1.8.1 = 5
enterprises.795.3.5.4.1.9.1 = 0
enterprises.795.3.5.5.1.1.1 = 1
enterprises.795.3.5.5.1.1.2 = 2
enterprises.795.3.5.5.1.2.1 = 1
enterprises.795.3.5.5.1.2.2 = 1
enterprises.795.3.5.5.1.3.1 = 0
enterprises.795.3.5.5.1.3.2 = 0
enterprises.795.3.5.5.1.4.1 = 0
enterprises.795.3.5.5.1.4.2 = 1
enterprises.795.3.5.5.1.5.1 = 0
enterprises.795.3.5.5.1.5.2 = 0
enterprises.795.3.5.5.1.6.1 = 0
enterprises.795.3.5.5.1.6.2 = 0
enterprises.795.3.5.5.1.7.1 = "ST325082"
enterprises.795.3.5.5.1.7.2 = "ST325082"
enterprises.795.3.5.5.1.8.1 = "4AS             "
enterprises.795.3.5.5.1.8.2 = "3AS             "
enterprises.795.3.5.5.1.9.1 = "3.AA"
enterprises.795.3.5.5.1.9.2 = "3.03"
enterprises.795.3.5.5.1.10.1 = 488397168
enterprises.795.3.5.5.1.10.2 = 488397168
enterprises.795.3.5.5.1.11.1 = 512
enterprises.795.3.5.5.1.11.2 = 512
enterprises.795.3.5.5.1.12.1 = "Initialized."
enterprises.795.3.5.5.1.12.2 = "Initialized."
enterprises.795.3.5.5.1.13.1 = 3
enterprises.795.3.5.5.1.13.2 = 3
enterprises.795.3.5.6.1.1.1 = 1
enterprises.795.3.5.6.1.1.2 = 2
enterprises.795.3.5.6.1.2.1 = 1
enterprises.795.3.5.6.1.2.2 = 1
enterprises.795.3.5.6.1.3.1 = 1
enterprises.795.3.5.6.1.3.2 = 1
enterprises.795.3.5.6.1.4.1 = 2
enterprises.795.3.5.6.1.4.2 = 1
enterprises.795.3.5.6.1.5.1 = 65536
enterprises.795.3.5.6.1.5.2 = 0
enterprises.795.3.5.6.1.6.1 = 0
enterprises.795.3.5.6.1.6.2 = 0
enterprises.795.3.5.6.1.7.1 = 946995200
enterprises.795.3.5.6.1.7.2 = 946995200
enterprises.795.3.5.6.1.8.1 = 0
enterprises.795.3.5.6.1.8.2 = 0


官方參考連結:
https://cs.uwaterloo.ca/~brecht/servers/docs/PowerEdge-2600/en/Perc3di/snmp.htm#1107168

星期三, 8月 29, 2012

eagle-6.x 無法安裝在 Ubuntu 12.04解決方法

eagle 6版之後針對其元件庫的格式改為XML Format,目的在方便元件庫版本管理。為了某些新下載的元件庫只能在eagle 6上使用,所以就下載來試用看看,不過安裝時就出了大問題,缺少了某些額外的library。經過G大神找到了這一篇連結 http://balubati.atw.hu/blog/index.php?entry=entry111108-115133 於是有了以下解法。

$ wget ftp://ftp.cadsoft.de/eagle/program/6.2/eagle-lin-6.2.0.run
$ sed -e '1,/^__DATA__$/d' eagle-lin-6.2.0.run > eagle-lin-6.2.0.tar.bz2
$ tar xvjf eagle-lin-6.2.0.tar.bz2
$ cd eagle-6.2.0/bin
$ wget http://dl.dropbox.com/u/4295670/eagle_libs.tar.bz2
$ tar xvjf eagle_libs.tar.bz2
$ mv eagle eagle.orig
$ echo 'LD_LIBRARY_PATH="$(dirname "$0")" "$(dirname "$0")/eagle.orig" $@' > eagle
$ chmod a+x eagle

星期二, 8月 28, 2012

讓Linux成為iTunes Server 有支援中文曲目名

自從買了人生第一台蘋果產品iPod Classic 4,LED還是黑白單色,這一代iPod被大家讚許的內建的DAC比後來的出的版本,對音樂的解析有比較好的表現,自己也是這麼認同,手上分別的4代和iPod Video可以做PK比較,不過以上評論只是個人觀感不是每個人都是絕對認為。

iTunes Server一開始只有Windows上使用,當然是用從官網下載的iTunes來import CD成為MP3,幾乎把過去收集的各類CD都轉成了iTurn上DB的數位音樂了,一來方便載入iPod隨身欣賞,二來可以用電腦加上USB DAC與耳擴在辦公室聆聽,都很方便管理。

不過我的iTunes player是一台公司閒置的mini UMPC只有7吋Monitor加上Intel Core Solo CPU U1500 1.33GHz, 1G RAM和30G HD,其實沒法把所有音樂檔都下載到這台小電腦,但用另一台PC跑WIN當iTunes Server又覺得很浪費電力。如果可以讓Linux檔案伺服器多加上iTurn Server功能那該有多好,怎麼會這麼想也是公司曾試著開發在NAS上加入iTunes的檔案分享服務,只是當時無法也不願意多花資源解決中文檔名亂碼問題而放棄。

到今天利用G大神加上自己過去的經驗成功找到可運作的方法,留下方法供大家同享:
Linux版本 CentOS 6.2 x86
額外新增軟體庫rpmforge-release-0.5.2-2.el6.rf.i686 of http://rpmforge.net/
1. yum install libid3tag libid3tag-devel gdbm gdbm-devel avahi-compat-howl avahi-compat-howl-devel
2. Download mt-daapd from http://sourceforge.net/projects/mt-daapd/files/ modified 20080-04-19
3. tar vxzf mt-daapd-0.2.4.2.tar.gz ; cd mt-daapd-0.2.4.2
4. ./configure --enable-mdns --enable-howl --with-gdbm-includes=/usr/include --with-howl-includes=/usr/include/avahi-compat-howl --with-gdbm-libs=/usr/lib --with-howl-libs=/usr/lib --with-id3tag=/usr
5. make ; make install
6. cp contrib/mt-daapd.conf /etc/
7. cp contrib/mt-daapd.playlist /etc/
8. vi /etc/mt-daapd.conf  修改以列出的行與值,藍色字為說明部份不要加入檔案內。
     web_root /usr/local/share/mt-daapd/admin-root
     db_dir /mnt/Music 這裡要指定放MP3 DB的目錄
     mp3_dir /mnt/Music 這裡要指定放MP3的目錄
     admin_pw mt-daapd 這個網頁登入admin所需要密碼
     servername mt-daapd 顯示在網路上的主機名稱
     runas nobody 可更改為Linux上可讀取路徑的使用者名

9. vi /etc/avahi/services/iturn.service  新增這個檔加入以下內容
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name>iTunes Music sharing</name>
<service>
<type>_daap._tcp</type>
<port>3689</port>
</service>
</service-group>
10. /etc/init.d/avahi-daemon restart 重始服務
11. tail /var/log/messages  檢查avahi-daemon是否有成功帶起iTunes Service, 如成功會有下列訊息。
Aug 28 11:45:28 h141-182 avahi-daemon[19529]: Service "iTunes Music sharing" (/services/iturn.service) successfully established.

12. /usr/local/sbin/mt-daapd 啟動 daapd
13. netstat -nat| grep 3689 檢查服務是否存在,如有可以用Firefox或Chrome
       登入 http://<Server IP>:3689

然後開啟Windows下的iTunes 軟體,檢視共享下是否出現該mt-daapd的名稱,點選該名稱右方應會出現音樂列表可供播放。

14. cp contrib/mt-daapd /etc/init.d/  ; chkconfig --add mt-daapd  開機自動啟動

星期一, 8月 20, 2012

101年8月18武嶺盃挑戰賽

101年8月18號清晨早上3點30分起了大早,著手準備等會要參加的第四屆南投縣政府主辦的武嶺盃挑戰賽巿民35M組,心情還算平靜不似前幾年會興𡚒到睡不熟。熟悉準備好車衣,補給品,手機,零錢包加健保卡等物品,然後把公路車搬下樓,打好前後輪氣胎壓計算約110磅,水壺除了礦泉水外,還加入少許蜂蜜和海鹽增加運動性需求養份。

差不多到四點半開始進食,主要食用三顆麵包和一杯700CC牛奶,一口氣吃不了那著多等一下下肚子消一點就吃完,這樣吃是必要的等一下比賽前二十五公里就靠這些補充熱量。最後在出發前喝一點美式淡咖啡,這著早起床有點咖啡因刺激也是很必要的,喝咖啡己經變成長途練習/比賽必要的飲品之一了。

5點整出開,後方裝上LED紅色車燈,武嶺一路上會經過幾個明隧道還滿暗的有個亮點增加點安全性。從家裡到國道六號交流道約10分鐘車程,不到一下就陸陸續續看到許多車友聚集,隨時間越接近比賽人也就越來越多,不過眾多人群中,有一個人一下子就吸引到我的注意:一位單腳公路車騎士,正確來說有一隻腳是裝上義肢透過特別的設計固定的踏板上,是位年輕人從他的臉上看出準備好一較高下的企圖心,讓人格外動容。

喝咖啡有點壞處就是等待出發時會一直想上廁所,男生很方便可以到處解決,出發點並沒有流動廁所這對女性車友來說就是一大不便了。無聊之餘看看東方日出美景,變幻莫測。
這表示今天是比賽的好天氣,即便前一夜仍然下過大雨但不影響早上進行的比賽。

其實不過天氣好壞比賽多半都會進行下去,這也是考驗車手們意志的因素之一。

山上的天氣變化很大,留意自己身體的反應也是很重要的,像去年3月的武嶺盃就遇到寒流,在過翠峰後沒有注意到保暖,等快到終點才發現自己早己失溫,很痛苦到騎到終點,越快回到車上直發抖了15分鐘才恢復許多。


天空持續有所變化,看著雲彩竟化成為一隻老鷹(禿鷹)樣。


武嶺盃的比賽是UCI國際認證的賽事,分組出發間隔為5分鐘,很井然有序的一下子就輪到RM35組了,前導的機車隊會控速直到地理中心牌才放行並正式計算出發時間。前20公里為平地緩坡,時速控制在25KM到30KM間,用鼻腔吸氣吐氣,少用嘴巴吸吐氣,這樣校率不高也容易口渴,除非真的太喘。在20公里處開始人止關爬坡,人止關較陡速度控制在12KM到9KM,霧社段可以控制到12KM到15KM,到五里坡時是第一個超長車續陡坡要小心控速呼吸不要過快,接下來清境段也是較陡直到那魯灣,這裡開始呼吸會明顥不順,原因是高海拻地區氧氣含量下降,而自行車運動是高消粍氧運動,會很明顥感覺到不順暢。

陡坡持續到翠峰入口才明顥變緩一些,些時重點要注意肌肉在低含氧下的乳酸堆積,調節呼吸,長吸長吐放慢速度,待身體適應過這段變化,自然會有比較好的輸出表現。

後面的路段會因為乳酸的大量累積開始變純,速度拉不上。只有專心保持住速度和呼吸頻率,定時吃補給品,大會準備的香蕉是一定要拿,水拿半瓶就夠。到之字坡就表示快到昆陽段這時老實說體力己經差不多用完了,只有意地力可以支持你騎下去,全身開始吱吱痛就這樣扺達終點,順利下卡拿到證書。
目前收集的武嶺盃證書有二,三和這一屆第四屆三張了。NS的也有三張,加上自己上來過一次,算一算共7次上武嶺。現在上來好多了,有舅子夫人開補給車下山,也有熱水泡的泡麵可吃。一邊吃麵一邊看著努力騎往終點的車友,剛好還累到想哭的感覺好像就不見了,加油吧!








就在開車要離開昆陽停車場時,突然菜藍車阿伯出現了,來不及照到本人正面,留下這張勇者的身影也是值得學習的對像之一。













阿伯的武嶺盃4正面照
https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-ash4/295270_3887112609021_1859650758_n.jpg


感謝照像人員分享照片
地點:鳶峰


地點:武嶺停車場終點處



武嶺:車友心目中的聖地,公路車賽的最高賽事,又有最長公路賽之稱,明年再來見。


















星期二, 7月 24, 2012

Ubuntu 12.04 使用大通USB電視棒AD-525

在某家家都樂得辛福的大賣場出清,買了號稱支援Linux的平價USB數位電視棒AD-525,不過原廠光碟片裡附的driver只支援kernel 2.6.20 - 2.6.33, 如果是Ubuntu平台的話應該是到10.04。

要在Ubuntu 12.04上kernel 3.2.0下跑看來是要自力救濟,玩Linux自己來是在平常不過的事,先上網查這支USB DVB使用的晶片為IT9135,根據網站資料如下,應該有辦法在kernel 3.2上使用。
http://www.linuxtv.org/wiki/index.php/ITE_IT9135

首先直接接上Ubuntu 12.04什麼動作都沒發生,試著load dvb_usb_it913x 和 it913x_fe看來也不會動,先在這裡卡了一陣子,隔天發現某站在寫了可以動的方法:
http://ubuntuforums.org/showthread.php?t=1898046

sudo apt-get git
mkdir v4l
cd v4l
git clone git://linuxtv.org/media_build.git

cd media_build/
sudo apt-get install libproc-processtable-perl
./build
sudo make install

然後再加firmware

cd ..
wget http://www.ite.com.tw/uploads/firmware/v3.6.0.0/dvb-usb-it9135.zip
unzip dvb-usb-it9135.zip
dd if=dvb-usb-it9135.fw ibs=1 skip=64 count=8128 of=dvb-usb-it9135-01.fw
dd if=dvb-usb-it9135.fw ibs=1 skip=12866 count=5817 of=dvb-usb-it9135-02.fw
sudo cp dvb-usb-it9135-0* /lib/firmware/

Reboot,然後跑一下檢查

dmesg |grep it913x
[    9.662488] it913x: Chip Version=02 Chip Type=9135
[    9.662971] it913x: Firmware Version 52887808
[    9.664347] it913x: Dual mode=0 Remote=5 Tuner Type=88
[   10.440743] it913x-fe: ADF table value :00
[   10.444620] it913x-fe: Crystal Frequency :12000000 Adc Frequency :20250000 ADC X2: 01
[   10.480838] it913x-fe: Tuner LNA type :38
[   10.689092] it913x: DEV registering device driver
[   10.689119] usbcore: registered new interface driver it913x

這樣就完成的driver的部份,接下來準備播放軟體我用比較簡單好用的vlc播放程式
參考下列網址:
http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?post_id=65236
sudo apt-get install dvb-apps

cd /usr/share/dvb/dvb-t/
vi tw-Taipei # modify content as below
T 533000000 6MHz 2/3 AUTO QAM16 8k 1/4 NONE
T 545000000 6MHz 2/3 AUTO QAM16 8k 1/4 NONE
T 557000000 6MHz 2/3 AUTO QAM16 8k 1/4 NONE
T 569000000 6MHz 2/3 AUTO QAM64 8k 1/4 NONE
T 581000000 6MHz 2/3 AUTO QAM16 8k 1/4 NONE
T 593000000 6MHz 2/3 AUTO QAM16 8k 1/4 NONE
scan /usr/share/doc/dvb/dvb-t/tw-Taipei > channels.conf
在中文的Ubuntu環境下scan出來的channels.conf的中文名稱頻道會是亂碼。

進入vlc 開啟 channels.conf , 播放清單內就有所有數位電視台(含HiHD)
也可以產生一個桌面圖示 ,指令為 vlc "你的PATH" channels.conf

我掃出來的channels.conf內容, 指令 vlc channels.conf就可以開始看無線數位電視了,開心呀。
N-exOMSð:533000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1002:100
N-e°^Sð:533000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1011:1012:101
N-}ÝSð:533000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1021:1022:102
N-:533000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1031:1032:103
[00c9]:545000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2011:2012:201
[00ca]:545000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2021:2022:202
[00cb]:545000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2031:2032:203
l}TSð:557000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3001:3002:300
lN€Sð:557000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3011:3012:301
le°^Sð:557000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3021:3022:302
lÇe^ãd­:557000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:303
l:557000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3041:3042:304
SðpcûSð:581000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4001:4002:400
Sð¡}Sð:581000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4011:4012:401
Sð}TSð:581000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4021:4022:402
Sð:581000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4031:4032:403
ï:593000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5011:5012:501
ïeY²Sð:593000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5021:5022:502
ïOSð:593000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5031:5032:503
ï:593000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5041:5042:504


channels.conf 的內容 網路抄來的:
頻道號碼可以改中文頻道名稱
1:533000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1002:100
2:533000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1011:1012:101
3:533000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1021:1022:102
4:545000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2011:2012:201
5:545000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2021:2022:202
6:545000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2031:2032:203
7:557000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3001:3002:300
8:557000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3011:3012:301
9:557000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3021:3022:302
10:569000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:200
11:581000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4001:4002:400
12:581000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4011:4012:401
13:581000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4021:4022:402
14:581000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:4042:404
15:593000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5011:5012:501
16:593000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5021:5022:502
17:593000000:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5031:5032:503






星期五, 6月 22, 2012

AT89S5X燒錄器製作


開始玩數位電路,從AT89S5X燒錄器開始做,可以成功燒進HEX程式碼,找空來做溫度感測器和CDROM控製器。
Debug花了快二星期,下次訊號腳位要先弄清楚,還有PCB有沒有要跳線的地方也要對照一下原理圖XD。



MHHA v2管晶耳擴合體新家

完成許久的真空管6992+IRF610晶體耳機擴大器終於有了新家

珈啡蛋捲盒內放的是24V2A直流電源供電器,也是自己洗PCB板自己焊的,足夠大的電流供應對A類放大器很需要,低音沈高音足。

星期四, 6月 14, 2012

Run eagle-5.11.0 in Ubuntu 12.04 x86_64

以前使用Eagle 5.11.0在Ubuntu 11.10 x86的平台上,因為二者都是32bit所以執行上不會有任何問題。後來公司根據老電腦淘汰原則換掉了手上用了五年多的筆電,新NB的CPU是i5加上8G的記憶體,所以就安裝的Ubuntu 12.04 x86_64,這樣一來系統是可以發揮不錯的效能。

之前在Ubuntu 11.10時有用內建的備份軟體備份home下的資料,所以在回覆home時就特別方便,包括thunderbird,pidgin,skype等設定資料都一併回復。

直到平時拿來畫電路圖/設計電路板的軟體eagle-5.11.0因該公司沒有出x86_64位元的版本所以踢到鐵板,只有試著找看看G大神有沒有辦法該x86_64的Ubuntu跑x86的程式。運氣很好沒多少就找到了做法:
https://help.ubuntu.com/community/DebootstrapChroot
照著作在/32目錄下安裝屬於32bit所需的工作環境。
#vi /etc/schroot/chroot.d/Ubuntu32
------------------
[Ubuntu32]
description=Ubuntu 12.04LTS 32-bit
directory=/32
type=directory
personality=linux32
users=user,root
groups=users,root
------------------------
#debootstrap --arch i386 precise /32 http://archive.ubuntu.com/ubuntu
#schroot -l
chroot:Ubuntu32
#sudo -c
#schroot -c Ubuntu32
#apt-get install libxcursor1
#apt-get install libjpeg62 libjpeg8
------------------------
這時執行schroot -c Ubuntu32 就會切換成32位元的執行環境,此時下指令df會發現mount目錄缺少USB自動掛載的目錄在/media下,解決辦法為編輯vi /etc/schroot/mount-defaults,加入下列這一行:
/media /media none rw,rbind 0 0


寫一支script拿來準備eagle所要的32bit環境:

#vi eagle.sh
#!/bin/sh
export LANG=C
export LC_ALL=C #遇到中文無法顯示問題,沒關係改用英文顯示
schroot -c Ubuntu32 -p ~/eagle-5.11.0/bin/eagle $1


成功招喚出魔獸神鳥eagle,解決了32位元程式在64位元Ubuntu下不能執行的問題。

星期四, 5月 24, 2012

fio - flexible io benchmark

因工作需要找一個可以取代IOmeter業界慣用的IO效能評測軟體,過去為了某些測試有初略使用了fio 這個軟體,現在要來進階了。之前用的版本是1.5.x版,現在用的是2.0.7版這兩版在測試結果的輸出上欄位不同,2.0.7版多了更多欄位這裡不細述。

為了方便定義出多種測試pattern,決定使用參數的方式而不用profile file,範例如下:

fio --name=$name --rw=${iomode}  --direct=1 --ioengine=libaio --runtime=30s --ioscheduler=noop --filename=/dev/$target --bs=${block} --size=80% --iodepth=${iodepth} --zonesize=$[size/stream]k --numjobs=$stream --group_reporting --minimal >> $model.$target.fiov2.csv

${}內是變數值,在shell script內用迴圈代入合適的值。這裡要解釋一下iodepth會相當於IOmeter中的outstanding I/O的值,而numjobs則是多執行程序,如果是單純要測sequential I/O的話最好設成1就好 ,zonesize的size是target device的block size參考cat /proc/partations | awk '{print $3}'。
等收集到所需的$model.$target.fiov2.csv後要處理一下分隔符號,因為Excel不認為分號;分隔符號,可是OpenOffice的calc可以自由選擇分隔符號為;,所以如果你是要給Excel讀的話可以用sed -i 's/;/,/g'  $model.$target.fiov2.csv 置換;為,。

然後就可以用Excel or OpenOffice Calc 讀入,再Copy/Pause到link下載的檔案內方便閱讀每個欄位數值. http://dl.dropbox.com/u/19061976/fiov2_minimal_group_log_analysis.xls
如果擔心Excel內有巨集病毒,也可參考Fio原始碼內附HOWTO檔內的--minimal output欄位說明。