顯示具有 工作--紀錄 標籤的文章。 顯示所有文章
顯示具有 工作--紀錄 標籤的文章。 顯示所有文章

2011年12月2日 星期五

alsa-utils

我真的很討厭工具...一段時間沒用一定不會記得...
還是寫程式比較好...有良好的邏輯觀念就可以寫出我要用的功能...
函式用法man一下就知道了...我真的不想當個google廚阿 OTZ

抱怨到這邊...這篇是來記錄alsa-utils的一些使用記錄

aplay - alsa player
可以播放wav、voc、raw or au,不能播mp3

amixer - command-line mixer for ALSA soundcard driver
同alsamixer,只是是command-line,要在後面加參數
ex: 將左聲道靜音,將右聲道調到最大聲
amixer -c 1 (看一下card 1的資訊)
將card1的Playback,0上的左聲道聲音設為0%,右聲道為100%
amixer -c 1 sset Playback,0 0%,100%

alsamixer -soundcard mixer for ALSA soundcard driver, with ncurses interface
故名思義,就是有著簡易圖形介面的amixer,F6可以切換card number。

arecord - command-line sound recorder and player for ALSA sound-card driver
錄音程式,可以將line-in以及mic-in的聲音錄起來,再透過aplay來播放
ex: 錄10秒 Line-in/Mic-in的聲音,然後播放
先用alsamixer來切換capture的內容(mic-in or line-in)
alsamixer -c 1
錄製10秒,存成test.wav
arecord -d 10 test.wav
播放test.wav
aplay test.wav

2011年10月28日 星期五

mplayer for console mode and mplayer benchmark

# mplyaer -nosound -vo fbdev:/dev/fb2 -benchmark $FILE_NAME

用fb2來播影片,無聲,播放完畢後顯示benchmark

BENCHMARKs: VC: 99.066s VO: 24.192s A: 0.000s Sys: 1.214s = 124.472s

VC: video codec
VO: video output
A: audio codec
Sys: kerenl time

Total time

不要vo,只要單純測video codec的話,就加上 -vo null

2011年8月24日 星期三

PXE Server on Debian 6.0 (squeeze)

使用Linux的環境架設PXE Server
何謂PXE Server: Preboot Execution Environment

環境: Debian 6.0(代號: squeeze)
核心: Kernel 2.6.32-5-686
硬體: 945GSE晶片組

我是用Expert install來裝Debian 6.0,所以我無法保証是不是要額外裝其他的套件 XD

PXE Server,主要是由兩個最重要的功能所組成:
1. DHCP: 提供給 Target Board IP (Target Board本身必需將BIOS選項裡的Lan Boot功能打開)
2. TFTP: 提供Image,讓Target Board可以得到所需的Image. (pelinux.0)

DHCP Server: dhcp3-server
同時會安裝isc-dhcp-server,而在/etc/init.d下,是看到isc-dhcp-server。
需要修改設定檔,才可以讓dhcp server正確的運作。
設定檔名稱: /etc/dhcp/dhcpd.conf

下面是修改過的地方:
增加DNS,只是不曉得這樣有沒有問題就是了~XD 我只需要看到安裝的畫面就好~所以也沒測
option domain-name-servers 168.95.1.1, 8.8.8.8, 8.8.4.4;

第二段才是在述敘此DHCP Server的運作模式
subnet 10.1.199.0 netmask 255.255.255.0 {
range 10.1.199.50 10.1.199.200; >> Target board能拿到的ip範圍
filename "pxelinux.0"; >> DHCP到IP後,要跟TFTP討的檔案名稱
next-server 10.1.199.2; >> TFTP Server IP
option subnet-mask 255.255.255.0; >> netmask
option broadcast-address 10.1.199.255; >> broadcast
option routers 10.1.199.254; >> routers
}

TFTP Server: atftpd
因為一開始裝了其他的套件,所以並不確定atftpd是不是一開始就有

設定檔名稱: /etc/default/atfptd

設定檔內容:
USE_INETD=false >> 使tftpd不使用inetd(但是這邊我不是很確定,因為其實可以修改/etc/inetd.conf,但是將tftp那行註解掉後,tftp server也會有問題)

OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 10.1.199.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /home/avalue/tftp"
一些設定就自己man一下atftpd,主要就是最後的參數/home/avalue/tftp。
這就是設定tftp的root directory.

嗯...除了設定atfptd之外,也要修改/etc/inetd.conf下的tftp設定,將tftp root改為/home/avalue/tftp (這邊應該是我有地方沒設定好才會需要修改這個地方)

PXE Server:
DHCP Server以及TFTP Server都設定好後,就只差PXE Server所需要的檔案了。
PXE Server會去找pxe loader >> pxelinux.0,而這個檔案會去讀取pxelinux.cfg下的default。
我一開始要笨...把pxelinux.cfg當一個檔案,所以我的PXE Server會一直說找不到pxelinux.cfg/default

這些相關的檔案可以至義守大學的FTP站 http://ftp.isu.edu.tw/pub/Linux/Debian/debian/dists/lenny/main/installer-i386/20090123lenny8/images/netboot/

裡面有所需的pxelinux.0,以及pxelinux.cfg用的default。
透過default,你可以修改你的PXE Server要做的事情。
例如在義大站台下載到的default,內容如下:

include debian/squeeze/i386/boot-screens/menu-cfg
default debian/squeeze/i386/boot-screens/vesamenu.c32

嗯...長得不一樣...因為這是我的tftp內的路徑 w
所以pxe server會去tftp server下的debian/squeeze/i386/boot-screens/menu-cfg讀取設定

假如使用義大的設定,那最後PXE跑起來會是Debian的安裝畫面~

有要補充的之後有空再補充

2010年12月16日 星期四

Virtualbox 上跑 ubuntu10.04 文字模式速度跟烏龜一樣!!

一肚子火...買了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年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)。

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上面也沒有!

新的問題產生...選字時,會將上一次輸入的字也加入一 一...

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

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


重開機~結束!

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就產生了。

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
modify crystalhd_lnx.h line 92
inline struct device *chddev(void);

~$ make ; make install
~$ 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即可。


************************** 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這點讓我不解。

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資料.

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。但是並不會立刻生效,重開機後就可以正常使用了!

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則是可以很順的播放.

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, 恩, 他會用一 一, 所以無誤

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....可以傳輸檔案了一 一, 愚蠢的錯誤

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即可!!

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.

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
收工

2009年12月28日 星期一

安裝Mplayer至Fedora11

由於Fedora 11的套件庫, 預設是沒有mplayer的. 基於我很懶的理由...就想要去找有提供編譯好的mplayer套件庫來使用 XD.
參考網頁: rpmfusion http://blog.udn.com/webberjane/3121290

1. 首先, 需啟用rpm-fusion
# rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
# rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'

2. 再來用yum search, 就能看到mplayer了^ ^
# yum search mplayer
# yum install mplayer.i586