見BSP v 2.1.0 User Manual (檔案「BSP_V 2 1 0_UM027_V1 2.pdf」的第60~63頁)

文件已經滿詳細的,我只有補充一點點。

我把文件裡的路徑都完整的抄下來,大家可以照著試試看。

 

9.1 首先,到BSP v2.1.0的目錄下找出source code,在

Linux/Source/linux-2.6.tgz

ADP-AG101(N1213)適用的tool chain為 nsd32le-linux-glibc-V0.tgz

ADP-XC5(N1213-S)適用的tool chain為 nsd32le-linux-glibc-V1.tgz,

及 nsd32le-linux-uclibc-V1.tgz 

 

我在這個練習裡,使用nsd32le-linux-glibc-V1

 

首先要把環境變數設定好。

Step 1: 開Console

$ export ARCH=nds32 CROSS_COMPILE=nds32le-linux-

($ 表示Linux的提示符號)

Step 2: 在PATH裡設定toolchain路徑

$tar xvzf

 <BSPV2.1.0>/ADP-XC5/N1213-S/Toolchains/Linux/nds32le-linux-glibc-V1.tgz

把這個壓縮檔解開來。

然後,做1個檔案叫.bashrc.private,用來指定toolchain的路徑

$ vi ~/.bashrc.private

內容為

export PATH=<BSPV2.1.0>/ADP-XC5/N1213-S /Toolchains/Linux/nds32le-linux-glibc-V1/bin:$PATH.

$source  ~/.bashrc.private

 

9.2

Step 1  做1個新的目錄<RAMDISK_ROOT>(例如我做在~/local/ramdisk_root裡),

並且把BSP裡Linux/Source下的 rootfs.tgz及busybox.tgz解開來

$ mkdir <RAMDISK_ROOT>

$ cd <RAMDISK_ROOT>

$ tar xvfz Linux/Source/rootfs.tgz

$ tar xvfz Linux/Source/busybox.tgz

 

Step 2 解開ramdisk.tgz

$ tar xvfz rootfs/ramdisk.tgz

(會產生disk目錄)

 

Step 3 切換目錄到/disk/lib裡,把一些toolchains下的東西copy到disk/lib裡

$ cd disk/lib

$ cp –arf <TOOLCHAINS>/nds32le-linux-glibc-V1/nds32le-linux/libc/lib/* .

 

Step 4 Link到root library

$ ln –s /lib nds32b

$ ln –s /lib nds32l

(根據我的測試,執行上面這2個指令時,系統都會跟你說已經存在。

那就忽略這個指令就好了,沒關係)

 

Step 5  這一步是用來減少code size

執行的目錄是在disk/lib裡

$ nds32le-linux-strip --strip-unneeded *

disk這個目錄,原本為16MB大,執行完這一步之後,就只有3.6MB大,才能包在8M的ramdisk內。

 

Step 6 建BusyBox

$cd <RAMDISK_ROOT>/busybox

$./build_busybox.sh -EL -install ../disk

 

9.2.2

如果你要增加一些工具程式,可以放在disk/usr/bin裡,待會兒會一起包進去。

像我自己加一些自己要用到的*.sh檔放在disk下,這樣子開機後就會存在,比較方便。 

 

9.2.3  用e2fsimage製作image

$ ./e2fsimage –v –f ramdisk.img –d disk –s 8192

 

9.3

Step 1  解開 Linux/Source/linux-2.6.tgz

Step 2 cd <LINUX-2.6>

(切到剛才解開的Linux路徑)

Step 3

執行預設的configure

$make xc5_defconfig

如果kernel有什麼額外的功能要開啟或關閉,我們用menuconfig去改變核心的選項。

$make menuconfig

 

Step 4製作kernel image

$ make bootpImage INITRD=<RAMDISK_ROOT>/ramdisk.img

例如我剛才做的ramdisk.img檔在~/local/ramdisk_root裡。

就打  $ make bootpImage INITRD=~/local/ramdisk_root/ramdisk.img

 

做出來的檔案在

<LINUX-2.6>/arch/nds32/boot/bootpImage

 

然後,把這個bootpImage copy到SD卡裡面,將SD卡插入XC5的插槽,

XC5開機後到 53-->97-->C:-->BOOTPI~1-->0x2000000

然後打入55-->go 0x2000000

就可以用SD卡開機。

boot.gif  

 

如果要燒錄的話,請依下列步驟做

(1) 開機後進97

    c:

    BOOTPI~1

    0x2000000

(2)燒進去

    55

    burn 0x2000000 0x80800000 0xA00000

然後 91進Linux

 

 

創作者介紹
創作者 Andes Core 的頭像
Cindy

Andes Core

Cindy 發表在 痞客邦 留言(0) 人氣( 2357 )