Results matching “razmjenavjestina”

osmocom-bb-motorola-c118.jpg This weekend, we had our first meeting about osmocom-bb, Free Software GSM Baseband implementation at mama hacklab. We had 3.3V TTL serial cables with 2.5mm jack ready and Motorola C115 and C118 to try it. Goal was simple: make a phone call from one Motorola phone with free stack to another one. And we made it :-)

It was not easy as it sounds. For a start, without Lovro, there wouldn't be following setup included in the picture. He managed to persuade my usb serial adapter which reports itself as:

067b:2303 Prolific Technology, Inc. PL2303 Serial Port
to become 3.3 TTL serial cable. Audio connector also required some manual work to fit into Motorola.

From software side of thing, we needed to use testing branch of project to get SIM card support (because private network key is stored inside SIM card). Than I made mistake and didn't follow OsmocomBB Getting Started Guide and I decided to use ARM compiler which I had on disk as opposed to suggested one on page. This produced semi-working firmware which wasn't able to connect to network. Changing compiler (after few days of experimentation) fixed problem, just in time for our meeting.

compile osmocom-bb

For a start, checkout source code

git clone git://git.osmocom.org/osmocom-bb.git
cd osmocom-bb
git checkout -b testing remotes/origin/sylvain/testing
Now, enable sending of data to network (we want to make a phone call, after all)
--- a/src/target/firmware/Makefile
+++ b/src/target/firmware/Makefile
@@ -73,7 +73,7 @@ ANY_APP_LIBS+=calypso/libcalypso.a layer1/liblayer1.a lib/libmini.a comm/libc
 -include Makefile.inc
 
 # Uncomment this line if you want to enable Tx (Transmit) Support.
-#CFLAGS += -DCONFIG_TX_ENABLE
+CFLAGS += -DCONFIG_TX_ENABLE
 
 # Uncomment this line if you want to write to flash.
 #CFLAGS += -DCONFIG_FLASH_WRITE
Don't forget to add gnuarm-3.4.3/bin tool chain to your PATH and build it:
cd src
make

wireshark gsmtap support

Last step was compiling wireshark with support for gsmtap. This is useful if you want to decode GSM protocols and understand bits, since wireshark included in Debian is too old (1.2) and doesn't support it. However, compiling wireshark was simple:

svn co http://anonsvn.wireshark.org/wireshark/trunk/ wireshark
cd wireshark
sudo apt-get build-dep wireshark
sudo ./debian/rules binary

In the process, I wrote a couple of helper scripts to make easy demos really easy which I will include here for future reference.

start layer1 firmware on Motorola

dpavlin@t61p:/rest/cvs/osmocom-bb$ cat 1-layer1.sh 
#!/bin/sh

cd src/host/osmocon/
echo "press power of cell phone to load layer1"
./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/compal_e88/layer1.compalram.bin #-d tr #2>&1 | tee /tmp/layer1.log

start layer23 on computer with gsmtap enabled

dpavlin@t61p:/rest/cvs/osmocom-bb$ cat 2-layer23.sh 
#!/bin/sh
cd ./src/host/layer23/src/mobile
./mobile -i 127.0.0.1 -d 2>&1 | tee /tmp/mobile.log

start gsmtap sink and wireshark

dpavlin@t61p:/rest/cvs/osmocom-bb$ cat 3-tap.sh 
#!/bin/sh -x

nc -u -l 4729 > /dev/null &
sudo wireshark -k -i lo -f 'port 4729'
Alternative usage with multicast group 224.0.0.1 mentioned on Wireshark integration page isn't applicable to me, because I don't want to stream gsmtap over my local wifi to router.

So was it worth it? If you get kick from watching protocol dumps (as I do) it sure is. This is major milestone for free software, because you can have fully free GSM stack (osmocom-bb on phone side and OpenBSC on provider side).

Last weeked, we had a monthly meeting of LangGang where I saw CouchDB's Futon interface running on top of git (and shell!)

This idea stuck with for a couple of days, but yesterday it just had to get out. So, I'm working on CouchDB HTTP API interface on top of Mojo.

My goal is a bit different, I really want to make Futon work on my Storable dumps on disk from WebPAC so I can get that HTTP interface which is described in architecture documentation at last...

If you want to know what's happening with CouchDB lately, subscribe to CouchDB Podcast which features latest news from CouchDB development.

Danas sam na Razmjeni vještina održao maratonsko četverosatno predavanje koje je nadam se bilo donekle korisno. Nažalost, nismo stigli ući u detalje onoliko koliko bih želio, ali ako ništa drugo ponovo sam koristio pgrestraier (koji se nekako indeksira previše sporo, morati ću pogledati zašto) i još jedan zgodan projektić koji sam napisao prošle godine za studente u Zadru pg-getfeed koji je zapravo mala perl stored procedura kojim možete raditi SQL upite na RSS feedovima.

Initially created in 2006 this handy tool is best described with original commit message:

IRC bot which replace human memory

Here is a quick run-down through available features:

  • web archive with search
  • irc commands: last, grep/search, stat, poll/count
  • tags// in normal irc messages (tagcloud, filter by tag, export as RSS feed)
  • announce /me messages to Twitter (yes, lame, but that was a year ago)
  • tags are available as html links for embedding (in wikis)
  • RSS feed from messages with tags (also nice for embedding)
  • irssi log import (useful for recovery in case of failure of machine or service :-)
  • announce new messages from RSS feeds (nice for wiki changes, blog entries or commits)

It has grown quite a bit from initial vision to recall last messages on the web (and it does go through some hoops to produce nice web archive). Adding of tags allowed easy recall of interesting topics but in a way now it provides an central hub for different content connected to irc.

It's written in perl using POE and it's probably not best example of POE usage. It is also somewhat PostgreSQL specific but works well for our small comunity at #razmjenavjestina irc channel. Since I have seen some interest in it this blog post might serve as announce of it's existence.

I will probably add some documentation to it's wiki page and add real muti-channel support (most of code is in there, but web archive needs filtering by channel). If you are interested to /invite it to your channel, drop me a note.

For a last week or so, we have been in Berlin (visiting 24th Chaos Communication Congress (24C3) among other things) and we stayed in Kastanienallee 77 which is really nice place.

Since we are geeks, and didn't move much out of the room (we actually covered it with various fun toys due to our excessive trips to local computer store) it seems like a logical idea to offer some of ours skills to setup audio streaming for salon bruit which is downstairs in K77. It was great fun, but setting up streaming half an hour before program, is well, optimistic :-)

Task is simple: use darkcast to encode and icecast2 to stream audio. We had know how: both Damjan and Marcell had experience with icecast streaming and Saša and me were eager to learn how to do it.

Andrea and I managed to duck-tape ethernet extension adapter between two peaces of network cable (3m and 4m) and connect it via switch to house network two floors down to street level where Cafe is, so we had network there. Problem was that stage is on the other part of the house, and setting up wireless from front (network cable limit) to stage seems like a logical solution (at that time).

Initial idea was to use Adrea's iBook (freshly re-installed with Debian unstable for powerpc) to do all the stuff. However, nasty bcm43xx wifi card first didn't want to work as access point (disabling our chance to use it as bridge between wired and wireless network using ipmasq Debian package) so we deiced to use it as darkice to catch audio, encode it to ogg and send it to server in Croatia where icecast2 server was located which streamed content to listeners.

What was the problem? iBook doesn't have audio import port! Yes, let's save 30 cents and not put audio input connector before microphone! Thanks Apple. Marcell somehow managed to find USB microphone as alternative, but at same time, Saša managed to install darkice on his ThinkPad (thanks IBM for audio input, eh...) and I used my script which just bridges ethernet and wifi connection. Somehow in same time bcm43xx driver again gave up, we decided to stick with ThinkPad for darkcast (conveniently located on top of speaker) and moved off the stage so that program can finally start.

Having done that (with just half of hour or so delay in program start because we where fiddling with stuff) we started streaming... silence. We had connected line out from mix panel to mic in on laptop, we could ssh into it and tweak alsa setting, but all we got out was silence (we even checked with arecord -F cd foo.wav on stage laptop and aplay foo.wav on local laptop to be sure that it wasn't darkice/icecast problem.

Then Damjan suggested to press space on Capture in alsamixer (we had Capture only on Mic up to that point) and magically sound appeared. So, we had working stream, and blog post above got written. Audio levels where sub-optimal (to use kind word), but first part was nearly over, so we had pause and Saša tweaked audio levels, and we changed compression setting to lower quality so we can push it through ADSL upstream more easily.

I even remembered to record stream using wget before second part started, so we'll have a listen to it after we get some sleep to see how good the quality was. We got a couple of listeners from Croatia via #razmjenavjestina IRC channel so we are hoping for some feedback also :-)

All in all, it was a lot of fun, but I will plan to write complete walk-through while installing icecast on bljak. I hope to leave one working darkice client here in K77 so that future streams can be made much more easily.

Our local Skill sharing group just moved old TamTam wiki to SocialText. Since TamTam is mostly used in Croatian's NGO organisations, rest of this post is in Croatian.

However, source code for migration tools might come useful.

Nakon prošlog vikenda u Moravicama na poznatom događaju Ništa se neće dogoditi nešto se ipak dogodilo: migrirali smo wiki na SocialText. Iako je to samo jedan dio velikog i grandioznog plana za novi site već ovako (sa ružnim izgledom) dobili smo mogućnost pretraživanja i generiranja ili korištenja RSS feedova na najzanimljivije načine.

Za one sa programerskom dušom, perl skripta koja radi migraciju je dostupna (prije nego što je pokrenete, morate promjeniti server/login/password -- ovaj u skripti ne funkcionira!).