很不幸的, 大家認為只要長得很詭異的類UNIX系統, 都認為是我能搞定的...被丟了一個QNX, 說應該跟linux很像...囧
這邊隨手紀錄一下一些指令和操作, 雖然有文件, 但是翻起來也亂花時間的一 一, 所以只紀錄比較常用到的.
use (QNX) = man (Linux)
sloginfo = dmesg
pci = lspci
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是必編譯的。