星期日, 12月 11, 2016

老輪組重生記

結婚後的第一台公路車OCR 2,陪伴我上武嶺和塔塔佳,渡過無限汗水的騎乘生活。現在車子換成老婆在騎,我手上留著原廠附的輪組很久了,原因是花鼓無法有效潤滑,造成阻力越來越大。

最近雖然買了SHIMANO 拆花鼓棘輪工具想把棘輪座拆下保養,誰知在使儘力氣下都拆不下來,用錘子加上板手用力下拆花鼓工具崩牙了只有放棄。

後來想到之前有買一個同樣SHIMANO的Tiagra等級後花鼓,但是36孔的而我的鋁輪框是24孔的並不相容,查了網路發現有編輪專家用跳編的方式克服
我沒能力計算相關數值,就花一個晚上用笨方法試編 了一種,但原輪框拆下來利用的幅條的太長根本無法旋緊銅頭,花了快三小時都沒能弄好,決定去熟悉的捷安特車店老板幫忙。
原始的編法如下圖,手抖照的很模糊,但沒來得急重拍就送走了。





































經過了週未放假露營回到台中,當晚就去了店內把新編的輪組拿回家,沒想到老闆超級用心的試了近十多種編法才試出合用的,這著用心的老闆當然要多付他一些編輪費用,花鼓從露拍買的是4XX元加上手工重編800元,其實也差不多是新買一個後輪的費用。所以讓這個老輪框重生己經是心理大於經濟利益了。

看得出來新的花鼓是36孔,而輪框是24孔,除了跳孔之外在編輪上還要注意副條的長度要能銅頭固定的鏍紋配合可以充分拉緊保有足夠鋼性, 再來是內外孔交錯排列分均花鼓耳上的內外拉力。 




























在完成後就找機會在後山( 大度山 ) 晨騎向上路(特3) 到遊園南路後左轉往東海監理站去途中在華南路(藍色公路)下滑到大肚鄉再原路折返回大度山頂,先是在向上路的緩坡新花鼓感覺還不是很明顯,鋼性跟過去原輪組沒有太大差異,直到藍色公路急坡下滑時才有明顯感覺, 跟原輪組比較起來有足夠的安全感可以放手高速下滑。

自換上新花鼓,再從小舅子那借來同樣的SHIMANO前輪配成一套輪組,使用了近三個月是越騎越開,越騎越順, 而且下坡不會有花鼓爪發出聲響, 變成了我的無聲爬坡下山時連山路都會睡著,現在整台公路車就像任意拚裝的改裝車一台,在經歷七年的騎乘下手殘的更換汰新各部份零件,現在連前後輪都不是同一系統,活成了混血王子或混血中年大叔號了,騎車也玩車這樣更好玩。

星期二, 6月 10, 2014

Lenovo ThinkPad T420 to enable wireless to AP mode - updated

後來發現用NAT方式來轉送Wifi AP封包到Ethernet Port會有連線不連續的問題,所以又查了一下Debain/Ubuntu 平台下,正確的方法為何?
首先要設定/etc/network/interface , 設定系統將wlan0(ap)與 eth0透過虛擬的橋接介面br0 作router,這樣一來就可把NAT的script給拿掉了。以下設定要重開機才會生效。
vi /etc/network/interface
auto lo br0
iface lo inet loopback
# wireless wlan0
allow-hotplug wlan0
iface wlan0 inet manual
iface eth0 inet manual
iface br0 inet static
      bridge_ports wlan0 eth0
      address 172.22.xxx.xxx
      netmask 255.255.xxx.0
      network 172.22.x.0
      gateway 172.22.x.1
      dns-nameservers 8.8.8.8
      dns-search domain.local

最後將hostap服務設定為開機啟動服務
sudo update-rc.d -f hostapd enable 345

星期三, 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  開機自動啟動