LinAXEPad won't run on Ubuntu 12.10

PaulRB

Senior Member
SOLVED: LinAXEPad won't run on Ubuntu 12.10

Hi,

I had LinAXEPad running fine on Ubuntu 10.04 LTS, 64-bit.

I have now installed Ubuntu 12.10 and done a fresh download today of LinEXEPad and extracted everything from the package (as both a normal user and as root - makes no difference)

I see the following error if I run LinAXEPad from the terminal:

Code:
/home/paul/PICAXE/AXEPad/LinAXEpad: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
I'm ready to help diagnose this problem!

Thanks,

Paul
 
Last edited:

hippy

Technical Support
Staff member
I think you might need the 32-bit versions, it may only be indicating you have the 64-bit installed.
 

PaulRB

Senior Member
I think you might need the 32-bit versions, it may only be indicating you have the 64-bit installed.
Thanks hippy. Do you think its possible to install the 32-bit version on a 64-bit O/S? I'll do a search for the 32-bit version in the software centre. Dont remember having to do anything like this with 10.04...

Paul
 

hippy

Technical Support
Staff member
Do you think its possible to install the 32-bit version on a 64-bit O/S?

Dont remember having to do anything like this with 10.04...
I guess Canonical have changed which libraries are installed by default with their 64-bit Ubuntu distro.

The required library was also missing in Debian 64-bit and ia32-libs had to be installed. That ia32-libs is no longer directly supported through Ubuntu so you might have to resort to Google or the Ubuntu forums. There shouldn't be any reason that you can't get what you need installed if you can find it ...

http://askubuntu.com/questions/107230/what-happened-to-the-ia32-libs-package

This might help. Note the image about halfway down which might be what you're after through the Ubuntu Software Center ...

http://askubuntu.com/questions/219465/cannot-install-ia32-lib-package
 
Last edited:

PaulRB

Senior Member
This might help. Note the image about halfway down which might be what you're after through the Ubuntu Software Center ...

http://askubuntu.com/questions/219465/cannot-install-ia32-lib-package
Thanks hippy, I installed those two recommended packages, "ia32-libs" and "ia32-libs-multiarch:i386". LinAXEPad now runs!

Now to get the AXE027 working again...

I created the file /etc/udev/rules.d/99-axe027.rules:
Code:
# /etc/udev/rules.d/99-axe027.rules
# contains axe027 udev rule to patch default
# FTDI product id to AXE027 product id (0xbd90)
SYSFS{idProduct}=="bd90", SYSFS{idVendor}=="0403", RUN+="/sbin/modprobe -q ftdi_sio product=0xbd90 vendor=0x0403"
I then tried this command, but got the error message:
Code:
$ sudo udevcontrol reload_rules
sudo: udevcontrol: command not found
A quick google came up with the alternative:
Code:
$ sudo udevadm control --reload-rules
which seemed to run ok with no complaints. However, I still can't find the tty device:
Code:
$ ls /dev/ttyUSB*
ls: cannot access /dev/ttyUSB*: No such file or directory
Tried restarting Ubuntu, no difference.

I can see the device OK ("ID 0403:bd90"):
Code:
$ lsusb
Bus 002 Device 002: ID 05e3:070e Genesys Logic, Inc. USB 2.0 Card Reader
Bus 003 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 004 Device 002: ID 1241:1111 Belkin Mouse
Bus 004 Device 003: ID 04d9:a02e Holtek Semiconductor, Inc. 
Bus 006 Device 004: ID 0403:bd90 Future Technology Devices International, Ltd 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
(This is the same USB port that the AXE027 worked fine on Ubuntu 10.04.)

So... will continue to search the forums (picaxe and ubuntu), but any suggestions would be welcome.

Paul
 

PaulRB

Senior Member
Some progress. I tried the modprobe method:
Code:
$ sudo modprobe ftdi_sio vendor=0x0403 product=0xbd90
[sudo] password for paul: 
$ ls /dev/ttyUSB*
/dev/ttyUSB0
So I hooked up a 14m2 on a breadboard and got:
Screenshot from 2013-02-11 23:02:57.png

So I did this:
Code:
sudo chmod 777 /dev/ttyUSB0
And the firmware check now runs ok:
Screenshot from 2013-02-11 23:09:03.png

Then I restarted Ununtu to see if it still worked afterwards... no, back to the start again. I have to open a terminal and issue the modprobe then chmod commands again toget it working.
 
Last edited:

hippy

Technical Support
Staff member
I would guess the chmod has to be re-issued every re-boot because /dev/ttyUSB0 won't exist until the AXE027 is discovered and that file is created. That it's not given 777 permissions when it is created seems to be the issue.

What does "ls -l /dev/ttyUSB0" report ? It might be that Ubuntu is putting it in the wrong group and you might have to issue a chown or edit /etc/groups.

