# [SOLVED] Treo & udev, /dev devices never created

## darcon

Hi, I'm trying to get my treo270 to sync but I've got a slightly different problem then all the other posts on the forum. My treo seems to be detected correctly but /dev/pilot, /dev/tts/USB0, and /dev/tts/USB1 are never created even though my rules are correct (I think).

I've been following this guide http://gentoo-wiki.com/HOWTO_USB_sync_for_Palm_PDAs_with_Evolution_2.0_and_udev

I get the right messages in /var/log/message

```
Jul 26 12:22:12 eidolon usb 2-1: Handspring Visor / Palm OS converter now attached to ttyUSB0

Jul 26 12:22:12 eidolon usb 2-1: Handspring Visor / Palm OS converter now attached to ttyUSB1

```

and ttyUSB0 ttyUSB1 appear in /sys/class/tty/

but the part I get stuck on is when I run #udevinfo -p /sys/class/tty/ttyUSB1 -a

```
udevinfo starts with the device the node belongs to and then walks up the

device chain, to print for every device found, all possibly useful attributes

in the udev key format.

Only attributes within one device section may be used together in one rule,

to match the device for which the node will be created.

device '/sys/class/tty/ttyUSB1' has major:minor 188:1

  looking at class device '/sys/class/tty/ttyUSB1':

    SUBSYSTEM=="tty"

    SYSFS{dev}=="188:1"

follow the "device"-link to the physical device:

couldn't open device directory

```

when I should be getting a bunch of info including SYSFS{serial}="123456789ABC" so I can create a new UDEV rule since my current rules never create anything in /dev

Also my udev rules file already has this line

```
/etc/udev/rules.d/50-udev.rules

KERNEL="ttyUSB[0-9]*",  NAME="tts/USB%n", GROUP="tty", MODE="0600"
```

Also the output of #cat /proc/bus/usb/devices doesn't have anything about a serial number

```
T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 14 Spd=12  MxCh= 0

D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=16 #Cfgs=  1

P:  Vendor=082d ProdID=0100 Rev= 1.00

S:  Manufacturer=Handspring Inc

S:  Product=Handspring Treo

C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  2mA

I:  If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=visor

E:  Ad=81(I) Atr=02(Bulk) MxPS=  16 Ivl=0ms

E:  Ad=01(O) Atr=02(Bulk) MxPS=  16 Ivl=0ms

E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

```

I'm running kernel 2.6.12-gentoo-r6Last edited by darcon on Fri Aug 05, 2005 3:45 am; edited 1 time in total

----------

## leo.fontenelle

 *darcon wrote:*   

> My treo seems to be detected correctly but /dev/pilot, /dev/tts/USB0, and /dev/tts/USB1 are never created even though my rules are correct (I think).

 

Try running lsusb (from sys-apps/usbutils) after pressing the sync button. If somthing interesting shows up, your computer is detecting the event, good. Now try "ls -l /dev/pilot /dev/tts/USB?" after pressing the sync button; devices should appear as needed. Now check the device's owner, group and permissions. By default, those are root, tty and 0600 -- udev behaves like if your palm was a real usb terminal.

This line in /etc/udev/rules.d/10-udev.rules set my device to work:

```
SYSFS{product}="Palm Handheld", NAME="pilot", GROUP="usb", MODE="0660"

# You might prefer:

# SYSFS{product}="Palm Handheld", NAME="tts/USB%n", LINK="pilot", GROUP="usb", MODE="0660"
```

I chose the first one because I didn't want to mess with the default setting, even if the chances of connecting any kind of console to my desktop are pretty remote. The second shouldn't hurt, though.

Happy syncing!  :Very Happy: 

----------

## darcon

Thanks for the reply telurion, i ran lsusb and i get

```
Bus 002 Device 024: ID 082d:0100 Handspring Visor
```

but running ls -l /dev/pilot /dev/tts/USB? just returns

```
ls: /dev/pilot: No such file or directory

ls: /dev/tts/USB?: No such file or directory
```

