MSP-FET430UIF msp430-gdbproxy won't initialize device in Ubuntu

Hello,

I am trying to get the USB FET working under Linux, and am having the following problem with msp430-gdbproxy (Running as non-root or root):

:~$ msp430-gdbproxy --port=2000 --debug msp430 TIUSB

debug: msp430: msp430_open() open: No such file or directory error: msp430: Could not initialize device interface (1) debug: msp430: msp430_open() open: No such file or directory error: msp430: Could not initialize device interface (1) ...

This seems like either a permission or node creation problem, but I have a FET rule in udev, and /dev/ttyUSB0 is being created:

:~$ls -al /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 2007-10-10 17:52 /dev/ttyUSB0

I manually change the permissions to 777 and when I run gdbproxy as root I get the same thing. Here is my udev rule (26-ti.rules. Note that the MODE setting doesn't appear to work. Very new to udev):

SUBSYSTEM=="usb_device" ACTION=="add" SYSFS{product}=="MSP-FET430UIF JTAG Tool", SYSFS{bNumConfigurations}=="2", SYSFS{bConfigurationValue}=="1", RUN+="/bin/sh -c 'echo 2 >/sys%p/ device/bConfigurationValue'", MODE="0777"

I know the hardware is good, as I can get Code Composer to work fine in Windows. One other little variable: I am running in VMWare Workstation on top of W2k. Any thoughts would be much appreciated.

Thanks,

Shane

********************************************

Some system specifics: V1.4a FET Ubuntu Feisty

2.6.20-15-generic #2 SMP Sun Apr 15 07:36:31 UTC 2007 i686 GNU/Linux Running on VMWorkstation 6.0.1 B-55017 on top of WIndows 2K.

Here is my lsusb: Bus 002 Device 001: ID 0000:0000 Bus 001 Device 003: ID 0e0f:0002 Bus 001 Device 002: ID 0451:f430 Texas Instruments, Inc. Bus 001 Device 001: ID 0000:0000

Here is dmesg as the FET is plugged in: [ 662.408000] ti_usb_3410_5052 1-1:2.0: device disconnected [ 666.480000] usb 1-1: new full speed USB device using uhci_hcd and address 4 [ 666.676000] usb 1-1: configuration #1 chosen from 1 choice [ 666.684000] ti_usb_3410_5052 1-1:1.0: TI USB 3410 1 port adapter converter detected [ 667.404000] usb 1-1: reset full speed USB device using uhci_hcd and address 4 [ 667.548000] usb 1-1: device firmware changed [ 667.548000] ti_usb_3410_5052: probe of 1-1:1.0 failed with error -5 [ 667.548000] usb 1-1: device_add(1-1:1.0) --> -5 [ 667.548000] usb 1-1: USB disconnect, address 4 [ 667.664000] usb 1-1: new full speed USB device using uhci_hcd and address 5 [ 667.844000] usb 1-1: configuration #1 chosen from 2 choices [ 667.848000] ti_usb_3410_5052 1-1:1.0: TI USB 3410 1 port adapter converter detected [ 667.848000] ti_usb_3410_5052: probe of 1-1:1.0 failed with error -5 [ 667.848000] usb 1-1: device_add(1-1:1.0) --> -5 [ 668.016000] ti_usb_3410_5052 1-1:2.0: TI USB 3410 1 port adapter converter detected [ 668.016000] usb 1-1: TI USB 3410 1 port adapter converter now attached to ttyUSB0

Reply to
shane.luttrell
Loading thread data ...

Are you sure /dev/ttyUSB0 exists and that's what msp430-gdbproxy is trying to use?

Try running it under strace and look to see what device is generating the ebove message;

strace -o syscalls.txt msp430-gdbproxy --port=2000 --debug msp430 TIUSB

--
Grant Edwards                   grante             Yow! My LESLIE GORE record
                                  at               is BROKEN ...
                               visi.com
Reply to
Grant Edwards

I'm not an expert, but I've been using mine USB FET for the last week with great success (thanks Grant).

If there were a permission problem, the errors from msp430-proxy would say so... I know ... it did ;-)

