Closed the-bobo closed 6 years ago
trying autoconf
seems to do nothing (echo $?
returns 0
so it exits successfully), trying automake
fails:
Makefile.am: error: required file './README' not found
configure.ac:142: error: required file 'CommonLibs/Makefile.in' not found
configure.ac:142: error: required file 'NodeManager/Makefile.in' not found
TransceiverRAD1/Makefile.am:119: warning: source file '../apps/GetConfigurationKeys.cpp' is in a subdirectory,
TransceiverRAD1/Makefile.am:119: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled. For now, the corresponding output
automake: object file(s) will be placed in the top-level directory. However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
trying more things fails as well:
git clone --recursive https://github.com/ctxis/openbts.git
sudo apt-get update && sudo apt-get install automake autoconf autogen libtool shtool
autoconf
sudo autoconf
sudo autoconf
sudo autoreconf -i
sudo ./configure
doing sudo autoconf twice makes the second autoconf
exit without an error, but we need to do autoreconf -i
to get the libtool
and other stuff to be recognized
once we do this we can ./configure
and it will run, but then crash saying it cannot find Makefile.in
...
checking for x86-AVX xgetbv output... unknown
checking for zmq_init in -lzmq... yes
checking whether libzmq installation works... yes
checking for _init in -la53... yes
checking ortp api version... >= 0.22.0
checking for gethostbyname_r... yes
checking for gethostbyname2_r... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: error: cannot find input file: `Makefile.in'
trying
sudo aclocal
sudo autoconf
sudo autoheader
sudo ./configure
fails with the same error:
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: error: cannot find input file: `Makefile.in'
changing line 31 in configure.ac
from AM_INIT_AUTOMAKE([-Wno-portability])
to AM_INIT_AUTOMAKE([subdir-objects])
makes sudo automake --add-missing
shut up about subdir-objects
, but it still spews a bunch of warnings and gives a non-zero exit code of 1 if you echo $?
after:
Makefile.common:23: warning: ':='-style assignments are not portable
CLI/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
CLI/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
CommonLibs/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
CommonLibs/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
Control/Makefile.am:23: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
Control/Makefile.am:23: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
GPRS/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
GPRS/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
GSM/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
GSM/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
GSMShare/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
GSMShare/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
Globals/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
Globals/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
Makefile.am:22: 'Makefile.common' included from here
Makefile.am: error: required file './README' not found
Makefile.common:23: warning: ':='-style assignments are not portable
NodeManager/Makefile.am:21: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
NodeManager/Makefile.am:21: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
Peering/Makefile.am:23: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
Peering/Makefile.am:23: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
SGSNGGSN/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
SGSNGGSN/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
SIP/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
SIP/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
SMS/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
SMS/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
Scanning/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
Scanning/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
TRXManager/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
TRXManager/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
Transceiver52M/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
Transceiver52M/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
TransceiverRAD1/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
TransceiverRAD1/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
apps/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
apps/Makefile.am:22: 'Makefile.common' included from here
apps/Makefile.am:24: warning: ':='-style assignments are not portable
Makefile.common:23: warning: ':='-style assignments are not portable
config/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
config/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:23: warning: ':='-style assignments are not portable
doc/Makefile.am:22: 'Makefile.common' included from here
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
doc/Makefile.am:22: 'Makefile.common' included from here
The ./configure
still ends with the same error about not finding Makefile.in
Looking more closely at the errors from sudo automake --add-missing
it looks like this one is important:
Makefile.common:47: warning: shell ./$(top_builddir: non-POSIX variable name
Makefile.common:47: (probably a GNU make extension)
this error seems to repeat a lot before automake
exits with error code 1
.
looking at line 47 of Makefile.common
we see:
REPOREV = -D'REPO_REV="$(shell ./$(top_builddir)/Globals/GrabRepoInfo.sh $(top_builddir))"'
top_builddir
doesn't seem to ever be defined anywhere in Makefile.common
but it's used a lot - what should this value be?
FYI i'm on Ubuntu 16.04 (16.04.3 LTS Xenial)
Changing the AM_INIT_AUTOMAKE
line from line 31 of configure.ac
to AM_INIT_AUTOMAKE([subdir-objects -Wno-portability])
now gives us a different error when we run sudo automake --add-missing
.
we no longer have subdir-objects
or non-POSIX variable name
errors, but now we have this:
Makefile.am: error: required file './README' not found
doing sudo ./configure
still gives the missing Makeflie.in
error:
configure: creating ./config.status
config.status: error: cannot find input file: `Makefile.in'
doing sudo touch README
makes automake
happy, and now sudo ./configure
is happy too. both exit with status 0 (seen using echo $?
).
now doing sudo make
seems to be running...and it exits with an error status of 0 (successful)!
here's the way to solve this:
old setup instructions:
git clone https://github.com/RangeNetworks/dev.git
cd dev
./clone.sh
./switchto.sh master
./build.sh B200
rm -rf openbts
git clone https://github.com/ctxis/openbts.git
cd openbts
make
new setup instructions:
assuming fresh install of Ubuntu 16.04 (lsb_release -a
shows 16.04.3 after i update the install, may have done sudo apt-get dist-upgrade
before that)
sudo apt-get update && sudo apt-get upgrade
git clone https://github.com/RangeNetworks/dev.git
cd dev
./clone.sh
# removed the ./switch.to because you are already on master and this can cause problems in ubuntu
./build.sh B200
rm -rf openbts
git clone --recursive https://github.com/ctxis/openbts.git # changed to recursive to solve some other problems with Makefiles in subdirectories
cd openbts
# change AM_INIT_AUTOMAKE([-Wno-portability]) in configure.ac to AM_INIT_AUTOMAKE([subdir-objects -Wno-portability]) and save the file (line 31 of configure.ac)
sudo apt-get update && sudo apt-get install automake autoconf autogen libtool shtool
sudo touch README
sudo autoreconf -vi
sudo autoconf
sudo ./configure
sudo make
hopefully this works, if it doesn't just retrace my steps above. these changes should be merged into the README.md and checking for dependencies should happen before trying to do autoconf
or autoreconf
Okay I verified that my instructions in https://github.com/shingy92/ussd-openbts/issues/1#issuecomment-362730821 will successfully build this modified version of OpenBTS, but I can't get it to actually run.
when i cd /OpenBTS
and then sudo ./sipauthserve & sudo ./smqueue & sudo ./OpenBTS
it still runs the old version of OpenBTS without USSD support. This can be verified at the OpenBTS>
command prompt where the command sendss
does nothing.
How do I get ./OpenBTS
to call the new USSD-enabled version of OpenBTS? I can't find that executable to call it, where should it be after the make process successfully completes?
after i make
the modified OpenBTS i do the following:
// install
- cd BUILDS/the-build
- sudo dpkg -i *.deb
- choose to overwrite odbcinst.ini
# don't have to overwrite anything because i've already installed OpenBTS once
- sudo apt-get -f install
- choose to overwrite named.conf.options
- choose to overwrite bind9
# don't have to overwrite anything because i've already installed OpenBTS once
- configure 2nd wired interface to 192.168.10.1/24
# skipped this step because i'm accessing via a USB connected to the B200
// This might be necessary to make sure the Ettus radio firmware/fpga match
// the API used in UHD 3.9
- sudo /usr/lib/uhd/utils/uhd_images_downloader.py
- uhd_image_loader --args="type=usrp2,addr=192.168.10.3"
// Start the services
- cd /OpenBTS
- sudo ./sipauthserve &
- sudo ./smqueue &
- sudo ./OpenBTS
These instructions found at: https://sourceforge.net/p/openbts/mailman/message/35207656/
Found the new, hopefully USSD-enabled version of OpenBTS in <snip>/dev/openbts/app
. Trying to run sudo ./OpenBTS && sudo /OpenBTS/sipauthserve & sudo /OpenBTS/smqueue
results in error: OpenBTS.cpp:185:startTransceiver: Transceiver quit with status 256. Exiting.
is it because osmo-trx
is not included in this USSD-modified version of OpenBTS?
Okay, somehow it all works now. Here's the exact process I followed:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git
cd WhateverDirYouWant
git clone https://github.com/RangeNetworks/dev.git
cd dev
./clone.sh
./build.sh B200
# consider editing build.sh to call dpkg -j4 to use 4 cores, or whatever number of cores you want
rm -rf openbts
git clone --recursive https://github.com/ctxis/openbts.git
# changed to recursive to solve some other problems with Makefiles in subdirectories
cd openbts
# change AM_INIT_AUTOMAKE([-Wno-portability]) in configure.ac to AM_INIT_AUTOMAKE([subdir-objects -Wno-portability]) and save the file (line 31 of configure.ac)
sudo apt-get update && sudo apt-get install automake autoconf autogen libtool shtool
sudo touch README
sudo autoreconf -vi
# removed this, didn't need it - sudo autoconf
sudo ./configure --with-uhd
# added --with-uhd here, this made a difference i think
sudo make
cd ../BUILDS/the-build
sudo dpkg -i *.deb
# choose to overwrite odbcinst.ini - didn't need to do this, was already done first time i installed OpenBTS
sudo apt-get -f install
# choose to overwrite named.conf.options - didn't need to do this, was already done first time i installed OpenBTS
# choose to overwrite bind9 - didn't need to do this, was already done first time i installed OpenBTS
sudo /usr/lib/uhd/utils/uhd_images_downloader.py
# didn't need to do this, was already done first time i installed OpenBTS
uhd_image_loader --args="type=usrp2,addr=192.168.10.3
# didn't need to do this, was already done first time i installed OpenBTS
cd /OpenBTS
sudo ./sipauthserve &
sudo ./smqueue &
sudo ./OpenBTS
# i think the order you start these in is relevant
Now you should see an OpenBTS>
prompt. Type help sendss
- if you get meaningful explanation back then you have done it correctly!
First time i tried this my test phone wasn't in the tmsis
database anymore, but after unplugging plugging back in the B200 radio i was able to find it again. Here is how i startup OpenBTS:
#unplug USB cord of B200 from laptop
#plug back in
uhd_find_devices #may have to do twice if it errors
uhd_usrp_probe #may have to do twice if it errors
cd /OpenBTS
sudo ./sipauthserve &
sudo ./smqueue &
sudo ./OpenBTS
in a separate terminal window cd
to whatever/dev/NodeManager' and
sudo asterisk -c(make sure you've already done the
chownstuff and added the IMSI of your phone using
nmcli.py` per the instructions in https://sourceforge.net/p/openbts/mailman/message/35217704/ see the email with timestamp 2016-07-07 20:39:19)
then your stuff should run.
EDIT: getting this awful can't write to mem_sip_buddies error when trying to run ./sipauthserve now.
remediation:
1) flashing down to an earlier UHD driver version -- run the following: sudo ./uhd_images_downloader.py -f uhd-images_003.008.002-release.zip -c 164e052f2192f3652b03ee5976c9f53b --verbose
following the README.md
cd ./openbts/
make
make: *** No targets specified and no makefile found. Stop.
None of these work with
sudo
either. Any tips?