300x250
반응형

안녕하세요.

 

리눅스 환경에서의 OPENSSL 크로스 컴파일 방법 입니다.

필요에 따라서 ./configure --help하여 필요한 옵션만 추가 해서 하면됩니다.

리눅스 환경은 ubuntu 14.04에서 하였고 동작은 임베디드 환경에서 동작 테스트 완료 하였습니다.

arm기반의 브로드컴칩에서 동작됩니다.

 

* 소스컴파일

./Configure linux-generic32 shared -DL_ENDIAN --prefix=/home/shlee/openssl-arm --openssldir=/home/shlee/2_nanogrid/openssl

make;make install 

 

make install을 하면 configure의 prefix로 지정된 경로로 파일을 복사 합니다.

 

또 다른 방법.

  • toolchain source해줄것.
  • configure
    ./Configure linux-generic32 shared -DL_ENDIAN --prefix=/home/shlee/xml_rpc/openssl-arm --openssldir=/home/shlee/xml_rpc/openssl
  • make 
    make install CC=arm-linux-gcc RANLIB=arm-linux-gnueabihf-gcc-ranlib LD=arm-linux-gnueabihf-ld MAKEDEPPROG=arm-linux-gnueabihf-gcc PROCESSOR=ARM
  • 참고 사이트
  • 빌드 완료 된 openssl 파일을 타겟에서 실행 하면
    symbol lookup error: ./openssl: undefined symbol: i2d_DHxparams
    위에 같은 에러가 발생 하는 경우 컴파일 하면서 생성 된 lib파일을 타겟의 libs/lib 에 복사 해 주면된다.
  • ps) libssl이나 lib crypto는 현재 타겟 이미지를 만들면서 만들어지는 라이브러리 인데 openssl 컴파일 하면서 생성된 라이브러리로 교체 해주었을 때 타겟 이미지가 정상 적인 동작을 하는지 확인이 필요하다.
  • openssl.cnf path 설정.
  • openssl 실행 후 WARNING: can't open config file: /home/shlee/xml_rpc/openssl/openssl.cnf 발생 할 경우
    export OPENSSL_CONF=/mnt/hd/openssl.cnf
    위 처럼 설정 해주면 해당 warning메세지 발생 안함. libpath 파일에 등록 하고 소싱 해주면 됨.
  • 최종 실행 방법
    1. openssl
    2. version
    이후에 본인이 설정한 버전이 맞는지 확인 하면 일단 설치는 완료.

 

 

728x90

+ Recent posts