Skip to content

Instantly share code, notes, and snippets.

@Gui13
Created April 4, 2015 12:01
Show Gist options
  • Save Gui13/b94e82a3fc599428808d to your computer and use it in GitHub Desktop.
Save Gui13/b94e82a3fc599428808d to your computer and use it in GitHub Desktop.
Build linphone on BBB

BeagleBone Black & Linphone

  1. Install what's needed to compile:

    sudo apt-get install automake autoconf gnu-standards gettext build-essential pkg-config git libtool antlr3 libantlr3c-dev intltool
    git clone git://git.linphone.org/polarssl
    git clone git://git.linphone.org/belle-sip
    git clone git://git.linphone.org/linphone --recursive
    
  2. Compile polarssl

    ./autogen.sh ./configure make -j2 && sudo make install

  3. Install Java from Oracle (important, otherwise ANTLR won't compile correctly the SIP grammar)

    • Go here: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html and download the JDK for linux (probably Hard Float)

    • Unpack in your HOME and setup the PATH and JAVA_HOME:

      # put this in your ~/.bashrc ideally
      export PATH="/home/user/jdk-x.y.z/bin:$PATH"
      export JAVA_HOME="/home/user/jdk-x.y.z"
      
    • Check that java -version outputs something like this (with the 'TM'):

        java version "1.7.0_51"
        Java(TM) SE Runtime Environment (build 1.7.0_51-b13) 
      
  4. Install belle-sip and linphone dependencies

     sudo aptitude install libswscale-dev libavcodec-dev libv4l-dev libglew1.6-dev libxml2-dev libgsm1-dev libsqlite3-dev libupnp-dev libsdl1.2-dev
    
  5. Get libvpx from Google and compile it yourself, so that you get the NEON and other optimizations

     git clone https://chromium.googlesource.com/webm/libvpx -b v1.3.0
     cd libvpx
     CC=cc AR=ar AS=as LD=gcc CXX=g++ ./configure --enable-vp8 --target=armv7-linux-gcc --disable-examples --disable-docs --enable-error-concealment --enable-realtime-only --enable-spatial-resampling --enable-multithread --disable-vp9 --enable-pic 
     make -j2
     sudo make install
    
  6. Get speex from linphone and compile it with NEON optimizations

     git clone git://git.linphone.org/speex
     cd speex && ./autogen.sh
     ./configure --enable-armv7neon-asm --with-pic --enable-fixed-point --disable-oggtest CFLAGS="-march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 -O3" --disable-ogg
     make -j2 &&	sudo make install
    
  7. Compile and install belle-sip

     ./autogen.sh
     ./configure
     make && sudo make install
     # optional: perform belle-sip tests
     cd tester && ./belle_sip_tester
    
  8. Compile and install linphone

     ./autogen.sh
     ./configure --disable-x11 --enable-gtk_ui=no --disable-xv --enable-sdl
     # Note: Wno-error is here because otherwise mediastreamer complains about not used functions
     make V=1 CFLAGS="-Wno-error" && sudo make install
    
  9. Test that linphone passes the tests

     cd tester && ./liblinphone_tester
    
  10. To enable video: install omapfb driver

    See http://blog.csdn.net/amd123linux/article/details/11738753 :

    sudo apt-get install xserver-xorg-video-omap3
    sudo reboot
    cat /var/log/Xorg.0.log | grep omapfb
    xvinfo -display :0.0 # should show "OMAP XV adaptor"
    
    Not supported by BBB....
  11. Setup video output in linphonerc

    This will force the video display to use the SDL output

    #launch linphone once to create it
    linphonec
    # type quit
    
    #edit the linphonerc file
    nano ~/.linphonerc
    
    # find the [video] section and put or replace:
    displaytype=MSVideouOut	
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment