== Jrock and Ibob attempt to create the most recent gnu radio implementation fresh from the GNU radio svn. == === 12/19/08 === James and Bob go to the grid. The first and lamest attempt was a simple apt-get install gnuradio. This failed miserably due to unresolved dependeniceis. Following the instructions of (http://gnuradio.org/trac/wiki/DebianPackages) for Ubuntu installations, we added {{{ deb http://gnuradio.org/ubuntu stable main contrib deb-src http://gnuradio.org/ubuntu stable main }}} to the /etc/apt/sources.list This didn't help. The trail of failed dependencies goes as follows: {{{ gnuradio -> python-gnuradio -> python-gnuradio-comedi -> libcomedi-0.7.22 }}} the last one is not installable as there is no package target. It should be noted that the baseline image is based on debian (and not ubuntu, so this may be the problem). ---- We're going to attempt the debian source install, the apt install doesn't work for the previously mentioned reasons. We installed the ''build-essentials'' package. And we nnow modify the sources list again. we added {{{ deb http://ftp.at.debian.org/debian/ etch main non-free contrib }}} We then ran '''apt-get build-dep gnuradio''' which had 519 megs of stuff to install. It was followed by '''apt-get build-dep usrp''' which had nothing to install. All of this was to "prep" the image for a build of the gnu-radio software by source. There is no source package for it, we have to check it out from svn. (note: this required installing ''subversion'' package). Running {{{ svn co http://gnuradio.org/svn/gnuradio/branches/releases/3.1 gnuradio }}} yeilds a large download and a gnuradio directory. Hopefully with all the dep building of prior this should be a make / make install simple setup. First running ./bootstrap required automake, that we didn't have. After apt-getting the ''automake'' package and all its dependencies, ./bootstrap chugs along. ''' Note: this take a while, and throws a bunch of perl warnings'''. '''./configure ''' yeilds {{{ ********************************************************************* The following GNU Radio components have been successfully configured: config omnithread gnuradio-core gr-audio-alsa gr-audio-jack gr-audio-oss gr-audio-portaudio gr-atsc gr-gsm-fr-vocoder gr-pager gr-radio-astronomy gr-trellis gr-video-sdl gr-wxgui gnuradio-examples You my now run the make command to build these components. ********************************************************************* The following components were skipped either because you asked not to build them or they didn't pass configuration checks: usrp gr-usrp gr-audio-osx gr-audio-windows gr-comedi gr-gpio gr-radar-mono gr-sounder gr-utils These components will not be built. }}} The make process takes a 1.5 hours. We've run out of time on our slot, so I'm saving an image. {{{ INFO n_1_1: - Saving disk image from node n_1_1 in the file 'node-1-1-2008-12-19-16-01-15.ndz' }}} Image creation was a success: {{{ INFO exp: - Saving process finished correctly at: Fri Dec 19 16:13:07 -0500 2008 INFO Experiment: DONE! INFO ExecApp: Application 'commServer' finished INFO run: Experiment sb5_2008_12_19_15_59_43 finished after 13:26 }}} I moved a copy from the tmp directory to the images directory and renamed it.It has 777 permissions. {{{ ssugrim@repository2:/export/orbit/image$ ls -al | grep james -rw-r--r-- 1 ssugrim winlab 585105408 2008-12-19 16:22 james-bob-gnuradio-ver0.ndz }}} ---- === 1/28/09 === The saga continues... The make was actually successful. We ran make install intinally, but after consulting with the documentation the correct order of steps was: {{{ $ ./bootstrap # Do NOT perform this step if you are building from a tarball. $ ./configure $ make $ make check $ sudo make install }}} ---- We had to do some group modifications to get udev devices to show up properly. Note that in lsusb: {{{ node1-1:~# lsusb Bus 004 Device 002: ID fffe:0002 <--- this is the usrp Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 }}} From here we had to create a usrp group, add root to it, and then throw some file in the udev rules. Like So: {{{ sudo addgroup usrp sudo addgroup usrp echo 'ACTION=="add", BUS=="usb", SYSFS{idVendor}=="fffe", SYSFS{idProduct}=="0002", GROUP:="usrp", MODE:="0660"' > tmpfile sudo chown root.root tmpfile sudo mv tmpfile /etc/udev/rules.d/10-usrp.rules }}} '''NOTE:''' the naming convention of the rules files on the flavor of debian thats on the nodes is a little different. I made a copy of the ''10-usrp.rules'' and named it z10_usrp.rules. Not really sure which one its reading, but ehh disk space is cheap. that being said, post actual reboot (not restarting udev as the guide suggests) ls -lR /dev/bus/usb | grep usrp yeilds: {{{ node1-1:~# ls -lR /dev/bus/usb | grep usrp crw-rw---- 1 root usrp 189, 385 Jan 28 14:20 002 }}} The guide claims one entry per usrp (and thus just one entry). ---- We added '''PYTHONPATH=/usr/local/lib/python2.5/site-packages/gnuradio/''' {{{ export PYTHONPATH=/usr/local/lib/python2.5/site-packages/gnuradio/ }}} We're trying to import one of the gnuraido libraries into a running python shell, it's complaining about {{{ ImportError: libgnuradio-core.so.0: cannot open shared object file: No such file or directory }}} Bob seems to think this is caused by the '''Broken libtool on Debian and Ubuntu''' documented in the Ubuntu install docs. To fix it we modified the ld.so.conf and ran ldconfig. {{{ cp /etc/ld.so.conf /tmp/ld.so.conf echo /usr/local/lib >> /tmp/ld.so.conf mv /tmp/ld.so.conf /etc/ld.so.conf ldconfig }}} ldconfig ran with out complaint. the ld.so.conf contains this: {{{ node1-1:~# more /etc/ld.so.conf include /etc/ld.so.conf.d/*.conf /usr/local/lib/ node1-1:~# }}} after this step in a python shell ''from gnuradio import gr'' ran with out complaint. However ''from gnuradio import usrp'' failed, this was due to an error thrown during the configure phase: {{{ The following components were skipped either because you asked not to build them or they didn't pass configuration checks: usrp gr-usrp }}} That is the usrp stuff was never built. Examining the config.log file in {{{ node1-1:~/gnuradio# less config.log | grep usrp configure:31892: result: Component usrp requires guile, which was not found. <---- configure:32681: result: Not building component usrp. configure:32791: result: Component gr-usrp requires usrp, which is not being built or specified via pre-installed files. configure:32834: result: Not building component gr-usrp. configure:35081: result: Component gr-gpio requires usrp, which is not being built or specified via pre-installed files. configure:35495: result: Component gr-radar-mono requires usrp, which is not being built or specified via pre-installed files. configure:36993: result: Component gr-sounder requires usrp, which is not being built or specified via pre-installed files. configure:37164: result: Component gr-utils requires usrp, which is not being built or specified via pre-installed files. }}} From this we can see guile was the missing components (what ever the heck that is). According to the Ubuntu install docs, we need guile version 1.6. Apt-get says that guile is a pointer: {{{ Package guile is a virtual package provided by: guile-1.8 1.8.5+1-4.1 guile-1.6 1.6.8-6.1 }}} We're gonna pick 1.8. We've reached a stopping point as inventory has clobbered our image. next time we'll need to * install guile * run configure again * run make, make check, make install again * check to see if we can run ''form gnu-radio import uspr''. This might require * the python path change * usrp group addtion and * modification to udev * the ld.so.conf (linker) modifications. ---- === 2/2/09 === The Radio Strikes back... Ran apt-get install guile, it threw some perl warnings, but I guess we're not worried: {{{ perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory Selecting previously deselected package guile-1.8-libs. (Reading database ... 52898 files and directories currently installed.) Unpacking guile-1.8-libs (from .../guile-1.8-libs_1.8.5+1-4.1_i386.deb) ... Selecting previously deselected package guile-1.8. Unpacking guile-1.8 (from .../guile-1.8_1.8.5+1-4.1_i386.deb) ... Setting up guile-1.8-libs (1.8.5+1-4.1) ... Setting up guile-1.8 (1.8.5+1-4.1) ... perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). }}} Rerunning configured got the same results because a package (sdcc) was missing. After going through the list of required packages listed on http://gnuradio.org/trac/wiki/UbuntuInstall We additionally installed: * sdcc * boost-build * wx-common * libqt3-mt-dev * libgsl0-dev The locale warnings can be ignored. With the help of Ivan we've determined that the version of SDCC that is installed by default does not support asx8051. It does support {{{ node1-1:~/gnuradio# sdcc -v SDCC : avr/pic16/pic14/xa51 2.8.0 #5117 (May 16 2008) (UNIX) }}} We downgraded the version of sdcc to 2.6.0-5: {{{ wget http://ftp.egr.msu.edu/debian/pool/main/s/sdcc/sdcc-libraries_2.6.0-5_all.deb dpkg -i sdcc-libraries_2.6.0-5_all.deb }}} This downgraded the libraries, but we also had to downgrade the complier it self, and the docs for laughs. http://packages.debian.org/etch/all/sdcc-doc/download http://packages.debian.org/etch/i386/sdcc/download '''Note:''' uname -a says that our architecture is i686, but they only had debs for i386. The install process was the same. Sucess!!! Or at least a glimpse of hope, the usrp module was now listed in the list of shite to be built. From here we will take an image and then we have to do the following: * run make check, make install again * check to see if we can run ''form gnu-radio import uspr''. This might require: * the python path change * usrp group addtion * modification to udev * the ld.so.conf (linker) modifications.