最近在玩 Moblin,其實就是 Ubuntu Mobile 啦!官方資料位於這裡。
因為有些需求,得重新編譯核心。但是在 Moblin 上編譯核心跟平常在 Debian/Ubuntu 上編譯核心有些不同。Moblin 屬於 lpia 的架構,跟常用的 i386 是不同的。要在 i386 上編譯 lpia 的程式嘛...嘿嘿,就是 cross-compile。是的,沒錯,按照官方文件的方式呢,是使用官方提供的 Mobiln Image Creator 先建立一個 Moblin 環境(其實就是用 debootstrap)之後的開發、編譯等等都在那上面。
所以,首先建立一個專案:
再來透過 git 取得核心原始碼:
接著便可以 chroot 進去所建立起來的 Moblin 環境了:
不過,跟一般使用 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 能不能給這類的參數啦...
這個專案目前還在開發中,應該蠻值得期待的!
因為有些需求,得重新編譯核心。但是在 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 能不能給這類的參數啦...
這個專案目前還在開發中,應該蠻值得期待的!
文章標籤
全站熱搜

請問你後來有去面試東華大學嗎>"<
有啊 :p
*****
*****
你好: 最近看到moblin,想碰碰看,google時看到你的文章,就照著做,但有點問題: 再來透過 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 這邊的dpkg-buildpackage -b有什麼功能呢? 如果dpkg-buildpackage -b成功的話就能看到你所說的核心? 謝謝你 ^^
dpkg-buildpackage 是 Debian/Ubuntu 底下用來做出 package 的工具。 這篇文章應該過時了,我不曉得 moblin.org 有沒有更新相關文件耶! 這個是在去年年底的文件,所以可能該改的都改了…
您好 請問您是否還有在玩moblin 有些相關問題 是否可以尋問您呢 ? 謝謝
沒有了,因為換了工作去寫 BIOS 了。 關於 Moblin,只知道出了 Moblin 2,前陣子在做 Moorestown 時有用 Moblin 2 來測,但也就只有這樣子了,沒有用它開發了。