2012年8月14日 星期二

[Vdragon-bug]Linux作業系統核心文章釋出暫停公告


由於我自身的時間分配無法正常運作
Linux作業系統核心的文章將暫停釋出
不過我仍然會持續上傳新版本(主要是自身需求的)Linux作業系統核心軟體包裹於下列網址
http://www.mediafire.com/?0cb1pf5atuv0o
需要的人請自行尋找適用的版本下載,或是下載我已經套用了修正檔(patch file)的原始程式碼壓縮封裝檔案回去自行編譯

期待以後的相會吧:)

2012年6月23日 星期六

GNU/Linux 作業系統核心(kernel) 3.4.3版本自訂Debian軟體包裹(新增更多機器的最佳化版本、理論解決64位元系統無法執行32位元可執行檔問題)


智慧財產授權條款 | Intellectual Property License

《GNU/Linux 作業系統核心(O.S. kernel) 3.4.3 版本自訂Debian軟體套件》採用
創用CC(Creative Commons)(http://creativecommons.org)組織 所規範的
創用CC姓名標示授權條款(CC BY) 3.0版本
或更新的版本。以下使用簡單易懂的文句向您說明此授權條款的內容:
您可以自由
分享(Share)
以任何方式散布及傳輸此智慧財產。
重製(Revise)
修改此智慧財產(「智慧財產授權條款」以外的部份)之任何內容。
商業性使用(Commercial usage)
使用此智慧財產營利行為中。
但是您需遵守下列限制
姓名標示(Attribution)
您必須按照授權人所指定的方式,標示授權人的名稱「……使用了「V字龍的網路日誌 | Vdragon's Internet Log」的智慧財產《GNU/Linux 作業系統核心(O.S. kernel) 3.4.3 版本自訂Debian軟體套件》」及其網路地址(),但不得以任何方式暗示此智慧財產為您或您使用此智慧財產的方式背書。
聲明(Notice)
為了再使用或散布之目的,您必須向他人清楚說明本著作所適用的授權條款。提供上方所列之創用CC的網路位址是最好的方式。
另外於下列情形下您不會受到此條款影響
免除(Waiver)
若您獲得授權人的同意,上述任何限制條件都可獲得免除。
公共領域(Public Domain)
如果當此智慧財產或其任何要素在相關法律下屬於公共領域(Public Domain),該範圍內的使用不會受到本授權條款的限制。
其他權利(Other Rights)
任何下列的權利絕不會受到本授權條款的影響:
  • 合理使用的權利
  • 作者的著作人格權
  • 其他人可能對該著作本身或該著作如何被使用所擁有的權利,例如形象權或隱私權

內容 | Content

本作品仰賴make-kpkg工具製作
This package is powered by make-kpkg tool

kernel版本 | Kernel Version

3.4.3 (穩定版本(stable version))
更新:由於3.4.4釋出,此版本的軟體包裹僅限定目前已經釋出的,將不會補全。

kernel設定選項 | Kernel Configurations

  • 基於Ubuntu 12.04LTS 當前版本的kernel配置
    based on configuration of the current Ubuntu 12.04LTS kernel
  • clock頻率改為1000Hz
    clock frequency changed to 1000Hz
  • preempt設定改為low latency
    preempt setting changed to low latency
  • CPU頻率政策改為ondemand
    CPU frequency policy changed to "on demand"
  • 沒有特別用意的加入了某些硬體的驅動程式
    added some hardware driver module in no special reason
  • 還有一些有的沒的我忘了
    some other changes forgotten by me
  • 理論上會比預設的kernel還要來得耗電,可能不適用於使用電池供電的電腦
    May consume more power than the original kernel, not suitable to computer using battery power supply
  • 預設套用了AppArmor v2.4 Capability Patch
    Default applied AppArmor v2.4 Capability Patch

已知問題 | Known Issues

  1. 如果您的開機載入程式為 burg 則安裝此kernel不會更新其開機項目清單
    解決方法:手動執行 update-burg 更新開機入程式的開機項目列表
  2. 開機時出現AppArmor Capability Patch的警告(已於+03版本修復)。
  3. make xconfig似乎會造成產生出來的header package依賴libQt(已於+05版本修復)。
  4. 64位元系統中無法執行32位元格式可執行檔(應已於此版本修正,但跟建構程序不變)

目前釋出的最新軟體包裹版本 | Currently Released Latest Software Package Version

3.4.3+06(32位元版本與64位元patch過的版本為+07,不過兩者的差異只是多了一個企鵝開機畫面)(由於起版本名稱時忘記更動製作程序版本,此版本檔名為+05的皆為+06版本)

變更紀錄 | ChangeLog

  • 3.4.1+05
    • 修正了headers軟體包裹會依賴libQt的問題
  • 3.3.7+03
    • 預設套用了AppArmor Capability Patch、新增套用了-ck Patch、BFQ Patch、UKSM Patch的版本
  • 3.3.7+02
    • 新增了套用UKSM patch的版本(不釋出)
  • 3.3.7+01
    • 理論解決 VirtualBox 作業系統核心模組無法編譯的問題(目前無AMD64版本)

下載連結 | Download Links

GNU/Linux作業系統核心的原始程式碼可以自下列網站獲得(授權條款為GPL)
http://www.kernel.org
感謝 Linux Torvalds 以及所有的支援者!
所有版本軟體包裹均存放於Mediafire共享資料夾,請依檔案名稱下載各個版本(未有對應檔案者表示尚未上傳

x86 CPU架構(32位元)(包括i386、i686、x86_64的CPU裝有32位元版本作業系統的電腦)

  • 對應的CPU架構:intel Pentium Pro 以上 (相容於大部份intel Pentium Pro以後的CPU,亦包括大部份AMD CPU)
    軟體包裹名稱:linux-*-3.4.3-generic-vdragon-mod_3.4.3+07_i386.deb
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本
      軟體包裹名稱:linux-*-3.4.3-ck1-generic-uksm-ck-bfq-patched-vdragon-mod_3.4.3+07_i386.deb
  • 對應的CPU架構:Intel Core 2
    最近的intel CPU可以考慮裝裝看這個版本,效能會比較好一點
    軟體包裹名稱:linux-*-3.4.3-intelcore2optimized-vdragon-mod_3.4.3+07_i386.deb
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本
      軟體包裹名稱:linux-*-3.4.3-ck1-intelcore2optimized-uksm-ck-bfq-patched-vdragon-mod_3.4.3+07_i386
  • 對應的CPU架構:AMD K8
    最近的AMD CPU可以考慮裝裝看這個版本,效能會比較好一點
    軟體包裹名稱:linux-*-3.4.3-amdk8optimized-vdragon-mod_3.4.3+07_i386.deb
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本
      軟體包裹名稱:linux-*-3.4.3-amdk8optimized-uksm-ck-bfq-patched-vdragon-mod_3.4.3+07_i386

x86_64 CPU架構(64位元)(包括AMD64、EM64T等架構的CPU)

  • 對應的CPU架構:所有x86_64 CPU架構皆適用
    軟體包裹名稱:linux-*-3.4.3-generic-vdragon-mod_3.4.3+05_amd64.deb
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本

  • 對應的CPU架構:Intel Core 2
    最近的intel CPU可以考慮裝裝看這個版本,效能會比較好一點
    軟體包裹名稱:linux-*-3.4.3-intelcore2optimized-vdragon-mod_3.4.3+05_amd64.deb
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本

  • 對應的CPU架構:AMD K8
    最近的AMD CPU可以考慮裝裝看這個版本,效能會比較好一點
    軟體包裹名稱: linux-*-3.4.3-amdk8optimized-vdragon-mod_3.4.3+05_amd64.deb
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本

安裝方式 | Installation Method

  1. 下載以取得 linux-header 跟 linux-image 開頭的兩個 Debian 軟體包裹檔案。
  2. (非必要但建議的步驟)安裝 linux-header 開頭的 Debian 軟體包裹
  3. 安裝 linux-image 開頭的 Debian 軟體包裹
  4. 重新開機,正常的話開機載入程式應該會多出安裝上去的作業系統核心的開機選項
  5. (安裝linux-header開頭軟體包裹需套用的修正)重新開機以安裝好的kernel版本的開機選項開機,下載我做的自訂kernel header安裝後修復symbolic link用script然後在終端機(模擬器)中切換到script的根目錄中以管理員(root)權限執行
  6. bash Shell_scripts/Fix_link.sh
    script本身做的只是把「/lib/modules/「kernel版本」 /build」這個symbolic link從我建構kernel時的Linux Kernel原始程式碼根目錄移到實際上「linux-headers開頭的Debian 軟體包裹」安裝kernel header的目錄「/usr/src/「kernel版本」/」。
  7. (安裝linux-header開頭軟體包裹需套用的修正)重新安裝先前因為symbolic link指向的Linux Kernel Header目錄不正確而無法成功建構的kernel module(如果有的話)。
    例如VirtualBox的kernel modules
    以系統管理員(root)權限執行
    /etc/init.d/vboxdrv setup

問題排除方式 | Troubleshooting

  • 使用安裝上去的作業系統核心的開機選項無法開機
    原因:該作業系統核心所對應的CPU架構與電腦的CPU不相容。
    解決方式:安裝合適的版本的作業系統核心
  • 第三方kernel module於此作業系統核心無法建構
    原因:沒有安裝linux-headers開頭的軟體包裹、沒有修正/lib/modules/「作業系統核心版本」/build symbolic link
    解決方式:請參考上方安裝方式

2012年6月21日 星期四

【小記 | Stub】【如何… | How to...】【未完成 | Incomplete】Ubuntu 12.04LTS 建構「全功能的GIMP 2.8」全紀錄

本文章採用的授權條款 | License applyed to this article

  • 創用CC(Creative Commons) BY 3.0 台灣版本
    Creative Commons BY 3.0 Taiwan Version
    http://creativecommons.org/licenses/by/3.0/tw/
    • 使用者應盡到的義務
      • 進行本文章的衍伸創作時需明確標明本文章原始來源與著作人
      • 明確標明本文章所採用的授權條款

文章內容 | Article Content

  1. 下載GIMP的原始程式碼並解壓縮,到原始程式碼的根目錄按照INSTALL檔案的說明操作。
  2. 下載BABL函式庫(ubuntu官方軟體倉庫中的版本太舊不能用)
  3. 使用CheckInstall與AutoApt方法建構並安裝BABL函式庫
    https://help.ubuntu.com/community/CheckInstall
    https://help.ubuntu.com/community/AutoApt
  4. 下載GEGL函式庫(ubuntu官方軟體倉庫中的版本太舊不能用)
  5. 由於直接建構GEGL函式庫會發生找不到「已被安裝的」BABL函式庫,我查資料發現大概是因為ldconfig預設不會去搜尋「/usr/local/lib」目錄的BABL函式庫導致,有兩種解決方法:
    1. 不需要系統管理員權限的方法
      於終端機(模擬器)下執行命令「export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib」
    2. 需要系統管理員權限的方法
      add /usr/local/lib to your /etc/ld.so.conf file and do sudo ldconfig
  6. 使用CheckInstall與AutoApt方法建構並安裝GEGL函式庫(同3.)
  7. 繼續按照INSTALL檔案的要求安裝各函式庫的開發用軟體包裹(大部份是lib「函式庫名稱」-dev)(好多!!!)
    apt-get install libgtk2.0-dev libgtk-3-dev libglib2.0-dev libgdk-pixbuf2.0-dev libpango1.0-dev libcairo2-dev libfreetype6-dev libfontconfig1-dev libdbus-glib-1-dev liblcms1-dev libpng12-dev libjpeg8-dev libpoppler-dev libtiff4-dev libwebkit-dev libmng-dev librsvg2-dev libwmf-dev zlib1g-dev libbz2-1.0 libgs-dev libaa1-dev libjasper-dev python-all-dev python-gtk2-dev python-gtk2-dev
    下列軟體包裹為INSTALL檔案未提到但configure程式有提到的,也給他補齊好了
    apt-get install libxpm-dev libexif-dev xvfb xsltproc
  8. 使用CheckInstall與AutoApt方法建構並安裝GIMP(同3.)

真的是全功能的GIMP了嗎?

呃應該沒有,不過我把能達成的軟體依賴性都儘量補全了
嗯果然說明文件沒有弄出來,不知道哪裡漏掉就是了

下載連結 | Download Links

由於此種建構方法打包出來的軟體包裹「非常的不正式」且「不會處理軟體依賴性」所以裝上去跑不動就請自行想辦法解決囉(補齊GIMP的其他軟體相依性)!
http://www.mediafire.com/?7j4y1n8d61o96

後記

結果 GIMP 2.8.0 還是給我常常程式崩潰,真是哭哭(而且我找不到定時備份的選項)

參考資料 | Reference Data 

2012年6月15日 星期五

【小記 | Stub】【如何… | How to...】在Ubuntu 12.04LTS底下使用Wine Windows平台程式相容層執行 osu! 音樂節奏遊戲

授權條款 | License

Creative Commons BY 3.0 Taiwan Version or later

適用範圍

  • 理論上適用
    • 2012/6/15時期 Wine官方PPA來源的Wine軟體包裹(及其更新版本)
      Wine 1.5.5
    • Ubuntu 12.04LTS 32位元版本(及其更新版本)
    • 2012/6/15附近時刻 的osu!版本 
  • 不適用
    • Microsoft Windows(雖然它完全不需要啦…

文章內容 | Article Content

本文章將儘量採用Wine AppDB報告型式撰寫
  1. 安裝Wine官方軟體PPA的Wine軟體包裹
  2. 下載並執行osu!的安裝程式
  3. 安裝程式理論上會在 Publishing... 階段報錯,先去「您的使用者帳號的家目錄/.wine/dosdevices/c:/Program Files/」目錄將「osu!」目錄備份(因為安裝程式會自動移除掉)然後繼續安裝程式讓他結束運行然後再將先前備份的目錄還原回原位置。
  4. 執行osu!於桌面上產生的捷徑或是osu!安裝目錄下的「osu!.exe」
  5. 到設定中將DirectX改為OpenGL可消除嚴重的延滯問題
  6. 自行調整設定到最沒有延滯感為止(我的話螢幕更新速率為60Hz)

應用程式能否安裝

不能,但是有問題排解方法(workaround)

什麼功能可以正常運作

  • OpenGL模式
  • Bancho帳號登入
  • 單人遊戲
  • 全螢幕
  • Wacom繪圖版操作
  • 更新程式
  • IRC聊天室
  • Replay
  • 中文輸入

什麼功能不能正常運作

  • DirectX模式(嚴重的畫面延滯)
  • 部份特效(因為OpenGL模式不支援)

什麼功能沒有測試

  • 線上玩家觀看(Spectating)
  • 太鼓模式
  • 接水果模式
  • 任何上述沒提到的功能 

附註

  • 測試使用的電腦配備
    • intel Core i7-680
    • NVidia GTS 250

螢幕截圖


2012年6月9日 星期六

GNU/Linux 作業系統核心(kernel) 3.4.2版本自訂Debian軟體包裹(新增套用了-ck Patch、BFQ Patch、UKSM Patch的版本)




智慧財產授權條款 | Intellectual Property License

《GNU/Linux 作業系統核心(O.S. kernel) 3.4.1 版本自訂Debian軟體套件》採用
創用CC(Creative Commons)(http://creativecommons.org)組織 所規範的
創用CC姓名標示授權條款(CC BY) 3.0版本
或更新的版本。以下使用簡單易懂的文句向您說明此授權條款的內容:
您可以自由
分享(Share)
以任何方式散布及傳輸此智慧財產。
重製(Revise)
修改此智慧財產(「智慧財產授權條款」以外的部份)之任何內容。
商業性使用(Commercial usage)
使用此智慧財產營利行為中。
但是您需遵守下列限制
姓名標示(Attribution)
您必須按照授權人所指定的方式,標示授權人的名稱「……使用了「V字龍的網路日誌 | Vdragon's Internet Log」的智慧財產《GNU/Linux 作業系統核心(O.S. kernel) 3.4.2 版本自訂Debian軟體套件》」及其網路地址(http://vdragonlog.blogspot.com/2012/06/gnulinux-kernel-342debian.html),但不得以任何方式暗示此智慧財產為您或您使用此智慧財產的方式背書。
聲明(Notice)
為了再使用或散布之目的,您必須向他人清楚說明本著作所適用的授權條款。提供上方所列之創用CC的網路位址是最好的方式。
另外於下列情形下您不會受到此條款影響
免除(Waiver)
若您獲得授權人的同意,上述任何限制條件都可獲得免除。
公共領域(Public Domain)
如果當此智慧財產或其任何要素在相關法律下屬於公共領域(Public Domain),該範圍內的使用不會受到本授權條款的限制。
其他權利(Other Rights)
任何下列的權利絕不會受到本授權條款的影響:
  • 合理使用的權利
  • 作者的著作人格權
  • 其他人可能對該著作本身或該著作如何被使用所擁有的權利,例如形象權或隱私權

內容 | Content

本作品仰賴make-kpkg工具製作
This package is powered by make-kpkg tool

kernel版本 | Kernel Version

3.4.2 (穩定版本(stable version))

kernel設定選項 | Kernel Configurations

  • 基於Ubuntu 12.04LTS 當前版本的kernel配置
    based on configuration of the current Ubuntu 12.04LTS kernel
  • clock頻率改為1000Hz
    clock frequency changed to 1000Hz
  • preempt設定改為low latency
    preempt setting changed to low latency
  • CPU頻率政策改為ondemand
    CPU frequency policy changed to "on demand"
  • 沒有特別用意的加入了某些硬體的驅動程式
    added some hardware driver module in no special reason
  • 還有一些有的沒的我忘了
    some other changes forgotten by me
  • 理論上會比預設的kernel還要來得耗電,可能不適用於使用電池供電的電腦
    May consume more power than the original kernel, not suitable to computer using battery power supply
  • 預設套用了AppArmor v2.4 Capability Patch
    Default applied AppArmor v2.4 Capability Patch

已知問題 | Known Issues

  1. 如果您的開機載入程式為 burg 則安裝此kernel不會更新其開機項目清單
    解決方法:手動執行 update-burg 更新開機入程式的開機項目列表
  2. 開機時出現AppArmor Capability Patch的警告(已於+03版本修復)。
  3. make xconfig似乎會造成產生出來的header package依賴libQt(已於+05版本修復)。

目前釋出的最新軟體包裹版本 | Currently Released Latest Software Package Version

3.4.2+05

變更紀錄 | ChangeLog

  • 3.4.1+05
    • 修正了headers軟體包裹會依賴libQt的問題
  • 3.3.7+03
    • 預設套用了AppArmor Capability Patch(尚未釋出)、新增套用了-ck Patch、BFQ Patch、UKSM Patch的版本
  • 3.3.7+02
    • 新增了套用UKSM patch的版本(不釋出)
  • 3.3.7+01
    • 理論解決 VirtualBox 作業系統核心模組無法編譯的問題(目前無AMD64版本)

下載連結 | Download Links

所有版本均存放於Mediafire共享資料夾

x86 CPU架構(32位元)(包括i386、i686、x86_64的CPU裝有32位元版本作業系統的電腦)

  • 對應的CPU架構:intel Pentium Pro 以上 (相容於大部份intel Pentium Pro以後的CPU,亦包括大部份AMD CPU)
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本
  • 對應的CPU架構:Intel Core 2
    最近的intel CPU可以考慮裝裝看這個版本,效能會比較好一點
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本
  • 對應的CPU架構:AMD K8
    最近的AMD CPU可以考慮裝裝看這個版本,效能會比較好一點
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本

x86_64 CPU架構(64位元)(包括AMD64、EM64T等架構的CPU)

  • 對應的CPU架構:所有x86_64 CPU架構皆適用
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本

  • 對應的CPU架構:Intel Core 2
    最近的intel CPU可以考慮裝裝看這個版本,效能會比較好一點
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本

  • 對應的CPU架構:AMD K8
    最近的AMD CPU可以考慮裝裝看這個版本,效能會比較好一點
    • 套用了-ck Patch、BFQ Patch、UKSM Patch的版本

安裝方式 | Installation Method

  1. 下載以取得 linux-header 跟 linux-image 開頭的兩個 Debian 軟體包裹檔案。
  2. (非必要但建議的步驟)安裝 linux-header 開頭的 Debian 軟體包裹
  3. 安裝 linux-image 開頭的 Debian 軟體包裹
  4. 重新開機,正常的話開機載入程式應該會多出安裝上去的作業系統核心的開機選項
  5. (安裝linux-header開頭軟體包裹需套用的修正)重新開機以安裝好的kernel版本的開機選項開機,下載我做的自訂kernel header安裝後修復symbolic link用script然後在終端機(模擬器)中切換到script的根目錄中以管理員(root)權限執行
  6. bash Shell_scripts/Fix_link.sh
    script本身做的只是把「/lib/modules/「kernel版本」/build」這個symbolic link從我建構kernel時的Linux Kernel原始程式碼根目錄移到實際上「linux-headers開頭的Debian 軟體包裹」安裝kernel header的目錄「/usr/src/「kernel版本」/」。
  7. (安裝linux-header開頭軟體包裹需套用的修正)重新安裝先前因為symbolic link指向的Linux Kernel Header目錄不正確而無法成功建構的kernel module(如果有的話)。
    例如VirtualBox的kernel modules
    以系統管理員(root)權限執行
    /etc/init.d/vboxdrv setup

問題排除方式 | Troubleshooting

  • 使用安裝上去的作業系統核心的開機選項無法開機
    原因:該作業系統核心所對應的CPU架構與電腦的CPU不相容。
    解決方式:安裝合適的版本的作業系統核心
  • 第三方kernel module於此作業系統核心無法建構
    原因:沒有安裝linux-headers開頭的軟體包裹、沒有修正/lib/modules/「作業系統核心版本」/build symbolic link
    解決方式:請參考上方安裝方式

2012年6月3日 星期日

我的 GNU/Linux 作業系統核心自製 Debian 軟體包裹製作程序(The Debian way)

我的 GNU/Linux 作業系統核心自製 Debian 軟體包裹製作程序(The Debian way)

智慧財產授權條款 | Intellectual Property License

本文章以創用CC BY 3.0 台灣版本授權所有人使用。
如果有其他需求歡迎來信詢問

文章版本 | Article Version

+09

文章修改紀錄 | Article ChangeLog

  • +09
    • 增加 ZRAM 的選項
  • +08
  • +07
    • 預計要新增 ureadahead 的 kernel patch (在開發者未提供可成功套用差異檔的情況下還是繼續等吧= =)
    •  測試官方 Linux Bootup logo 選項
  • +06
    • 修正了更換CPU架構會造成編譯出來的作業系統核心不支援 Physical Address Extension 的問題。
    • 文章正式釋出。
  • +05
    • 解決 make xconfig 之後建構的 linux-headers Debian 軟體包裹依賴 Qt 函式庫的問題
  • +04
    • 增加了啟用 Intel、AMD IOMMU 的選項
  • +03
    • 第一次撰寫

文章適用範圍

  • 實際測試於 Ubuntu 12.04LTS、12.10 版本
  • 理論上適用於 Debian 跟基於 Debian 的 Linux 散佈版本(如 Ubuntu、Linux Mint 等)

文章內容 | Article Content

因為 VirtualBox 作業系統核心模組太容易不小心建構不出來了所以…Orz...
總之這是我做出 Linux 作業系統核心 Debian 軟體包裹的標準程序。
這裡用的是所謂 The Debian way 的建構方法,可以直接建構並打包成可輕易安裝及移除的 Debian 軟體包

確認建構 Linux 作業系統核心所需要的軟體是否已安裝

  • 必要條件
    • kernel-package 軟體包
      • make-kpkg 命令等
    • 待補充
  • 選用條件
    • Qt 函式庫開發用軟體包
      • make xconfig 命令需要用到
    • Gtk 函式庫開發用軟體包
      • make gconfig 命令需要用到
    • 待補充

獲取並建構 Linux 作業系統核心

  1. www.kernel.org 下載最新穩定版本的 Linux 作業系統核心原始程式碼壓縮封裝檔。
  2. 在一個 UNIX 檔案系統的磁碟分割區中解壓縮壓縮封裝檔
    • 其他類型的檔案系統我還沒試過…
    • 如果可用記憶體空間夠大(6~8GiB)的話可以直接建立跟 RAM 磁碟差不多的 tmpfs 檔案系統並在其中建構 
      • mount --types tmpfs --options size=8G tmpfs 「要掛載的目錄」
        • 掛載選項
          • size
            • tmpfs 檔案系統最大允許的大小(似乎預設值挺小的)
  3. 執行終端機(模擬器),變更目前工作目錄(current working directory)至kernel 原始程式碼根目錄內(有 arch、block、kernel、net、drivers 等資料夾的那一層目錄)。
  4. 執行「make mrproper」。
  5. 下載並套用合適的版本的 AppArmor 2.4 Capability Patchureadahead trace patch (現在暫時用這個)。
    patch --strip 1 < 「patch檔案的位址」
  6. 確定「make gconfig」或「make xconfig」所需的軟體相依性有沒有俱備。
  7. 執行「make gconfig」或「make xconfig」以建構並執行kernel的設定工具。
  8. 載入/boot/中Ubuntu官方linux kernel的config開頭的檔案。
  9. Processor type and features分類中選擇需要的設定
    • Processor family
      • 說明:編譯器要針對做最佳化的的CPU種類(較新的CPU family效能較好但其他機器相容性較低)
      • 影響範圍:效能 或 硬體相容性
    • Preemption Model(Preemptible Kernel (Low-Latency Desktop))
      • 影響範圍效能 或 電力消耗
    • Timer frequency(1000HZ)
      • 影響範圍效能 或 電力消耗
    • 勾選Tickless System (Dynamic Ticks)。
      • 影響範圍效能 或 電力消耗
    •  High Memory Support勾選64GB
      • 影響範圍:可使用可用記憶體空間 或 效能
  10. Power management and ACPI options分類中選擇需要的設定
    • CPU Frequency scaling中選擇需要的Default CPUFreq governor(ondemand)。
      • 影響範圍效能 或 電力消耗
  11. 選擇自己感興趣的自訂項目(胡搞亂搞模式啟動!)
    • /Security options/Enable Intel(R) Trusted Executaion Technology (Intel(R) TXT)
    • /Security options/Integrity Measurement Architecture(IMA)
    • /Device Drivers/Staging drivers/Android/
    • Enable Intel DMA Remapping Devices by default(INTEL_IOMMU_DEFAULT_ON)
    • AMD IOMMU support
    • /Processor type and features/Toshiba laptop support 
    • x32 ABI for 64-bit mode 
    • EFI stub support 
    • Enable verbose x86 bootup info messages
    • Opportunistic sleep
    • User space wakeup sources interface
    • Enable frontswap to cache swap pages if them is present
    • OTG support
    • Enable RCU priority boosting 
    • Forced module loading/unloading
      • 用途 | Usage
        主要是用來協助Linux作業系統核心模組(kernel module)開發
    •  ZSMALLOC & ZRAM支持
  12. 儲存 kernel 設定之後關閉 kernel設定工具。
  13. 執行「make clean」(為了要排除掉無用的設定工具的軟體相依性)跟「make-kpkg clean」移除先前可能存在的建構產物
  14. 編輯「家目錄/.kernel-pkg.conf」的 maintainer、email 選項(可以複製 /etc/kernel-pkg.conf 當作範本)。
  15. 執行「make-kpkg clean」。
  16. 執行make-kpkg程式建構Linux Kernel並包成Debian軟體包裹。
    執行範例(注意:這只是範例!):
    make-kpkg --initrd --rootcmd=fakeroot --jobs 6 --revision=3.4.6+08 --append-to-version=-intelceleronm
    optimized-vdragon-mod kernel_headers kernel_image

    make-kpkg --initrd --rootcmd=fakeroot --jobs 6 --revision=3.4.5+08 --append-to-version=-intelcore2optimized-uksm-ck-bfq-patched-vdragon-mod
    kernel_headers kernel_image
    執行成功的話目前工作目錄的上一層目錄會出現Debian軟體包裹檔案。
  17. 如果要建構別的版本
    1. 執行「make gconfig」或「make xconfig」以建構並執行kernel的設定工具。
    2. 回到9,如果要更換CPU架構的話回到8。
      ----第一階段結束 | First Phase Ended----
  18. 下載並套用合適的版本的UKSM PatchBrain Fuck Scheduler(B.F.S.) Patch-ck PatchBudget Fair Queuing IO Scheduler Patch
    patch -p1 < 「patch檔案的位址」
  19. 執行「make gconfig」或「make xconfig」以建構並執行 kernel 的設定工具(Budget Fair Queuing IO Scheduler不會自動啟用要手動勾選)。
  20. 執行9~17。
    ----釋出 | Release----

安裝建構好的Debian軟體包裹

  1. 重要重要重要重要!解除掛載Linux Kernel原始程式碼位址所在的磁碟分割區(disk partition)或是移動原始程式碼的目錄,要不然header軟體包裹會白目的在原始碼中新增指向它的symbolic link,然後編譯VirtualBox kernel modules時會GG。
    ※更新:我大概知道這一段要怎麼處理了,先跳過。
    • 暫時的排解問題方法 | Workarounds
      • 安裝 kernel-package 軟體包
      • 以系統管理身份複製 /usr/share/kernel-package/examples/ 目錄底下的「etc/kernel/*/link」或「etc/kernel/*/force-build-link」shell script 程式至 /etc/kernel/ 底下的對應位置
  2. 安裝「linux-image」跟「linux-header」開頭的兩個Debian軟體包裹。
  3. 如果還是有問題請見 4. 以後的說明
  4. 重新開機以安裝好的kernel版本的開機選項開機,下載我做的自訂kernel header安裝後修復symbolic link用script然後在終端機(模擬器)中切換到script的根目錄中以管理員(root)權限執行
    bash Shell_scripts/Fix_link.sh
    script本身做的只是把「/lib/modules/「kernel版本」/build」、「/lib/modules/「kernel版本」/source」這兩個symbolic link從我建構kernel時的Linux Kernel原始程式碼根目錄移到實際上「linux-headers開頭的Debian 軟體包裹」安裝kernel header的目錄「/usr/src/
    「kernel版本」/」。
  5. 重新安裝先前因為symbolic link指向的 Linux Kernel Header目錄不正確而無法成功建構的 kernel module。

已知問題 | Known Issues

  • 理論上 make-kpkg 本身可以做到直接建立指向「/usr/src/「kernel版本」/」的symbolic link,但是礙於時間有限我現在只有做到自行修補。
    •  已有 workaround ,大概是 make-kpkg 的程式缺陷
  • linux-headers開頭的軟體包裹居然會莫名其妙的依賴libqtcore…造成某些比較舊的版本無法安裝(已於+5版本修復)。
  • Ubuntu 10.04LTS因為gcc版本不相容的問題即使安裝了 linux-headers 開頭的軟體包裹也無法安裝第3方kernel modules(不修復,升級系統比較快)。
  • 建構出來的kernel無法執行32位元可執行檔(+6版本應不需修改建構程序即可解決)。

參考資料 | Reference Data

  1. 自己。

2012年5月24日 星期四

Linux 作業系統核心(kernel) 3.3.7版本自訂Debian軟體包裹(新增套用了-ck Patch、BFQ Patch、UKSM Patch的版本)



智慧財產授權條款
Intellectual Property License

《Linux 作業系統核心(O.S. kernel) 3.3.7 版本自訂Debian軟體包裹》採用
創用CC(Creative Commons)(http://creativecommons.org)組織 所規範的
創用CC姓名標示授權條款(CC BY) 3.0版本
或更新的版本。以下使用簡單易懂的文句向您說明此授權條款的內容:
您可以自由
分享(Share)
以任何方式散布及傳輸此智慧財產。
重製(Revise)
修改此智慧財產(「智慧財產授權條款」以外的部份)之任何內容。
商業性使用(Commercial usage)
使用此智慧財產營利行為中。
但是您需遵守下列限制
姓名標示(Attribution)
您必須按照授權人所指定的方式,標示授權人的名稱「……使用了「V字龍的網路日誌 | Vdragon's Internet Log」的智慧財產《GNU/Linux 作業系統核心(O.S. kernel) 3.3.7 版本自訂Debian軟體套件》」及其網路地址(http://vdragonlog.blogspot.com/2012/05/gnulinux-kernel-337debian.html),但不得以任何方式暗示此智慧財產為您或您使用此智慧財產的方式背書。
聲明(Notice)
為了再使用或散布之目的,您必須向他人清楚說明本著作所適用的授權條款。提供上方所列之創用CC的網路位址是最好的方式。
另外於下列情形下您不會受到此條款影響
免除(Waiver)
若您獲得授權人的同意,上述任何限制條件都可獲得免除。
公共領域(Public Domain)
如果當此智慧財產或其任何要素在相關法律下屬於公共領域(Public Domain),該範圍內的使用不會受到本授權條款的限制。
其他權利(Other Rights)
任何下列的權利絕不會受到本授權條款的影響:
  • 合理使用的權利
  • 作者的著作人格權
  • 其他人可能對該著作本身或該著作如何被使用所擁有的權利,例如形象權或隱私權

內容
Content

本作品仰賴make-kpkg工具製作
This package is powered by make-kpkg tool

kernel版本
Kernel Version

3.3.7 (穩定版本(stable version))

kernel設定選項
Kernel Configurations

  • 基於Ubuntu 12.04LTS 當前版本的kernel配置
    based on configuration of the current Ubuntu 12.04LTS kernel
  • clock頻率改為1000Hz
    clock frequency changed to 1000Hz
  • preempt設定改為low latency
    preempt setting changed to low latency
  • CPU頻率政策改為ondemand
    CPU frequency policy changed to "on demand"
  • 沒有特別用意的加入了某些硬體的驅動程式
    added some hardware driver module in no special reason
  • 還有一些有的沒的我忘了
    some other changes forgotten by me
  • 理論上會比預設的kernel還要來得耗電,可能不適用於使用電池供電的電腦
    May consume more power than the original kernel, not suitable to computer using battery power supply
  • 預設套用了AppArmor v2.4 Capability Patch
    Default applied AppArmor v2.4 Capability Patch

已知問題
Known Issues

  1. 如果您的開機載入程式為 burg 則安裝此kernel不會更新其開機項目清單
    解決方法:手動執行 update-burg 更新開機入程式的開機項目列表
  2. 開機時出現AppArmor Capability Patch的警告(已於3.3.7+03版本修復)。
  3. make xconfig似乎會造成產生出來的header package依賴libqt。

目前釋出的最新軟體包裹版本
Currently Released Latest Software Package Version

3.3.7+03

變更紀錄
ChangeLog

  • 3.3.7+03
    • 預設套用了AppArmor Capability Patch(尚未釋出)、新增套用了-ck Patch、BFQ Patch、UKSM Patch的版本
  • 3.3.7+02
    • 新增了套用UKSM patch的版本(不釋出)
  • 3.3.7+01
    • 理論解決 VirtualBox 作業系統核心模組無法編譯的問題(目前無AMD64版本)

下載連結
Download Links

沒有超連結表示還沒有上傳的意思。

x86 CPU架構(32位元)(包括i386、i686、x86_64的CPU裝有32位元版本作業系統的電腦)

x86_64 CPU架構(64位元)(包括AMD64、EM64T的CPU)


安裝方式
Installation Method

  1. 下載以取得 linux-header 跟 linux-image 開頭的兩個 Debian 軟體包裹檔案。
  2. (非必要但建議的步驟)安裝 linux-header 開頭的 Debian 軟體包裹
  3. 安裝 linux-image 開頭的 Debian 軟體包裹
  4. 重新開機,正常的話開機載入程式應該會多出安裝上去的作業系統核心的開機選項
  5. (安裝linux-header開頭軟體包裹需套用的修正)重新開機以安裝好的kernel版本的開機選項開機,下載我做的自訂kernel header安裝後修復symbolic link用script然後在終端機(模擬器)中切換到script的根目錄中以管理員(root)權限執行
  6. bash Shell_scripts/Fix_link.sh
    script本身做的只是把「/lib/modules/「kernel版本」/build」這個symbolic link從我建構kernel時的Linux Kernel原始程式碼根目錄移到實際上「linux-headers開頭的Debian 軟體包裹」安裝kernel header的目錄「/usr/src/「kernel版本」/」。
  7. (安裝linux-header開頭軟體包裹需套用的修正)重新安裝先前因為symbolic link指向的Linux Kernel Header目錄不正確而無法成功建構的kernel module(如果有的話)。
    例如VirtualBox的kernel modules
    以系統管理員(root)權限執行
    /etc/init.d/vboxdrv setup

問題排除方式
Troubleshooting

  • 使用安裝上去的作業系統核心的開機選項無法開機
    原因:該作業系統核心所對應的CPU架構與電腦的CPU不相容。
    解決方式:安裝合適的版本的作業系統核心
  • 第三方kernel module於此作業系統核心無法建構
    原因:沒有安裝linux-headers開頭的軟體包裹、沒有修正/lib/modules/「作業系統核心版本」/build symbolic link
    解決方式:請參考上方安裝方式

2012年5月18日 星期五

不完整的 launchpad.net 軟體PPA(Personal Package Archive)列表


這篇文章的智慧財產授權條款 | Intellectual Property License of This Article


〈不完整的Ubuntu官方軟體PPA(Personal Package Archive)列表〉採用

創用CC(Creative Commons)(http://creativecommons.org)組織

所規範的


創用CC姓名標示授權條款(CC BY) 3.0版本


或更新的版本。以下使用簡單易懂的文句向您說明此授權條款的內容:
您可以自由
分享(Share)

以任何方式散布及傳輸此智慧財產。
重製(Revise)
修改此智慧財產(「智慧財產授權條款」以外的部份)之任何內容。
商業性使用(Commercial usage)
使用此智慧財產營利行為中。
但是您需遵守下列限制
姓名標示(Attribution)

您必須按照授權人所指定的方式,標示授權人的名稱「……使用了「V字龍」的不完整的Ubuntu官方軟體PPA(Personal Package Archive)列表」及其網路地址(「http://vdragonlog.blogspot.com/2012/05/not-complete-launchpadnet-ppapersonal.html」),但不得以任何方式暗示此智慧財產為您或您使用此智慧財產的方式背書。
聲明(Notice)
為了再使用或散布之目的,您必須向他人清楚說明本著作所適用的授權條款。提供上方所列之創用CC的網路位址是最好的方式。
另外於下列情形下您不會受到此條款影響
免除(Waiver)

若您獲得授權人的同意,上述任何限制條件都可獲得免除。
公共領域(Public Domain)
如果當此智慧財產或其任何要素在相關法律下屬於公共領域(Public Domain),該範圍內的使用不會受到本授權條款的限制。
其他權利(Other Rights)
任何下列的權利絕不會受到本授權條款的影響:

  • 合理使用的權利
  • 作者的著作人格權
  • 其他人可能對該著作本身或該著作如何被使用所擁有的權利,例如形象權或隱私權

警告 | Warning

使用本文章內容進行操作可能導致作業系統損毀運作不正常等問題,請小心謹慎使用!

文章適用範圍

  • 已測試
    • 僅確定適用於 GNU/Linux作業系統 Ubuntu散佈版 12.04 長期支援(LTS)版本。
  • 理論適用
    • 理論適用於所有 Ubuntu發行版本(distribution)的最近版本。
    • 理論適用所有可以安裝APT軟體包裹管理系統的非APT系列作業系統(但不建議)
  • 不適用
    • Microsoft Windows作業系統

文章內容 | Article content

什麼是 Personal Package Archive (PPA)?可以吃嗎?

PPA 是 lauchpad.net 提供給第三方軟體包裹(套件)包裝者 (packager) 建立自己的 debian軟體倉庫(software repository)的服務。打包者可以上傳軟體的原始程式碼與其他相關資源到 launchpad.net 上,經過 launchpad.net 的伺服器自動建構(build)軟體並包裝成 Debian軟體包裹就可以讓「以該軟體倉庫作為軟體來源(software sources)」的使用者存取並安裝或更新軟體包裹。

使用 Personal Package Archive (PPA) 的理由?

  • 安裝更新的軟體版本(Debian(以及以 Debian 為基礎的某些 Linux 發行版本)於各個版本釋出(release)後就會凍結(freeze)官方套件庫內的軟體的版本,只會對程式缺陷或是資訊安全缺陷進行更新以提高軟體穩定性。如果要安裝軟體於凍結套件庫之後所釋出的更新就需要透過其他的方式(包括使用PPA))

Personal Package Archive (PPA) 的設定方法?

目前最簡單的設定 PPA軟體來源的方式請參考 add-apt-repository 軟體。
如果真的掛掉的話可以試試看使用 ppa-purge 軟體復原。
  1. 使用 add-apt-repository 命令設定 PPA 為作業系統的軟體來源。
  2. 更新軟體包裹管理系統(Software Package Management System)的軟體包裹快取資料(cache data)。
  3. 更新或升級軟體。

launchpad.net 官方(official)穩定(stable)/釋出(release)版本的軟體PPA(Personal Package Archive)列表

這裡列出的全是「官方的(official)」「穩定(stable)或釋出(release)版本的」軟體 PPA,不過仍不代表說使用這些 PPA系統不會掛掉(笑),請謹慎使用!

launchpad.net 官方穩定(stable)(?)版本的PPA(Personal Package Archive)列表

這裡列出的全是「官方的(official)」「『應該是』穩定(stable)版本的(PPA 本身沒有註明)」的軟體 PPA,不過仍不代表說使用這些 PPA系統不會掛掉(笑),請謹慎使用!

launchpad.net 官方軟體非穩定(non-stable)版本的PPA(Personal Package Archive)列表

僅供測試,請小心使用

launchpad.net 「非」官方軟體穩定(stable)(?)版本的PPA(Personal Package Archive)列表

雖然跟主題無關,不過不列出來有些可惜,請小心使用

參考資料 | Reference Data

  1. 自己。