Tommy 碎碎念

Tommy Wu's blog

patch for FileZilla 3.4.0 win64 version
post by tommy @ 07 四月, 2011 14:41

雖然 ftp client 這東西, 似乎沒什麼必要特地使用 64 位元的版本, 不過.... 還是弄了一個 FileZilla win64 的版本來試看看. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
win64 的程式執行時出現 0x000007b 錯誤
post by tommy @ 06 四月, 2011 17:22

最近試著用 mingw64 (其實是用 TDM64-GCC) 來產生 win64 版本的 FileZilla, 不過.... 弄了兩三天, 雖然可以產生 filezilla.exe, 不過一執行就會出現 0x000007b 的錯誤.

用 google 找了一下, 發現這問題通常發生在 64 位元的執行檔, 少了某些 DLL 或使用到某些 32 位元的 DLL 所造成的.

不過.... 我用 Process Explorer 查看了一下所產生的 filezilla.exe 的執行狀態, 並沒有發現有用到 32 位元的 DLL, 且用 dumpbin 或 objdump 查看, 也沒有發現有少那些 DLL.

最後看到了這篇文章,  發現除了 DLL 外, 在 resource 的產生上頭, 也可能會有產生這類混用的情形. 果然在 filezilla 的 windows_manifest.xml 裡頭, 發現 processorArchitecture 是設成 x86, 所以產生的 resource 會是給 win32 使用的, 在製成 win64 的程式時, 一執行就會有 0x000007b 的錯誤.

把 processorArchitecture 改成 * 或 amd64 (建議用 * 就可以, 這樣可以 win32/win64 通用), 果然產生的檔案就可以正常的執行了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
MinGW 使用 gcc 4.5.x 產生的執行檔需要 libgcc_s_dw2-1.dll 與 libstdc++-6.dll 才能執行?
post by tommy @ 24 三月, 2011 15:14

