跳到主要內容

ASUS zenbook UX330U - Ubuntu 安裝筆記

最近剛換筆電,身為資工人,當然一定要裝上Linux 作業系統,Ubuntu自然是首選。
關於Ubuntu安裝過程就省略,本篇主要是紀錄一些安裝Ubuntu之後所遇到的問題,以及要如何解決。

Ubuntu安裝之道可以參考

我是安裝 Ubuntu 16.04的版本,以下的方法都是通用的 !

Ubuntu 16.04製作Live USB隨身碟的軟體Unetbootin
https://goo.gl/UX3kLZ

安裝Ubuntu 15.04
https://goo.gl/9JWwbh

安裝後遇到的問題 (我認為是大眾都會遇到問題)




  • 需安裝中文輸入法


我是採用國產中文輸入法 gcin,用了兩年,使用上感覺不錯,所以這次繼續支持。

gcin 安裝方法 :  https://goo.gl/6Xuqzw

安裝完之後,只需登出再登入後就能正確使用中文輸入法。

  • 筆電上的組合鍵失效


可能每台筆電會遇到的狀況不同,以我這台筆電來說,是調整螢幕亮度的組合鍵失效了。所以找了網上的一些方法,也找到了一個正確的解法(至少對我來說是可行的)。

參考網址 : https://goo.gl/SzXdIH

修改 grub (是Linux 採用的開機管理程式)

    1. sudo vi /etc/default/grub
    2. 將 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 改成 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force acpi_osi="
    3. sudo update-grub
    4. 重新啟動筆電
接下來要針對筆電內部的顯卡做設定,才能真正調控亮度,我的是intel的內顯
    1. sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf
    2. 貼上以下這段
      Section "Device"
          Identifier "card0"
          Driver "intel"
          Option "Backlight" "intel_backlight"
          BusID "PCI:0:2:0"
      EndSection
    3. 重新啟動筆電
經過上述的修改就可用組合鍵掌控螢幕亮度囉~

  • Power saving optimization

這個問題是大家在windows筆電上安裝Ubuntu會遇到的問題,所以在Ubuntu討論區也有各種的解法,甚至有製作了文件來解說解法,我找到了針對zenbook的修改方式。

參考網址 : https://goo.gl/WpVh53

其實完成了上面那個螢幕亮度的問題後,就可以達到滿好的省電效果,只是還可以繼續優化

除了上述的方式,也可以使用ubuntu的套件 PowerTop來 tune效能

參考網址 : https://goo.gl/6rmpl8

建議可以將設定寫成script文件,因為PowerTop似乎有bug,就是不能紀錄之前的設定,所以下次開機就要再重來,相當麻煩。

留言

這個網誌中的熱門文章

藉由select & poll來學習 Linux device driver programming

最近因為想學習撰寫一隻 Linux device driver,所以先藉由 Linux Device Driver Programming 驅動程式設計 ,這本書裡的select & poll 的範例程式開始學習。但是因為這本書當時再寫的時候,kernel版本大致分為 2.4 和 2.6,版本比較舊,有些函式已有變動,所以有做一些修改。(我的Kernel版本為4.2版) 驅動程式筆記與程式碼講解 函式加上 static ,讓命名空間限制在檔案內。不過在這裡就算不加static也不會影響kernel整體的符號表。這是只緊限於kernel module的時候,也就是動態載入的驅動程式來說。如果是希望其他module能夠呼叫的話,就必須要使用EXPORT_SYMBOL來明確匯出函式。 驅動程式內部能夠使用到 printf(),因為kernel space沒有直接對應的console (鍵盤,畫面)。但是還是有可代用的function printk()。它輸出的資料會跑到kernel buffer內。kernel buffer 可以用 dmesg 指令查閱,不過空間才只有 128KB(default),而且是環狀的形式(所以心資料會蓋過最舊的資料)。因此不能一直把資料保留在裏面,可以用syslogd 或是 klogd 之類的程式把資料寫到 syslog 裡(var/log/message),不過這種方法還是可能會漏掉訊息。 下面是訊息等級,在 kernel 4.2 版本,預設等級是 log level。但是在 kernel 2.6 版本預設等級是 4。 驅動程式的進入點並不是 main() ,因為驅動程式與一般應用程式是不同的,而且必須準備多個,其中至少要兩個進入點 insmod 與 modprobe 呼叫的初始化函式 rmmod 呼叫的結束函式 對於這隻driver來說就是 devone_init()與devone_exit()。 其他進入點還包含 系統呼叫 中斷服務程序 計時器程序 驅動程式碼

編譯入門 - gcc toolchain

程式編譯的過程是很複雜的,初學者在學習寫程式的時候,大部份是透過IDE來編譯程式的,所以將內部的編譯流程都隱藏了起來。其實過程是很複雜的,我打算先以觀察gcc 編譯程式的的過程以及中間的產物來開始學習。 以下資料是透過閱讀 「 程式設計師的自我修養 - 連結、載入、程式庫 」並在自己的電腦上驗證結果。 先透過一個最簡單的入門程式開始學起, Hello World !! 接下來我們使用 gcc 來編譯它巴 $gcc hello.c $./a.out Hello World! 上面看似簡單的編譯指令,其實中間包括了4個階段 前置處理 (Preprocessing) 編譯 (Compilation) 組譯 (Assembly) 連結 (Linking) 圖示 : 下面我會使用 gcc 一步一步的編譯 Hello World 這隻程式,將結果呈獻出來。