2014年5月29日 星期四

備份 Embedebian 鏡像站

目的:備份 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 目錄下,「理論上」無需再透過網路上網下載檔案,但是記得隨時更新套件狀態,以免有漏洞未更新造成系統安全問題。

沒有留言:

張貼留言