Category: Technical
Posted by: admin
First steps in configuring bnep (tcpip over bluetooth).

[on the linux pc]
tim@calvin:~$ sudo pand --master --nodetach --role NAP --listen
pand[709]: Bluetooth PAN daemon version 3.26

[on the gumstix]
root@ginsberg:~$ pand --connect
root@ginsberg:~$ ifconfig bnep0 up

pand[751]: New connection from 00:80:37:2E:30:3E at bnep0

-in another window-
tim@calvin:~$ sudo ifconfig bnep0 12.0.0.1

root@ginsberg:~$ ifconfig bnep0 12.0.0.2

root@ginsberg:~$ ping 12.0.0.1
PING 12.0.0.1 (12.0.0.1): 56 data bytes
64 bytes from 12.0.0.1: icmp_seq=0 ttl=64 time=81.4 ms
64 bytes from 12.0.0.1: icmp_seq=1 ttl=64 time=38.1 ms
64 bytes from 12.0.0.1: icmp_seq=2 ttl=64 time=40.6 ms

Category: Technical
Posted by: admin
...seems hard using the bitbake structure used to make the netslug file image

?is this because I have another openembedded install?

..trying to do the cross compile within gumstix openembedded, the toolchain seems missing

..trying to build a basic image to get the toolchain and then build the package

22/07: verdex python

Category: Technical
Posted by: admin
Using python on a gumstix - not easy!

There isn't normally enough space on a gumstix to install python, (unless you go the mmc-root route).

The python ipkg installer seems to trip up when installing to a card. It seems best to install python-core to root and then use -d destination for libraries.

Also there is a bug in the way gumstix openembedded installs the python bitbake recipe. Several .so files including array.so from the lib-dynload directory don't make it into the ipkg. I fixed it by copying the compiled files manually to the /usr/lib/python2.5/lib-dynload directory.

And its working.
Category: Technical
Posted by: admin
A quick mnemonic


ipkg install snd-usb-audio
ipkg install snd-pcm-oss
ipkg install alsa-lib


make an init script /etc/rcS.d/S90sound


#!/bin/sh

echo "Configuring sound..."
modprobe snd-usb-audio
modprobe snd-pcm-oss
echo "Finished configuring sound."
Category: Technical
Posted by: admin
A quick note here,

To install software on a web-connected gumstix within TCD you need to be able to access the proxy servers.

export http_proxy=http://www-proxy.cs.tcd.ie:8080
export ftp_proxy=ftp://ftp-proxy.cs.tcd.ie:80


and now you can ipkg update with gay abandon!

18/04:

Category: Technical
Posted by: admin
flite~

Flite~ 1.0

Flite is an external for pure data / PD anywhere to perform speech synthesis. It's multithreaded so the audio won't stop while synthesizing.

Uses Flite by Alan W Black and Kevin A. Lenzo
Thanks to Gunter Geiger

More info

Category: Technical
Posted by: admin
PDa send & receive - set name

I am posting this small modification to PDa incase anyone finds it useful,

Basically I am making a polyphonic patch, I want a number of subpatches to be able to accept 'create' messages and to accept named messages until they are removed.

This is normally difficult. However I have modified the send & receive objects so that they accept 'set' messages, setting their target names. This is similar to the functionality of a newer version of 'receive' that I looked at, however this version only allowed 'set messages to be recieved remotely via the 'receive' functionality- rather than from an inlet. This seemed pointless as you would have to track the name that you were changing in order to change it back! Anyway I implemented them via inlets.

This allows me to make my polyphonic patch a lot neater! Thanks Gunter.

If you want to use these objects in PDa, grab my updated version of x_connective.c, you will also have to recompile PDa.

Just drop the new file into /src and recompile as normal.

Category: Technical
Posted by: admin
Thanks to some expert tips from Guenter Geiger, I have made a bitbake recipe for installing PDa on gumstix computers running openembedded linux.

This version includes GUI support, I have been using this remotely using X windows. It should also work directly on a screen but I don't have one to test this.

The bitbake recipe can be downloaded here.

