原本以為linux的硬體相容性很高,至少好幾年前買的Asus USB無線網卡應該是要可以用的,結果,並不是我想的。不支援,就是不支援。
還好知道這支無線網卡的晶片是SiS162U,就上網Google了一下,發現大家都是用ndiswrapper來裝上Windows的驅動程式,然後讓它運作。
我裝的是ndisgtk這個GUI程式,安裝以後,執行ndisgtk,然後安裝sis162的windows驅動程式,就…大功告成了嗎?
不是,因為我用的sis162 windows驅動程式不知道有問題還是太舊,查了好久,後來我是去SiS官方網站抓了最新的105版的驅動程式下來裝,就沒問題了!!
所以碰到只有Windows驅動程式而Linux不支援的時候,可以用ndiswrapper + ndisgtk 試試看,也許就起死回生。
讀Debian新維護人員手冊
讀Debian新維護人員手冊記下的:
- 比較版本:dpkg –compare-versions ver1 op ver2
- 添加環境變數到 .bashrc 以供識別:
DEBEMAIL=your.email.address@example.org DEBFULLNAME="Firstname Lastname"
- dh_make 可以快速的從一個 tarball 產生出 tarball 副本跟 debian 目錄,如:dh_make -f ../gentoo-0.9.12.tar.gz
- control裡的內容,如分類、權重…等可參考 Debian Policy Manual
- 可以用 dpkg-depcheck -d ./configure去檢查相依性,或者用 objdump -p foo | grep NEEDED 去看用了哪些 library
- changelog 可以參考Debian Policy Manual, 4.4,是主要定版號的地方。
- rules 可以用 fakeroot debian/rules target 來執行裏面的特定 target
- 可以用 debuild 來自動化,在 .devscripts 裡添加
- DEBSIGN_KEYID=”keyID”
- DEBUILD_LINTIAN=yes
- DEBUILD_LINTIAN_OPTS=”-i -I –show-overrides”
,然後 debuild -sa、debuild clean
- 檢查套件:
- debi xxxx_i386.changes
- lintian -i -I –show-overrides xxx_i386.changes
Run MiPony on Linux(wine)
因為看到MiPony可以快速下載freakshare.net的檔案,所以就想裝來試試看~
在Linux下,只能用wine,我用的版本是1.3。你得先安裝winetricks(sudo apt-get install winetricks),然後用winetricks裝上 gdiplus, fontfix, dotnet20, ie6(winetricks gdiplus fontfix dotnet20 ie6)。接著再用wine裝上MiPony,就可以了。
目前下載了十幾個檔案,都沒問題,真是太好了!!
GNU IceCat Privacy extension安裝總是失敗
之前都沒注意,直到GreaseMonkey升級,跑不起來,才發現這事情的嚴重性。
上網找了一下,果然已經有人跳腳:http://osdir.com/ml/bug-gnuzilla-gnu/2010-12/msg00057.html
就follow裏面的提供的網址:http://kb.mozillazine.org/Installing_extensions#Global_installation ,照裏面的指示去手動解壓縮 /usr/lib/icecat/extensions/privacy_ext.xpi 到 /usr/lib/icecat/extensions/privacy_features@gnuzilla.gnu.org 就行了。
加快linux開機速度
在 1 second Linux boot to Qt! 看到的,標題超聳動,不過實際看到影片,真的是很嚇人,根本就是瞬間就開好了。投影片在這裡:The Right Approach to Minimal Boot Times
這個 topic 前兩年很熱門,當然啦,現在因為 Android 的關係,應該會更熱。下面是我看完的一些紀錄跟想法:
- 使用 Arjan van de Ven 對 kernel aync 的 patch
- 把不重要的 module 改成 loadable
- 修改init/do_mounts.c以提早mount root
- 修改init/main.c裡的init_post,看了以後,我想應該是避免掉open /dev/console還有移掉不必要的步驟以提速。
- improve memcpy (這我不知道是哪裡的,要再查看看)
- reduce kernel size:這可以加快 u-boot 載入時間。一般手段就移掉不必要的driver/module。
- reduce u-boot delay time:u-boot 預設有 delay time,這可以改掉
- kernel 壓縮或不壓縮:用zImage的話可以減少kernel大小,可是要評估解壓縮時間跟載入時間的平衡來決定壓縮或不壓縮。
- 利用 gcc 的 –finstrument-functions –function-sections 去 profile function 的時間 (簡報說加了這兩個 argument,就可以在 __cyg_profile_func_enter/__cyg_profile_func_exit 裡放 code,這個要鑽研 gcc 試試看。)
- 利用ubootchart/bootchart.org工具來測時間。
參考資料:
fcrackzip
正愁不知道怎麼破解密碼,就丟 ubuntu brute zip password extract 這些字到 google 去找,想不到立馬就找到Ubuntu Geek上的這篇:Howto Crack Zip Files Password,用 apt-get 就可以裝好。
使用也很簡單 fcrackzip your_file.zip 就行了。要縮小範圍的話,可以參考 -h 的說明,指定參數來縮小範圍、加快解密的速度。
打包gcin到ppa的心得
我是沿用1.4.6由kanru所寫的debian目錄,kanru大似乎沒考慮到64bit的部份,放到ppa的時候,因為會build出各種arch的版本,所以就需要處理。
我碰到的問題是在於目錄名稱,32bit是lib,而64bit則是lib64,在debian/rules裡,我用 DEB_BUILD_ARCH_BITS 來決定是處理lib64或是lib,原來的gcin.install也改用gcin.install.in,然後用sed來替換,產生gcin.install:
# 略...gcin是先裝到debian/tmp下,後續再用搬目錄方式,搬到debian/gcin下,這個target跑完,dpkg-buildpackage會去包debian/gcin下的檔案。 if [ "$(DEB_BUILD_ARCH_BITS)" -eq "64" ]; then \ mv debian/tmp/usr/lib64/gtk-2.0/immodules/* debian/gcin/usr/lib/gtk-2.0/$(GTKVER)/immodules/ ;\ else \ mv debian/tmp/usr/lib/gtk-2.0/immodules/* debian/gcin/usr/lib/gtk-2.0/$(GTKVER)/immodules/ ;\ fi # 略 if [ "$(DEB_BUILD_ARCH_BITS)" -eq "64" ]; then \ sed -e s,@LIBDIR@,lib64, debian/gcin.install.in > debian/gcin.install ; \ else \ sed -e s,@LIBDIR@,lib, debian/gcin.install.in > debian/gcin.install ; \ fi # 略
另外,則是遇到無法上傳的問題,說是因為檔名重複,就被reject掉了,後來是在debian/changelog裡,讓”檔名-版本”的後面多加-lucid0, -lucid1, -maverick0, -maverick1…的方式,硬解了,不知道是不是正解…
如果你需要最新版的gcin,除了Tetralet包的版本之外,也可以試試我包的:
sudo add-apt-repository ppa:elleryq/gcin sudo apt-get update sudo apt-get upgrade
編譯gcin
我的環境是 Ubuntu 10.04/10.10。
首先到gcin source code 下載處 下載原始碼,就解開。
確定已經裝了 libgtk2.0-dev, libxtst-dev, libqt4-dev, libanthy-dev 這幾個套件,libqt3-mt-dev可以不裝,大多數的QT應用程式應該都升級到QT4了。
然後就執行 ./configure、make、sudo make install 三部曲。
但是 make 時,應該會吐找不到 /usr/lib/qt4/bin/moc 的錯誤,我不太清楚為什麼要用這個目錄下的,至少,我的環境是找不到,也許 debian 是放在那兒也不一定。這個檔案是在 /usr/bin/moc-qt4,所以把 qt-im/Makefile 、 qt4-im/Makefile 裡的 /usr/lib/$(QT)/bin/moc 改為 /usr/bin/moc-$(QT) ,接著再重新編譯、安裝就沒問題了。
xml2
今天把 conky 裝起來,然後參考了 To-Dos, Weather, and Twitter on a Linux Desktop 來改,不過,文章裡用的是英國BBC氣象資料,也搞不清楚地區代碼是哪個,所以就乾脆去看中央氣象局的網站,看有沒有資料可以直接撈。
現在中央氣象局網站做的不錯,已經有提供 RSS 了,所以就拿 RSS 來 parse。可是,你知道 RSS 其實是 XML,要parse XML總是麻煩,想在一行之內做完,看來是不太可能。
就想說找一下,看有沒有現成的工具可以用,就用 apt-cache search xml 來找。找的結果,發現有個 xml2 的套件,說明說是 Convert between XML, HTML, CSV and a line-oriented format,應該是合用,就裝上試試看了。
xml2 就很簡單把 xml 轉成文字檔,結果大致是這樣 tag1/tag2/tag3…=node value
所以接著就可以用 awk 開刀了:
curl -s --connect-timeout 30 "http://www.cwb.gov.tw/rss/forcast/36_04.xml" | xml2 | awk -F '=' '/^\/rss\/channel\/item\/title/{print $2;}'
這樣,就可以得到目前的天氣了。用bash真的是很好處理東西~
wine的慘事