這兩天為了編譯 SciTE (以前都是 VC++ 來編譯), 所以把使用的 MinGWgcc 升級到 4.5.x, 結果, 發現產生的執行檔在執行的時候, 需要 libgcc_s_dw2-1.dll 與 libstdc++-6.dll 才能運作. 網路上查了一下, 發現 gcc 4.5 預設對所有函式庫的連結方式都改成動態連結, 所以做出來的執行檔依據所使用到的函式庫, 往往會需要一些原本不存在 Windows 系統的 dll 才能正常運作.

 (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
MSYS 的 iconv.exe --silent 無法正常運作?
post by tommy @ 24 三月, 2011 13:18

這幾天把我用來編譯 filezilla3MinGW/MSYS 環境改成 gcc 4.5.x (之前是用 gcc 3.4.5), 結果在處理 libgpg-error 時, 會停在這個訊息:

make[3]: Entering directory `/usr/src/libgpg-error-1.10'
set -e; \
for i in $(./potomo --get-linguas ./po); do \
/bin/mkdir -p "/usr/local/share/locale/$i/LC_MESSAGES" || true; \
rm -f "/usr/local/share/locale/$i/LC_MESSAGES/libgpg-error.mo" \
2>/dev/null || true; \
./potomo ./po/$i.po \
"/usr/local/share/locale/$i/LC_MESSAGES/libgpg-error.mo" ; \
done
potomo: '
./po/cs.po' keeping UTF-8
potomo: '
./po/de.po' keeping UTF-8
potomo: '
./po/fr.po' keeping UTF-8
potomo: '
./po/it.po' keeping UTF-8
potomo: '
./po/nl.po' keeping UTF-8
potomo: '
./po/pl.po' converting from ISO-8859-2 to utf-8

查看一下執行的指令, 應該是執行 iconv.exe (會一直使用約 12% 左右的 CPU), 放著不管跑一晚上, 也跑不出結果.

potomo 是一個 bash 的 script, 所以看了一下這地方是處理是:

case "$fromset" in 
utf8|utf-8|UTF8|UTF-8)
echo "potomo: '$infile' keeping $fromset" >&2
msgfmt --output-file="$outfile" "$infile"
;;
*)
echo "potomo: '$infile' converting from $fromset to utf-8" >&2
iconv --silent --from-code=$fromset --to-code=utf-8 < "$infile" |\
sed "/^\"Content-Type:/ s/charset=[a-zA-Z0-9_-]*/charset=utf-8/"|\
msgfmt --output-file="$outfile" -
;;
esac

試著自己把那個 iconv 指令, 果然會停住. 試了一下, 把 --silent 拿掉就正常. 看一下 iconv --help 的說明, --silent 與 -s 是一樣的意思. 同一個指令, 改用 -s 來取代 --silent, 結果居然可以正常執行. 真是一個奇怪的問題.

如果你有碰到 iconv 跑不出來的問題, 可以看看有沒有用到 --silent 吧, 改用 -s 試看看吧.

Del.icio.us Furl HEMiDEMi Technorati MyShare
phpmsnclass v1.10
post by tommy @ 16 二月, 2011 19:25

更新 phpmsnclass 版本為 1.10. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
網路升級到 16M/8M 固定制 (6IP)
post by tommy @ 31 十二月, 2010 23:24

上個星期發現之前中華電信詢問的 16M/8M (固6) 可以申請了, 而且只要 2800 元. 以原本我用的 10M/2M (固6) 就要 2400 (扣掉優惠約 2350 吧) 來看, 這個價格實在太有吸引力了.

回台灣後, 隔天馬上打電話去 0800-080-365 去詢問 (網路與營業處還沒有這個方案, 目前一定要打電話去問), 請他們 email 給我一份申請書, 填好後馬上到附近的中華電信營業處去申請升級.

原本星期一現場人員要來裝機, 結果發現小姐沒有幫我保留原來的 IP, 就先退回. 然後星期二換機房人員打電話來說可以幫我更改速度並保留原 IP, 但... 發現仍需要現場有人要幫忙換個 port.... 就再拖了一天. 總算星期三, 兩邊的人都談好了, 中午左右來施工約一個小時後, 終於完工了.

目前就是用 16M/8M 的網路... 光想到只多花了 400 元, 就把上傳變成原本的 4 倍 (2M -> 8M), 實在很划算. 建議使用 10M/2M (固6) 的使用者, 都可以升級到 16M/8M.

Del.icio.us Furl HEMiDEMi Technorati MyShare
用 MPC-HC 看 .asf 檔案時會停格
post by tommy @ 31 十二月, 2010 23:14

這個月幫老婆的車子裝了一個行車記錄器, 產生的檔案是 mpeg4 編碼的 .asf 檔案. 發現拿到我的電腦上頭用 MPC-HC 播放時, 會有停格的現象. 難道是我的電腦等級太差? 可是它可是一台 i7 的筆電, 加上平時播放一堆 1080p 的檔案都很正常, 實在想不出為什麼.

原本還以為是機器有問題, 錄的時候就停格, 還問了賣家要怎麼處理, 結果... 在退回去前, 用轉檔軟體轉成 h264 的影片, 發現不會停格了. 所以.... 不是錄的問題, 真的是我的電腦播放時造成的停格.

後來發現有人在 MPC (或 MPC-HC) 上頭, 也有類似的問題 (不是 .asf 的檔案). 發生問題時, 似乎都是使用 EVR 自訂的這個視訊輸出, 只要改成 EVR Sync 就可以正常播放. 試了一下 (記得把 MPC-HC 關閉再打開), 果然不會停格了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
bsdiff 處理某些大檔案無法產生檔案的問題
post by tommy @ 02 十二月, 2010 10:05

前一陣子在製作 i8000 的 rom 時, 有利用 bsdiff 來產生比較小的 patch 檔案, 這樣子有些小差異的大檔案, 就可以用一個大檔案加上一些小小的 patch 檔案來取代. 可以節省不少空間.

不過後來幾次, 在 Windows 下執行 bsdiff 指令時, 常常跑一陣子後, 程式就結束, 並沒有產生任何 patch 的檔案, 也沒有任何的錯誤訊息. 在找不出原因時, 就試著把相關檔案丟到 linux 上去處理, 結果.... 試了好幾台機器, 都是一樣的結果. 後來終於在某一台主機上頭, 可以正常處理 (不過.... 似乎也看不出為什麼就這台可以, 其他的不行).

最近比較空閒, 就試著在 VC 裡頭用 debug mode 來跑, 最後好像有出現 stack overflow 的訊息. 看了一下 source code, 這程式是利用遞迴的方式來處理, 所以, 當檔案比較大的時候, 在某些情形下, 可以會造成遞迴次數過多, 而每次函數在呼叫時, 內部的變數是用 stack 來處理, 所以, 次數過多的確可能會造成 stack overflow.

VC 預設的 stack 大小為 1MB, 我們可以利用 /STACK 來指定所要的大小, 在這個程式上, 我設成 /STACK:1000000000 就可以處理我目前所有的檔案 (多數在 100-200MB).

Del.icio.us Furl HEMiDEMi Technorati MyShare
pietty 終於可以取消 session 過多時所出現詢問刪除舊 session 的問題了
post by tommy @ 25 十一月, 2010 10:37

由於公司的機器愈來愈多, 所以... 在 pietty 裡頭所儲存的 session 也跟著變多了. 不過.... 在之前版本的 pietty, 在超過 40 (好像是) 個 session 之後,  每次執行就會跳出來一個對話盒詢問是否要刪除舊的 session, 每次都要多按一個取消才能用, 總覺得有點麻煩.

剛好今年作者終於繼續釋出新的版本, 因為多了 portable 的功能, 和上頭所說的這個問題剛好出現了一個小 bug, 會產生一個空的 .ini 檔案, 造成原本不是 portable 的版本變成 portable 版本而找不到儲存在 registry 的 session.

所以就跟作者回報了這個問題, 順便建議是否可以取消那個 session 數量的檢查或讓使用者決定超過多少再詢問.

感謝作者接受這個建議, 在目前的 0.4 beta 14 版本中, 已經不會詢問了 (其實我覺得好像沒改好, 依照作者所說的, 應該是在 Connection 選單下有個 Auto Clear Old Sessions 可以選擇要不要詢問刪除, 不過... 我試的結果, 不管有沒有選擇這功能, 都不會詢問). 

Del.icio.us Furl HEMiDEMi Technorati MyShare
VPN 連線時使用 ssh 常常沒回應?
post by tommy @ 25 十一月, 2010 10:30

改用 Shrew Soft VPN Client 也一陣子了, 原本用起來都很正常, 但是最近常常發現在 VPN 連上後, 使用 pietty 來連線時, 常常一個指令打完按 enter 之後, 回應的畫面顯示一半就不動了.... 可是看起來 VPN 又沒有斷線, 就單純那個 session 不動了.

找了半天找不出原因, 後來就開始看 VPN client 上頭那一些設定, 發現 MTU 的設定好像與之前習慣用的不同, 改回成 1326 後, 似乎就解決這個問題了, 因為改了之後到目前為止, 並沒有發生過類似的問題.

Del.icio.us Furl HEMiDEMi Technorati MyShare
ATEN CS1708i
post by tommy @ 23 十一月, 2010 15:44

由於家裡那個用了應該有十年的 4 port KVM (這東西當初買還很貴, 記得好像八千多, 這幾年同樣功能的東西似乎就便宜多了) 上個月要使用時發現不能用了, 由於常年在外, 所以就順便考慮 KVM over IP 之類的產品 (反正之前 Power over IP 也買了, 這樣子才能完整的遠端控制), 這樣子以後機器就算出了問題, 我還是可以在遠端操作. 網路上找了一下, 這類的產品的價格, 好像由幾年前的 2-3 萬降成 1-2 萬, 買起來比較不會心痛. 比較一下價格與品牌, 就選了 ATEN CS1708i 這個產品 (18000 未稅, 含機器與一條 PS2 連接線與八條 USB 連接線).


這次回台後, 把機器裝了起來, 有幾點心得:

  • 不知道是不是與我的舊銀幕不相容, 還是我那兒有接錯 (也許第一個 port 一定要接?), 在 local 端的畫面, 登入之後, 會出現幾秒後就整個變黑幾秒然後畫面又出現, 就這樣一直循環, 使用上不怎麼方便. (不過我好像也有碰到一陣子都正常的情形.... 真不知道是那兒有問題, 由於沒抄下序號, 目前也無法上官方的支援網站問問題... 等下個月回台再說吧)
  • web 的介面怪怪的, 我用 firefox 時, 在輸入使用者與密碼後, 就沒有回應了. 使用 IE 時, 只有一次出現登入後的主畫面, 不過我選了某個功能後, 一樣就沒有回應了. 目前就乾脆把 web 的功能關了, 直接用 windows 的 client 來使用.
  • 使用 USB 連接線時, 主機的 CMOS 設定要把 USB keyboard/USB Mouse 的支援打開才能正常使用, 而且作業系統必須也支援 USB HID 才可以 (我之前用的 kernel 都沒把這納入, 所以還有重新 build 一版 kernel 來用).
  • 與技嘉的 G33-DS3R (試過新的 F7L BIOS) 似乎有些不相容. 如果把 CMOS 設定的 USB Keyboard支援打開後, 的確可以在開機的那時正常使用, 不過進到 Linux (支援 USB HID) 之後, 就會重開機. 我試了一陣子就放棄了. 直接用 PS2 的連接線來避開這個問題.
  • Windows Client 的程式似乎不能縮放畫面來用, 如果進到 X 使用, 那個畫面會大於我的筆電 (話說現在筆電都弄成 16:9 的格式... 高度有點小, 用起來真不習慣), 不過還好多數都是用 console 的畫面, 還不至於太大.
  • Windows Client 如果不是在 LAN 使用, 而是在 internet 使用時, 常常按鍵會按一下出現好幾個字, 打字時都要小心一個字一個字慢慢打.

怎麼好像都是在說缺點? 因為這東西好像也沒什麼優點好說, 最大也最主要的優點就是可以遠端看到畫面與控制鍵盤滑鼠. (其實主要也就是用來做進到系統之前的操控, 畢竟進到系統後, 就能透過一般的協定來操作了, 也用不到這類的產品了)


2011/01/03:

 

這幾天換了一台螢幕, 看起來原本那個畫面幾秒就會變黑的問題沒有再出現了, 也許真的是螢幕的問題或是不相容吧.

Del.icio.us Furl HEMiDEMi Technorati MyShare
升級 udev 造成開機時找不到硬碟?
post by tommy @ 23 十一月, 2010 15:25

前不久把家裡一台 firewall 的機器由 Debian stable (Lenny) 升級到 testing (squeeze), 結果, 上個月回台灣時, 在準備出國的前一年重開機發現無法正常開機了. 不過... 要處理時, 發現 KVM 掛了, 畫面與鍵盤的運作都不正常, 當下並沒有時間處理, 就決定關機, 等這個月回台時再處理吧. (運氣不好, 這段時間碰到一次家裡的網路連不上.... 只剩一台 firewall, 所以沒辦法判斷是中華電信的問題還是我自己的 firewall 掛了, 造成幾天連不上, 後來網路報修, 還好是中華電信的問題, 他們那邊處理後就可以連線了) (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Zend 終於推出支援 php 5.3 的 ZendGuard loader 了
post by tommy @ 23 十一月, 2010 14:08

在 PHP 5.3 發行近一年半之後, Zend 這家公司 (拖了這麼久, 真懷疑這家公司底層的工程師是不是跑光了, 目前 PHP 用的 Zend Engine 應該是他們家開發的沒錯吧), 終於釋出了支援 PHP 5.3 的 ZendGuard loader (之前叫做 ZendOptimizer) 了.

需要的人可以到這兒下載: http://www.zend.com/en/products/guard/

不過....  連帶 ZendGuard 也要改用 5.5 的新版本才能產生給 PHP 5.3 使用的加密檔案. 不知道授權過期的版本還能不能免費升級, 也許又要再買一次吧. (我們公司買的授權剛滿一年, 倒是還可以用在新的版本上頭)

Del.icio.us Furl HEMiDEMi Technorati MyShare
i8000 製作 rom 要如何更換核心
post by tommy @ 17 九月, 2010 11:25

說明一下替換新的核心與 SYS 的方式, 以 I8000NXXJH2 與 23133 為例子. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
I8KHZHJH2LT 20100915 (6.5.3 繁體中文)
post by tommy @ 15 九月, 2010 22:59

這是用基於 I8000NXXJH2 版本所製作, 核心改為繁體中文 23133 (wm 6.5.3) 的精簡版本.
由於繁體中文介面使用 I8000HZHJC2 裡頭的 .0404.mui 檔案, 與 JH2 裡頭的版本可能有些許差異, 所以... 如果你在執行三星的部份程式, 若有訊息無法顯示或出現英文訊息時, 算是正常的....

這個 rom 的 pagepool 是 10MB, 如果你需要比較大或比較小的 pagepool 的話, 請自己用 wes58 所製作的 romtool 3.0.1 版本來修改.
如果不會... 可以參考這個說明: http://www.modaco.com/content/i8000-omnia-ii-gsm-rom-discussion/313978/tutorial-how-to-change-the-pagepool-to-your-liking/

精簡的程式與 I8000NXXJH2 LITE 類似, 詳細的資料請自行找 I8000NXXJH2 LITE 的文章看.
 (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Avira AntiVir 10 無法自動更新?
post by tommy @ 23 八月, 2010 15:51

這是個很奇怪的問題, 似乎不是每個人都會碰到, 但是看網路上的回應, 似乎碰到的人也不少.

基本上, 免費版本的 AntiVir 應該每天會更新一次, 如果需要比較多次的更新, 還可以在排程裡頭自定新的更新. 不過... 在升級到 10 版之後, 常常碰到無法更新的情形. 查看 AntiVir 的記錄, 並不是有去更新而失敗, 而是完全沒有去執行更新的動作.

如果你有類似的情形, 可以選擇手動的更新. 而 AntiVir 也提供一個 update.exe 指令, 可以簡單的去做更新的動作. 預設執行 update.exe 會去做更新的工作, 但不會有任何的訊息 (查看 AntiVir 的 Log 或 Event 會有記錄), 如果需要查看更新的狀態, 也可以加上 /dm=0 這個參數, 就會顯示更新的視窗.

也因為 AntiVir 本身的排程怪怪的, 所以, 我們可以利用 Windows 本身提供的工作排程器, 執行下面這個指令:

C:\Program Files\Avira\AntiVir Desktop\update.exe /DM=2 /NOMESSAGEBOX /receivetimeout=180

或 (64 位元系統下):

C:\Program Files (x86)\Avira\AntiVir Desktop\update.exe /DM=2 /NOMESSAGEBOX /receivetimeout=180

利用 Windows 的工作排程器還有個好處, 就是可以自己想多久更新一次都可以, 所以... 如果有更新的問題,  可以自行加上這個更新的行程會比較好一些.

 

Del.icio.us Furl HEMiDEMi Technorati MyShare
PerfectDisk 的 offline defragmentation 無法正常使用?
post by tommy @ 21 八月, 2010 12:26

最近朋友的電腦突然發現原本可以使用的 PerfectDisk offline defragmentation 功能無法使用, 每次只要選擇這個功能, 重開機後就會停在 Windows 開機的畫面, 且硬碟燈一直閃, 不過看起來不太像是在做 defrag 的動作, 因為放了好幾個小時還是一樣的情形, 就只能關機重開. 重開後可以正常進入 Windows, 不過會跳過 defrag 的動作.

Google 查了一下, 發現這篇文章, 原本有些驅動程式會造成這個問題. 不過, 下載了那個 BlockedFileList.exe 並安裝之後, 情況並沒有改善. 詢問了一下朋友, 發現最近應該只有把 OpenVPN 由 2.1.1 升級到 2.1.2, 看來也許是這個軟體造成的.

查了一下 OpenVPN 安裝的驅動程式, 試著把 tap0901.sys 加到  HKLM\SYSTEM\CurrentControlSet\services\DefragFS\Parameters 裡頭的 BlockedFileList 裡頭. 果然就解決了這個問題.

如果有類似的問題, 試著看看是那個驅動程式造成的吧.

Del.icio.us Furl HEMiDEMi Technorati MyShare
奇怪的 pure-ftpd 錯誤: (?@?) [ERROR] Sorry, invalid address given
post by tommy @ 16 八月, 2010 14:24

今天在辦公室要連回家裡的 ftp 抓些檔案時, 突然發現無法連線的錯誤, 在 FileZilla 會看到連線之後, 出現 425 Sorry, invalid address given 的訊息. 找了半天也查不出原因. 不過.... 奇怪的是, 另一台電腦連線回去又可以正常連線. 所以... 看起來不像是 server 的問題, 而是 client 的問題.

不過... 這台不能連的機器, 昨天還可以正常連線, 為什麼今天就不能用呢?

後來在 Google 看到了這篇文章, 指出 pure-ftpd 在反解 client 的 IP 出錯時, 會出現這個訊息. 依照說明, 加上 -H 參數 (如果用 Debian 系列, 在 /etc/pure-ftpd/conf/DontResolve 加上 yes 就可以了) 之後, 果然可以正常的連線了.

PS. 我記得反查失敗應該還是可以正常使用才對, 畢竟另一台電腦也應該反查不會有任何結果, 而宿舍的 ADSL 也應該一樣, 不過都可以正常連線. 只有今天早上才碰到這問題.... 也許是今天上層的 DNS 有點問題造成的吧. 

Del.icio.us Furl HEMiDEMi Technorati MyShare
新玩具 ThinkPad W510
post by tommy @ 01 八月, 2010 10:57

原本用的 T60 在去年底過保了, 雖然還可以使用, 效能也還算不錯, 不過.... 因為記憶體只能用到 3G, 在跑 VM 時, 總覺得有點不夠用, 所以, 還是決定換台機器來用. 找來找去, 最後決定買台 W510 來用. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
unlock i8000
post by tommy @ 09 六月, 2010 08:28

這個 unlock 應該與一般電信商的鎖機沒什麼關係才對, 不過.... 也不知道為什麼會出現鎖 SIM 卡的訊息. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
I8000NXXJE1 LITE 20100511
post by tommy @ 12 五月, 2010 19:33

This is a lite (or ultralite) rom based on I8000NXXJE1.
I only test this in English, and the MUI files for other languague are removed from rom.
If you need other language, or you want to add some package to rom, or want to remove some files from rom, please build a new one by yourself. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
i8000 簡單製作自己的 lite rom
post by tommy @ 19 四月, 2010 10:30

基本上, i8000 rom 的製作應該不算是一件困難的事, 不過的確是一件很繁瑣的事情, 通常是一些檔案的比對與搬移動作, 由於每次做的動作都差不多, 所以這些動作應該可以利用程式來處理, 所以, 我就寫了這個小程式來處理, 透過這個方式, 要製作 i8000 的 rom, 就變成很簡單了. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
I8000NXXJD1 LITE 20100401
post by tommy @ 10 四月, 2010 22:41
2010/04/10

This is a lite (or ultralite) rom based on I8000NXXJD1.
I only test this in English, and the MUI files for other languague are removed from rom.
If you need other language... you can try it, it might work, or build a new one by yourself. (閱讀全文)
Del.icio.us Furl HEMiDEMi Technorati MyShare
I8000HZHJC2 EN Lite ROM (20100323 版)
post by tommy @ 23 三月, 2010 11:15
2010/03/23

This is a lite (or ultralite) rom based on I8000HZHJC2.
 (閱讀全文)
Del.icio.us Furl HEMiDEMi Technorati MyShare
I8000HZHJC2 Lite ROM (20100321 版)
post by tommy @ 21 三月, 2010 23:24

這是基於 I8000HZHJC2 所製作的 Lite ROM.

照例提醒一下, 刷機有一定的風險, 請自行決定是否使用本人製作的 Lite ROM.
如果有因為這個 Lite ROM 所造成的任何損失, 本人概不負責. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Bad Behavior 已經阻擋了 62 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS