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則是可以很順的播放.
2010年5月12日 星期三
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即可!!