If the /dev/ttyUSB0 shows up (that's how mine mounted) when you insert the USB FET and then disappears when you remove the USB FET, then that would seem to be working.

Finally, I noticed that my invocation of gdb-proxy is different from yours ... it looks like this.

msp430-gdbproxy msp430 /dev/ttyUSB0

good luck, mike

--
Michael N. Moran           (h) 770 516 7918
5009 Old Field Ct.         (c) 678 521 5460
Kennesaw, GA, USA 30144    http://mnmoran.org

"So often times it happens, that we live our lives in chains
  and we never even know we have the key."
"Already Gone" by Jack Tempchin (recorded by The Eagles)

The Beatles were wrong: 1 & 1 & 1 is 1
Reply to
Michael N. Moran

Hi Grant,

Thanks for the response!

Here is the strace output for the errors. It looks like /dev/ttyUSB0 is what is being opened, but then I get this "Invalid or incomplete multibyte or wide character" error. Goggling isn't helping out much. /dev/ttyUSB0 appears when I plug in the FET, and then disappears. It seems to work. The number of /dev/usbdev* devices changes, though. I think this has to do with bringing up additional USB buses. I am plugging the FET into an empty pair of ports on the front of the PC. This may be another bus coming up. Still figuring that part out.

Unplugged... :~$ ls /dev/ttyUSB* ls: /dev/ttyUSB*: No such file or directory :~$ ls /dev/*usb* /dev/usbdev1.1_ep00 /dev/usbdev1.5_ep00 /dev/usbdev2.1_ep00 /dev/usbdev1.1_ep81 /dev/usbdev1.5_ep81 /dev/usbdev2.1_ep81

Plugged in... :~$ ls /dev/ttyUSB* /dev/ttyUSB0 :~$ ls /dev/*usb* /dev/usbdev1.1_ep00 /dev/usbdev1.5_ep00 /dev/usbdev1.7_ep00 /dev/ usbdev1.7_ep81 /dev/usbdev2.1_ep00 /dev/usbdev1.1_ep81 /dev/usbdev1.5_ep81 /dev/usbdev1.7_ep01 /dev/ usbdev1.7_ep83 /dev/usbdev2.1_ep81

strace start

************************************************************************

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,

0) = 0xb7f23000 write(1, "\n", 1) = 1 write(1, "Remote proxy for GDB, v0.7.1, Co"..., 69) = 69 write(1, "MSP430 adaption Copyright (C) 20"..., 70) = 70 write(1, "GDBproxy comes with ABSOLUTELY N"..., 56) = 56 write(1, "use `--warranty' option. This is"..., 63) = 63 write(1, "welcome to redistribute it under"..., 61) = 61 write(1, "'--copying' option for details.\n"..., 33) = 33 write(2, "debug: ", 11) = 11 write(2, "msp430: msp430_open()", 21) = 21 write(2, "\n", 1) = 1 open("/dev/ttyUSB0", O_RDWR) = -1 EILSEQ (Invalid or incomplete multibyte or wide character) write(2, "open: Invalid or incomplete mult"..., 56) = 56 write(2, "error: ", 11) = 11 write(2, "msp430: Could not initialize dev"..., 49) = 49 write(2, "\n", 1) = 1 nanosleep({5, 0}, NULL) = 0 write(2, "debug: ", 11) = 11 write(2, "msp430: msp430_open()", 21) = 21 write(2, "\n", 1) = 1 open("/dev/ttyUSB0", O_RDWR) = -1 ENOENT (No such file or directory) write(2, "open: No such file or directory\n", 32) = 32 write(2, "error: ", 11) = 11 write(2, "msp430: Could not initialize dev"..., 49) = 49 write(2, "\n", 1) = 1 nanosleep({5, 0}, 0) = ? ERESTART_RESTARTBLOCK (To be restarted)

--- SIGINT (Interrupt) @ 0 (0) ---

+++ killed by SIGINT +++

Reply to
shane.luttrell

Michael,

Thanks for the help as well. Can you tell me what type of Linux you are using?

That is exactly the behavior of the FET plugging/unplugging according to dmesg (and manually ls'ing). That is what is so puzzling. The device is there and everything looks OK.

I have tried both invocations. The strace (See above) just replaces "/ dev/ttyUSB0" with "TIUSB". I get the same result either way. I think that some udev magic somehow maps the "TIUSB" back to "/dev/ttyUSB0". What happens with your system if you use "TIUSB". Do you have a udev rule to make the node, or did you manually set up the USB node?

Thanks,

Shane

Reply to
shane.luttrell

I don't think so. The only thing udev can do is rename /dev/ttyUSB0 to /dev/TIUSB or create a symlink. When it's plugged in do you have a /dev/TIUSB? If not, then you shouldn't be using "TIUSB".

--
Grant Edwards                   grante             Yow! My mind is a potato
                                  at               field ...
                               visi.com
Reply to
Grant Edwards

OK, that's good. But that means you shouldn't be telling msp430-gdbproxy to use a device named "TIUSB". The device is named "/dev/ttyUSB0", so that's what you should tell msp430-gdbproxy to use (as you did in the example below).

multibyte or wide character)

That's a new one. I've never seen nor heard of that error before. It looks like that error is returned by various drivers for what appears to be widely varying reasons:

$ find /usr/src/linux-2.6.22-gentoo-r5 -name '*.c' | xargs grep EILSEQ /usr/src/linux-2.6.22-gentoo-r5/arch/sparc/kernel/errtbls.c: SOL_EILSEQ, /usr/src/linux-2.6.22-gentoo-r5/arch/sparc/kernel/errtbls.c: BSD_EILSEQ, /usr/src/linux-2.6.22-gentoo-r5/fs/befs/linuxvfs.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/fs/befs/linuxvfs.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/fs/ntfs/unistr.c: i = -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/fs/ntfs/unistr.c: wc = -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/block/ub.c: case -EILSEQ: /* unplug timeout on uhci */ /usr/src/linux-2.6.22-gentoo-r5/drivers/bluetooth/bt3c_cs.c: err = -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/bluetooth/bfusb.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/bluetooth/bfusb.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/bluetooth/bfusb.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/bluetooth/bpa10x.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/bluetooth/hci_usb.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/bluetooth/hci_usb.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/bluetooth/hci_usb.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/hid/usbhid/hid-core.c: case

-EILSEQ: /* protocol error or unplug */ /usr/src/linux-2.6.22-gentoo-r5/drivers/hid/usbhid/hid-core.c: case

-EILSEQ: /* protocol error or unplug */ /usr/src/linux-2.6.22-gentoo-r5/drivers/hid/usbhid/hid-core.c: case

-EILSEQ: /* protocol error or unplug */ /usr/src/linux-2.6.22-gentoo-r5/drivers/i2c/chips/isp1301_omap.c: return

-EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/input/misc/ati_remote2.c: case -EILSEQ: /usr/src/linux-2.6.22-gentoo-r5/drivers/input/misc/ati_remote2.c: case -EILSEQ: /usr/src/linux-2.6.22-gentoo-r5/drivers/isdn/gigaset/bas-gigaset.c: case -EILSEQ: /usr/src/linux-2.6.22-gentoo-r5/drivers/media/video/ov511.c: {

-EILSEQ, "CRC/Timeout (bad cable?)" }, /usr/src/linux-2.6.22-gentoo-r5/drivers/media/video/pwc/pwc-if.c: case

-EILSEQ: errmsg = "CRC/Timeout (could be anything)"; break; /usr/src/linux-2.6.22-gentoo-r5/drivers/media/video/w9968cf.c: { -EILSEQ, "CRC/Timeout" }, /usr/src/linux-2.6.22-gentoo-r5/drivers/net/irda/irda-usb.c: case -EILSEQ: /usr/src/linux-2.6.22-gentoo-r5/drivers/net/usb/usbnet.c: // we avoid the highspeed version of the ETIMEOUT/EILSEQ /usr/src/linux-2.6.22-gentoo-r5/drivers/net/usb/usbnet.c: case -EILSEQ: /usr/src/linux-2.6.22-gentoo-r5/drivers/net/usb/usbnet.c: case -EILSEQ: /usr/src/linux-2.6.22-gentoo-r5/drivers/net/wireless/prism54/islpci_dev.c: return

-EILSEQ; /* Illegal byte sequence */; /usr/src/linux-2.6.22-gentoo-r5/drivers/net/wireless/zd1201.c: case -EILSEQ: /usr/src/linux-2.6.22-gentoo-r5/drivers/net/wireless/zd1201.c: case -EILSEQ: /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/atm/ueagle-atm.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/atm/ueagle-atm.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/atm/ueagle-atm.c: ret = -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/atm/ueagle-atm.c: usbatm->flags |= UDSL_USE_ISOC | UDSL_IGNORE_EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/atm/usbatm.c: (!(channel->usbatm->flags & UDSL_IGNORE_EILSEQ) || /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/atm/usbatm.c: urb->status !=

-EILSEQ )) /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/gadget/at91_udc.c: req->req.status = -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/gadget/fsl_usb2_udc.c: status =

-EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/gadget/omap_udc.c: status =

-EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/host/uhci-q.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/misc/auerswald.c:-EILSEQ CRC mismatch /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/misc/auerswald.c: case -EILSEQ: /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/misc/ftdi-elan.c: } else if (retval == -EILSEQ) { /usr/src/linux-2.6.22-gentoo-r5/drivers/usb/misc/ftdi-elan.c: } else if (retval == -EILSEQ) { /usr/src/linux-2.6.22-gentoo-r5/net/bluetooth/bnep/core.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/net/bluetooth/bnep/core.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/net/bluetooth/bnep/core.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/net/bluetooth/bnep/core.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/net/bluetooth/bnep/core.c: err = -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/net/bluetooth/bnep/core.c: err = -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/net/bluetooth/rfcomm/core.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/net/dccp/ackvec.c: return -EILSEQ; /usr/src/linux-2.6.22-gentoo-r5/sound/usb/usbmidi.c: case -EILSEQ:

Do you get an error when you do this at the shell prompt?

$ cat /dev/ttyUSB0

That means /dev/ttyUSB0 doesn't exist. Is there still a /dev/ttyUSB0 after you kill msp430-gdbproxy.

restarted)

--
Grant Edwards                   grante             Yow! Clear the laundromat!!
                                  at               This whirl-o-matic just had
                               visi.com            a nuclear meltdown!!