This can be used to build PDa on your own openembedded development system.

Alternatively, the prebuilt package is here. You can copy this onto your gumstix and install it with the command:

ipkg install PDa_0.6-r0.1_armv5te.ipk

This requires X11, the gumstix will need to have access to the internet to install it. Alternatively there are pre-built images available which incorporate X11.

You can now run PDa from any directory on the gumstix as it is installed in /usr/bin.

As before, you can use PDa in command line mode:

pd -nogui -open mypatch.pd

Alternatively, to run the gui you will need tcl and tk installed. Unfortuneately Fortuneately there is some there is now no problem with these packages in the gumstix ipkg repository so but I have made installable binaries of them in case your gumstix doesn't have a 'net connection.here and here. You will need to copy them to the gumstix and install them:

ipkg install tcl_8.4.11-r5_armv5te.ipk
ipkg install tk_8.4.11-r5_armv5te.ipk


Otherwise just install them automatically on the gumstix with:

ipkg install tk

To run PDa with the gui remotely on ubuntu I followed the instructions here.

You have to enable X11 forwarding with ssh by editing (on ubuntu) the file /etc/ssh/ssh_config

ForwardX11Trusted yes

And then ssh into the gumstix with these commands:

xhost +IP.of.gumstix
ssh -2 -X -C user@IP.of.gumstix

And on the gumstix I had to set this environment variable before launching PDa:

DISPLAY=IP.of.desktop:0
pd


And PDa launched a menu on my computer!
Category: Technical
Posted by: admin
I have managed to connect my gumstix connex 400bt to the internet via my laptop (running ubuntu 7.10) and USBnet.. not that involved but I couldn't find any guidelines anywhere so here goes.

I had to set up IP forwarding and NAT (network address translation) on the laptop.. after googling at iptables info I used a simple script Ubuntu-firewall.

The configuration is pretty obvious, you just set it up to do NAT rather than act as a firewall, select your interfaces (eth1 and usb0 in my case), set the enable flag (disabled by default), and then to launch it type:

sudo ubuntu-firewall start

I got this friendly and reassuring message:

* Starting Ubuntu-firewall...
Detecting external interface IP address...
External interface IP configuration looks good! Loading ruleset...
NAT-only configuration selected!
NAT Routing Functions are enabled for 11.0.0.0/24 on usb0!
Port Forwarding Established!


Logging into the gumstix, I was now able to ping and traceroute IP addresses on the internet. However, ping www.google.ie still gave the error 'Name lookup failed'.

Further poking around revealed the fact that a configuration file, '/etc/resolv.conf', that doesnt exist on the gumstix by default, is needed to determine how to lookup host names.

The answer: create the file

vi /etc/resolv.conf

and add a line:

nameserver 11.0.0.1 (or whatever address your usb0 connection has on your host computer)

voila! the gumstix is now able to resolve names, and also (importantly) run:

ipkg update



Category: Technical
Posted by: admin
I have just installed openembedded linux for my gumstix connex-400bt.

Its pretty impressive, but unfortuneately I couldn't get USBnet working straight away- and this is the way I usually connect to my gumstix.

After trying quite a few things, this is the solution I came up with:

To enable static IP address and to autolaunch the usb0 interface, I changed the entry in /etc/network/interfaces to:

auto usb0
iface usb0 inet static
address 11.0.0.2
netmask 255.255.255.0
network 11.0.0.1
gateway 11.0.0.1


I also had to add the following lines to get the interface to initialise:

pre-up /sbin/modprobe g_ether;/sbin/modprobe gumstix_gadget
post-down /sbin/modprobe -r g_ether


However I found that, although the gumstix thought it then had a usb0 interface, this only made the interface work the second time it was invoked: ie. I had to type

ifdown usb0
ifup usb0


After the auto-initialiser had tried to start it.

Hmm, not good, after trying lots more stuff, I came up with this ultra-inelegant solution: editing /etc/init.d/networking, and adding

ifdown usb0
ifup usb0


just after 'ifup -a' in the stanza 'start'.

Ugly but it works.