[panic] FreeBSD 6.x, Palm PDA and ucom/uvisor

Peter D. Quilty pdquilty at adelphia.net
Tue Nov 29 16:20:14 GMT 2005


Paolo,
I have a Tungsten C that I sync with Evolution on FreeBSD 6.0-RELEASE.
You have to load ucom & uvisor first and then press the hotsync button.
The Palm should show up as /dev/cuaU0.  With the new tty driver in 6.x,
you don't access /dev/ucom0 any longer, but instead use /dev/cuaU0.

>From the 6.0 Release Notes:
The generic tty(4) driver interface has been added and many device
drivers including cx(4) ({tty,cua}x), cy(4) ({tty,cua}c), digi(4)
({tty,cua}D), rc(4) ({tty,cua}m), rp(4) ({tty,cua}R), sab(4)
({tty,cua}z), si(4) ({tty,cua}A), sio(4) ({tty,cua}d), sx ({tty,cua}G),
uart(4) ({tty,cua}u), ubser(4) ({tty,cua}y), ucom(4) ({tty,cua}U), and
ucycom(4) ({tty,cua}y) have been rewritten to use it. Note
that /etc/remote and /etc/ttys have been updated as well.

I hope this helps.

-- 
Peter D. Quilty
pdquilty at adelphia.net
GnuPG Key:
http://users.adelphia.net/~pdquilty/gpg-pubkey.asc
GnuPG Key Fingerprint:
A46A 0E56 D13E 5617 4696  2B04 0D0C E34D CB6D D107




On Sun, 2005-11-27 at 17:45 +0100, Paolo Pisati wrote:

> Hi,
> 
> i'm an happy owner of a Palm PDA (Tapwave Zodiac/PalmOS 5.2)
> and since yesterday i'm trying to sync it with my 
> laptop running FreeBSD 6.x, but so far no luck.
> 
> First i googled around for some infos about the process of
> hotsyncing palms in freebsd, but found only outdated docs/emails.
> This looks the best one:
> 
> http://gja.space4me.com/things/Palm_TungstenC_FreeBSD.html
> 
> 
> It says to load uvisor and ucom together, connect the pda via usb,
> press the hotsync button and the pda should appear as ucom0.
> First i patched usbdevs and uvisor.c to recognize my pda and 
> recompiled everything just in case (see other email), then:
> 
> $ sudo kldload uvisor
> [flag at longino ~]
> $ kldstat 
> Id Refs Address    Size     Name
>  1   29 0xc0400000 353dd0   kernel
>  2    1 0xc0754000 60c4     snd_ich.ko
>  3    2 0xc075b000 205a8    sound.ko
>  4    1 0xc077c000 9080     ng_ubt.ko
>  5    2 0xc0786000 d568     netgraph.ko
>  6    1 0xc0794000 aea0     if_iwi.ko
>  7    2 0xc079f000 20cf0    wlan.ko
>  8    1 0xc07c0000 66074    acpi.ko
>  9    1 0xc36d8000 33000    nfsclient.ko
> 10    2 0xc3742000 1a000    linux.ko
> 11    1 0xc37a1000 2000     rtc.ko
> 12    1 0xc3898000 7000     umass.ko
> 13    1 0xc38b0000 4000     ums.ko
> 14    1 0xc3a3b000 5000     ugen.ko
> 15    1 0xc3cb1000 3000     uvisor.ko
> 16    1 0xc3cf6000 3000     ucom.ko
> 
> (uvisor brings in ucom)
> 
> and when i press the hotsync button:
> 
> Nov 27 16:54:05 longino kernel: ucom0: Tapwave, Inc. Tapwave Handheld, rev 1.10/1.00, addr 3
> Nov 27 16:54:15 longino kernel: 
> Nov 27 16:54:15 longino kernel: ucom0: failed to set configuration, err=TIMEOUT
> Nov 27 16:54:15 longino kernel: device_attach: ucom0 attach returned 6
> Nov 27 16:54:20 longino kernel: uhub3: port 2, set config at addr 3 failed
> Nov 27 16:54:20 longino kernel: uhub3: device problem (TIMEOUT), disabling port 2
> 
> and no ucom appears in /dev.
> And all the subsequents pression of hotsync button i get:
> 
> Nov 27 16:56:21 longino kernel: ucom1: Tapwave, Inc. Tapwave Handheld, rev 1.10/1.00, addr 3
> Nov 27 16:56:31 longino kernel: 
> Nov 27 16:56:31 longino kernel: ucom1: failed to set configuration, err=TIMEOUT
> Nov 27 16:56:31 longino kernel: device_attach: ucom1 attach returned 6
> Nov 27 16:56:36 longino kernel: uhub3: port 2, set config at addr 3 failed
> Nov 27 16:56:36 longino kernel: uhub3: device problem (TIMEOUT), disabling port 
> 
> and so on.
> I tried unloading stuff, detaching all the usb gears from my laptop
> but no luck.
> Another 'funny' side effect i found while playing with usb was:
> 
> 1) compile a kernel with minimal usb support:
> 
> # USB support
> device          uhci            # UHCI PCI->USB interface
> device          ehci            # EHCI PCI->USB interface (USB 2.0)
> device          usb             # USB Bus (required)
> 
> 2) kldload ucom
> 
> 3) press the hotsync button [nothing happens]
> 
> 4) kldload uvisor
> 
> 5) kernel panic
> 
> $ sudo kgdb ./kernel.debug /var/crash/vmcore.0 
> [GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
> GNU gdb 6.1.1 [FreeBSD]
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i386-marcel-freebsd".
> 
> Unread portion of the kernel message buffer:
> 
> 
> Fatal trap 12: page fault while in kernel mode
> fault virtual address   = 0x0
> fault code              = supervisor read, page not present
> instruction pointer     = 0x20:0xc0490418
> stack pointer           = 0x28:0xd66608a0
> frame pointer           = 0x28:0xd66609c8
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = interrupt enabled, resume, IOPL = 0
> current process         = 545 (kldload)
> trap number             = 12
> panic: page fault
> Uptime: 21s
> Dumping 503 MB (2 chunks)
>   chunk 0: 1MB (159 pages) ... ok
>   chunk 1: 503MB (128723 pages) 487 471 455 439 423 407 391 375 359 343 327 311 295 279 263 247 231 215 199 183 167 151 135 119 103 87 71 55 39 23 7
> 
> #0  doadump () at pcpu.h:165
> 165             __asm __volatile("movl %%fs:0,%0" : "=r" (td));
> (kgdb) bt full
> No locals.
> #1  0xc04edd50 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:399
>         first_buf_printf = 1
> #2  0xc04ee099 in panic (fmt=0xc067ca1c "%s")
>     at /usr/src/sys/kern/kern_shutdown.c:555
>         td = (struct thread *) 0xc3861180
>         bootopt = 260
>         newpanic = 0
>         ap = 0xc3861180 "\030T\206@\206"
>         buf = "page fault", '\0' <repeats 245 times>
> #3  0xc0659fec in trap_fatal (frame=0xd6660860, eva=0)
>     at /usr/src/sys/i386/i386/trap.c:831
>         code = 40
>         type = 12
>         ss = 40
>         esp = 0
>         softseg = {ssd_base = 0, ssd_limit = 1048575, ssd_type = 27, 
>   ssd_dpl = 0, ssd_p = 1, ssd_xx = 0, ssd_xx1 = 0, ssd_def32 = 1, ssd_gran = 1}
> #4  0xc0659cc2 in trap_pfault (frame=0xd6660860, usermode=0, eva=0)
>     at /usr/src/sys/i386/i386/trap.c:742
>         va = 0
>         vm = (struct vmspace *) 0x0
>         map = 0x1
>         rv = 1
>         ftype = 1 '\001'
>         td = (struct thread *) 0xc3861180
>         p = (struct proc *) 0xc3865418
> #5  0xc065987f in trap (frame=
>       {tf_fs = -1068105720, tf_es = 40, tf_ds = 40, tf_edi = -697955700, tf_esi = 61, tf_ebp = -697955896, tf_isp = -697956212, tf_ebx = -1019352192, tf_edx = -1019352136, tf_ecx = 0, tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip = -1068956648, tf_cs = 32, tf_eflags = 590470, tf_esp = -1014623872, tf_ss = -1014606824}) at /usr/src/sys/i386/i386/trap.c:432
>         td = (struct thread *) 0xc3861180
>         p = (struct proc *) 0xc3865418
>         sticks = 3597011082
>         i = 0
>         ucode = 0
>         type = 12
>         code = 0
>         eva = 0
> #6  0xc06469aa in calltrap () at /usr/src/sys/i386/i386/exception.s:139
> No locals.
> #7  0xc0490418 in usbd_get_string (dev=0xc33deb80, si=61, 
>     buf=0xd6660a8c "H\004") at /usr/src/sys/dev/usb/usbdi.c:1195
> 
>         swap = 16843009
>         us = {bLength = 1 '\001', bDescriptorType = 1 '\001', bString = {
>     "\001\001" <repeats 19 times>, "\001", "\001\001" <repeats 97 times>, 
>     "c", "\037", "\001", "\000", "D\v", "f", "\t", "f", "\"", "Q"}}
>         s = 0xc33deb80 "map"
>         i = 61
>         n = -697955700
>         c = 0
>         err = USBD_NORMAL_COMPLETION
>         size = 16843009
> #8  0xc048d56e in usbd_devinfo_vp (dev=0xc33deb80, v=0xd6660a8c "H\004", 
>     p=0xd6660a0c "l\nf8\aJ\005", usedev=1)
>     at /usr/src/sys/dev/usb/usb_subr.c:230
>         udd = (usb_device_descriptor_t *) 0xc33debb8
>         vendor = 0x0
>         product = 0x0
> #9  0xc048d6e2 in usbd_devinfo (dev=0xc33deb80, showclass=0, 
>     cp=0xc33ce000 "/usr/local/modules/rtc.ko")
>     at /usr/src/sys/dev/usb/usb_subr.c:293
>         udd = (usb_device_descriptor_t *) 0xc33debb8
>         iface = 0xa
>         vendor = "H\004\000\004\nf֤j``\004\000\000\000\000\020\000\000\000\nfR\006N\nf\020\000\000\000\000\000\000\000p?H\004\000\004\nf֤j`\nf\006\000\000\000\000\004\000\000\nfR\006NP:>\000\004\000\000\006\000\000\000\000<\030\vfa\aN kj\000\004\000\000\006\000\000\000 \004"
>         product = "l\nf8\aJ\005\000\000\000\000\000\000\000\000@\000 ", '\0' <repeats 28 times>, "\001", '\0' <repeats 23 times>, "H\004\000\004\210\nf֤j`\205g\000\000\000\000\020\000\000\000\210\nfR\006N$\nf\020\000\000\000\000\000\000\0000;>ì\nf"
>         bcdDevice = -697955828
>         bcdUSB = -697955700
>         id = (usb_interface_descriptor_t *) 0x0
> #10 0xc38a3bb0 in ?? ()
> No symbol table info available.
> #11 0xc33deb80 in ?? ()
> No symbol table info available.
> #12 0x00000000 in ?? ()
> No symbol table info available.
> #13 0xc33ce000 in ?? ()
> No symbol table info available.
> #14 0xc33deacc in ?? ()
> No symbol table info available.
> #15 0xc33e3a50 in ?? ()
> No symbol table info available.
> #16 0xd6660b4c in ?? ()
> No symbol table info available.
> #17 0xc050cb7e in kobj_lookup_method_mi (cls=0xc33dea80, desc=0xc33ce000)
>     at /usr/src/sys/kern/subr_kobj.c:202
>         ce = (kobj_method_t *) 0x0
>         basep = (kobj_class_t *) 0xc33dea80
> #18 0xc0507c9a in device_attach (dev=0xc33dea80) at device_if.h:177
>         error = 0
> #19 0xc0507c11 in device_probe_and_attach (dev=0xc33dea80)
>     at /usr/src/sys/kern/subr_bus.c:2336
>         error = -1016358912
> #20 0xc0508ae4 in bus_generic_driver_added (dev=0xc332f080, driver=0xc38a5380)
>     at /usr/src/sys/kern/subr_bus.c:3069
>         child = 0xc33dea80
> #21 0xc0506570 in devclass_add_driver (dc=0xc327d240, driver=0xc38a5380)
>     at bus_if.h:183
>         dl = 0xc332f080
>         i = 3
> #22 0xc0509d85 in driver_module_handler (mod=0xc386a640, what=-1014344832, 
>     arg=0xc38a5398) at /usr/src/sys/kern/subr_bus.c:3697
>         error = -1020800448
>         dmd = (struct driver_module_data *) 0xc38a5398
>         bus_devclass = 0xc327d240
>         driver = 0xc38a5380
> #23 0xc04e2181 in module_register_init (arg=0xc38a53ac)
>     at /usr/src/sys/kern/kern_module.c:121
>         data = (const moduledata_t *) 0xc38a53ac
>         error = -1016306816
>         mod = 0xc386a640
> #24 0xc04db530 in linker_file_sysinit (lf=0x0)
>     at /usr/src/sys/kern/kern_linker.c:194
>         start = (struct sysinit **) 0xc38a4338
>         stop = (struct sysinit **) 0xc38a433c
>         sipp = (struct sysinit **) 0xc38a4338
>         xipp = (struct sysinit **) 0x0
>         save = (struct sysinit *) 0xc33debb8
> #25 0xc04db8c8 in linker_load_file (
>     filename=0xc36c6380 "/boot/kernel/uvisor.ko", result=0xd6660c94)
>     at /usr/src/sys/kern/kern_linker.c:367
>         lc = 0xc06b0860
>         lf = 0xc3894100
>         foundfile = 1
>         error = 0
> #26 0xc04de4f9 in linker_load_module (
>     kldname=0xc36c6380 "/boot/kernel/uvisor.ko", modname=0xc33cf400 "uvisor", 
>     parent=0x0, verinfo=0x0, lfpp=0xd6660cc0)
>     at /usr/src/sys/kern/kern_linker.c:1712
>         lfdep = 0xc104ed20
>         filename = 0x0
>         pathname = 0xc36c6380 "/boot/kernel/uvisor.ko"
>         error = 17
> #27 0xc04dc56a in kldload (td=0xc3861180, uap=0x0)
>     at /usr/src/sys/kern/kern_linker.c:785
>         kldname = 0x0
>         modname = 0xc33debb8 "\021"
>         pathname = 0xc33cf400 "uvisor"
>         lf = 0xd6660d38
>         error = 0
> #28 0xc065a3e0 in syscall (frame=
>       {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 0, tf_esi = -1077940908, tf_ebp = -1077940952, tf_isp = -697954972, tf_ebx = 0, tf_edx = -1, tf_ecx = -1077940704, tf_eax = 304, tf_trapno = 12, tf_err = 2, tf_eip = 671906511, tf_cs = 51, tf_eflags = 531, tf_esp = -1077941012, tf_ss = 59})
>     at /usr/src/sys/i386/i386/trap.c:976
>         params = 0xbfbfecf0 <Address 0xbfbfecf0 out of bounds>
>         callp = (struct sysent *) 0xc06aaac0
>         td = (struct thread *) 0xc3861180
>         p = (struct proc *) 0xc3865418
>         lf = 0xd6660d38
>         error = 0
> #28 0xc065a3e0 in syscall (frame=
>       {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 0, tf_esi = -1077940908, tf_ebp = -1077940952, tf_isp = -697954972, tf_ebx = 0, tf_edx = -1, tf_ecx = -1077940704, tf_eax = 304, tf_trapno = 12, tf_err = 2, tf_eip = 671906511, tf_cs = 51, tf_eflags = 531, tf_esp = -1077941012, tf_ss = 59})
>     at /usr/src/sys/i386/i386/trap.c:976
>         params = 0xbfbfecf0 <Address 0xbfbfecf0 out of bounds>
>         callp = (struct sysent *) 0xc06aaac0
>         td = (struct thread *) 0xc3861180
>         p = (struct proc *) 0xc3865418
>         orig_tf_eflags = 531
>         sticks = 0
>         error = 0
>         narg = 1
>         args = {-1077940704, 12, 0, 0, -1014606824, 0, 0, 0}
>         code = 304
> #29 0xc06469ff in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:200
> No locals.
> #30 0x00000033 in ?? ()
> No symbol table info available.
> (kgdb) 
> 
> Hope this helps...
> 
> bye




More information about the freebsd-usb mailing list