SuperZaxxon v1.73 breaks bluetooth GPS connection


DAP

Member
Joined
Aug 29, 2008
Messages
431
I updated to SuperZaxxon v1.73 a few days ago. Yesterday, I tried to use my GPS, and failed miserably.


After reboot, I have always had to run the command "sudo rfcomm connect 0" in a terminal before bluetooth will connect to anything.


Now I get an error message "Can't find a config entry for rfcomm0"


I would appreciate a hint on what I need to do to fix this.


Thanks.
 

levi

Still fresh, damnit!
Joined
Oct 6, 2008
Messages
13,511
Location
Somewhere off the coast of the EU
Is bluetooth enabled using the system tray icon?


I can't help with your rfcomm query though, unfortunately.  I don't have my pandora to hand at the moment, and even if I enable bluetooth fully (using rfkill) on my laptop, 'rfcomm -a' still reports no devices present.
 

notaz

Certified Guru
Joined
Aug 23, 2005
Messages
4,913
Location
Lithuania
Website
notaz.gp2x.de
Somebody asked for bluez update, so it was updated.


Just a guess from the error message, maybe the new version wants you to edit /etc/bluetooth/rfcomm.conf ? Or perhaps it wants the file to contain a valid entry when the file exists, so maybe it needs to be deleted for defaults to work. From what I see the file contents haven't changed prom the last version, it's just some commented out stuff.
 

DAP

Member
Joined
Aug 29, 2008
Messages
431
Yes, bluetooth was enabled.


I looked at rfcomm.conf, its content is entirely commented out.


The content is an example with a mac address (or bluetooth equivalent) I looked at the GPS, but could not find the mac address written on the label. I tried doing a device search, but it just says "searching" forever and never finds the GPS (yes it was turned on).


Yes all of this was working less than a week before I upgraded the OS.


A google search was not helpful as I don't know enough to narrow down the search for the cause.
 

Neelix

Insecticidal Maniac
Joined
Jan 8, 2011
Messages
3,260
Location
Melbourne, Australia
Most Bluetooth devices will only show up on a device search when they are in pairing mode.  Maybe if you clear the pairing on the device and pair it again it will work?


-Neelix
 

DAP

Member
Joined
Aug 29, 2008
Messages
431
The device in question is QSTAZ 818XT. The only control is a 3 position power switch which has the positions "OFF", "1Hz", and "10 Hz". I believe this device always powers on in pairing mode.
 

DAP

Member
Joined
Aug 29, 2008
Messages
431
It looks like this version of bluez wants a valid /etc/bluetooth/rfcomm.conf


This looks useful:


http://www.thinkwiki.org/wiki/How_to_setup_Bluetooth#Serial_connection_over_Bluetooth


according to it, running "hcitool scan"should eventually give the address of your device, then you can edit rfcomm.conf appropriately.

This worked, Thank you.


"hcitool scan" showed the mac address of the GPS.


I uncommented the lines in rfcomm.conf, changed the mac address and description.


ran "sudo rfcomm connect 0" and successfully got a connection.


CTL-C to exit, close the terminal window.


Ran the ConnBlueToothGPS tool, and got a connection


Ran Navit, and I had a position.


Just in time for me to take it travelling.


I still wish that setting up my pandora to use Navit was less complicated (takes about 5 minutes to get the GPS and Navit up and running every time I use it), but I'm glad I can use it at all.
 

Neelix

Insecticidal Maniac
Joined
Jan 8, 2011
Messages
3,260
Location
Melbourne, Australia

notaz

Certified Guru
Joined
Aug 23, 2005
Messages
4,913
Location
Lithuania
Website
notaz.gp2x.de
That sucks then, the upgrade was done because somebody wanted wiimote support, which is only in newer bluez.
Does it give any hints/error messages?

Now it may sound like doing a downgrade would be the right choice, but that will bring it's own problems like confusing opkg.
 

PowerGod

Hardcore Member
Joined
Jun 20, 2011
Messages
3,781
It looks like this version of bluez wants a valid /etc/bluetooth/rfcomm.conf


This looks useful:


http://www.thinkwiki.org/wiki/How_to_setup_Bluetooth#Serial_connection_over_Bluetooth


according to it, running "hcitool scan"should eventually give the address of your device, then you can edit rfcomm.conf appropriately.