the 10+ times I run it before I get a device disconnected message in /var/log/messages

I also tried both rules you gave me, running udevstart after each rule change, but udev still doesn't create anything.

One interesting thing I found is that if i run

```
mknod /dev/ttyUSB0 c 188 0

mknod /dev/ttyUSB1 c 188 1

mknod /dev/ttyUSB2 c 188 2

mknod /dev/ttyUSB3 c 188 3
```

like I found in the kernel docs then those nods are created. But after I try to sync my treo again ttyUSB1 and ttyUSB2 are deleted but the other two remain. What does this mean? I've got no clue  :Sad: 

----------

## leo.fontenelle

 *darcon wrote:*   

> One interesting thing I found is that if i run
> 
> ```
> mknod /dev/ttyUSB0 c 188 0
> 
> ...

 

Well, udev should create nodes as needed, and remove them as unneeded. At least it's doing half the job!

Now, seriously, I can't understand what's wrong with your system. Let me suggest a checklist:

Updating sys-apps/baselayout (I believe you've done that, at least your kernel is up-to-date; if not, warning: do it whith full attention, since it may change a lot in /etc/conf.d);

Check the kernel config as in the official Gentoo udev documentation and USB documentation (although your kernel config should be ok, since dmesg seems ok);

Read this guide to writting udev rules, suggested by the udev guide.

----------

## ghutzl

I think I have had the same issue on my side together with my Palm Tungsten T3. The guide at: http://gentoo-wiki.com/HOWTO_USB_sync_for_Palm_PDAs_with_Evolution_2.0_and_udev suggests to create the file: /etc/udev/rules.d/10-udev.rules with the following contents:

```
# PalmOne Tungsten T3

BUS="usb",SYSFS{serial}="12345467893ABC",NAME="pilot",OWNER="root",GROUP="tty",MODE="0660"

#

# This works for one user's Handspring Visor.  Put the desired user in the "usb" group.

KERNEL="ttyUSB[01]*",  NAME="tts/USB%n", GROUP="usb", MODE="0660"

```

I assume you have created this file. If not do so. This will lead to a situation where at least the /dev/pilot node gets created shortly after you have pressed the hotsync button and it will again disappear after the usb link gets disconnected. Watch the directory /dev for the file to appear/disappear directly after pressing the hotsync button to check if this is true. But still the /dev/tts/USB[0|1] will not be created. I could solve this by changing the /dev/pilot node to be actually just a symlink to the correct node. So this is my /etc/udev/rules.d/10-udev.rules

```
# PalmOne Tungsten T3

BUS="usb",SYSFS{serial}="12345467893ABC",SYMLINK="pilot",OWNER="root",GROUP="tty",MODE="0660"

#

# This works for one user's Handspring Visor.  Put the desired user in the "usb" group.

KERNEL="ttyUSB[01]*",  NAME="tts/USB%n", GROUP="usb", MODE="0660"
```

I hope this helps. This way I can start a backup with jpilot. Thats the only thing I tried for now. I am still in the process of configuring evolution so i cannot comment on that in detail. But also evolution recognized my palm (using gnome-pilot).

----------

## darcon

upgraded from udev-058 to udev-065 and everything works fine now  :Very Happy: 

thx for the help everyone, hopefully running testing releases of core packages won't cause any problems I can't fix

----------

## grabiller

 *darcon wrote:*   

> upgraded from udev-058 to udev-065 and everything works fine now :D
> 
> thx for the help everyone, hopefully running testing releases of core packages won't cause any problems I can't fix

 

Hi,

sorry for the newbie question, but I have the same problem and would like to upgrade udev too to make it work.

How you upgrade udev to 065, emerge only shows 058 ?

Thanks in advance.

----------

## grabiller

Got it. Masked package..

Everything works perfectly now. ( Treo 650 )

Thanks.

----------

## leo.fontenelle

I'd like to know... You updated udev, and Treo devices are now created corrctly. Are you using any custom rules, or is 50-udev.rules enough?

----------

