一肚子火...買了Q8400,想說支援VT-x,可以讓Virtualbox編譯快一點,但是事與願違阿...
開了四核,但是編譯速度跟單核差不多...(圖形化下)
但是我的Dell NB(Intel Core i5),在Win7下安裝Virtualbox跑ubuntu10.04多核心卻沒問題阿!!現在在ubuntu10.04下安裝Virtualbox來跑卻有這個大問題!!
想說會不會是ubuntu10.04太肥,那就開個文字模式來編譯,結果更是慘不忍睹...每一行文字都慢得不像話...一怒之下就換8.04.3來測試...文字模式比起10.04好太多了,但是依然要1小時才能make完8.04的kernel source code。
正在Virtualbox官網論壇找解決方法時,突然想到,會不會是因為現在那該死的kernel mode set造成的...所以8.04沒問題,10.04卻慢得可以。
就去google一下答案,果然很快就發現解決文字模式非常慢的方法:
參考網站 : 點我 (ubuntu 官方論壇)
~$ sudo vi /etc/modprobe.d/blacklist-framebuffer.conf
add "blacklist vga16fb" to blacklist-framebuffer.conf
就解決問題了...雖然文字模式不會慢的那麼離譜了...但是編譯時速度依然慢的跟烏龜一樣阿...(怒)
之後有解決方式再來寫...
嗯,不想多開文章,直接加在這。
因為我想要大一點的Console Mode,而Grub2.0與Grub1.5設定不同,故在此記錄。
~$ sudo vi /etc/default/grub
add two line
GRUB_GFXMODE=1024x768x32
GRUB_GFXPAYLOAD_LINUX=keep
~$ sudo update-grub
~$ reboot
這樣console mode就有1024x768啦
2010年12月16日 星期四
2010年11月26日 星期五
dd & skip
看i.MX51文件時,一個蠻有意思的用法,用man的話,資質駑鈍的我實在抓不到他的意思...XD
~$ man dd | grep skip
skip = BLOCKS
skip BLOCS ibs-sized blocks at start of input
文件內有一段是這樣說︰The above u-boot.bin has 1024KB padding at the head of file,for example first executable instruction is at the offset 1KB. If you want to generate a no-padding image, you need do below dd command in host.
$ sudo dd if=./u-boot.bin of=./u-boot-no-padding.bin bs=1024 skip=1
Usually this no-padding uboot image is used in the SD card, for example, program this no-padding uboot image into 1KB offset of SD card so that we do not overwrite the MBR (including partition table) within first 512B on the SD card.
看完man以及文件說明後,就可以推敲出來skip的實際用意。
用上面那個例子簡單來說︰
原本的u-boot填滿前面1KB而不使用,從1K開始的位置開始有實際資料,而後來的u-boot-no-padding,則不填滿那前面的1KB,在寫入SD Card時,則是從offset 1KB開始寫入,前面則是保留給MBR來使用(因為會用到partition table)。
~$ man dd | grep skip
skip = BLOCKS
skip BLOCS ibs-sized blocks at start of input
文件內有一段是這樣說︰The above u-boot.bin has 1024KB padding at the head of file,for example first executable instruction is at the offset 1KB. If you want to generate a no-padding image, you need do below dd command in host.
$ sudo dd if=./u-boot.bin of=./u-boot-no-padding.bin bs=1024 skip=1
Usually this no-padding uboot image is used in the SD card, for example, program this no-padding uboot image into 1KB offset of SD card so that we do not overwrite the MBR (including partition table) within first 512B on the SD card.
看完man以及文件說明後,就可以推敲出來skip的實際用意。
用上面那個例子簡單來說︰
原本的u-boot填滿前面1KB而不使用,從1K開始的位置開始有實際資料,而後來的u-boot-no-padding,則不填滿那前面的1KB,在寫入SD Card時,則是從offset 1KB開始寫入,前面則是保留給MBR來使用(因為會用到partition table)。
2010年11月22日 星期一
Chome & iBus
揪竟~會擦出什麼火花呢!?
就是...iBus在chrome上會有輸入的Bug...按下Backspace後,就無法看到輸入的字,必須要重新切換輸入法才可以再次輸入... 囧,使用上真的有時候會用得很火大...
這個大Bug還蠻容易Google到的: Google表示...
簡易說明: 因為我本身是使用ubuntu 10.04,所以這邊介紹如何在ubuntu10.04上更新iBus和安裝符合新版iBus的新酷音!
1. 加入 repository PPA address: https://launchpad.net/~shawn-p-huang/+archive/ppa
~$ sudo add-apt-repository ppa:shawn-p-huang/ppa
~$ sudo apt-get update
~$ sudo apt-get install ibus-gtk ibus-qt4 ibus-pinyin ibus-pinyin-db-open-phrase
~$ im-switch -s ibus
Logout and re-login
2. 此時只有拼音可以用...(廢話,剛才下載了一堆pinyin套件XD)
~$ sudo apt-get install ibus-chewing
就可以用iBus和新酷音~在chrome上面也沒有!
新的問題產生...選字時,會將上一次輸入的字也加入一 一...
就是...iBus在chrome上會有輸入的Bug...按下Backspace後,就無法看到輸入的字,必須要重新切換輸入法才可以再次輸入... 囧,使用上真的有時候會用得很火大...
這個大Bug還蠻容易Google到的: Google表示...
簡易說明: 因為我本身是使用ubuntu 10.04,所以這邊介紹如何在ubuntu10.04上更新iBus和安裝符合新版iBus的新酷音!
1. 加入 repository PPA address: https://launchpad.net/~shawn-p-huang/+archive/ppa
~$ sudo add-apt-repository ppa:shawn-p-huang/ppa
~$ sudo apt-get update
~$ sudo apt-get install ibus-gtk ibus-qt4 ibus-pinyin ibus-pinyin-db-open-phrase
~$ im-switch -s ibus
Logout and re-login
2. 此時只有拼音可以用...(廢話,剛才下載了一堆pinyin套件XD)
~$ sudo apt-get install ibus-chewing
就可以用iBus和新酷音~在chrome上面也沒有!
新的問題產生...選字時,會將上一次輸入的字也加入一 一...
2010年11月17日 星期三
如何透過RPMS,取得原始碼呢!?
工作要應付客戶千奇百怪的問題,所以複製相同的環境變成很重要的一個課題。
之前就有遇到一個問題,客戶端使用Fedora 14,告知我們kernel version是2.6.35。
我去kernel.org抓下kernel 2.6.35的版本來修改,但是客戶那邊卻回覆我們與他們使用的kernel不同(比較後得知)。怕有些地方會出問題,所以請我們跟他們要用相同的檔案!
原因是因為每一個發行版本都會去將使用的kernel version做自己的一些patch,像著名的RHEL(CentOS)就是patch到跟2.6.18的kernel差非常多XD
那如何取得發行版本所使用的真正kernel source呢!?
Debian系列很簡單,只要透過 apt-get source 套件名稱 即可。
Redhat系列就相對麻煩,因為必須要透過RPMS來取得source code(有錯請告知^^)。
所以進入主題了,如何透過RPMS來取得source code呢!?
1. 取得RPMS的spec
~$ rpm -ivh kernel-2.6.35.6-45.fc14.src.rpm
這時候就會有kernel source以及相當多的patch被放在 ~/rpmbuild/BUILD下面
以及被放在~/rpmbuild/SPECS下面的kernel.spec
2. 透過spec,讓rpmbuild做到將kernel patch完畢然後停止,不然等rpmbuild做完,他也會順道將BUILD底下的東西砍光...
~$ rpmbuild -bp ~/rpmbuild/SPECS/kernel.spec
-bp : Executes the "%prep" stage from the spec file. Normally this involves unpacking the sources and applying any patches.
所以就作到這邊就好! patch好的kernel source就會被放在 ~/rpmbuild/BUILD下面^^
雖然rpm -ivh *.src.rpm會將source and patch放置到BUILD下面,但是避免手動patch出錯,這樣的方式是比較快而且正確的。不然以前都傻傻的rpmbuild到make時強制中斷XD
之前就有遇到一個問題,客戶端使用Fedora 14,告知我們kernel version是2.6.35。
我去kernel.org抓下kernel 2.6.35的版本來修改,但是客戶那邊卻回覆我們與他們使用的kernel不同(比較後得知)。怕有些地方會出問題,所以請我們跟他們要用相同的檔案!
原因是因為每一個發行版本都會去將使用的kernel version做自己的一些patch,像著名的RHEL(CentOS)就是patch到跟2.6.18的kernel差非常多XD
那如何取得發行版本所使用的真正kernel source呢!?
Debian系列很簡單,只要透過 apt-get source 套件名稱 即可。
Redhat系列就相對麻煩,因為必須要透過RPMS來取得source code(有錯請告知^^)。
所以進入主題了,如何透過RPMS來取得source code呢!?
1. 取得RPMS的spec
~$ rpm -ivh kernel-2.6.35.6-45.fc14.src.rpm
這時候就會有kernel source以及相當多的patch被放在 ~/rpmbuild/BUILD下面
以及被放在~/rpmbuild/SPECS下面的kernel.spec
2. 透過spec,讓rpmbuild做到將kernel patch完畢然後停止,不然等rpmbuild做完,他也會順道將BUILD底下的東西砍光...
~$ rpmbuild -bp ~/rpmbuild/SPECS/kernel.spec
-bp : Executes the "%prep" stage from the spec file. Normally this involves unpacking the sources and applying any patches.
所以就作到這邊就好! patch好的kernel source就會被放在 ~/rpmbuild/BUILD下面^^
雖然rpm -ivh *.src.rpm會將source and patch放置到BUILD下面,但是避免手動patch出錯,這樣的方式是比較快而且正確的。不然以前都傻傻的rpmbuild到make時強制中斷XD
2010年10月5日 星期二
RALINK RT3070
最近很常用到這個模組,紀錄一下安裝方式。
~$ tar jxf DPO_RT3070_LinuxSTA_V2.3.0.2_20100412.tar.bz2
~$ cd DPO_RT3070_LinuxSTA_V2.3.0.2_20100412
由於make後insmod時會產生很多Unknown symbol,所以修改以下檔案
~$ vi os/linux/rt_linux.c
35 #endif // OS_ABL_SUPPORT //
36 #endif //RTMP_MAC_USB //
37 MODULE_LICENSE("GPL") << 加入這個
~$ make
~$ make install (雖然會產生不少錯誤訊息,但是還是讓他做一些事情 XD)
由於 rt3070sta這隻驅動在載入時會去讀 /etc/Wireless/RT2870STA/RT2870STA.dat (由 kernel message得知)
~$ mkdir -p /etc/Wireless/RT2870STA/
~$ cp RT2870STA.dat /etc/Wireless/RT2870STA/
原先kernel會載入不對得module - rt2800usb,所以必須將他disable。
將以下這幾個加入blacklist
~$ vi /etc/modprobe.d/blacklist.conf
blacklist rt2800usb
blacklist rt2x00usb
blacklist rt2x00lib
blacklist crc_ccitt
再將新的module搬到對的位置就結束了!
~$ cp os/linux/rt3070sta.ko /lib/modules/`uname -r`/kernel/net/wireless/
~$ depmod -a
重開機~結束!
~$ tar jxf DPO_RT3070_LinuxSTA_V2.3.0.2_20100412.tar.bz2
~$ cd DPO_RT3070_LinuxSTA_V2.3.0.2_20100412
由於make後insmod時會產生很多Unknown symbol,所以修改以下檔案
~$ vi os/linux/rt_linux.c
35 #endif // OS_ABL_SUPPORT //
36 #endif //RTMP_MAC_USB //
37 MODULE_LICENSE("GPL") << 加入這個
~$ make
~$ make install (雖然會產生不少錯誤訊息,但是還是讓他做一些事情 XD)
由於 rt3070sta這隻驅動在載入時會去讀 /etc/Wireless/RT2870STA/RT2870STA.dat (由 kernel message得知)
~$ mkdir -p /etc/Wireless/RT2870STA/
~$ cp RT2870STA.dat /etc/Wireless/RT2870STA/
原先kernel會載入不對得module - rt2800usb,所以必須將他disable。
將以下這幾個加入blacklist
~$ vi /etc/modprobe.d/blacklist.conf
blacklist rt2800usb
blacklist rt2x00usb
blacklist rt2x00lib
blacklist crc_ccitt
再將新的module搬到對的位置就結束了!
~$ cp os/linux/rt3070sta.ko /lib/modules/`uname -r`/kernel/net/wireless/
~$ depmod -a
重開機~結束!
linux/bounds.h No such file or directory
make clean後,會刪除一些檔案,除了.ko之外,也會刪除一些include檔
linux/bounds.h並不是一開始就在kernel source內,而是透過Kbuild產生
~$ make prepare
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CC kernel/bounds.s
GEN include/linux/bounds.h
CC arch/x86/kernel/asm-offsets.s
GEN include/asm/asm-offsets.h
CALL scripts/checksyscalls.h
linux/bounds.h就產生了。
linux/bounds.h並不是一開始就在kernel source內,而是透過Kbuild產生
~$ make prepare
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CC kernel/bounds.s
GEN include/linux/bounds.h
CC arch/x86/kernel/asm-offsets.s
GEN include/asm/asm-offsets.h
CALL scripts/checksyscalls.h
linux/bounds.h就產生了。
2010年9月28日 星期二
GL 測試
節錄於 Intel官網 一段回答
– 對於 Linux* 上的 GL,有什麼好的效能標竿測試?
常常有人建議使用 glxgears 檢查 GL 的運作,認為這是容易的方法。好處是,大多數 Linux 發行版都有附帶。可惜 glxgears 不會運用太多 GL,所以並不是很好的 GL 效能標竿。其 FPS 報告只是評量從繪圖緩衝區複製的情況。
若要嚴格測試圖形系統,反而應該使用「glblur -fps」或「sierpinski3d -fps」。這些程式附帶在 xscreensaver 套組中 (請參閱 http://www.jwz.org/xscreensaver,但請從您所用發行版的軟體庫或從 http://rpmfind.net/linux/rpm2html/search.php?query=xscreensaver 下載二進位檔案)
這裡的 -fps 選項會顯示 CPU 負載數字並附上 FPS 報告。Glblur 會使 CPU 負載保持在高而穩定的狀態。Sierpinski3d* 會透過使用的多邊形數量,使其負載發生變化。多邊形增加到 4,096 時,其負載上升到高於 glblur 的負載,而 sierpinski3d 的 FPS 就會下降。
ubuntu使用apt-get install xscreensaver-gl時,並不會安裝glblur以及sierpinski3d,所以重新取得source code並compile成可執行檔。
但是不太懂他的數據,之後再研究。
– 對於 Linux* 上的 GL,有什麼好的效能標竿測試?
常常有人建議使用 glxgears 檢查 GL 的運作,認為這是容易的方法。好處是,大多數 Linux 發行版都有附帶。可惜 glxgears 不會運用太多 GL,所以並不是很好的 GL 效能標竿。其 FPS 報告只是評量從繪圖緩衝區複製的情況。
若要嚴格測試圖形系統,反而應該使用「glblur -fps」或「sierpinski3d -fps」。這些程式附帶在 xscreensaver 套組中 (請參閱 http://www.jwz.org/xscreensaver,但請從您所用發行版的軟體庫或從 http://rpmfind.net/linux/rpm2html/search.php?query=xscreensaver 下載二進位檔案)
這裡的 -fps 選項會顯示 CPU 負載數字並附上 FPS 報告。Glblur 會使 CPU 負載保持在高而穩定的狀態。Sierpinski3d* 會透過使用的多邊形數量,使其負載發生變化。多邊形增加到 4,096 時,其負載上升到高於 glblur 的負載,而 sierpinski3d 的 FPS 就會下降。
ubuntu使用apt-get install xscreensaver-gl時,並不會安裝glblur以及sierpinski3d,所以重新取得source code並compile成可執行檔。
但是不太懂他的數據,之後再研究。
2010年9月10日 星期五
Use Broadcom crystalhd on Fedora12
945GSE因為播放高清影片會頓到不行,Linux上播HD也會稍微感覺到卡卡的,所以找了硬體加速卡想來增加影片品質。
最簡易的方式就是安裝XBMC這個Media Center,ubuntu10.04可以直接透過apt-cache search xbmc搜尋到,但是不確定是否是支援Crystalhd的版本。這次目標是Fedora12!
1. 準備會用到的環境
參考 這裡 來安裝XBMC所需的lib以及package。
~$ yum install automake libtool autoconf gstreamer-plugins-base-devel gstreamer-devel kernel-devel (這是CrystalHD會用到的packages)
2. 安裝Broadcom CrystalHD Driver
~$ cd driver/linux
~$ chmod +x bcm_70012_dev.sh
~$ chmod +x bcm_70012_run.sh
~$ autoconf
~$ ./configure
~$ make ; make install
~$ cd ../../linux_lib/libcrystalhd
~$ make ; make install
~$ cd ../../filters/gst/gst-plugin/
~$ ./autogen.sh
最簡易的方式就是安裝XBMC這個Media Center,ubuntu10.04可以直接透過apt-cache search xbmc搜尋到,但是不確定是否是支援Crystalhd的版本。這次目標是Fedora12!
1. 準備會用到的環境
參考 這裡 來安裝XBMC所需的lib以及package。
~$ yum install automake libtool autoconf gstreamer-plugins-base-devel gstreamer-devel kernel-devel (這是CrystalHD會用到的packages)
2. 安裝Broadcom CrystalHD Driver
~$ cd driver/linux
~$ chmod +x bcm_70012_dev.sh
~$ chmod +x bcm_70012_run.sh
~$ autoconf
~$ ./configure
modify crystalhd_lnx.h line 92
inline struct device *chddev(void);
~$ cd ../../linux_lib/libcrystalhd
~$ make ; make install
~$ cd ../../filters/gst/gst-plugin/
~$ ./autogen.sh
~$ make ;
make install
~$ cd ../../../firmware/fwbin/
~$ cp 70012/* 70015/* /lib/firmware/
3. 安裝 XBMC
~$ cd XBMC/
~$ sudo ln -s /usr/lib/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so
~$ ./bootstrap
~$ ./configure
~$ make
~$ make install
4. 假如selinux有開啟的話,執行下面指令來enable xbmc *.so
~$ chcon -t texrel_shlib_t /usr/local/lib/xbmc/system/players/dvdplayer/avutil-50-i486-linux.so
~$ chcon -t texrel_shlib_t /usr/local/lib/xbmc/system/players/dvdplayer/avcodec-52-i486-linux.so
~$ chcon -t texrel_shlib_t /usr/local/lib/xbmc/system/players/dvdplayer/avformat-52-i486-linux.so
~$ chcon -t texrel_shlib_t /usr/local/lib/xbmc/system/players/dvdplayer/swscale-0.6.1-i486-linux.so
這時候就可以開啟xbmc以及看到xbmc -> system -> video -> playback 下有 Allow hardware acceleration (CrystalHD)這個選項了。但是不幸的是,選了CrystalHD也沒作用...
原來是kernel本身有一個driver crystalhd在 drivers/staging/crystalhd下,而新的crystalhd.ko是安裝到drivers/video/broadcom/下。
而load modules的順序,會是staging/crystalhd/crystalhd.ko會先被load進去。所以只要將新的crystalhd.ko 蓋掉drivers/staging/crystalhd/crystalhd.ko即可。
~$ cd ../../../firmware/fwbin/
~$ cp 70012/* 70015/* /lib/firmware/
3. 安裝 XBMC
~$ cd XBMC/
~$ sudo ln -s /usr/lib/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so
~$ ./bootstrap
~$ ./configure
~$ make
~$ make install
4. 假如selinux有開啟的話,執行下面指令來enable xbmc *.so
~$ chcon -t texrel_shlib_t /usr/local/lib/xbmc/system/players/dvdplayer/avutil-50-i486-linux.so
~$ chcon -t texrel_shlib_t /usr/local/lib/xbmc/system/players/dvdplayer/avcodec-52-i486-linux.so
~$ chcon -t texrel_shlib_t /usr/local/lib/xbmc/system/players/dvdplayer/avformat-52-i486-linux.so
~$ chcon -t texrel_shlib_t /usr/local/lib/xbmc/system/players/dvdplayer/swscale-0.6.1-i486-linux.so
這時候就可以開啟xbmc以及看到xbmc -> system -> video -> playback 下有 Allow hardware acceleration (CrystalHD)這個選項了。但是不幸的是,選了CrystalHD也沒作用...
原來是kernel本身有一個driver crystalhd在 drivers/staging/crystalhd下,而新的crystalhd.ko是安裝到drivers/video/broadcom/下。
而load modules的順序,會是staging/crystalhd/crystalhd.ko會先被load進去。所以只要將新的crystalhd.ko 蓋掉drivers/staging/crystalhd/crystalhd.ko即可。
************************** XBMC on ubuntu 9.04 ***************************
也需要source code重新編譯,因為ubuntu與fedora filesystem安裝的東西相差蠻多的,所以在此記錄
1. 取得xbmc repository
~$ sudo vi /etc/apt/sources.list
add two lines
deb http://ppa.launchpad.net/team-xbmc/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/team-xbmc/ppa/ubuntu jaunty main
~$ sudo apt-get update (Get Key 91E7EE5E)
~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 91E7EE5E
~$ sudo apt-get update (Get xbmc repository)
~$ cat README.ubuntu
~$ cat README.linux
2010年9月2日 星期四
EZUSB PC/SC smartcard reader on ubuntu 9.10
這個smartcard reader module是很汎用的一個組件。之前在很多板子以及Linux Dist.下都有做過測試,都沒出現無法使用的問題 (ex: Fedora12)。但是在ubuntu 9.10上就觸礁了,因此要尋找解決方式。
參考:這裡
最後解決的方式是︰rebuild pcscd (1.5.3)
一開始我去抓了最新的pcscd (1.6.4)的source code來編譯,一直都失敗,最後有成功,但是卻因為做了很多瑣事,不能確定如何成功的。為了正確的步驟,還原後卻再也無法成功...
後來抓了同版本的pcscd (1.5.3),enable libuusb、disable libhal後就可以讓裝置正常運作 (淚)
1. Get pcscd source code
~$ sudo apt-get source pcscd
2. Rebuild pcscd source code with special parameter
~$ mv pcsc-lite-1.5.3 /usr/local/
~$ mkdir /usr/local/pcsc-lite-1.5.3/drivers/
~$ cd /usr/local/pcsc-lite-1.5.3/
~$ sudo apt-get install libusb-dev
~$ sudo ./configure --disable-libhal --enable-libusb --enable-usbdropdir=/usr/local/pcsc-lite-1.5.3/drivers/
~$ sudo make
~$ sudo make install
3. Download Castles Tech EZUSB PC/SC driver from
http://www.casauto.com.tw/en/in-download.aspx
4. Install EZUSB PC/SC smartcard reader driver
~$ tar zxf EZUSB_Linux_x86_v1.4.9.tar.gz -C /usr/local
~$ cd /usr/local/EZUSB_Linux_x86_v1.4.9/driver_ezusb_v1.4.9
Modify install to change install path "/usr/local/pcsc/" to "/usr/local/pcsc-lite-1.5.3/"
~$ sudo ./install
5. Auto start pcscd when pc start
~$ vi /etc/rc.local
add "/usr/local/sbin/pcscd"
Finish.
後記︰在Fedora 12下,~$ pcscd -version,他預設也是enable libhal,但是卻可以運作一 一
驅動裡面的Readme有寫,不支援libhal,因此ubuntu才需要rebuild pcscd。Fedora 12這點讓我不解。
參考:這裡
最後解決的方式是︰rebuild pcscd (1.5.3)
一開始我去抓了最新的pcscd (1.6.4)的source code來編譯,一直都失敗,最後有成功,但是卻因為做了很多瑣事,不能確定如何成功的。為了正確的步驟,還原後卻再也無法成功...
後來抓了同版本的pcscd (1.5.3),enable libuusb、disable libhal後就可以讓裝置正常運作 (淚)
1. Get pcscd source code
~$ sudo apt-get source pcscd
2. Rebuild pcscd source code with special parameter
~$ mv pcsc-lite-1.5.3 /usr/local/
~$ mkdir /usr/local/pcsc-lite-1.5.3/drivers/
~$ cd /usr/local/pcsc-lite-1.5.3/
~$ sudo apt-get install libusb-dev
~$ sudo ./configure --disable-libhal --enable-libusb --enable-usbdropdir=/usr/local/pcsc-lite-1.5.3/drivers/
~$ sudo make
~$ sudo make install
3. Download Castles Tech EZUSB PC/SC driver from
http://www.casauto.com.tw/en/in-download.aspx
4. Install EZUSB PC/SC smartcard reader driver
~$ tar zxf EZUSB_Linux_x86_v1.4.9.tar.gz -C /usr/local
~$ cd /usr/local/EZUSB_Linux_x86_v1.4.9/driver_ezusb_v1.4.9
Modify install to change install path "/usr/local/pcsc/" to "/usr/local/pcsc-lite-1.5.3/"
~$ sudo ./install
5. Auto start pcscd when pc start
~$ vi /etc/rc.local
add "/usr/local/sbin/pcscd"
Finish.
後記︰在Fedora 12下,~$ pcscd -version,他預設也是enable libhal,但是卻可以運作一 一
驅動裡面的Readme有寫,不支援libhal,因此ubuntu才需要rebuild pcscd。Fedora 12這點讓我不解。
ALC883 on ubuntu 10.04, 9.10
測試intel pineview + alc 883,發現聲音出不來。但是驅動是有正常運作 (可以調音量、看裝置)。
參考 這裡
這邊有verb-tabe的介紹
kernel內也有祥細文件: kernel/Documentation/sound/alsa/HD-Audio.txt
ALC883跟ALC888相同,都是HD Audio Codec,所以是snd-hda-intel。
/usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz內可以看到Module snd-hda-intel的相關敘述。
>> Module for Intel HD Audio (ICH6, ICH6M, ESB2, ICH7, ICH8, ICH9, ICH10, PCH, SCH),
>> Each codec may have a model table for different configurations.
>> If your machine isn't listed there, the default (usually minimal)
>> configuration is set up. You can pass "model=" option to
>> specify a certain model in such a case. There are different
>> models depending on the codec chip. The list of available models
>> is found in HD-Audio-Models.txt
所以接下來去參考kernel source下的Document/sound/alsa/HD-Audio.txt以及 HD-Audio_models.txt.
>> 3stack-6ch 3-jack 6-channel
裡面有相當多的model可以指定,但是並沒有太多時間去測試那些model的差異,選擇一個普通的3-jack 6-channel即可。
在/etc/modprobe.d/alsa-base.conf下指定他的model = 3stack-6ch即可
options snd-hda-intel model=3stack-6ch
重新開機! 聲音Get!
The HD-audio codec has usually "pin" widgets, and BIOS sets the default configuration of each pin, which indicates the location, the connection type, the jack color, etc.
在板子硬體設計完成時,會將線路交給廠商看。廠商會提供verb-table給bios工程師包進bios內,而verb-table會對codec下一連串命令,由於每個板子codec的ping widgets不盡相同,所以verb-table也不會相同。
The most common problem regarding the HD-audio driver is the unsupported codec features or the mismatched device configuration. Most of codec-specific code has several preset models, either to override the BIOS setup or to provide more comprehensive features.
因此,可能是bios有問題,這邊才需要修改alsa-base.conf來手動指定model。
http://www.alsa-project.org/alsa-info.sh
好用的shell script,會去audio相關檔案抓資料。
/sys/class/sound/hwCxDx有audio driver資料.
參考 這裡
這邊有verb-tabe的介紹
kernel內也有祥細文件: kernel/Documentation/sound/alsa/HD-Audio.txt
ALC883跟ALC888相同,都是HD Audio Codec,所以是snd-hda-intel。
/usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz內可以看到Module snd-hda-intel的相關敘述。
>> Module for Intel HD Audio (ICH6, ICH6M, ESB2, ICH7, ICH8, ICH9, ICH10, PCH, SCH),
>> Each codec may have a model table for different configurations.
>> If your machine isn't listed there, the default (usually minimal)
>> configuration is set up. You can pass "model=
>> specify a certain model in such a case. There are different
>> models depending on the codec chip. The list of available models
>> is found in HD-Audio-Models.txt
所以接下來去參考kernel source下的Document/sound/alsa/HD-Audio.txt以及 HD-Audio_models.txt.
>> 3stack-6ch 3-jack 6-channel
裡面有相當多的model可以指定,但是並沒有太多時間去測試那些model的差異,選擇一個普通的3-jack 6-channel即可。
在/etc/modprobe.d/alsa-base.conf下指定他的model = 3stack-6ch即可
options snd-hda-intel model=3stack-6ch
重新開機! 聲音Get!
The HD-audio codec has usually "pin" widgets, and BIOS sets the default configuration of each pin, which indicates the location, the connection type, the jack color, etc.
在板子硬體設計完成時,會將線路交給廠商看。廠商會提供verb-table給bios工程師包進bios內,而verb-table會對codec下一連串命令,由於每個板子codec的ping widgets不盡相同,所以verb-table也不會相同。
The most common problem regarding the HD-audio driver is the unsupported codec features or the mismatched device configuration. Most of codec-specific code has several preset models, either to override the BIOS setup or to provide more comprehensive features.
因此,可能是bios有問題,這邊才需要修改alsa-base.conf來手動指定model。
http://www.alsa-project.org/alsa-info.sh
好用的shell script,會去audio相關檔案抓資料。
/sys/class/sound/hwCxDx有audio driver資料.
2010年6月18日 星期五
Calibrate Touch on Android-X86
Android for X86本身有內建一隻 ts_calibrate的程式,是拿來校正touch device用的。跟一般ARM上面操作有約略不同。可以在/etc/ts.env下看到所需的環境變數。
$ export `cat /etc/ts.env | head -n -1 | tail -n -1`
依此類推,有幾個參數,head那邊的數字就慢慢遞加。
有幾個比較不一樣的地方這邊提出
1. 預設TSLIB_TSDEVICE="/dev/input/event5"。
隨著硬體不同,不一定是event5,這時請愛用cat來確認touch device node。
2. 預設有一個TSLIB_CALIBFILE="/data/system/tslib/pointercal"
但是/data/system下並沒有tslib資料夾,所以就自己手動建立巴!
環境變數用好後,就可以使用ts_calibrate,但是只會出現一個點,接下來四個點要憑感覺XD,這個問題以後再找時間解決就好。
校正好後,他會將值存入pointercal。但是並不會立刻生效,重開機後就可以正常使用了!
$ export `cat /etc/ts.env | head -n -1 | tail -n -1`
依此類推,有幾個參數,head那邊的數字就慢慢遞加。
有幾個比較不一樣的地方這邊提出
1. 預設TSLIB_TSDEVICE="/dev/input/event5"。
隨著硬體不同,不一定是event5,這時請愛用cat來確認touch device node。
2. 預設有一個TSLIB_CALIBFILE="/data/system/tslib/pointercal"
但是/data/system下並沒有tslib資料夾,所以就自己手動建立巴!
環境變數用好後,就可以使用ts_calibrate,但是只會出現一個點,接下來四個點要憑感覺XD,這個問題以後再找時間解決就好。
校正好後,他會將值存入pointercal。但是並不會立刻生效,重開機後就可以正常使用了!
2010年6月11日 星期五
Linux下的msn監控軟體
以前在資策會時有玩過msn下的msn監控軟體,今天無意間google到linux下也有類似軟體,而且操作很簡單 0 . 0
$ sudo apt-get install imsniff
$ sudo imsniff eth0 (我這邊是使用ethernet來上網,所以ifconfig可以看到eth0)
會跑出很多訊息,但是感覺跑出很多不必要的訊息。
$ sudo apt-get install libpcap-dev
感覺訊息有比較少了,但是還是有一些Unknown content-type
這種東西是偶然發現XD,別亂使用阿!! 個人隱私還是很重要的!!
$ sudo apt-get install imsniff
$ sudo imsniff eth0 (我這邊是使用ethernet來上網,所以ifconfig可以看到eth0)
會跑出很多訊息,但是感覺跑出很多不必要的訊息。
$ sudo apt-get install libpcap-dev
感覺訊息有比較少了,但是還是有一些Unknown content-type
這種東西是偶然發現XD,別亂使用阿!! 個人隱私還是很重要的!!
2010年5月12日 星期三
mplayer -- ffmpeg-mt
N270+945GSE, 在XP下可以播得動1920x800的H.264影片, 但是在Linux上就會非常卡, 連1280x720都會感覺有點頓頓的.
原因是因為ffmpeg內的H.264 codec效能比不上Windows上得codec.
Mplayer官方網站有提供幾種加速的方式~
1. 用高階的Nvidia顯卡, 可以有效的幫忙CPU處理解碼.
2. 使用ffmpeg-mt, 讓CPU可以多核心解碼.
3. 購買CoreAVC codec, 這在Windows上可以免費取得, 但是Linux就必須付費購買了.
這邊有第三種方式的安裝方式.
由於家境清寒, 沒錢用1和3的方式, 所以這邊介紹第二種的安裝方式
環境: Ubuntu 9.10
硬體: N270 + 945GSE
Use git to get ffmpeg-mt source code
$ mkdir ffmpeg-mt
$ cd ffmpeg-mt
$ sudo apt-get install git-core
$ git clone git://repo.or.cz/mplayer-build.git
Prepare tools and compile
$ cd mplayer-build
$ sudo apt-get install autoconf libtool libavutil-dev libavdread-dev vflib3-dev
$ ./enable-mt
$ ./init
$ cd mplayer
$ ./configure
$ cd ..
$ make -j2
Use new mplayer to play sample video
$ mplayer/mplayer -vfm ffmpeg -lavdopts skiploopfilter=all:threads=2 ~/Desktop/sample.mkv
最後的測試結果: 1920x800還是會LAG, 但是比起之前好上不少, 而720P則是可以很順的播放.
原因是因為ffmpeg內的H.264 codec效能比不上Windows上得codec.
Mplayer官方網站有提供幾種加速的方式~
1. 用高階的Nvidia顯卡, 可以有效的幫忙CPU處理解碼.
2. 使用ffmpeg-mt, 讓CPU可以多核心解碼.
3. 購買CoreAVC codec, 這在Windows上可以免費取得, 但是Linux就必須付費購買了.
這邊有第三種方式的安裝方式.
由於家境清寒, 沒錢用1和3的方式, 所以這邊介紹第二種的安裝方式
環境: Ubuntu 9.10
硬體: N270 + 945GSE
Use git to get ffmpeg-mt source code
$ mkdir ffmpeg-mt
$ cd ffmpeg-mt
$ sudo apt-get install git-core
$ git clone git://repo.or.cz/mplayer-build.git
Prepare tools and compile
$ cd mplayer-build
$ sudo apt-get install autoconf libtool libavutil-dev libavdread-dev vflib3-dev
$ ./enable-mt
$ ./init
$ cd mplayer
$ ./configure
$ cd ..
$ make -j2
Use new mplayer to play sample video
$ mplayer/mplayer -vfm ffmpeg -lavdopts skiploopfilter=all:threads=2 ~/Desktop/sample.mkv
最後的測試結果: 1920x800還是會LAG, 但是比起之前好上不少, 而720P則是可以很順的播放.
2010年5月6日 星期四
Linux Firmware Debug Kit
今天有一個Linux的問題, 需要BIOS的同事協助, 他問我: Linux上有類似DOS debug的工具嗎?
假如能先在Linux上驗證他修改的值是正確的, 那他可以很方便的先在Linux上驗證, 然後再去修改BIOS, 再燒入板子. 比起修改一次燒一次, 會方便許多.
但是這個問題就難倒我了, 我不熟悉BIOS, 只會用一些簡單的燒寫工具Orz. Linux是業界常用的OS, 所以應該會有人寫出類似的工具才是!! 這時候就要召喚Google大神了!!
搜尋到一篇文章:
http://merckhung.blogspot.com/2009/03/linux-firmware-debug-kit.html
裡面有提到這個神人有在Linux上寫出類似AMI RU的工具. Linux Firmware Debug Kit
1. 首先, 先到這裡下載原始碼.
2. 準備好kernel headers以及編譯所需要的工具
3. 安裝!
$ tar -jxf lfdk-0.1.0.tar.bz2
$ cd lfdk-0.1.0
$ make all
$ cd bin
$ insmod lfdd_drv.ko
4. 執行!
$ ./lfdk
5. 叫BIOS同事來看這是他想要的嗎XD, 恩, 他會用一 一, 所以無誤
假如能先在Linux上驗證他修改的值是正確的, 那他可以很方便的先在Linux上驗證, 然後再去修改BIOS, 再燒入板子. 比起修改一次燒一次, 會方便許多.
但是這個問題就難倒我了, 我不熟悉BIOS, 只會用一些簡單的燒寫工具Orz. Linux是業界常用的OS, 所以應該會有人寫出類似的工具才是!! 這時候就要召喚Google大神了!!
搜尋到一篇文章:
http://merckhung.blogspot.com/2009/03/linux-firmware-debug-kit.html
裡面有提到這個神人有在Linux上寫出類似AMI RU的工具. Linux Firmware Debug Kit
1. 首先, 先到這裡下載原始碼.
2. 準備好kernel headers以及編譯所需要的工具
3. 安裝!
$ tar -jxf lfdk-0.1.0.tar.bz2
$ cd lfdk-0.1.0
$ make all
$ cd bin
$ insmod lfdd_drv.ko
4. 執行!
$ ./lfdk
5. 叫BIOS同事來看這是他想要的嗎XD, 恩, 他會用一 一, 所以無誤
2010年4月27日 星期二
2010年4月26日 星期一
Ubuntu下, minicom的檔案傳輸
混帳般愚蠢的我, 竟然搞這個問題搞了兩天
因為要測試UART的檔案傳輸是否正常, 我必須在taget端使用minicom, 在host端使用任何終端機程式, 但是我怎麼傳送都失敗...minicom那邊永遠只有彈出小框框, 然後不理會我host端的檔案傳輸要求一 一
由於假如是將檔案內容以文字傳送過去的話, 是可以傳送過去的, 但是使用minicom就是不行傳檔案, 因此我很懷疑是xmodem出問題XD
今天又搞了一個早上, 我發現minicom的設定檔內, 有定義xmodem所需要的程式路徑, File transfer protocols --> xmodem /usr/bin/sx -vv or Xmodem /usr/bin/rx -vv.
sx = send file by xmodem
rx = receive file by xmodem
所以我發現Ubuntu預設是沒有這兩個檔案的一 一
$ apt-cache search sx | grep modem
lrzsz - Tools for zmodem/xmodem/ymodem file transfer
$ sudo apt-get install lrzsz
ok....可以傳輸檔案了一 一, 愚蠢的錯誤
因為要測試UART的檔案傳輸是否正常, 我必須在taget端使用minicom, 在host端使用任何終端機程式, 但是我怎麼傳送都失敗...minicom那邊永遠只有彈出小框框, 然後不理會我host端的檔案傳輸要求一 一
由於假如是將檔案內容以文字傳送過去的話, 是可以傳送過去的, 但是使用minicom就是不行傳檔案, 因此我很懷疑是xmodem出問題XD
今天又搞了一個早上, 我發現minicom的設定檔內, 有定義xmodem所需要的程式路徑, File transfer protocols --> xmodem /usr/bin/sx -vv or Xmodem /usr/bin/rx -vv.
sx = send file by xmodem
rx = receive file by xmodem
所以我發現Ubuntu預設是沒有這兩個檔案的一 一
$ apt-cache search sx | grep modem
lrzsz - Tools for zmodem/xmodem/ymodem file transfer
$ sudo apt-get install lrzsz
ok....可以傳輸檔案了一 一, 愚蠢的錯誤
2010年4月20日 星期二
Kdiff3
這週上Android Porting課程時, 老師有用到一個好用的Tool, 叫做kdiff3.
可以做三方比較, 並且有自動merge功能, 使porting能花更少時間.
但是在Ubuntu 8.10上面並沒有這套軟體, 必須去抓source code來自行編譯.
1.取得source code
$ wget http://sourceforge.net/projects/kdiff3/files/kdiff3/0.9.95/kdiff3-0.9.95.tar.gz/download
$ tar zxfv kdiff3-0.9.95.tar.gz -C /tmp
$ cd /tmp/kdiff3-0.9.95
2.按照README來安裝
2.1 先來準備環境巴! 由於我系統已經很髒了XD, 所以有可能有些環境已經預先裝起來了.
$ sudo apt-get install libqt4-dev
此時去執行make會出現找不到相關include檔的錯誤訊息.
$ QTDIR=/usr/share/qt4
$ PATH=$QTDIR/bin:$PATH
$ LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
$ export QTDIR PATH LD_LIBRARY_PATH
2.2 開始安裝巴!
$ qmake kdiff3.pro
$ make
產生錯誤訊息: optiondialog.cpp:1434: 錯誤: 「QDir」 在此作用欄位中尚未宣告
找一下QDir這個include檔在哪
$ locate QDir
/usr/include/qt4/QtCore/QDir
$ vi optiondialog.cpp
加入 #include QtCore/QDir (框框由於html語法, 所以我省略囉)
$ make
$ ./kdiff3 可以work囉^ ^
2.3 將kdiff3加到PATH內巴
$ cp kdiff3 /usr/bin/
PS: ubuntu 10.04已經可用apt-get取得
可以做三方比較, 並且有自動merge功能, 使porting能花更少時間.
但是在Ubuntu 8.10上面並沒有這套軟體, 必須去抓source code來自行編譯.
1.取得source code
$ wget http://sourceforge.net/projects/kdiff3/files/kdiff3/0.9.95/kdiff3-0.9.95.tar.gz/download
$ tar zxfv kdiff3-0.9.95.tar.gz -C /tmp
$ cd /tmp/kdiff3-0.9.95
2.按照README來安裝
2.1 先來準備環境巴! 由於我系統已經很髒了XD, 所以有可能有些環境已經預先裝起來了.
$ sudo apt-get install libqt4-dev
此時去執行make會出現找不到相關include檔的錯誤訊息.
$ QTDIR=/usr/share/qt4
$ PATH=$QTDIR/bin:$PATH
$ LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
$ export QTDIR PATH LD_LIBRARY_PATH
2.2 開始安裝巴!
$ qmake kdiff3.pro
$ make
產生錯誤訊息: optiondialog.cpp:1434: 錯誤: 「QDir」 在此作用欄位中尚未宣告
找一下QDir這個include檔在哪
$ locate QDir
/usr/include/qt4/QtCore/QDir
$ vi optiondialog.cpp
加入 #include QtCore/QDir (框框由於html語法, 所以我省略囉)
$ make
$ ./kdiff3 可以work囉^ ^
2.3 將kdiff3加到PATH內巴
$ cp kdiff3 /usr/bin/
PS: ubuntu 10.04已經可用apt-get取得
2010年4月8日 星期四
Realtek ALC888 with 945GSE on Fedora Core 4
Fedora Core 4是2005/6的產品, 加上一年的維護期, 也只有到2006年年中, 因此對於945的晶片組的支援程度是未知數.
這邊不談display driver, 因為FC4用的X window版本算是蠻舊的(6.8.2), 並不支援較新版的intel driver.
安裝時, FC4是可以順利安裝的, (附帶一提, GM45的晶片組則是連安裝都會問題重重, 必須要選ide legacy mode才可以認到ide device.) 但是重新啟動後, 啟動到一半系統就會當掉, 從kernel message可以大概推測是audio部份的程式有問題, 我能力還不足以去debug kernel souce, 所以得想辦法能不能靠更新來規避掉這個問題.
環境: kernel version : 2.6.13.1-1532 (FC4)
Realtek官方網站抓的audio driver : realtek-linux-audiopack-4.06a.tar.bz2
1. 先判斷到底是不是sound code部份有問題, 將kernel source重新編譯, 不編譯sound這個資料夾 --> 成功!!沒當機!!但是也沒Audio Device XD
2. 再來就是將sound部份功能放進去, 因此要重新編譯kernel, 將device -> sound的部份做一些分類, 由於soundcore和snd_pcm是必須的東西(我沒編譯sound時, 只用realtek-alsa driver來做, 會缺少相當多的函式, 所以有一些東西是必須的), 所以第一頁的東西都選起來, soundcore選編譯成核心, 其他pci, usb等進階選項我都取消掉(snd-hda-intel是分類在pci內) --> 成功!!realtek-alsa driver也有起來!!有聲音了!!
3. 求知慾!!我將soundcore編譯成模組, 然後只把snd-hda-intel取消掉, 希望找出最後的問題點.
--> 成功!!沒當機!!也可以順利使用!!
總結: 將kernel原先的snd-hda-intel拿掉, 換上新的realtek-alsa driver即可!!
這邊不談display driver, 因為FC4用的X window版本算是蠻舊的(6.8.2), 並不支援較新版的intel driver.
安裝時, FC4是可以順利安裝的, (附帶一提, GM45的晶片組則是連安裝都會問題重重, 必須要選ide legacy mode才可以認到ide device.) 但是重新啟動後, 啟動到一半系統就會當掉, 從kernel message可以大概推測是audio部份的程式有問題, 我能力還不足以去debug kernel souce, 所以得想辦法能不能靠更新來規避掉這個問題.
環境: kernel version : 2.6.13.1-1532 (FC4)
Realtek官方網站抓的audio driver : realtek-linux-audiopack-4.06a.tar.bz2
1. 先判斷到底是不是sound code部份有問題, 將kernel source重新編譯, 不編譯sound這個資料夾 --> 成功!!沒當機!!但是也沒Audio Device XD
2. 再來就是將sound部份功能放進去, 因此要重新編譯kernel, 將device -> sound的部份做一些分類, 由於soundcore和snd_pcm是必須的東西(我沒編譯sound時, 只用realtek-alsa driver來做, 會缺少相當多的函式, 所以有一些東西是必須的), 所以第一頁的東西都選起來, soundcore選編譯成核心, 其他pci, usb等進階選項我都取消掉(snd-hda-intel是分類在pci內) --> 成功!!realtek-alsa driver也有起來!!有聲音了!!
3. 求知慾!!我將soundcore編譯成模組, 然後只把snd-hda-intel取消掉, 希望找出最後的問題點.
--> 成功!!沒當機!!也可以順利使用!!
總結: 將kernel原先的snd-hda-intel拿掉, 換上新的realtek-alsa driver即可!!
2010年3月30日 星期二
Ubuntu 9.10 log in with console mode
參考: Ubuntu Grub2 wiki
由於新的Ubuntu 9.10改用grub2, 設定方式跟以前不一樣, 在這邊紀錄一下
更改/etc/default/grub這個檔案
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text" << 加入最後的text即可
修改完後, 將改變寫入grub內
$ update-grub
9.04以前, 我都是透過修改/etc/rc2.d/S30gdm, 將他改成/etc/rc2.d/K30gdm就可以開機不跑gdm, 變成console mode.
RedHat系列則是修改/etc/inittab裡面的init default值, 5為Graphic mode, 3為console mode.
由於新的Ubuntu 9.10改用grub2, 設定方式跟以前不一樣, 在這邊紀錄一下
更改/etc/default/grub這個檔案
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text" << 加入最後的text即可
修改完後, 將改變寫入grub內
$ update-grub
9.04以前, 我都是透過修改/etc/rc2.d/S30gdm, 將他改成/etc/rc2.d/K30gdm就可以開機不跑gdm, 變成console mode.
RedHat系列則是修改/etc/inittab裡面的init default值, 5為Graphic mode, 3為console mode.
2010年3月29日 星期一
工作即將滿週年的自我檢討文
我是個懶散的人, 但是偶爾會有振奮和自我省思的時候, 但是往往這種有意義的舉動也隨著時間超快速的消逝XD, 我想用這篇文章時時刻刻勉勵我自己, 提醒我自己的缺點!
三個很明確的主旨: 能力, 健康, 金錢
能力跟金錢比較算是正相關, 所以我放在一起討論, 畢竟我現在還負債..., 沒辦法獨立出來討論XD
能力: 基礎!就是Linux以及英文!!
健康: 基礎中的基礎!沒有健康何來工作!!
首先談談與我工作息息相關的Linux:
Linux在x86以及Desktop的市場, 看來還是無法撼動$icrosoft的地位, Enduser的習慣性, 以及開發商對於free以及non-free的態度, 使得Linux相對於$還是相當的不方便. 光一個桌面顯示調校軟體, $就大勝Linux了...付費的支援度和效能都遠遠勝過Linux阿...我還在使用xrandr, grandr, $早就已經設定好了, 下次使用還會自動記憶一 一...
但是在其他的微處理器市場, Linux就真的一吐苦水, 大大的發揮他的能力, 穩定且好porting!!
總結: 有鑑於此...我必須好好加強我在embedded linux上的實力, kernel, filesystem, driver, embedded hardware這些都是首要加強的!!
再來談我工作碰到的Linux:
平常我都自嘲自己是AE, 不是SW...對於我這個初入社會老毛頭來說, 我花了一年的時間去熟悉Linux, 這是在資策會沒接觸到的, 使我更深入Linux一些基礎觀念以及更熟悉個各發行版本的差異. 但是這樣差不多了, 接下來我要從AE變成SW了!!
必須感謝我們的老大, 他比我資策會同學們的主管更了解軟硬體(其他同學的主管大部分感覺都很...), 由於他的能力以及清晰的判斷, 讓我的壓力減少很多, 也學習到如何劃分一些難以釐清的邊界.
總結: 我必須將我平常所作的工作整理出來, 提供給AE同仁, 讓他們可以參考文件來操作, 不懂的再來問我, 第一次我這邊會去做, 之後都盡量交給AE同仁, 而我必須更專注於Embedded system以及Driver和Linux kernel的專業!!
必備技能--英文:
從小到大都知道他很重要, 真的工作時才會知道它真的很重要XD, 首先, 我必需要有閱讀Datasheet可以很順的基礎能力, 現在比較弱的方面是單字(靠stardict XD), 以及一些比較複雜的文法, 複雜的文法我必須要閱讀好幾次才會抓到它真正要表達的意思...這邊可能就是要靠多看以及複習以前的文法來達到第一階段的訓練了...
第二階段構思中~
再來就是我目前最大的問題了...健康:
我太胖了, 這樣不健康, 縱使我每天都很開心, 這樣會讓我比較長壽...
三餐我必須要正常吃, 避免吃下午茶, 晚餐過後一定不吃任何東西!!
我要維持運動! 由於太胖了! 我要游泳! 這樣對身體負擔比較不大, 而且春天了!!
三個很明確的主旨: 能力, 健康, 金錢
能力跟金錢比較算是正相關, 所以我放在一起討論, 畢竟我現在還負債..., 沒辦法獨立出來討論XD
能力: 基礎!就是Linux以及英文!!
健康: 基礎中的基礎!沒有健康何來工作!!
首先談談與我工作息息相關的Linux:
Linux在x86以及Desktop的市場, 看來還是無法撼動$icrosoft的地位, Enduser的習慣性, 以及開發商對於free以及non-free的態度, 使得Linux相對於$還是相當的不方便. 光一個桌面顯示調校軟體, $就大勝Linux了...付費的支援度和效能都遠遠勝過Linux阿...我還在使用xrandr, grandr, $早就已經設定好了, 下次使用還會自動記憶一 一...
但是在其他的微處理器市場, Linux就真的一吐苦水, 大大的發揮他的能力, 穩定且好porting!!
總結: 有鑑於此...我必須好好加強我在embedded linux上的實力, kernel, filesystem, driver, embedded hardware這些都是首要加強的!!
再來談我工作碰到的Linux:
平常我都自嘲自己是AE, 不是SW...對於我這個初入社會老毛頭來說, 我花了一年的時間去熟悉Linux, 這是在資策會沒接觸到的, 使我更深入Linux一些基礎觀念以及更熟悉個各發行版本的差異. 但是這樣差不多了, 接下來我要從AE變成SW了!!
必須感謝我們的老大, 他比我資策會同學們的主管更了解軟硬體(其他同學的主管大部分感覺都很...), 由於他的能力以及清晰的判斷, 讓我的壓力減少很多, 也學習到如何劃分一些難以釐清的邊界.
總結: 我必須將我平常所作的工作整理出來, 提供給AE同仁, 讓他們可以參考文件來操作, 不懂的再來問我, 第一次我這邊會去做, 之後都盡量交給AE同仁, 而我必須更專注於Embedded system以及Driver和Linux kernel的專業!!
必備技能--英文:
從小到大都知道他很重要, 真的工作時才會知道它真的很重要XD, 首先, 我必需要有閱讀Datasheet可以很順的基礎能力, 現在比較弱的方面是單字(靠stardict XD), 以及一些比較複雜的文法, 複雜的文法我必須要閱讀好幾次才會抓到它真正要表達的意思...這邊可能就是要靠多看以及複習以前的文法來達到第一階段的訓練了...
第二階段構思中~
再來就是我目前最大的問題了...健康:
我太胖了, 這樣不健康, 縱使我每天都很開心, 這樣會讓我比較長壽...
三餐我必須要正常吃, 避免吃下午茶, 晚餐過後一定不吃任何東西!!
我要維持運動! 由於太胖了! 我要游泳! 這樣對身體負擔比較不大, 而且春天了!!
Linux Kernel Option
其實, 在工作上, 我不常去優化我們公司版子的kernel, 除非客戶有特別要求, 不然通常是由客戶自己去優化自己的系統. 也因此, 我對於kernel option很容易忘記他們的功用...真的需要再去查就好XD. 難得有這個契機去優化自己的NB, 所以順便做了一些紀錄, 這邊會很長, 也會慢慢的增加Option說明, 因為畢竟是下班後才去做這項工作...
原因之二, 因為Ubuntu 10.04要出了!! 9.10的kernel是2.6.31, 10.04的kernel是2.6.32, 應該差異不大, 所以也算是預先做功課, 等10.04一出, 我就要把我公司, 我家, 我NB的Ubuntu都換成Ubuntu 10.04 LTS!!!!!!
註: Ubuntu 10.04捨去了過去三年的以人為本, 改成以光為主題!!看起來好棒阿!!
來囉~只是系統改成Gentoo XD~用virtualbox來玩
1. 如何知道該編譯什麼? 以下節錄自Gentoo手冊
原因之二, 因為Ubuntu 10.04要出了!! 9.10的kernel是2.6.31, 10.04的kernel是2.6.32, 應該差異不大, 所以也算是預先做功課, 等10.04一出, 我就要把我公司, 我家, 我NB的Ubuntu都換成Ubuntu 10.04 LTS!!!!!!
註: Ubuntu 10.04捨去了過去三年的以人為本, 改成以光為主題!!看起來好棒阿!!
來囉~只是系統改成Gentoo XD~用virtualbox來玩
1. 如何知道該編譯什麼? 以下節錄自Gentoo手冊
您必須履了解您的系統才可以開始手動編譯。系統上多數的資料可以安裝 pciutils,從裏面包含的 lspci 取得。您也可以執行 lsmod 看看安裝光碟使用那些核心模組。
~$ lspci >> listpci.txt
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
...略
~$ lsmod >> listmodel.txt
由這幾個檔案可以大略知道哪些kernel option是必編譯的。
Dell new Inspriron
附註: 一些10.04的消息
1. The fglrx binary driver for ATI video chipsets does not yet support the X server in Lucid. As a workaround, users should use the open source -ati driver instead
所以...只能用open source driver了, 因為原先可以使用的binary driver無法在10.04上使用.
最近為了讀書會以及改善我在家一定不看書的壞習慣, 花了我整個年終買了一台可以快速Build code的Core i5 NB XDD.
花了很多時間在掙扎, NB內的OS要選哪一套, Windows 7 + Ubuntu on Virtualbox, 還是Ubuntu, 還是Windows 7 + Ubuntu雙系統呢.
太久沒細心的去使用windows了(雖然公司有一台Desktop灌XP...), 一拿到時還不太習慣, 也不曉得我到底要Windows 7 64bit幹嘛...由於64bit對於軟體的支援度還不完整, 所以抓來的執行檔有時候會有問題, 這讓我用的一肚子火一 一, 但是看到精美的4G Ram...又不忍心將他format掉...基於對Linux的熱愛, 我還是選擇讓Linux有一個歸宿XD, 因此...雙系統誕生了!! Windows 7給了他100G, 專門來看影片還有玩遊戲用XD. Linux比較有愛, 所以給了他220G, 專門拿來玩kernel以及寫一些linux code, 當然還有開發Android用.
但是這邊要抱怨一下, Windows 7 64bit跑Android SDK都沒甚麼大問題, 開模擬器也比Ubuntu 9.10快(快一點點). Ubuntu 9.10下, eclipe會有解析度的Bug, 在1366x768以下的解析度, 都會在new project時, 看不到Android API的下拉選單...經過Joel老大的指導, 可以透過比較麻煩的拖拉方式解決這個問題, 但是讓我短暫有捨棄Ubuntu當開發Android的平台的想法....
Dell new Inspriron這台在安裝Ubuntu 9.10 x86版時, 沒什麼問題, 第三方的驅動也都可以正常安裝以及運作, 但是在Ubuntu 9.10 64bit時, 第三方驅動不是不能裝, 不然就是裝了變成黑屏...囧, ATI的顯示驅動可以去官方網站抓來用, 抓好安裝後可以解決黑屏的問題, 但是我的滑鼠指標不見了...怎麼設定都看不到他...雖然感覺得到他的存在, 但是看不倒鼠標...將xorg.conf移除後(Driver就不會跑ati那隻了), vesa就非常的正常...囧, 所以我還是灌回了Ubuntu 9.10 x86版本...反正使用pae的版本就可以支援到64G的Ram了...
這邊由於我一直在測試build code的速度, 所以有一點發現. 64bit的版本, 比32bit版本, build code時所消耗的ram比較小, 64bit使用top來觀看使用的資源時, 大概都是3G的ram在跑, 但是32bit的卻都4G左右, build完kernel source後, 還用到了一點我特別切出來的1G SWAP區...所需時間差不多, 都是32分鐘左右, 第二次make clean + ccache重新編譯, 大概只花了13分鐘. 由此可見, 64bit真的會比較有效的利用ram, 而不是PAE所能達到的.
接下來, 就是開始玩我的linux了, 首先, 要重新build一個符合我NB的kernel版本, 讓他開機去掉一些用不到的功能, 讓他能更快的開機!!詳情請見Linux kernel option
1. The fglrx binary driver for ATI video chipsets does not yet support the X server in Lucid. As a workaround, users should use the open source -ati driver instead
所以...只能用open source driver了, 因為原先可以使用的binary driver無法在10.04上使用.
最近為了讀書會以及改善我在家一定不看書的壞習慣, 花了我整個年終買了一台可以快速Build code的Core i5 NB XDD.
花了很多時間在掙扎, NB內的OS要選哪一套, Windows 7 + Ubuntu on Virtualbox, 還是Ubuntu, 還是Windows 7 + Ubuntu雙系統呢.
太久沒細心的去使用windows了(雖然公司有一台Desktop灌XP...), 一拿到時還不太習慣, 也不曉得我到底要Windows 7 64bit幹嘛...由於64bit對於軟體的支援度還不完整, 所以抓來的執行檔有時候會有問題, 這讓我用的一肚子火一 一, 但是看到精美的4G Ram...又不忍心將他format掉...基於對Linux的熱愛, 我還是選擇讓Linux有一個歸宿XD, 因此...雙系統誕生了!! Windows 7給了他100G, 專門來看影片還有玩遊戲用XD. Linux比較有愛, 所以給了他220G, 專門拿來玩kernel以及寫一些linux code, 當然還有開發Android用.
但是這邊要抱怨一下, Windows 7 64bit跑Android SDK都沒甚麼大問題, 開模擬器也比Ubuntu 9.10快(快一點點). Ubuntu 9.10下, eclipe會有解析度的Bug, 在1366x768以下的解析度, 都會在new project時, 看不到Android API的下拉選單...經過Joel老大的指導, 可以透過比較麻煩的拖拉方式解決這個問題, 但是讓我短暫有捨棄Ubuntu當開發Android的平台的想法....
Dell new Inspriron這台在安裝Ubuntu 9.10 x86版時, 沒什麼問題, 第三方的驅動也都可以正常安裝以及運作, 但是在Ubuntu 9.10 64bit時, 第三方驅動不是不能裝, 不然就是裝了變成黑屏...囧, ATI的顯示驅動可以去官方網站抓來用, 抓好安裝後可以解決黑屏的問題, 但是我的滑鼠指標不見了...怎麼設定都看不到他...雖然感覺得到他的存在, 但是看不倒鼠標...將xorg.conf移除後(Driver就不會跑ati那隻了), vesa就非常的正常...囧, 所以我還是灌回了Ubuntu 9.10 x86版本...反正使用pae的版本就可以支援到64G的Ram了...
這邊由於我一直在測試build code的速度, 所以有一點發現. 64bit的版本, 比32bit版本, build code時所消耗的ram比較小, 64bit使用top來觀看使用的資源時, 大概都是3G的ram在跑, 但是32bit的卻都4G左右, build完kernel source後, 還用到了一點我特別切出來的1G SWAP區...所需時間差不多, 都是32分鐘左右, 第二次make clean + ccache重新編譯, 大概只花了13分鐘. 由此可見, 64bit真的會比較有效的利用ram, 而不是PAE所能達到的.
接下來, 就是開始玩我的linux了, 首先, 要重新build一個符合我NB的kernel版本, 讓他開機去掉一些用不到的功能, 讓他能更快的開機!!詳情請見Linux kernel option
2010年2月3日 星期三
紀錄--CentOS5.3下如何使用VT6656 WIFI Module
安裝好後, 按照下列步驟設定
將eth1喚醒
# ifconfig eth1 up
看一下wireless的設定
# iwconfig
掃一下台
# iwlist eth1 scanning
設定要加入的AP
# iwconfig eth1 essid "IRIS"
看一下dhclient有沒有被佔走
# ps aux | grep dhclient
有的話請砍掉
# kill xxxx
接下來用dhclient讓eth1自動取得IP
# dhclient eth1
收工
將eth1喚醒
# ifconfig eth1 up
看一下wireless的設定
# iwconfig
掃一下台
# iwlist eth1 scanning
設定要加入的AP
# iwconfig eth1 essid "IRIS"
看一下dhclient有沒有被佔走
# ps aux | grep dhclient
有的話請砍掉
# kill xxxx
接下來用dhclient讓eth1自動取得IP
# dhclient eth1
收工
2010年1月28日 星期四
將wma檔轉成mp3檔
在Windows下有很多Tool可以使用去轉檔
在Linux下, 也有很方便的指令可以轉檔
首先, 必須要有mplayer以及lame.
# sudo apt-get install mplayer
# sudo apt-get install lame
# man mplayer
> -ao {driver1[:suboption1[=value]:...],driver2,...[,]}
> Specify a priority list of audio output drivers to be used.
# sudo mplayer -ao pcm:file=3.wav 3.wma
# sudo lame 3.wav 3.mp3
大功告成
在Linux下, 也有很方便的指令可以轉檔
首先, 必須要有mplayer以及lame.
# sudo apt-get install mplayer
# sudo apt-get install lame
# man mplayer
> -ao {driver1[:suboption1[=value]:...],driver2,...[,]}
> Specify a priority list of audio output drivers to be used.
# sudo mplayer -ao pcm:file=3.wav 3.wma
# sudo lame 3.wav 3.mp3
大功告成