最近在玩 Moblin,其實就是 Ubuntu Mobile 啦!官方資料位於這裡

因為有些需求,得重新編譯核心。但是在 Moblin 上編譯核心跟平常在 Debian/Ubuntu 上編譯核心有些不同。Moblin 屬於 lpia 的架構,跟常用的 i386 是不同的。要在 i386 上編譯 lpia 的程式嘛...嘿嘿,就是 cross-compile。是的,沒錯,按照官方文件的方式呢,是使用官方提供的 Mobiln Image Creator 先建立一個 Moblin 環境(其實就是用 debootstrap)之後的開發、編譯等等都在那上面。

所以,首先建立一個專案:
$ cd ~/foo
$ image-creator --command=create-project --platform-name=menlow-lpia \
  --project-name=proj1 --project-desc='Project 1 for Menlow' \
  --project-path=./proj1






再來透過 git 取得核心原始碼:
$ cd ~/foo
$ git clone rsync://moblin.org/repos/projects/kernel-mid.git kernel-mid
$ sudo mkdir ~/foo/proj1/kernel-mid
$ sudo mount --bind ~/foo/kernel-mid ~/foo/kernel-mid/proj1/kernel-mid

接著便可以 chroot 進去所建立起來的 Moblin 環境了:
$ cd ~/foo
$ sudo /usr/sbin/chroot ./proj1
# cd kernel-mid
# dpkg-buildpackage -b

不過,跟一般使用 make-kpkg 編譯核心的方式不同,這裡直接使用 dpkg-buildpackage 進行核心編譯及打包成 deb 檔。我試了 make-kpkg,發現進行到 dh_install 時便有錯誤產生,原因是 install 某個目錄時檔案遺失了。但是不瞭解 dh_install 的運作方式沒得改...

另外幾個問題是,預設編出來的核心名稱是 linux-menlow-default-<version>,以及另一個 linux-menlow-developer-<version>,也就是說,預設會產生兩種不同設定的核心 deb 檔。而且名稱是寫死的,並且不同於常見的 linux-image-<version> 命名方式。想要改變它的名稱得在 kernel-mid 底下的 debian/rules 去改,目前是改檔案的方式,我是不知道 dpkg-buildpackage 能不能給這類的參數啦...

這個專案目前還在開發中,應該蠻值得期待的!
arrow
arrow
    全站熱搜

    zxlin 發表在 痞客邦 留言(4) 人氣()