目的:備份 Embedebian 鏡像站
Embedebian 是提供 Debain 的嵌入式版本套件,特別是 ARM 的 Cross Compile 環境,在建置嵌入式系統開發時需要 Embedebian 所提供的套件才能編譯原始碼 (如 Linux 核心、bootloader) 或是進行其它工作。
一般來說我們都是直接自 Embedebian 網站上下載套件,其方式是先在 /etc/apt/sources.list 設定底下這兩行:
deb http://ftp.tw.debian.org/debian/ squeeze main
deb http://www.emdebian.org/debian/ squeeze main
加完之後執行
apt-get update
更新套件狀態,
然後先安裝 emdebian-archive-keyring 套件以免出現套件驗證錯誤,再安裝底下套件:
g++-4.4-arm-linux-gnueabi
cpp-4.4-arm-linux-gnueabi
gcc-4.4-arm-linux-gnueabi
接下來可以試著編譯 arm 底下的程式。請先建一個 hello.c 之檔案,內容如下:
#include <stdio.h>
void main(void)
{
printf("Hello World\n");
}
然後使用 gcc 來編譯:
gcc hello.c -o hello
接著可以用 file 來觀看其屬性:
file hello
我們可以看到此檔為 x86-64 之可執行檔,如底下所示:
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0xe899e4c904b6efa70bd90c9a293d37109e111e59, not stripped
接下來可以使用 arm-linux-gnueabi-gcc-4.4 來編譯此檔使其成為 ARM 之可執行檔,這個過程也就是所謂的 Cross Compile
arm-linux-gnueabi-gcc-4.4 hello.c -o hello_arm
然後使用 file 來觀看其輸出:
file hello_arm
如底下所示,是 ARM 平台的可執行檔:
hello_arm: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x1c0380de88d986d10d6fb8ef5fa9492f4bd410dd, not stripped
----------------------------------------------------------------------
請執行 getemdebian.sh 來下載 www.emdebian.org/debian 目錄,其內容如下:
debmirror \
--arch=armel,i386,amd64 \
--dist=squeeze,wheezy \
--host=www.emdebian.org \
--root="debian" \
--diff=none -p \
--nosource \
--method=http \
--section main,contrib,non-free,main/debian-installer,main/installer-armel,main/i18n,main/source \
--ignore-release-gpg /home/ftp/emdebian/ ;
date
建立好 emdebian 鏡像之後,我們可以把 /etc/apt/sources.list 改成:
deb http://ftp.tw.debian.org/debian/ squeeze main
#deb http://www.emdebian.org/debian/ squeeze main
deb ftp://localhost/emdebian/ squeeze main
完成此流程後,我們就可以把 ARM cross compiler 放在自建鏡像站的 emdebian 目錄下,「理論上」無需再透過網路上網下載檔案,但是記得隨時更新套件狀態,以免有漏洞未更新造成系統安全問題。
沒有留言:
張貼留言