有用 wine 跑 win32 application 的人都知道,常常會遇到 .dll 缺東缺西的。這一天,我自作聰明地就想,反正裝的是雙系統,如果把 .wine/drive_c/windows 跟 .wine/drive_c/Program files 直接指向 windows 分割區裡的 windows 跟 Program files 資料夾的話,應該就萬無一失了吧~
所以立馬就先把 .wine/drive_c 下的 windows 跟 Program files 更名,做 symbolic link 連到 windows 分割區下的 windows 跟 Program files,接著就跑 excel 試試看。哈哈~我真是太聰明了,果然可以執行,但是有一些錯誤產生,後來想說還是照網路上的教學文件,用 winetricks 裝上必要的元件,然後直接裝 office 2003 好了。所以就把 symbolic link 移除掉,把之前更名的資料夾改回原名,進行安裝。這次就可以順利跑起來了,不過沒有詳細去試。
然後,就想說要回 windows 去收信,結果,悲劇就發生了,Windows 一直重開機、一直重開機…試著用安全模式開進去,不行,也是會重開機。我猜想,應該是某些檔案被覆蓋或被修改了,所以我重回到 Linux 下,把 .wine 更名,然後執行 wine,看 wine 到底在 .wine 下產生了什麼檔案。我根據這些產生的檔案,去另外一台完好的 windows 下把這些檔案複製回來,放到 windows 分割區對應的路徑下。哈,這次可以進安全模式了,可是如果以正常模式開機,還是會一直重開機。既然可以進安全模式了,那麼,系統還原就派上用場,不過,只有一次,因為在windows還活著的時候,我把保留給系統還原的空間砍到最少。不幸的是,還原的結果是….失敗。
啊!!!!!沒辦法了,重灌吧!!!鄉親啊,千萬不要學我這樣子啊!!!