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年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), 以及一些比較複雜的文法, 複雜的文法我必須要閱讀好幾次才會抓到它真正要表達的意思...這邊可能就是要靠多看以及複習以前的文法來達到第一階段的訓練了...
第二階段構思中~

再來就是我目前最大的問題了...健康:
我太胖了, 這樣不健康, 縱使我每天都很開心, 這樣會讓我比較長壽...
三餐我必須要正常吃, 避免吃下午茶, 晚餐過後一定不吃任何東西!!
我要維持運動! 由於太胖了! 我要游泳! 這樣對身體負擔比較不大, 而且春天了!!

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手冊

您必須履了解您的系統才可以開始手動編譯。系統上多數的資料可以安裝 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