聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

一月 24, 2013
» Redmine on Debian 6

Redmine 是一套 GPL 授權的專案管理系統,其底層架構為 Ruby on Rails,老實說凍仁自己也不是很了解,只知道 COSCUP 團隊近幾年來開始使用它管理碎髓的事務。

原本以為 Debian 上 Redmine 的環境很難搞的凍仁,在 Zeroplex 心得分享後才得知 FreeBSD 的環境更麻煩,好險沒有跳 BSD 的坑啊

Redmine 介面截圖。

1. 安裝相關套件


[ jonny@squeeze ~ ]
$ sudo aptitude install redmine redmine-mysql mysql libapache2-mod-passenger [Enter]

2. 環境設定


2.1. 連結 Redmine 目錄至網頁目錄底下。
[ jonny@squeeze ~ ]
$ sudo ln -s /usr/share/redmine/public /var/www/redmine [Enter]

2.2. 修改權限。
[ jonny@squeeze ~ ]
$ sudo chown -R www-data:www-data /var/www/redmine [Enter]

2.3. 建立 Redmine 的 Apache 設定。
[ jonny@squeeze ~ ]
$ sudo vi /etc/apache2/sites-available/redmine [Enter]
RailsBaseURI /redmine
RailsEnv production
PassengerDefaultUser www-data

2.4. 啟用 Redmine 設定。
[ jonny@squeeze ~ ]
$ sudo a2ensite redmine [Enter]

2.5. 重開 Apache。
[ jonny@squeeze ~ ]
$ sudo /etc/init.d/apache2 reload && sudo /etc/init.d/apache2 restart [Enter]

2.6. 測試 http://localhost/redmine/

# 記得先修改 admin 密碼,預設為 admin。

3. 解決 Redmine 中文亂碼

最快的解法為先將 MySQL dump 出來,待手動將轉換成 utf8 再匯入回去 (感謝強者同事的心得分享)。

3.1. dump.
[ jonny@squeeze ~ ]
$ mysqldump --user=root -p redmine_default > redmine_default.sql [Enter]

3.2. 使用 sed 手動將 latin1_swedish_ci 取代成 utf8_general_ci。
[ jonny@squeeze ~ ]
$ sed -i 's/latin1_swedish_ci/utf8_general_ci/g' redmine_default.sql [Enter]

3.3. 使用 sed 手動將 latin1 取代成 utf8。
[ jonny@squeeze ~ ]
$ sed -i 's/latin1/utf8/g' redmine_default.sql [Enter]

3.4. 匯入 utf-8 的 redmine_default.sql。
[ jonny@squeeze ~ ]
$ mysql -uroot -p redmine_default < redmine_default.sql [Enter]

3.5. 亂碼解決完畢!

4. 設定 E-mail 的 smtp 伺服器


4.1. 從範列中複製乙份設定檔。
[ jonny@squeeze ~ ]
$ sudo cp /usr/share/doc/redmine/examples/email.yml.example /etc/redmine/default/email.yml [Enter]

4.2. 設定 smtp 伺服器位址、電子信箱及密碼。
[ jonny@squeeze ~ ]
$ vi /etc/redmine/default/email.yml [Enter]
68 
69 production:
70 delivery_method: :smtp
71 smtp_settings:
72 address: smtp.example.net
73 port: 25
74 domain: example.net
75 authentication: :login
76 user_name: "redmine@example.net"
77 password: "redmine"
78
79 development:
80 delivery_method: :smtp
81 smtp_settings:
82 address: 127.0.0.1
83 port: 25
84 domain: example.net
85 authentication: :login
86 user_name: "redmine@example.net"
87 password: "redmine"

4.3. 接下來可以在 設定電子郵件提醒選項 裡使用 寄送測試郵件 來測試是否可以正常運作,其測試信的主旨為「Redmine test」內容如下:
This is a test email sent by Redmine.
Redmine URL: http://localhost/redmine/
---------------------------------------
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://hostname/my/account

延伸閱讀:
Zeroplex 生活隨筆: Redmine 簡介

資料來源:
HowTo Install Redmine using Debian package - Redmine
最簡化的 Ubuntu 10.04下 Redmine 部屬方法
Ubuntu 10.04 安裝 Redmine – ㄚ凱隨手紀

一月 22, 2013
» 安裝 Toshiba Satellite C850 無線網卡驅動 on Ubuntu 12.04

昨日於 Drupal-TW 高雄小聚協助 kenyuan190 伙伴補完 rtl8723e 這張無線網卡 (WLAN, Wireless) 的驅動,在此分享一下,剛裝好 Ubuntu 後似乎會同時發生有線 (eth0)及無線 (wlan0) 網卡都無法使用的情形

凍仁當時的解法是先使用 Android 手機的「USB 數據連線」上網,若發現 Network manager (右上的網路管理員) 一直轉不停,可以先行停用它,並使用 dhclient usb0 來取得 IP。

1. 開啟終端機 (terminal)。

2. 更新 kernel。

