見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卡開機。
如果要燒錄的話,請依下列步驟做
(1) 開機後進97
c:
BOOTPI~1
0x2000000
(2)燒進去
55
burn 0x2000000 0x80800000 0xA00000
然後 91進Linux
請先 登入 以發表留言。