bladeRF install Surface Pro

The Microsoft Surface Pro is a powerful Windows touch screen tablet with an i5 processor.  I picked up a 64GB version at microcenter for $299, with the purpose if running a GSM network from a touch screen tablet.

 

Step 1: Install Ubuntu 14.04 on the Surface Pro.

from http://www.reddit.com/r/SurfaceLinux/comments/2b1hf6/running_ubuntu_1404_on_surface_pro_1_full_time/ 

  1. Create a 64 bit Live USB of Ubuntu 14.04
  2. Hookup USB hub to SP1, connect regular keyboard and the Live USB
  3. Shrink Windows partition as much as you need/can. Seehttp://askubuntu.com/questions/265644/dual-boot-surface-pro-with-ubuntu for detailed steps
  4. Disable Secure Boot (see link above for details)
  5. In Windows, go to Update and Recovery and reboot into the Live USB (see link above for details)
  6. Go through the standard Ubuntu install; install on a newly created partition; You can encrypt your home folder.
  7. Reboot into the new Ubuntu install
  8. Reboot, install the latest Ubuntu updates
  9. Go to System Settings/Displays, change the UI scaling to 1.25 to make use of touch UI easier
  10. To be able to use touch interface without a keyboard, go to System Settings / Universal Access and enable “On screen keyboard”. Then go to “Onboard Settings” and enable “Start Onboard hidden”, “Show status icon”, “Show floating icon when Onboard is hidden” and “Show when unlocking the screen”. You can also configure theme, etc. to your liking. Start “Onboard” from the dash.
  11. Installed and configured TLP to allow proper power management when on battery
    • sudo add-apt-repository ppa:linrunner/tlp
    • sudo apt-get update
    • sudo apt-get install tlp tlp-rdw
    • sudo apt-get install ethtool
    • open /etc/default/tlp and change the following:
      • CPU_SCALING_GOVERNOR_ON_AC=performance
      • CPU_SCALING_GOVERNOR_ON_BAT=powersave
    • sudo tlp start
    • you can monitor power consumption using powertop
    • optional) – Change GRUB menu order.
  1. Optional Change GRUB menu order to default to Windows using grub-customizer.  I still mostly use windows on surface Pro. http://youtu.be/_gaImxC-grU

3. bladeRF install the easy way

https://github.com/Nuand/bladeRF/wiki/Getting-Started%3A-Linux#Easy_installation_for_Ubuntu_The_bladeRF_PPA

 

4. Upgrade bladeRF to latest firmware: 

bladeRF-cli –flash-firmware /usr/share/Nuand/bladeRF/bladeRF_fw.img

 

5. Install Yate

https://github.com/Nuand/YateBTS/blob/master/INSTALL

5a. Install Prerequisites

a. – install Subversion (SVN) –

sudo apt-get install subversion apache2 libapache2-svn

b. Install GNUmake, GCC: GNU Compiler Collection

$ sudo apt-get update
$ sudo apt-get upgrade #optional
$ sudo apt-get install build-essential
$ gcc -v
$ make -v

 

c. Install git, autoconf, libtool, libdbi-dev

sudo apt-get install git autoconf libtool libdbi-dev

 

d. Install libusb-1.0-0-dev: Library for programming USB applications

 

sudo apt-get install libusb-1.0-0-dev

 

YATE Installation
from https://raw.githubusercontent.com/Nuand/YateBTS/master/INSTALL

Below is a short install guide for Yate. For more detailed information please check http://docs.yate.ro/wiki/Compiling_and_installing_Yate_from_SVN

 

The prerequisites of installing Yate are the same as above. You need at least Yate version 5.1.0

 

To install Yate:

Download Yate sources from the SVN

Once you have the svn client installed, getting the sources is simple: you just type the following command in your terminal:

cd /usr/src/

sudo svn checkout http://voip.null.ro/svn/yate/trunk yate

 

Install Yate from SVN

Go to directory where Yate was downloded and run autogen.sh. This will generate the configure script that checks dependencies.

Then run make install-noapi that will compile and install Yate.

Instead of make install-noapi you can use make install but make sure to install doxygen or kdoc package.

cd yate/

sudo ./autogen.sh

sudo ./configure

sudo make install-noapi

 

RUN YATE

./run

 

