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.
- Create a 64 bit Live USB of Ubuntu 14.04
- Hookup USB hub to SP1, connect regular keyboard and the Live USB
- Shrink Windows partition as much as you need/can. Seehttp://askubuntu.com/questions/265644/dual-boot-surface-pro-with-ubuntu for detailed steps
- Disable Secure Boot (see link above for details)
- In Windows, go to Update and Recovery and reboot into the Live USB (see link above for details)
- Go through the standard Ubuntu install; install on a newly created partition; You can encrypt your home folder.
- Reboot into the new Ubuntu install
- Reboot, install the latest Ubuntu updates
- Go to System Settings/Displays, change the UI scaling to 1.25 to make use of touch UI easier
- 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.
- 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:
- sudo tlp start
- you can monitor power consumption using powertop
- optional) – Change GRUB menu order.
- 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
4. Upgrade bladeRF to latest firmware:
bladeRF-cli –flash-firmware /usr/share/Nuand/bladeRF/bladeRF_fw.img
5. Install Yate
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
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:
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.
sudo make install-noapi
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
For additional information about Yate installation and configuration, please see Yate documentation Wiki:
You can download the sources in any directory. I choose /usr/src
svn checkout http://voip.null.ro/svn/yatebts/trunk yatebts
Run autogen.sh to generate configure script that will check dependencies.
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.
To compile and install YateBTS run:
After this, the YateBTS modules/scripts/configurations will be moved in the appropriate directories where other Yate modules/scripts/configurations are located.
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.
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:
sudo gedit extmodule.conf
When using 2G or 3G authentication set in extmodule.conf:
did not place anything after =
Need to Install WebGUI
Installation and configuration
- YateBTS – Already installed
- PHP –
sudo apt-get instal PHP5
check by: php -v
already had apache
check by: apache -v
will show you version of apache
DID NOT INSTALL NO SIM WRITER
browser to :
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: .*