Openswan Porting to Pronghorn-Metro 實務經驗分享 03

很好,下一步是編譯 「開放天鵝」OpenSwan 了~

應該不會有甚麼難度吧(假設語氣)。首先,來乖乖看看安裝文件怎麼說:

To use the native (aka, Netkey) stack:
0) Please use at least version kernel version 2.6.6, as prior
versions of the kernel have serious bugs in the IPsec stack.
1) From the openswan source directory:
make programs
2) As root, install the userland tools:
make install

哼,簡單來說,就是 make programs, make install 嘛 (再提醒一下,因為我們沒有使用 KLIPS ... 所以不要去理會 make module 的部份了),編譯的過程並不十分順利,有少部份要進行修改,但都是簡單的修改,所以把修改的地方列在下面而不列出錯誤信息:

openswan/programs/pluto/server.c:780
LIST_INSERT_HEAD(&interface_dev, id, id_entry) => LIST_INSERT_HEAD(&interface_dev, id, id_entry);

openswan/programs/pluto/foodgroups.c: 22
#include => #include <linux/limits.h>

順利的 make 過了,之後就要 install 囉。因為要特別指定安裝路徑,所以指令如下:

make DESTDIR=../ADI/romfs install

簡單啊~之後在製作新的 ramdisk,下 make image 的指令... 結果... 它跟我抱怨 romfs 太大?? 奇怪了,這隻開放天鵝是有多肥啊,我看看 ... 天啊... 它把 man/docs 全都放進去了 ... 難怪啊,好吧,那我再把那些 manual, documents 砍掉總可以了吧~ 成功!很高興的開機進去執行 rsasigkey 看看 ...

cannot execute binary file

又怎麼了???嗯嗯... 過去養成的習慣,先用 file 看看 ...

ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, non-stripped

很好,非常好... 我習慣在 ADI 的目錄下直接打make,卻忘了現在在 openswan 的目錄底下,很好 ... 哼,那有甚麼難的(嘴硬的傢伙),我改用下面的 make 指令:

make KERNELSRC=../ADI/linux-2.6.x ARCH=arm OSDEP=linux USE_NETKEY=yes CC="arm-linux-gcc -L../ADI/romfs/lib" LD=arm-linux-ld RANLIB=arm-linux-ranlib AR=arm-linux-ar AS=arm-linux-as STRIP=arm-linux-strip programs

這樣總可以了吧 ... 才怪 ... 它告訴我找不到 libgmp ... 還好我對這東西有印象,請參閱之前的介紹

GNU Multiple Precision Arithmetic Library

那就下載下來編譯吧~編譯的過程如下:
./configure --host=arm-linux CC=arm-linux-gcc CXX=arm-linux-uclibc-g++ --prefix=${INSTALL_PATH}
make
make install

在範例中的 INSTALL_PATH 為 /usr/local/arm-linux ,整個過程非常順利。簡單的不得了,現在再回去編 openswan,編完以後放到版子上再執行 rsasigkey 看看,這次應該會動了吧... No ... 這又怎麼了??在用 file 去看一看

ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped

很好 ... 這回變成 endian 的問題了 ... 那應該不難吧 ... 就下次再談囉~

Porting 的紀錄又翻過了一頁~

留言

這個網誌中的熱門文章

如何將Linux打造成OpenFlow Switch:Openvswitch

如何利用 Wireshark 來監聽 IEEE 802.11 的管理封包

我弟家的新居感恩禮拜分享:善頌善禱