That's how actually BTDUN works... channel and address are found automatically, and also the rfcomm bind is done too, you just select the device from the list...

Maybe this script can be useful:
Code:
#!/bin/bash
#
# BTDUN ver.0.2.3
# Script for Pandora
# by PowerGod (12/01/2013)
#

export HOME="/mnt/utmp/btdun"
export BTSTATE=1
cd $HOME

# Find if the bluetooth is ON
INTERFACE="`hciconfig | grep "^hci" | cut -d ':' -f 1`"
if ! hciconfig "$INTERFACE" | grep UP &>/dev/null; then
# /usr/bin/zenity --question\
# --title="BTDUN"\
# --text="Bluetooth not enabled!\n\nWould you like to start it now?"\
# --ok-label="Yes" --cancel-label="Exit"\
# --window-icon="./icon.png"
# if [ $? -eq 0 ]; then
# Remembers that bluetooth was OFF
export BTSTATE=0
/usr/pandora/scripts/op_bluetooth.sh
# else
# exit
# fi
fi

# Get the devices list
#hcitool scan|grep -G ^[^Scanning] > temp1.tmp

# Get the paired devices list
bluetooth-properties -d | grep "^Device:" | gawk -F "Device:" '{print $2}' > temp1.tmp

# export vdevice=$(cat templist.tmp | zenity --list --text="BTDUN" --column="Paired devices:")
cat temp1.tmp | zenity --list --text="Select the device for the connection" --column="Paired devices:" --title="BTDUN" --width=400 --height=300 --window-icon="./icon.png" > temp2.tmp
if [ $? -ne 0 ]; then
# Find if the bluetooth is still ON
# and will turn it OFF if it was disabled before the connection
INTERFACE="`hciconfig | grep "^hci" | cut -d ':' -f 1`"
if hciconfig "$INTERFACE" | grep UP &>/dev/null; then
if [ ${BTSTATE} = 0 ]; then
/usr/pandora/scripts/op_bluetooth.sh
fi
fi
exit 0;
fi

# Getting only the device address, cause the bluetooth name
# can contain special characters, spaces and all...
export vdevice=$(cat temp2.tmp | grep -o '\([^ \s]*\)$' | gawk -F "(" '{print $2}' | gawk -F ")" '{print $1}')

export vchannel=$(sdptool search --bdaddr ${vdevice} DUN | grep Channel | gawk -F ":" '{print $2}')

# If the channel is not found, the device is not DUN capable or not responding
if [ -z "${vchannel}" ] ; then
zenity --error --text="The selected device does not have a DUN service or is not responding."

# Find if the bluetooth is still ON
# and will turn it OFF if it was disabled before the connection
INTERFACE="`hciconfig | grep "^hci" | cut -d ':' -f 1`"
if hciconfig "$INTERFACE" | grep UP &>/dev/null; then
if [ ${BTSTATE} = 0 ]; then
/usr/pandora/scripts/op_bluetooth.sh
fi
fi

exit ;
fi

#zenity --info --text="Selected device ${vdevice} use channel ${vchannel}"
notify-send -u normal "Selected device ${vdevice} use channel ${vchannel}" -t 10000

# Find if there's already a configuration for this device
# - if not it will be added
# - if found it will be used
# - if there are more than one it will make a selection window

export vfound=$(cat devices.conf | grep '^'${vdevice} | wc -l)

if (( vfound<1 )) ; then
export vdialnum=$(zenity --entry --text="Insert the dial number for\n${vdevice}" --entry-text="*99#")
# If the string is empty uses the default value
if [ -z "${vdialnum}" ] ; then vdialnum="*99#"; fi

export vstrapn=$(zenity --entry --text="Insert the APN" --entry-text="")

export vusername=$(zenity --entry --text="Insert the username\n\(Leave blank if not required\)" --entry-text="")
export vpassword=$(zenity --entry --text="Insert the password\n\(Leave blank if not required\)" --entry-text="")

echo "${vdevice} - ${vdialnum} - ${vstrapn} - ${vusername} - ${vpassword}" >> devices.conf
fi

if (( vfound==1 )) ; then
export vdialnum=$(cat devices.conf | grep '^'${vdevice} | gawk -F " - " '{print $2}')
export vstrapn=$(cat devices.conf | grep '^'${vdevice} | gawk -F " - " '{print $3}')
export vusername=$(cat devices.conf | grep '^'${vdevice} | gawk -F " - " '{print $4}')
export vpassword=$(cat devices.conf | grep '^'${vdevice} | gawk -F " - " '{print $5}') ;
fi