Earlier versions of Ubuntu seem to have had no problems with permissions and I have no idea what has changed with the latest version, whether it's a systemic issue or a particular installation issue.
 

PaulRB

Senior Member
Thanks again hippy. Will report back on that ls -l command tonight. But doing modprobe each time is just a workaround.

Question still remains: why is the udev rule thing not working...
 

PaulRB

Senior Member
Thanks yet again hippy. Sounds like that will fix it. Will report back tonight on how this works:
Code:
# /etc/udev/rules.d/99-axe027.rules 
# contains axe027 udev rule to patch default 
# FTDI product id to AXE027 product id (0xbd90) 
ATTR{idProduct}=="bd90", ATTR{idVendor}=="0403", RUN+="/sbin/modprobe -q ftdi_sio product=0xbd90 vendor=0x0403"
 

PaulRB

Senior Member
OK, big step forward, with the updated udev rule file in place, the AXE027 is now recognised on startup. One hurdle remains - I'm still having to do the chmod.

Here is the device file before I do the chmod:
Code:
$ ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Feb 12 21:01 /dev/ttyUSB0
 

PaulRB

Senior Member
I solved the last piece of the jigsaw with google's help:
Code:
$ sudo adduser paul dialout
This makes my ID part of the same "dialout" group that the device belongs to. Sorted, I can now program a picaxe again.

Thanks again hippy for the assistance.

Paul
 

hippy

Technical Support
Staff member
crw-rw---- 1 root dialout 188, 0 Feb 12 21:01 /dev/ttyUSB0
That's put the /dev/ttyUSB0 into the dialout group so you probably have to add yourself as a member of that group. Not sure why it behaved differently on 10.04 because this suggests it was the same back then -

http://serial-lines.blogspot.co.uk/2011/02/permissions.html

Not quite sure which command you'll need ( and there seems other ways as well ). It was so much easier when it just worked!

Added : You beat me to it. Shouldn't have forgotten to hit Send before having supper.
 

jacobite

New Member
Thanks to PaulRB and hippy for this info. I had the exact same problems with Xubuntu 12.04, now fixed. :)
It would be helpful if the axe027 doc was updated to reflect the changes in udev.
 

chipwich

Member
Suggestion for LinAXEpad on 64bit ubuntu distros

I'm also having similar issues getting LinAXEpad to run. It looks like Ubuntu has dropped the 32 bit libraries from their newer 64bit distros. But the IA-32 package (the suggested solution) can require hundreds of other unnecessary packages to be installed, depending on what is already on the system. All this, just to get a single program to run...

Can we get a static build of LinAXEpad? This would be a simple fix to eliminate the library dependancy issues.

Thank you for considering this.
 

Technical

Technical Support
Staff member
Unfortunately this is a limitation of the development tool used. One of these 2 will normally work for Ubunto 64-bit

sudo apt-get install ia32-libs
sudo apt-get install ia32-libs-multiarch
 

chipwich

Member
Unfortunately this is a limitation of the development tool used. One of these 2 will normally work for Ubunto 64-bit

sudo apt-get install ia32-libs
sudo apt-get install ia32-libs-multiarch
My understanding of this problem is that the 32 bit GTK libraries have been excluded from the new 64 bit Ubuntu based distributions. Installing one of the above packages adds the libraries back, but the package management system must perform other removals/installations/updates of existing packages in order to satisfy various dependancies. In my case, a heavily customized Xubuntu system requires 250+ package modifications. There's a real risk of destablizing something else, just to get the 32 bit libraries in order to use a single program, LinAXEpad.

So the suggestion in my previous post is to find out if you could make available a statically-compiled binary for LinAXEpad, in addition to the normal one. At the expense of a larger binary, this should side-step the library issues. Is this possible?

-----------

btw, I went through the "apt-get install ia32-libs" on a Linux Mint system (not the Xubuntu one, referenced above) which required fewer upgrade dependancies. This did fix the primary issue and allowed LinAXEpad to run, but it revealed a different problem on that system: the appearance of the file-browser causes a segmentation fault. This issues was reported at http://www.picaxeforum.co.uk/showthread.php?24054-LinAxePad-segmentation-faults-on-dialog-box, but unfortunately the thread contains no work-arounds for my machine.
 

hippy

Technical Support
Staff member
So the suggestion in my previous post is to find out if you could make available a statically-compiled binary for LinAXEpad, in addition to the normal one. At the expense of a larger binary, this should side-step the library issues. Is this possible?
As per Technical's post #18 the answer is; no. This is a limitation of the development tool used to create LinAXEpad which does not provide for producing statically linked libraries.
 

chipwich

Member
As per Technical's post #18 the answer is; no. This is a limitation of the development tool used to create LinAXEpad which does not provide for producing statically linked libraries.
Ok. Thanks, Hippy. I misinterpreted the response as a discussion of the original library issue, not as a comment on the executable build limitations.
 
Top