Month: December 2011

Compilação cruzada para aplicações desenvolvidas com o CMake

Se você deseja fazer a compilação cruzada de um programa que usa o CMake para geração dos Makefiles, então você pode declarar o seguinte código no seu CMakeLists.txt :

INCLUDE(CMakeForceCompiler)

# this one is important
SET(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)

#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)

# specify the cross compiler
SET(CMAKE_C_COMPILER   arm-eabi-gcc)
SET(CMAKE_CXX_COMPILER arm-eabi-g++)

SET(CMAKE_C_FLAGS "-nostdlib -I/workspace/android-imxt-r9.3/external/openssl/include")

# where is the target environment
SET(CMAKE_FIND_ROOT_PATH  /workspace/android-imxt-r9.3/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0)

# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Kernel configuration to get Android VPN L2TP IPSec PSK working

I was receiving this error message when trying to use VPN PSK:

E/racoon (5303)Cannot create KEY socket

To solve it I need to add this configs on Linux kernel of Android:

CONFIG_NET_KEY=y
CONFIG_INET_ESP=y
CONFIG_INET_IPCOMP=y
CONFIG_PPP=y
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=y
CONFIG_PPP_MPPE=y
CONFIG_PPPOE=y
CONFIG_PPPOL2TP=y
CONFIG_PPPOLAC=y
CONFIG_PPPOPNS=y