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就產生了。
2010年10月5日 星期二
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,別亂使用阿!! 個人隱私還是很重要的!!