Reply to
Grant Edwards

multibyte or wide character)

[snip]

Google pointed to this:

Being a straight ASCII kind-of-guy, I don't understand much about this, but it sounds like you're getting some interesting multi-byte character into your command line... perhaps through the copy-and-paste mechanism (that's pure speculation;)

--
Michael N. Moran           (h) 770 516 7918
5009 Old Field Ct.         (c) 678 521 5460
Kennesaw, GA, USA 30144    http://mnmoran.org

"So often times it happens, that we live our lives in chains
  and we never even know we have the key."
"Already Gone" by Jack Tempchin (recorded by The Eagles)

The Beatles were wrong: 1 & 1 & 1 is 1
Reply to
Michael N. Moran

Fedora Core 7

-- Michael N. Moran (h) 770 516 7918

5009 Old Field Ct. (c) 678 521 5460 Kennesaw, GA, USA 30144
formatting link

"So often times it happens, that we live our lives in chains and we never even know we have the key." "Already Gone" by Jack Tempchin (recorded by The Eagles)

The Beatles were wrong: 1 & 1 & 1 is 1

Reply to
Michael N. Moran

Grant,

Yes, I think you are on the right track:

:~$ cat /dev/ttyUSB0 cat: /dev/ttyUSB0: Invalid or incomplete multibyte or wide character

I do have what appears to be a /dev/ttyUSB0 whenever I plug in the FET. It is there before running gdbproxy as well as after. It seems to go away after I unplug the FET. I assumed it was working ok, but "cat'ing" it clearly shows a problem.

Your link and thought on copy-and-paste is making me believe that maybe my udev rule has something not legit in it. Come to think of it, I think I may have just copy-and-pasted it off of a web page rather than enter it manually. That could be it!

I'm going to look into this in the morning.

Thanks, and I'll post what happens here!

- Shane

multibyte or wide character)

SOL_EILSEQ,

BSD_EILSEQ,

Reply to
shane.luttrell

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.