[Libwebsockets] problems compiling on Raspberry Pi, Debian Wheezy

Kristopher Wehage ktwehage at ucdavis.edu
Tue May 6 01:41:12 CEST 2014


Hi all, I am trying to compile libwebsockets on a raspberry pi, model B 
running Debian Wheezy. I can succesfully build libwebsockets using the 
instructions in the README.build file, however when I try to run the 
libwebsockets-test-server application, I get an error.

Here are the steps I followed.
1. Per the README.build instructions, I installed OpenSSL, created the 
build directory within the libwebsockets folder, and ran 'cmake ..' 
within the build directory.

When I do that I get the following output:

kristopher at raspberrypi /usr/src/libwebsockets/build $ sudo cmake ..
-- The C compiler identification is GNU 4.6.3
-- The CXX compiler identification is GNU 4.6.3
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- CMAKE_TOOLCHAIN_FILE=''
-- Found Git: /usr/bin/git
Git commit hash: 7cc7ae4
-- Performing Test HAVE_inline
-- Performing Test HAVE_inline - Success
-- Performing Test HAVE___inline__
-- Performing Test HAVE___inline__ - Success
-- Performing Test HAVE___inline
-- Performing Test HAVE___inline - Success
-- Looking for bzero
-- Looking for bzero - found
-- Looking for fork
-- Looking for fork - found
-- Looking for getenv
-- Looking for getenv - found
-- Looking for malloc
-- Looking for malloc - found
-- Looking for memset
-- Looking for memset - found
-- Looking for realloc
-- Looking for realloc - found
-- Looking for socket
-- Looking for socket - found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for vfork
-- Looking for vfork - found
-- Looking for getifaddrs
-- Looking for getifaddrs - found
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for fcntl.h
-- Looking for fcntl.h - found
-- Looking for in6addr.h
-- Looking for in6addr.h - not found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for netinet/in.h
-- Looking for netinet/in.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for sys/prctl.h
-- Looking for sys/prctl.h - found
-- Looking for sys/socket.h
-- Looking for sys/socket.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for vfork.h
-- Looking for vfork.h - not found
-- Looking for zlib.h
-- Looking for zlib.h - found
-- Looking for 4 include files stdlib.h, ..., float.h
-- Looking for 4 include files stdlib.h, ..., float.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of pid_t
-- Check size of pid_t - done
-- Check size of size_t
-- Check size of size_t - done
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.7")
ZLib include dirs: /usr/include
ZLib libraries: /usr/lib/arm-linux-gnueabihf/libz.so
Compiling with SSL support
-- Found OpenSSL: 
/usr/lib/arm-linux-gnueabihf/libssl.so;/usr/lib/arm-linux-gnueabihf/libcrypto.so 
(found version "1.0.1e")
OpenSSL include dir: /usr/include
OpenSSL libraries: 
/usr/lib/arm-linux-gnueabihf/libssl.so;/usr/lib/arm-linux-gnueabihf/libcrypto.so
Searching for OpenSSL executable and dlls
OpenSSL executable: /usr/bin/openssl
Generating SSL Certificates for the test-server...
Generating a 1024 bit RSA private key
..++++++
.......++++++
writing new private key to 
'/usr/src/libwebsockets/build/libwebsockets-test-server.key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:State or Province Name (full name) 
[Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) 
[Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) 
[]:Common Name (e.g. server FQDN or YOUR name) []:Email Address 
[]:SUCCSESFULLY generated SSL certificate
Generating API documentation
-- Looking for RPMTools... - found rpmuild is /usr/bin/rpmbuild
-- RPMTools:: Using RPM_ROOTDIR=/usr/src/libwebsockets/build/RPM
-- Simple copy spec file <libwebsockets.spec> --> 
</usr/src/libwebsockets/build/RPM/SPECS/libwebsockets.spec>
---------------------------------------------------------------------
   Settings:  (For more help do cmake -LH <srcpath>
---------------------------------------------------------------------
  LWS_WITH_SSL = ON  (SSL Support)
  LWS_SSL_CLIENT_USE_OS_CA_CERTS = 1
  LWS_USE_CYASSL = OFF (CyaSSL replacement for OpenSSL)
  LWS_WITHOUT_BUILTIN_GETIFADDRS = OFF
  LWS_WITHOUT_CLIENT = OFF
  LWS_WITHOUT_SERVER = OFF
  LWS_LINK_TESTAPPS_DYNAMIC = OFF
  LWS_WITHOUT_TESTAPPS = OFF
  LWS_WITHOUT_TEST_SERVER = OFF
  LWS_WITHOUT_TEST_SERVER_EXTPOLL = OFF
  LWS_WITHOUT_TEST_PING = OFF
  LWS_WITHOUT_TEST_CLIENT = OFF
  LWS_WITHOUT_TEST_FRAGGLE = OFF
  LWS_WITHOUT_DEBUG = OFF
  LWS_WITHOUT_EXTENSIONS = OFF
  LWS_WITH_LATENCY = OFF
  LWS_WITHOUT_DAEMONIZE = OFF
  LWS_USE_LIBEV =
  LWS_IPV6 = ON
  LWS_WITH_HTTP2 = OFF
---------------------------------------------------------------------
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/src/libwebsockets/build

2. 'make'
3. 'make install'
4. Run the test server by issuing 'libwebsockets-test-server' (or 
alternatively cd to the libwebsockets/build/bin/ directory and issue 
'./libwebsockets-test-server')

I then get the following error message:
$ sudo ./libwebsockets-test-server
lwsts[27525]: libwebsockets test server - (C) Copyright 2010-2013 Andy 
Green <andy at warmcat.com> - licensed under LGPL2.1
lwsts[27525]: Initial logging level 7
lwsts[27525]: Library version: 1.3 7cc7ae4
lwsts[27525]: IPV6 compiled in and enabled
lwsts[27525]: libev support not compiled in
lwsts[27525]:  static allocation: 4468 + (12 x 1024 fds) = 16756 bytes
lwsts[27525]:  canonical_hostname = raspberrypi
lwsts[27525]:  per-conn mem: 128 + 1554 headers + protocol rx buf
lwsts[27525]:  Compiled with OpenSSL support
lwsts[27525]:  Using non-SSL mode
lwsts[27525]: ERROR opening socket
lwsts[27525]: libwebsocket_context_destroy
lwsts[27525]: mirror protocol cleaning up
lwsts[27525]: libwebsocket init failed

I thought it was strange that there was no flag speficied for 
LWS_USE_LIBEV, so I ran 'cmake -LH ..'
The output shows that the LWS_WITH_LIBEV:BOOL flag is set to off.

// Compile with support for libev
LWS_WITH_LIBEV:BOOL=OFF

Do you have any advice for me? I have successfully installed and ran the 
test applications on my 64 bit Linux workstation no problem. No luck so 
far on the Raspberry Pi.

thanks!
Kris



More information about the Libwebsockets mailing list