[ jonny@precise ~ ]
$ sudo apt-get update; sudo apt-get upgrade linux-image-generic [Enter]

3. 重新開機,若早已使用最新的 kernel 請略過。
[ jonny@precise ~ ]
$ sudo shutdown -r now [Enter]

4. 安裝編譯相關套件。
[ jonny@precise ~ ]
$ sudo apt-get install build-essential linux-headers-generic linux-headers-`uname -r` [Enter]

5. 下載驅動並解壓縮。
[ jonny@precise ~ ]
$ wget -O- http://dl.dropbox.com/u/57056576/DRIVERS/REALTEK/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012.tar.gz | tar -xz [Enter]

6. 切換目錄。
[ jonny@precise ~ ]
$ cd rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012 [Enter]

7. 開始編譯並安裝。
[ jonny@precise ~ ]
$ sudo make && sudo make install [Enter]

8. 重新掛載 rtl8723e 模組。
[ jonny@precise ~ ]
$ sudo modprobe rtl8723e [Enter]

9. 開機自動掛載 rtl8723e 模組。
[ jonny@precise ~ ]
$ sudo su -c "echo rtl8723e >> /etc/modules" [Enter]

完成! 恭喜您,現在可以開始在 Ubuntu 使用無線網卡了!

2013-01-21


當時這台 C850 是有搭載 AMD 7610M 獨立顯示卡的機種,其驅動的部份可以直接使用額外驅動程式 (jockey) 來安裝。

示意圖
(圖片來源: debianhelp.wordpress.com)

站內連結:
Ubuntu 網路設定 - 於 DHCP 環境下重新取得 IP

相關連結:
[已解決] Toshiba C850 ether network controller 無法使用 [論壇 - Ubuntu硬體支援] | Ubuntu 正體中文站
Satellite C850 | 新禾科技 - Toshiba
Toshiba Satellite C850-C855 [Linux Laptop Wiki]

資料來源:
drivers - Wireless card Realtek RTL8723AE-BT is not recognized - Ask Ubuntu #2

» PHP: Commands out of sync; you can't run this command now

近日凍仁使用 PROCEDURE 及動態 LIMIT 改寫某 PHP 網站的列出最後 10 筆資料功能,套上新程式碼後,再持續送出 query 就會跳「 Commands out of sync; you can't run this command now」的錯誤訊息,其 MySQL 文件的解釋如下:

18.2.8 Commands out of sync in client 錯誤

如果你在你的客戶代碼中得到 Commands out of sync; You can't run this command now,你正在以錯誤的次序調用客戶函數!

這可能發生,例如,如果你正在使用 mysql_use_result() 並且在你已經調用了 mysql_free_result() 之前試圖執行新查詢。如果你在 mysql_use_result()或mysql_store_result() 之間試圖執行返回數據的 2 個查詢,它也可能發生。

最後試出來的解法是補個手動關閉連線的函式 mysql_close() 即可解決。
 1 <?php
2
3 # = 連結資料庫 =
4 $dbhost = "localhost"; #資料庫網址或IP
5 $dbusername = "db_user"; #資料庫帳號
6 $dbuserpassword = "db_pwd"; #資料庫密碼
7 $default_dbname = "db_name"; #資料庫名稱
8 $connection = mysql_connect($dbhost, $dbusername, $dbuserpassword) or die("無法連結資料庫!");
9 $db = mysql_select_db($default_dbname, $connection) or die("無法選擇資料庫");
10
11 mysql_query("SET NAMES 'UTF8'");
12 mysql_query("SET CHARACTER SET UTF8");
13 mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");
14
15 # = Lab. =
16 $sql_last_10_sort="
17 DROP PROCEDURE IF EXISTS last_10_sort;
18
19 DELIMITER //
20
21 CREATE PROCEDURE last_10_sort()
22 BEGIN
23 DECLARE record_total, record_from int default 0;
24 SET @record_total = (select count(time) from tableA);
25 SET @record_from = (@record_total - 10);
26
27 if @record_total < 10 then
28 select
29 time,
30 round(((`rowsA` + `rowsB`) / (select `rowsC` from tableB where bid = '1') * 100), 2) as 'lab'
31 from tableA order by time limit 10;
32 else
33 prepare stmt_last_10_sort from
34 " . "select `time`, round(((`rowsA` + `rowsB`) / (select rowsC from tableB where bid = '1') * 100), 2) as 'lab' from tableA order by time limit ?, ?" . ";
35 EXECUTE stmt_last_10_sort USING @record_from, @record_total;
36 DEALLOCATE PREPARE stmt_last_10_sort;
37 end if;
38 END //
39 DELIMITER ;";
40 mysql_query($sql_last_10_sort);
41
42 $sql_last_10_sort_value="call last_10_sort();";
43 $result_last_10_sort_value = mysql_query($sql_last_10_sort_value) or die(mysql_error());
44
45 ......
46
47 mysql_close($connection);
48
49 ?>

[SQL on the Pastebin.com]


2013-01-22