If you get any errors when running ./configure you’ll probably have to install additional packages.

If you try to run yate and get:

yate: error while loading shared libraries: libyate.so.5.1.0: cannot open shared object file: No such file or directory

Then run:

export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH

For additional information about Yate installation and configuration, please see Yate documentation Wiki:

http://docs.yate.ro/wiki/Beginners_in_Yate

 

 

Install YateBTS

—————

 

Download YateBTS

 

You can download the sources in any directory. I choose /usr/src

cd /usr/src

svn checkout http://voip.null.ro/svn/yatebts/trunk yatebts

 

Check dependencies

Run autogen.sh to generate configure script that will check dependencies.

cd yatebts/

./autogen.sh

./configure

 

If you encounter the following error then you need to install libusb1-dev or libusb1-devel and then run ./configure again.

checking for libusb-1.0/libusb.h… no

configure: error: This header file is required.

 

Install YateBTS

 

To compile and install YateBTS run:

make install

 

After this, the YateBTS modules/scripts/configurations will be moved in the appropriate directories where other Yate modules/scripts/configurations are located.

——

Configure/Running YateBTS

wiki.yatebts.com/index.php/Running

Edit ybts.conf

Configure YateBTS

Starting with Yate 5.2, Yate loads the ybts module by default. Previously, users needed to set extrapath=bts in [general] section in the yate.conf, but this step is no longer needed.

Also by default, Yate loads all the available modules. Unless you are an expert user of Yate and want to customize the loading of modules, we recommend that you load all modules.

To configure YateBTS, you have to modify the ybts.conf file from /usr/local/etc/yate. Make sure you set at least the Radio.Band and C0 on which YateBTS will operate.

You will also need to modify the Path in the [transceiver] section, depending on the transceiver used. The example below shows the necessary set-up when using the bladeRF transceiver.

[transceiver]
;Path to the transceiver relative to where MBTS is started.
;Should be one of: ./transceiver-bladerf ./transceiver-rad1 ./transceiver-usrp1 ./transceiver-uhd.
;Defaults to ./transceiver
Path=./transceiver-bladerf

 

 TRIED RUNNING YATE WITH

yate -vvvvv

I DO NOT BELIEVE IT IS WORKING

GETTING TIMEOUTS –

 

Seems to be working.

Needed to run:

sudo yate -vvvvv

 

when I ran

yate -sd -vvvvv -l /var/log/yate.log

I could not tell if it was working or not.  killed process using system monitor in ubuntu.

 

Phone can see network but fails to connect.

Phone continues to fail, but I believe because not configured correctly.

 

SET UP Javascript Network in a Box

from http://wiki.yatebts.com/index.php/Javascript_NIB

 

javascript.conf

sudo gedit javascript.conf

 

To set it up, edit javascript.conf.

[general]
routing=welcome.js

ybts.conf

sudo gedit ybts.conf

 

You can enable NIB by setting themode=nib in the [ybts] section. This is the default behaviour. If the ‘mode’ is not set, then the NIB mode is loaded by default:

[ybts]
mode=nib

extmodule.conf

sudo gedit extmodule.conf

 

When using 2G or 3G authentication set in extmodule.conf:

[scripts]
gsm_auth.sh=

did not place anything after =

subscribers.conf

Need to Install WebGUI

from http://wiki.yatebts.com/index.php/Network_in_a_Box#Web_UI_for_NIB_Management

 

Installation and configuration

Requirements

  • YateBTS – Already installed
  • PHP –
    sudo apt-get instal PHP5
    check by: php -v
  • Apache
    already had apache
    check by: apache -v
    will show you version of apache
  • pySIM
    D
    ID NOT INSTALL NO SIM WRITER

 

Use WebGUI

browser to :

http://127.0.0.1/nib

Got Error!! Don’t have r/w permission on /usr/local/etc/yate. Please run this command as root:

chmod -R a+rw /usr/local/etc/yate/

 

http://127.0.0.1/nib – NOW WORKS!

 

Camp Phones / Subscribers

 

Subscribers can manualy be put into the Subscriber list via – WebGui.

You can also add a Regexp.  The system will automatically compare imsi from SIM card to the Regexp.  If the beginin numbers match, then phone will be able to connect to YateBTS.

 

Catchall regexp: .*