目前日期文章:201601 (4)

瀏覽方式: 標題列表 簡短摘要

升級 wget

  • sudo apt-get build-dep wget
  • wget ftp://ftp.gnu.org/gnu/wget/wget-1.17.1.tar.gz
  • sudo apt-get remove wget
  • tar zxvf wget-1.17.1.tar.gz
  • cd wget-1.17.1
  • ./configure --with-ssl=openssl --prefix=/opt/wget
  • make
  • sudo make install
  • sudo ln -s /opt/wget/bin/wget /usr/bin/wget

移除 wget

  • sudo rm -r /opt/wget
  • sudo rm /usr/bin/wget

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

修改 buildlin.sh

  • 刪除 if [ ! -f /usr/include/gmp.h ]; 這一整段。我是自己 build gmp for mips,不能用 x86 版本。
  • export PREFIX=../rtl819x/toolchain/msdk-4.4.7-mips-EB-3.10-0.9.33-m32t-131227b
  • export DESTDIR=/tmp/openswan
  • export ARCH=mips
  • export OSDEP=linux
  • export CC=$PREFIX/bin/mips-linux-gcc
  • export GCC=$PREFIX/bin/mips-linux-gcc
  • export LD=$PREFIX/bin/mips-linux-ld
  • export RANLIB=$PREFIX/bin/mips-linux-ranlib
  • export AR=$PREFIX/bin/mips-linux-ar
  • export AS=$PREFIX/bin/mips-linux-as
  • export STRIP=$PREFIX/bin/mips-linux-strip
  • export LD_LIBRARY_PATH=$PREFIX/lib/gcc/mips-linux-uclibc/4.4.7/
  • export PATH=$PATH:$PREFIX/bin
  • export USERCOMPILE="-fPIC -I../gmp-6.1.0 -I$PREFIX/include -L$PREFIX/lib"
  • export USERLINK="-L../gmp-6.1.0/.libs"
  • export KERNELSRC=../rtl819x/linux-3.10

主要是參考 CROSSCOMPILE.sh,這個檔案是寫給 arm 用的,但我的是 mips,所以需要小修改。

編譯

  • 修改 buildlin.sh
  • 執行 buildlin.sh
  • 編譯出來的檔案都放在 OBJ.linux.mips,所以只要把該目錄刪除就相當於做 make clean。
  • 如果要做 install,要修改 buildlin.sh,make USE_OBJDIR=true programs 改成 make USE_OBJDIR=true programs install。

問題排除

 CC      /home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.o
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:8: error: variable '__this_module' has initializer but incomplete type
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:9: error: unknown field 'name' specified in initializer
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:9: warning: excess elements in struct initializer
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:9: warning: (near initialization for '__this_module')
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:10: error: unknown field 'init' specified in initializer
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:10: warning: excess elements in struct initializer
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:10: warning: (near initialization for '__this_module')
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:14: error: unknown field 'arch' specified in initializer
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:14: error: 'MODULE_ARCH_INIT' undeclared here (not in a function)
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:14: warning: excess elements in struct initializer
/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.c:14: warning: (near initialization for '__this_module')
make[3]: *** [/home/enos/FGN-1000/openswan-2.6.43.1/modobj26/ipsec.mod.o] Error 1
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/home/enos/FGN-1000/fib003_res/rtl819x/linux-3.10'
make[1]: *** [module26] Error 2
make[1]: Leaving directory `/home/enos/FGN-1000/openswan-2.6.43.1'
make: *** [module] Error 2

這是因為 kernel module 動態載入功能沒開啟,把 Enable loadable module support 打開即可。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

build pgen

  • mkdir build.pc
  • cd build.pc
  • ../configure
  • make Parser/pgen

因為在編譯 python 時,會用到本身的 pgen,但是 cross compile 編出來的當然不能用,只能先編一套 pc 版的出來。

build python

  • 修改 Makefile.pre.in,把 pgen 換成 pc 版本。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

在 Ubuntu 10.04 的 python 為 2.6,為了編譯 python for mips 必須升級 python 到 2.7。

  • sudo add-apt-repository ppa:fkrull/deadsnakes
  • sudo apt-get update
  • sudo apt-get install python2.7

參考:How do I install python 2.7.2 on Ubuntu?

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()