= 2009-03-18 = == OpenID == * 本來想要找看看有沒有什麼 Open Source 專案是可以用來做網站權限控管的基本架構。除了找到 [http://liquicode.sourceforge.net/ LUMOS] 以外,最近兩年比較持續有在更新的反而是跟 OpenID 有關的專案。 * http://openid.net/ - 這是 OpenID 聯盟的第一站 * http://openid.net/get/ - 列舉了目前採用 OpenID 的網站 * http://wiki.openid.net/Run_your_own_identity_server - 列舉了如果想自己架設 OpenID Server 可用軟體 * http://wiki.openid.net/Libraries - 列舉了 OpenID 的實作函式庫 * http://openidenabled.com/ - 這裡也有不同語言的 OpenID 實作跟 OpenID Services * 最初在 sourceforge 上找到的兩個專案 * [http://prasi.sourceforge.net/ Prasi] - Protocol for Remote Authentication and Shared Information * [http://simpleid.sourceforge.net/ SimpleID] - a simple, personal OpenID provider written in PHP. * [http://t-openid.sourceforge.net/ T-OpenID] - 用 Python 寫的 OpenID server + Firefox OpenID extension == 3G/3.5G == * 因為專案需要,去台灣大哥大辦了 3G 網卡,雖然有先做了一下功課,確定 [http://tw.nu-global.com/service.aspx?id=4 NU MU-Q101 3.5G 無線網卡] 可以支援 Linux,也發現當 Q101 接上 Windows 時,有 EeePC 目錄裡出現 deb 安裝檔。由於我不是要在 EeePC 上用,所以不能直接裝隨著 Q101 附帶的 deb 安裝檔,而必須要靠傳統的做法,用 wvdial 去撥號。 * 做法: 1. 首先先用 lsusb 去查 vendor id 跟 product id - 先決條件: 安裝 usbutils 套件 {{{ root@wsu-admin:~# apt-get install usbutils root@wsu-admin:~# lsusb Bus 001 Device 002: ID 0408:ea02 Quanta Computer, Inc. Bus 001 Device 001: ID 0000:0000 }}} 2. 好在 Debian Etch 並沒有很主動地幫我掛載 Q101 為 USB 硬碟,所以我不用卸載 USB 硬碟。如果在 Ubuntu 底下,或者有發現 dmesg 出現新的外接式硬碟,那可能就要用 umount 的方式卸載 USB 硬碟,並且下指令把 Q101 轉換成 USB Modem。[http://blog.rmi.twbbs.org/2008/07/linux3gnu-mu-q101.html 參考],要注意的是 usb1 的 1 是代表 Bus 001 而 1-2 代表 Bus 001 的 Device 002。似乎 Product ID 如果是 ea02 的話,就是正常 USB Modem 的 ID。 {{{ root@wsu-admin:~# echo "suspend" > /sys/bus/usb/devices/usb1/1-2/power/level }}} 3. 用 modprobe usbserial 加上 vendor id 與 product id 參數,來驅動 Q101 數據機 {{{ root@wsu-admin:~# modprobe usbserial vendor=0x0408 product=0xea02 }}} 4. 安裝 wvdial 並用 '''wvdialconf''' 來跑數據機偵測 (第一次安裝 wvdial 會跑 wvdial 但是如果要重新偵測的話,就得用 wvdialconf 了) {{{ root@wsu-admin:~# apt-get install wvdial root@wsu-admin:~# wvdialconf (... 略 ...) Found a modem on /dev/ttyUSB0. Modem configuration written to /etc/wvdial.conf. ttyUSB0: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0" ttyUSB2: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0" ttyUSB3: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0" }}} 5. 預設產生出來的 /etc/wvdial.conf 並無法正常連線,所以必須重新設定撥號等資訊。[http://gdx-learning.blogspot.com/2008/04/ubuntu3g35gtelit-um20.html 參考] {{{ [Dialer Defaults] Phone = *99# Username = username Password = passwd Stupid Mode = 1 Dial Command = ATDT Check Def Route = on Dial Attempts = 3 Modem = /dev/ttyUSB0 Baud = 460800 Init2 = ATZ Init3 = ATQ0 V1 E0 S0=0 &C1 &D2 +FCLASS=0 Init4 = AT+CGDCONT=1, "IP","Internet" ISDN = 0 Modem Type = Analog Modem New PPPD = yes }}} 6. 跑一隻 script 來重新設定 Q101 - [問題] 目前還沒有辦法每次撥號都成功,也還沒找到方法怎麼停掉撥號網路。 {{{ root@wsu-admin:~# cat start_q101 #!/bin/bash echo "停用 Q101" modprobe -r usbserial sleep 3 echo "重新啟動 Q101" modprobe usbserial vendor=0x0408 product=0xea02 sleep 5 echo "確認 Q101 已啟動" lsusb sleep 10 echo "重新搜尋 Q101 所在 USB 位置....並設定 /etc/wvdial" wvdialconf echo "啟動 wvdial 進行撥號...." wvdial & }}} 7. 使用 ddclient 來更新 DynDNS.org 的動態 DNS 服務。它會要你輸入 DynDNS 的帳號、密碼跟網址。若設定正確,使用 ddclient 就會進行更新。 {{{ root@wsu-admin:~# apt-get install ddclient root@wsu-admin:~# ddclient SUCCESS: updating xxxx.dyndns.org: good: IP address set to xxx.xxx.xxx.xxx }}}