補上使用 Sub-Query 的改寫的版本,做同樣的事情,但只需短短的六行即可,這樣似乎也比較省資源
 1 /*
2 * 1. select last 10 record and sort.
3 * 2. calc (`rowsA` + `rowsB`) / `rowsC`.
4 * 3. use Sub-Query.
5 */
6
7 SELECT `record_time`, `tmp` FROM (
8
9 SELECT
10 `record_time`,
11 round(((`rowsA` + `rowsB`) / (SELECT rowsC FROM tableB WHERE bid = '1') * 100), 2) AS 'tmp'
12 FROM tableA ORDER BY `record_time` DESC LIMIT 10
13
14 ) AS `lab_last_10_sort` ORDER BY `record_time` ASC;

[SQL on the Pastebin.com]


資料來源:
18.2.8 Commands out of sync in client錯誤 | MySQL 中文參考手冊
Commands out of sync; you can't run this command now - What's X- 點部落
php - Commands out of sync; you can't run this command now - Stack Overflow
PHP: mysqli::query - Manual

十二月 5, 2012
» tp-smapi - 延長 ThinkPad 電池壽命 on Ubuntu 10.04+

在商務機皆有有三年保固的現在,其電池 (Battery) 因為是消耗品的關係都只有一年保,但在使用之於還是可以藉由小小的調整來延長壽命。原先的作法都是透過 tp-smapi-dkmssysfsutils 套件來限制充電的臨界值 [1],可它早已不適合凍仁家的 T410,如今要有同樣的效果得先自行編譯補完驅動 (frimware)。

此為 T, W 系列專用的 9 cell 底座長效型電池 (57Y4545) [2]

1. 安裝

1.1. 安裝 tp-smapi-source
[ jonny@precise ~ ]
$ sudo aptitude install tp-smapi-source [Enter]

1.2. 補完編譯驅動 (frimware),編譯過程中得向套件庫重新下載 kernel,所以執行該步驟前記得先連上網路。
[ jonny@precise ~ ]
$ sudo m-a a-i tp-smapi [Enter]

1.3. 掛載相關模組。
[ jonny@precise ~ ]
$ sudo modprobe tp_smapi [Enter]

1.4. 驗證是否成功,若成功將會在 /sys/devices/platform 多個 smapi 目錄。
[ jonny@precise ~ ]
$ ls /sys/devices/platform/ | grep smapi [Enter]
smapi

1.5. 開機自動掛載該模組。
[ jonny@precise ~ ]
$ vi /etc/modules [Enter]
......
thinkpad_ec
tp_smapi
hdaps

2. 臨界值修改

2.1. 低於 20% 才充電。
[ root@precise ~ ]
$ echo 20 > /sys/devices/platform/smapi/BAT0/start_charge_thresh [Enter]

2.2. 充到 80% 時停止充電。
[ root@precise ~ ]
$ echo 80 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh [Enter]

2.3. 若您像凍仁一樣有加買 57Y4545 這顆 9 cell 底座長效型電池,會發現在 smapi 底下多了個 BAT1,其設定臨界值的方法與 2.1, 2.2 步驟雷同。
[ root@precise ~ ]
$ echo 20 > /sys/devices/platform/smapi/BAT1/start_charge_thresh [Enter]

[ root@precise ~ ]
$ echo 80 > /sys/devices/platform/smapi/BAT1/stop_charge_thresh [Enter]

最後很重要的一點是,每更新一次 kernel,都得重新編譯 tp-smapi,否則將會失去其作用 (詳情請參考 1.2 步驟)。

# 註1:電池充電上限以及充電時機點。
# 註2:57Y4545 除支援 T410 外,同時也支援 T410i, T420, T420i, T510, T510i, T520, T520i, W510, W520,其重量為 610 克 (g)。


延伸閱讀:
該怎麼做才能延長 Notebook 的電池壽命? - Max的宅空間
鋰離子電池 - Apple
關於筆記型電腦的電池 - Apple

資料來源:
解決 Ubuntu 11.04 (natty) 控制 ThinkPad 充電時機的問題 - Max 的宅空間
tp-smapi: 保護X200的電池
Tp smapi - ThinkWiki

五月 28, 2012
» 藉由 Gobi 2000 啟用 ThinkPad T410 行動網路 on Ubuntu 10.04

約一年前凍仁就曾考慮過為這台 ThinkPad T410 (2518-A38) 補上張行動網卡,直接內建就不需再外接 USB 3G 網卡,但基於技術上的考量還是先採購了 NOKIA N900 來使用,相信大多數的伙伴都會這樣選擇的,它除了可以模擬 USB 3G 網卡撥接,也可開 NAT 分享網路給 T410,真的很方便!但同時續航力也會大打折扣,畢竟智慧型手機也是要吃電的,然後還會順便拿筆電充電

