2012年5月11日 星期五

【小記 | Stub】學習程式設計最好的方式(!?)

內文 | Content

好啦我是騙人的

放個投影片,閃人:)

參考資料 | Reference Data

  1. Code Smart, Don't Code hard | http://speakerdeck.com/u/crboy/p/code-smart-dont-code-hard
  2.  

【小記 | Stub】【如何…? | How to...?】如何使用 make-kpkg 命令建構 Linux Kernel?

內容 | Content

我想網路上已經有很多教學了
這邊所介紹的是比較簡單方便的,在網路上稱為「The Debian Way」的方法
最新版本歡迎至 CLI程式使用經驗專案 觀看。
Linux Kernel 3.3.5已經釋出了,應該過幾天會弄出Debian軟體包裹給大家使用吧。
對,就是用這裡提到的方法:)

####make-kpkg:將linux原始程式碼build並打包成Debian軟體包裹/套件的工具
##語法:
  make-kpkg [options] [target [target ...]]
##依賴軟體包裹##
#用於全部#
kernel-package
#用於fakeroot方式建構Linux核心#
fakeroot
##基本使用方法
1.切換工作目錄(working directory)到Linux作業系統核心的根目錄(底下有arch、block、crypto等目錄的那個)
cd /directory/to/kernel/root/
2.1不登入於具管理員權限(root)帳號的建構方式
make-kpkg --rootcmd=fakeroot --revision=『套件版本』 --append-to-version=『直接後綴於套件版本後的字串』 kernel_image kernel_headers
2.2登入於具管理員權限(root)帳號的建構方式
make-kpkg --revision=『套件版本』 --revision=『套件版本』 --append-to-version=『直接後綴於套件版本後的字串(僅能包括小寫英數字)』 kernel_image kernel_headers
##其他參數
#新增環境變數(environment variable)讓make進行平行建構(parralel build)以充份利用多CPU/CPU核心系統資源
export CONCURRENCY_LEVEL=2
或是新增選項參數
--jobs 「總CPU核心數(網路上另一個需額外+1的說法似乎會有反效果)」
#跟initrd有關的選項參數
--initrd
#####使用歷史#####
make-kpkg --revision=3.3.2 --append-to-version=-generic-Vdragon-mod kernel_image kernel_headers
make-kpkg --revision=3.4.4 --append-to-version=-generic-vdragon-mod --jobs 8 kernel_image kernel_headers
make-kpkg --revision=3.3.3 --append-to-version=-intelcore2optimized-vdragon-mod --jobs 8 kernel_image kernel_headers
make-kpkg --rootcmd=fakeroot --initrd --append-to-version=-generic-vdragon-mod --jobs 8 kernel_image kernel_headers
make-kpkg --rootcmd=fakeroot --revision=3.3.4 --initrd --append-to-version=-amdk8optimized-vdragon-mod --jobs 8 kernel_image kernel_headers
make-kpkg --rootcmd=fakeroot --revision=3.3.4 --initrd --append-to-version=-generic-vdragon-mod --jobs 8 kernel_image kernel_headers

參考資料 | Reference Data