if (( vfound>1 )) ; then
cat devices.conf | grep '^'${vdevice} | gawk -F " - " '{print $2 " - " $3 " - " $4 " - " $5}' > temp1.tmp
cat temp1.tmp | zenity --list --text="BTDUN" --column="Select \"Dial number - APN - username - password\" to use:" > temp2.tmp
export vdialnum=$(cat temp2.tmp | gawk -F " - " '{print $1}')
export vstrapn=$(cat temp2.tmp | gawk -F " - " '{print $2}')
export vusername=$(cat temp2.tmp | gawk -F " - " '{print $3}')
export vpassword=$(cat temp2.tmp | gawk -F " - " '{print $4}') ;
fi

# Creation of the personalized BTconnection script
echo "ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR" > ~/chatscripts/BTconnection
echo SAY \"Initializing\\n\" >> ~/chatscripts/BTconnection
echo "'' ATZ" >> ~/chatscripts/BTconnection
echo SAY \"ATE\\n\" >> ~/chatscripts/BTconnection
echo "OK 'AT+CGDCONT=1,\"IP\",\"${vstrapn}\"'" >> ~/chatscripts/BTconnection
echo "OK 'AT'" >> ~/chatscripts/BTconnection
echo "OK 'ATDT${vdialnum}'" >> ~/chatscripts/BTconnection
echo SAY \"Dialing\\n\" >> ~/chatscripts/BTconnection
echo "" >> ~/chatscripts/BTconnection
echo CONNECT \\d\\c >> ~/chatscripts/BTconnection

# Adding username and password into the peers script
sed -i 's/user `'.*'`/user `'${vusername}'`/g' ~/peers/BTconnection
sed -i 's/password `'.*'`/password `'${vpassword}'`/g' ~/peers/BTconnection

if ! [ -c /dev/ppp ]; then
mknod /dev/ppp c 108 0
fi

rfcomm bind 0 "${vdevice}" "${vchannel}"
pppd file ~/peers/BTconnection
rfcomm release 0

# Find if the bluetooth is still ON
# and will turn it OFF if it was disabled before the connection
INTERFACE="`hciconfig | grep "^hci" | cut -d ':' -f 1`"
if hciconfig "$INTERFACE" | grep UP &>/dev/null; then
if [ ${BTSTATE} = 0 ]; then
/usr/pandora/scripts/op_bluetooth.sh
fi
fi

#notify-send -u normal "Disconnected" -t 10000
zenity --info --text="Disconnected"

rm ~/temp*
# rm -r ~/chatscripts
# rm -r ~/peers

exit 0

I can't play with this anymore because my new phone can't be seen by every BT device I have...
 

Galaxis

Member
Joined
Aug 30, 2010
Messages
313
This doesn't help the problem at hand, but at least pairing with an android phone still works fine through the GUI. I don't have a device with a fixed key available to test that, though...
 

edgex004

Advanced Member
Joined
Jan 5, 2008
Messages
1,204
Unfortunately the updated bluez4 has broken bluetooth audio for me. I first tried on a fresh install. I then had a 1.72 install with working bluetooth audio, ran "sudo opkg install bluez4", and bluetooth audio no longer works. Pairing and connecting is fine, but the audio players won't begin playback just the same as if there were no connection at all.

What would be the easiest way for me to downgrade bluez4?

EDIT: Also, if anyone has a clue on where I can find source code for blueman that would work with bluez4, I'd appreciate that. The only source I can find lists bluez 5 as a dependency. I am having trouble pairing with a pebble smartwatch, and I read an article that mentioned using bluez4 and blueman to pair.
 

notaz

Certified Guru
Joined
Aug 23, 2005
Messages
4,913
Location
Lithuania
Website
notaz.gp2x.de
Pairing and connecting is fine, but the audio players won't begin playback just the same as if there were no connection at all.
And there are no error messages or anything?
There should at least be some hint somewhere what is that it doesn't like, maybe something in dmesg?

I've also noticed /usr/share/alsa/bluetooth.conf says some hook needs to be added, could you try that?

As mentioned in another thread, I have no BT audio hardware, so somebody else will have to figure it out.
 
Top