後來才得知想在筆記型電腦(Laptop)上使用內建的行動網卡還需符合 WWAN Ready 才行,也就是說除了行動網卡以外,還要有天線及 SIM 卡槽。凍仁很幸運的得到 David 前輩支援,除了裝上 Qualcomm Gobi 2000 這張行動網卡以外,連天線也一併換掉了,而 SIM 卡槽的部份原先就有內建,不過這是在整台拆開後才確認的,成功改造一番後 T410 終於可以直接使用行動網路了!

Qualcomm Gobi 2000 行動網卡。

作業系統相容性部份 WindowsXP, Windows7 官方都有支援,但有很大的機率會失敗,並沒有想像中的穩;Ubuntu 目前只支援 10.04 (kernel 2.6),其 11.10 (kernel 3.0) 以及 12.04 (kernel 3.2) 還不支援,為此凍仁也花了些功夫把原先的 11.10 換成 10.04,好險當初有多切幾個分割區,不然會連 12.04 都沒得玩,經凍仁一週的測試後得 Ubuntu 10.04 最穩,其搭配重新掛載模組的指令(請參考 5.3)都能成功連線!

1. 檢查裝置(Check Device)


開始前先看一下系統有沒有抓到 Gobo 2000 這張卡,其 WWAN 的介面一般都是掛在 USB 底下,所以得使用 lsusb 指令檢查。一開始 USB ID 的值會是 05c6:9204,完成以下步驟並成功初始化後的值將為 05c6:9205,也就是說要最後要取得後者才行,。
jonny@lucid:~$ lsusb | grep -i "Qualcomm" [Enter]
Bus 002 Device 003: ID 05c6:9204 Qualcomm, Inc.

# USB ID: 05c6:9204 (loader)
# USB ID: 05c6:9205 (modem)

2. 取得韌體(Get firmware)


2.1. 至 Lenovo 下載韌體,請依各電信業者選擇韌體,台灣用戶請選 (6) Generic UMTS

2.2. 使用 Windows 解開 7xwc48ww.exe 或者加裝 wine 解開。

2.3. 建立放置韌體的目錄。
jonny@lucid:~$ sudo mkdir -p /lib/firmware/gobi/ [Enter]

2.4. 複製對應的韌體至 /lib/firmware/gobi/。
jonny@lucid:~$ cp 6/UQCN.mbn /lib/firmware/gobi/ && \
cp UMTS/*.mbn /lib/firmware/gobi/ [Enter]

2.5. 檢查檔案完整性,對照表請參考 ThinkWiki
jonny@lucid:~$ md5sum /lib/firmware/gobi/*.mbn [Enter]
80fcfbb41a7d4331d4b7145972f5f3c4   /lib/firmware/gobi/amss.mbn
00cbd411048cdadc3e4caf0d89d14fca   /lib/firmware/gobi/apps.mbn
bdf27325ebb63251c1310cd3a8f7bab6   /lib/firmware/gobi/UQCN.mbn

3. 安裝(Install)


3.1. 加入套件來源並更新套件庫。
jonny@lucid:~$ sudo add-apt-repository ppa:linrunner/thinkpad-extras && sudo aptitude update [Enter]

3.2. 安裝 gobi-loader 以及為 ThinkPad 客製化的 kernel
jonny@lucid:~$ sudo aptitude install gobi-loader linux-generic-tp \
linux-image-generic-tp linux-headers-generic-tp [Enter]

3.3. 若想使用快捷鍵開關 WWAN 可順便裝上 tp-wwan-hotkey
jonny@lucid:~$ sudo aptitude install tp-wwan-hotkey [Enter]

3.4. 重新開機,請改選 kernel 有 tp 字樣選項,若已裝過 nVidia, hdapsd 或 Virtualbox 等需取編譯 kernel 相關模組的套件可能需重裝
jonny@lucid:~$ sudo shutdown -r now [Enter]

4. 環境設定(Environment Configure)


4.1. 檢查 WWAN 狀態,並確認 WWAN 裝置已開啟。
jonny@lucid:~$ cat /var/lib/NetworkManager/NetworkManager.state [Enter]
[main]
NetworkingEnabled=true
WirelessEnabled=true
WWANEnabled=true
#WimaxEnabled=true   # Ubuntu 12.04 才有此行。

4.2. 若 WWAN 未啟動可使用 tp-wwan-hotkey 的快捷鍵 Fn + F6 切換。

WWAN: on.

WWAN: off.

4.3. 新增行動網路(mobile broadband)連線設定。

4.3.1. 應用程式選單 → 系統 → 網路連線。

4.3.2. 行動網路 → 新增。

4.3.3. 選擇 Gobi 2000 裝置。

4.3.4. 在城市列表中選取台灣(Taiwan)。

4.3.5. 選取電信業者,以下使用威寶電信(Vibo Telecom)為例。

4.3.6. 由於未收入 375 網路吃到飽專案,故手動修改成 APN 為 internet。

4.3.7. 同意後以上的設定才算建立完成。

4.3.8. 完成後可以在網路列表看到 Vibo Telecom 的選項。

4.3.9. 連線成功!令人感動的一刻

4.3.10. 察看 IP 資訊。
jonny@lucid:~$ ifconfig ppp0 [Enter]
ppp0      Link encap:Point-to-Point Protocol  
inet addr:1.200.147.149 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:546 (546.0 B) TX bytes:249 (249.0 B)

5. 除錯(Debug)


以下紀錄些 Debug 的東西,可略過。

5.1. 監控 log。
jonny@lucid:~$ sudo tail -f /var/log/syslog [Enter]

5.2. Ubuntu 12.04 目前還不支援,以下為 WWAN 跑不起來的訊息。
jonny@lucid:~$ sudo tail -f /var/log/syslog [Enter]
May  3 22:02:14 thinkpad-t410 NetworkManager[1191]:  Activation (ttyUSB1) starting connection 'Vibo Telecom'
May 3 22:02:14 thinkpad-t410 NetworkManager[1191]: Activation (ttyUSB1) starting connection 'Vibo Telecom'
May 3 22:02:14 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): device state change: disconnected -> prepare (reason 'none') [30 40 0]
May 3 22:02:14 thinkpad-t410 NetworkManager[1191]: Activation (ttyUSB1) Stage 1 of 5 (Device Prepare) scheduled...
May 3 22:02:14 thinkpad-t410 NetworkManager[1191]: Activation (ttyUSB1) Stage 1 of 5 (Device Prepare) started...
May 3 22:02:14 thinkpad-t410 NetworkManager[1191]: Activation (ttyUSB1) Stage 1 of 5 (Device Prepare) complete.
May 3 22:02:14 thinkpad-t410 modem-manager[17215]: (ttyUSB1) opening serial port...
May 3 22:02:14 thinkpad-t410 modem-manager[17215]: Modem /org/freedesktop/ModemManager/Modems/0: state changed (disabled -> enabling)
May 3 22:02:15 thinkpad-t410 modem-manager[17215]: (ttyUSB1): using text mode for SMS
May 3 22:02:15 thinkpad-t410 modem-manager[17215]: Modem /org/freedesktop/ModemManager/Modems/0: state changed (enabling -> enabled)
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: WWAN now enabled by management service
May 3 22:02:15 thinkpad-t410 modem-manager[17215]: Modem /org/freedesktop/ModemManager/Modems/0: state changed (enabled -> registered)
May 3 22:02:15 thinkpad-t410 kernel: [13718.358807] modem-manager[17215]: segfault at 7fea28778b51 ip 00007fea286ed0f8 sp 00007fff7cca5580 error 4 in libpcre.so.3.12.1[7fea286da000+3c000]
May 3 22:02:15 thinkpad-t410 kernel: [13718.458948] init: modemmanager main process (17215) killed by SEGV signal
May 3 22:02:15 thinkpad-t410 kernel: [13718.458983] init: modemmanager main process ended, respawning
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: the modem manager disappeared
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): now unmanaged
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): device state change: prepare -> unmanaged (reason 'removed') [40 10 36]
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): deactivating device (reason 'removed') [36]
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: nm_system_iface_flush_routes: assertion `ifindex > 0' failed
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: nm_system_iface_flush_addresses: assertion `ifindex > 0' failed
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: ModemManager (version 0.5.2.0) starting...
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin AnyData
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin MotoC
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Nokia
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Linktop
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Novatel
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Sierra
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin ZTE
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Generic
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Gobi
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Option High-Speed
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Wavecom
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Samsung
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Ericsson MBM
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Huawei
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin X22X
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin SimTech
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Longcheer
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: Loaded plugin Option
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: Policy set 'Wired connection 1' (eth0) as default for IPv4 routing and DNS.
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: Policy set 'Wired connection 1' (eth0) as default for IPv4 routing and DNS.
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): cleaning up...
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): taking down device.
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: (ttyUSB0) opening serial port...
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: (ttyUSB1) opening serial port...
May 3 22:02:15 thinkpad-t410 modem-manager[20121]: (ttyUSB2) opening serial port...
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: trying to start the modem manager...
May 3 22:02:15 thinkpad-t410 NetworkManager[1191]: modem-manager is now available
May 3 22:02:16 thinkpad-t410 modem-manager[20121]: (ttyUSB1) closing serial port...
May 3 22:02:16 thinkpad-t410 modem-manager[20121]: (ttyUSB1) serial port closed
May 3 22:02:16 thinkpad-t410 modem-manager[20121]: (ttyUSB1) opening serial port...
May 3 22:02:16 thinkpad-t410 modem-manager[20121]: (Gobi): GSM modem /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4 claimed port ttyUSB1
May 3 22:02:16 thinkpad-t410 modem-manager[20121]: (ttyUSB1) closing serial port...
May 3 22:02:16 thinkpad-t410 modem-manager[20121]: (ttyUSB1) serial port closed
May 3 22:02:27 thinkpad-t410 modem-manager[20121]: (ttyUSB0) closing serial port...
May 3 22:02:27 thinkpad-t410 modem-manager[20121]: (ttyUSB0) serial port closed
May 3 22:02:27 thinkpad-t410 modem-manager[20121]: (ttyUSB0) opening serial port...
May 3 22:02:27 thinkpad-t410 modem-manager[20121]: (ttyUSB2) closing serial port...
May 3 22:02:27 thinkpad-t410 modem-manager[20121]: (ttyUSB2) serial port closed
May 3 22:02:27 thinkpad-t410 modem-manager[20121]: (ttyUSB2) opening serial port...
May 3 22:02:30 thinkpad-t410 modem-manager[20121]: (ttyUSB0) closing serial port...
May 3 22:02:30 thinkpad-t410 modem-manager[20121]: (ttyUSB0) serial port closed
May 3 22:02:33 thinkpad-t410 modem-manager[20121]: (ttyUSB2) closing serial port...
May 3 22:02:33 thinkpad-t410 modem-manager[20121]: (ttyUSB2) serial port closed
May 3 22:02:33 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): failed to look up interface index
May 3 22:02:33 thinkpad-t410 NetworkManager[1191]: WWAN now disabled by management service
May 3 22:02:33 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): new GSM/UMTS device (driver: 'qcserial' ifindex: 0)
May 3 22:02:33 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): exported as /org/freedesktop/NetworkManager/Devices/4
May 3 22:02:33 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): now managed
May 3 22:02:33 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): device state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
May 3 22:02:33 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): deactivating device (reason 'managed') [2]
May 3 22:02:33 thinkpad-t410 NetworkManager[1191]: nm_system_iface_flush_routes: assertion `ifindex > 0' failed
May 3 22:02:33 thinkpad-t410 NetworkManager[1191]: nm_system_iface_flush_addresses: assertion `ifindex > 0' failed
May 3 22:02:33 thinkpad-t410 NetworkManager[1191]: (ttyUSB1): device state change: unavailable -> disconnected (reason 'none') [20 30 0]


5.3. 當 USB ID 為 05c6:9204 時可以手動重啟 modem-manager 以及重新掛載 qcserial 模組。
jonny@lucid:~$ sudo pkill modem-manager; sudo rmmod qcserial; sudo modprobe qcserial [Enter]

延伸閱讀:
What is wwan ready - answers.com
親自操刀,拆解 T410 加裝 3G WWAN 天線 - it168.com
ThinkPad T410 拆機紀錄 - David 的 Flickr
Setting the default carrier firmware when installing GOBI 2000 driver - ThinkPad

相關連結:
Qualcomm Gobi 2000 Wireless WAN Driver for Windows 7 (32-bit, 64-bit), Vista (32-bit, 64-bit) and XP - ThinkPad
ThinkPad Extras : linrunner - launchpad.net
Qualcomm Gobi 2000 - ThinkWiki

資料來源:
Howto: Gobi 2000 generic GSM/UMTS on Thinkpads - Ubuntu Forums
[kubuntu] Unable to connect using Qualcomm Gobi 2000 on thinkpad t410 - Ubuntu Forums
Qualcomm Gobi 2000 unter Linux installieren – ThinkPad-Wiki

三月 30, 2012
» iconv - 轉換檔案編碼

不知大家是否有注意到安裝 Linux 時有個選擇語系及編碼的步驟?個人習慣使用 en_US.UTF-8 或 zh_TW.UTF-8 編碼;台灣區的 Windows XP 預設為 BIG5,而 Windows 7 則是 UTF-8。

每當有 BIG5 檔案丟近 Linux 時,其內文有中文時都會變成亂碼,例如「¥¿­×¬ì§Þ¤j¾Ç」,但正常應該要顯示「正修科技大學」才對!相信透過 iconv 指令大家都能順利地找回中文。

1. 檔案編碼轉換


1.1. BIG5 To UTF-8。
jonny@precise:~$ iconv -f big5 -t utf-8 big5.txt -o utf8.txt [Enter]

1.2. UTF-8 To BIG5。
jonny@precise:~$ iconv -f utf-8 -t big5 utf8.txt -o big5.txt [Enter]

1.3. UTF8 To GB2312。
jonny@precise:~$ iconv -f utf-8 -t gb2312 utf8.txt -o gb2312.txt [Enter]

2. 錯誤訊息: illegal input sequence at position」


在使用 iconv 轉換文件的編碼時,如看到「iconv: illegal input sequence at position」錯誤訊息時,就代表您的編碼庫不用新,無法正確轉換,建議使用較新的版本

3. 察看 iconv 版本

jonny@precise:~$ iconv -V [Enter]
iconv (Ubuntu EGLIBC 2.15-0ubuntu6) 2.15
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Ulrich Drepper.

# 使用此指令時請千萬小心,別把原始檔給覆蓋掉!相信大家都不會想重蹈凍仁的覆轍,最後凍仁要說的是減重第三週的成績只有 0.2kg,看來真的一點都不能鬆懈呢。

延伸閱讀:
BIG5 - Max 的宅空間

資料來源:
Ching Wei: 【系統】Linux : BIG-5 與 UTF-8 檔案轉換
鳥哥的 Linux 私房菜 -- vim 程式編輯器
Linux 字符集轉換工具:iconv - 北漂小石

十二月 19, 2011
» configure: error: libpng.(a|so) not found.

近來凍仁會在 CentOS 5.6 x86_64 的環境上編譯 PHP (v5.2.17),也很巧的遇見同樣問題兩次,不過比較詭異的地方是,當初同事是遇到「configure: error: Cannot find libmysqlclient_r under /usr/local/mysql.」的錯誤訊息,但換凍仁接手時就變成「configure: error: libpng.(a|so) not found.」了。

由於環境是 x86_64 (64 bit) 的關係,會同時有 /usr/lib 以及 /usr/lib64 兩函式庫,所以只要把 /usr/lib 裡缺少的東西連結過來即可。

root@centos:~$ ln -s /usr/lib64/libpng.a /usr/lib/ [Enter]
root@centos:~$ ln -s /usr/lib64/libpng.so /usr/lib/ [Enter]

繼續編譯前的 ./configure .. 之後編譯完成就會看到如下的畫面。
root@centos:~$ make [Enter]
......
|--------------------------------------------------------------------|
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
|--------------------------------------------------------------------|
Thank you for using PHP.

參考連結:
apache mysql php gd freetds-Linux系统-Linux系统中文网
[PHP] GD with JPEG / imagejpeg @ FreeBSD @ 第二十四個夏天後 :: 痞客邦 PIXNET ::

九月 16, 2010
» about phpinfo on CentOS 5

這是凍仁曾踩過的雷,php 裝了看似不會動,也確認過 /etc/httpd/conf.d/php.conf 以及 /etc/httpd/conf/httpd.conf 設定,而且在正常情況下裝完 PHP 時皆有以下設定。

jonny@centos:~$ sudo vi /etc/httpd/conf.d/php.conf
...
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so # 載入 PHP 模組。
</IfModule>
...
AddType text/html .php # 增加網頁 .php 關聯。
...
DirectoryIndex index.php # 讓首頁可用 .php 副檔名。

監視錯誤 log 紀錄檔以除錯。
jonny@centos:~$ tail -f /var/log/httpd/error_log
[Wed Jun 02 06:37:30 2010] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.2 configured -- resuming normal operations

最後原來是沒把 php 這 keyword 補上,看來是凍仁太依賴網路文章了,好在還沒把大學的東西還給老師。
<?php
    phpinfo();
?>

延伸閱讀:
鳥哥的私房菜 | PHP 等額外設定檔

十月 24, 2009
» VLC DVD Codecs

凍仁在剛灌好得 Ubuntu 9.04 上第一次開 VLC 時剛好系統更新中,導致後來無法正常觀看影片,不過就是少裝了幾個編碼器(Codecs)嘛,囧rz

jonny@ubuntu:~$ sudo apt-get install libdvdread3 libdvdcss2


資料來源:
dvd codecs by Ubuntu Forums

十月 10, 2009
» NO_PUBKEY? for apt-get update

加入 launchpad 或者其他的軟體來源(/etc/apt/source.list)後要是沒匯入金鑰,使用 apt-get update 手動更新時就會有以下的錯誤訊息出現。

jonny@ubuntu:~$ sudo apt-get update
...
...
W: GPG error: http://ppa.launchpad.net hardy Release: 由於無法取得它們的公鑰,以下簽章無法進行驗證: NO_PUBKEY 6AF0E1940624A220
W: 您也許得執行 apt-get update 以修正這些問題


下載公鑰
jonny@ubuntu:~$ sudo gpg --keyserver keyserver.ubuntu.com --recv OOOOXXXX

jonny@debian:~$ sudo gpg --keyserver wwwkeys.eu.pgp.net --recv-keys OOOOXXXX
# OOOOXXXX 為 key 的後八碼。

匯入公鑰
jonny@ubuntu:~$ sudo gpg --export --armor OOOOXXXX | sudo apt-key add -

jonny@debian:~$ sudo gpg --export --armor OOOOXXXX | sudo apt-key add -


之後再怎麼更新都 ok 啦。

相關連結:
GPG error by 簡單 ‧ 勤勞 ‧ 過生活
GPG Error for apt-get by Tsung's Blog

九月 12, 2009
» 【Bug】Firefox + VLC 上網看影片一起來

哈,影片看一半不知不覺 Firefox 就透明化了,要是真的可像圖中這樣那以後是不是就在也沒有人會嫌網頁載入過慢了呢,哈.. 可重點是,連凍仁自己都不知道這是怎麼來的.. 紀錄一下囉 :P



2008-09-15


原來在 Ubuntu 底下使用【Alt】 + 【滑鼠中鍵滾輪】可以達到視窗透明化的效果.. 真的是無心插柳柳成蔭啊 :P

八月 3, 2009
» 【Windows】DVD/CD-RW 磁碟機陣亡?

在 Windows 常常會發生安裝燒錄、虛擬光碟軟體後,光碟機消失,驅動程式陣亡..等現象,有時是登錄檔搞得鬼,不妨先備份個登錄檔試試看在砍系統唄..

從下列登錄機碼中完全移除 Upperfilters 與 Lowerfilters 值

  1. 於 開始(Windows 鍵) → 執行(R) → 輸入 regedit → 確定(Enter)

  2. 於左方的樹狀結構找到以下路徑
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}

  3. 移除右方的 UpperfiltersLowerfilters

  4. 重新啟動您的電腦。


資料來源:
Microsoft 技術支援服務:從電腦中移除 Adaptec Easy CD Creator 之後,無法存取 CD-ROM,並且在裝置管理員中發生「錯誤碼 31」錯誤訊息

» 【Bug】halt: Unable to iterate IDE devices: NO such file or directory

凍仁在灌了無數台 Server 終於踢到鐵板啦,沒想到 Mr.曾 的準系統灌完 Ubuntu Server 8.041 後會無法正常關機,更冒出 halt: Unable to iterate IDE devices: NO such file or directory 的錯誤訊息,Google 大神說:只要小小改幾個字就能 K.O. 他啦 :p

修改前

jonny@ubuntu:~$ sudo vi /etc/init.d/halt
......

# See if we need to cut the power.
if [ "$INIT_HALT" = "POWEROFF" ] && [ -x /etc/init.d/ups-monitor ]
then
    /etc/init.d/ups-monitor poweroff
fi


修改後
jonny@ubuntu:~$ sudo vi /etc/init.d/halt
...

# See if we need to cut the power.
if [ "$INIT_HALT" = "POWEROFF" -a -x /etc/init.d/ups-monitor ]
then
    /etc/init.d/ups-monitor poweroff
fi


之後在 kernel 後加上 acpi=force 參數
jonny@ubuntu:~$ sudo vi /boot/grub/menu.lst
...
title         Ubuntu 8.04.1, kernel 2.6.24-19-server
root         (hd0,0)
kernel     /boot/vmlinuz-2.6.24-19-server root=UUID=6fc5208a-da63-4108- 9af5-21e809c3b5cd ro quiet splash
acpi=force
initrd       /boot/initrd.img-2.6.24-19-server


關機並測試
jonny@ubuntu:~$ sudo shutdown -h now

ps:除了 shutdown 還有 halt 、poweroff .. 等關機指令可用 :P


資料來源:
LinuxSir.Org:Ubuntu 7 無法關機

» 【Server】php5-gd 無 imagerotate()

凍仁四下時幫曾老大管的 Server 最近因為改版的關係需用到 php5-gd 套件裡的 imagerotate function,爬了下文只好重編 php5 ..(沒想到凍仁第一個編的套件居然會是 php5)

.... 做個筆記晚點再補囉

freetds-dev,libbz2-dev,libcurl4-openssl-dev libcurl-dev libdb-dev libedit-dev libfreetype6-dev libgcrypt11-dev libgd2-xpm-dev libgmp3-dev libjpeg62-dev libmhash-dev libmysqlclient15-dev libncurses5-dev libpam0g-dev libpng12-dev libpspell-dev librecode-dev libsasl2-dev libsnmp-dev libsqlite0-dev libt1-dev libtidy-dev libtool libwrap0-dev libxmltok1-dev libxml2-dev libxslt1-dev quilt re2c unixodbc-dev


http://140.127.138.40/newF3/reg.php


資料來源:
Ubuntu下安裝php5-gd無法使用imagerotate

» 【Firefox】修復無回應的大量 Script

Firefox 用久了,常會跑出「此頁面可能含有大量的 Script 」之訊息,然後不管是選擇停用 Script還是繼續都有機率的當掉(在 Ubuntu 底下就是常見的畫面黑掉 → 程式沒反應 → 自動關閉 ... Orz)。尤其像凍仁這樣把 Extension(擴充套件) 裝一堆,凡事靠 Firefox 解決的玩家更容易遇到這種問題。

解決方法:
1. 開啟 Firefox 組態設定
網址列輸入 about:config (使用 FX3 的玩家記得要發誓喔:P)

2. 在篩選條件輸入 dom.max_script_run_time 之後將它的10 修改為 20 100

3. 若無此項請自行新增
右鍵 → 新增 → 整數 → 偏好名稱=dom.max_script_run_time → 型態=整數 → 值=20 100

4. 重新啟動 Firefox

這是因為 Firefox 對讀取 Script 的時間不夠長所造成的,加上套件裝的越多要載入的東西越多。吃不消的 Firefox 就開始罷工(unresponsive).. 簡單的說,就是要多給點緩衝的時間... XD

PS:若是一開啟 Firefox 就馬上遇到這類問題的 Firefox User 不妨先將 Tab Mix Plus 套件停用看看,它的胃口可不小呢!

資料來源:
Fix Firefox unresponsive script warnings

support:

biggo.com.tw

biggo.sg

A Django site.