Hi Peter, On Wed, Oct 28, 2009 at 3:08 AM, Peter Pastor <[email protected]> wrote: [...] > [ 11.460737] analogy_ni_mio: Unknown symbol ni_tio_cmd > ...snip...
I think Alexis solved that one with last nights commit 8063e1b21350bc6822565f29ad8d53c2a6491238 If not, you may be able to work around that problem by removing the '_GPL' string in all EXPORT_SYMBOL_GPL statements in tio_common.c Cheers, Remco den Breeje > > r...@xenomai:~# lspci -v > ...snip... > 06:00.0 Class ff00: National Instruments Device 717f > Flags: bus master, medium devsel, latency 64, IRQ 11 > Memory at f7dfe000 (32-bit, non-prefetchable) [size=4K] > Memory at f7dff000 (32-bit, non-prefetchable) [size=4K] > Kernel driver in use: mite > Kernel modules: analogy_ni_pcimio > ...snip... > > r...@xenomai:~# lsmod | grep analogy > analogy_ni_tio 26852 0 > analogy_8255 4388 0 > analogy_ni_mite 12644 1 analogy_ni_tio > xeno_analogy 39108 3 analogy_ni_tio,analogy_8255, > analogy_ni_mite > > I don't really know how to use analogy_config... since > > r...@xenomai:/usr/xenomai/sbin# ./analogy_config analogy0 analogy_ni_mite > comedi_config: comedi_snd_attach failed ret=-22 > when I run > > r...@xenomai:/usr/xenomai/bin# ./cmd_read > cmd_read: a4l_fill_desc failed (ret=-22) > *** glibc detected *** ./cmd_read: free(): invalid next size (fast): > 0x08052008 *** > ======= Backtrace: ========= > /lib/tls/i686/cmov/libc.so.6[0xb7f5f604] > /lib/tls/i686/cmov/libc.so.6(cfree+0x96)[0xb7f615b6] > ./cmd_read[0x80496ae] > /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb7f06775] > ./cmd_read[0x8048f41] > ======= Memory map: ======== > 08048000-0804e000 r-xp 00000000 08:01 13109565 /usr/xenomai/bin/cmd_read > 0804e000-0804f000 r--p 00005000 08:01 13109565 /usr/xenomai/bin/cmd_read > 0804f000-08050000 rw-p 00006000 08:01 13109565 /usr/xenomai/bin/cmd_read > 08050000-08073000 rw-p 00000000 00:00 0 [heap] > b7d00000-b7d21000 rw-p 00000000 00:00 0 > b7d21000-b7e00000 ---p 00000000 00:00 0 > b7ecf000-b7edc000 r-xp 00000000 08:01 11894849 /lib/libgcc_s.so.1 > b7edc000-b7edd000 r--p 0000c000 08:01 11894849 /lib/libgcc_s.so.1 > ... > > which is I guess due to the unsuccessful analogy_config. My question is, > which driver do I have to use ? > > Thanks, > peter > > On Thu, Oct 22, 2009 at 11:49 PM, Alexis Berlemont <[email protected]> > wrote: >> >> Hi, >> >> On Thu, Oct 22, 2009 at 7:30 AM, Peter Pastor <[email protected]> wrote: >> > Hi Alexis, >> > >> > Sorry for the delay, I was out of town. >> > >> > I have tried the statical configuration and it seemed to work, i.e. I could >> > execute the example program /usr/xenomai/bin/cmd_read. However, I wanted to >> > run the task in real-time and added the -r option which results in >> > r...@xenomai:/usr/xenomai/bin# ./cmd_read -vr >> > cmd_read: switching to real-time mode >> > cmd_read: device comedi0 opened (fd=0) >> > cmd_read: basic descriptor retrieved >> > subdevices count = 14 >> > read subdevice index = 0 >> > write subdevice index = 1 >> > cmd_read: complex descriptor retrieved >> > cmd_read: channel 0 >> > ranges count = 7 >> > range's size = 16 (bits) >> > cmd_read: channel 1 >> > ranges count = 7 >> > range's size = 16 (bits) >> > cmd_read: channel 2 >> > ranges count = 7 >> > range's size = 16 (bits) >> > cmd_read: channel 3 >> > ranges count = 7 >> > range's size = 16 (bits) >> > cmd_read: scan size = 8 >> > cmd_read: size to read = 800 >> > cmd_read: command successfully sent >> > 0xff 0xff 0xff 0xff 0xff 0xff 0x81 0xf9 >> > 0xff 0xff 0xff 0xff 0xff 0xff 0xca 0xfb >> > ...snip... >> > 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff >> > cmd_read: comedi_read failed (ret=-2) >> >> -2 is -ENOENT, which means there is nothing more to acquire. The >> return code should have been 0 but I 'd rather send -2, which is not >> very compliant. It is something I need to work on. >> >> > The cmd_write however, seems to work >> > >> > r...@xenomai:/usr/xenomai/bin# ./cmd_write -rv >> > cmd_write: switching to real-time mode >> > cmd_write: device comedi0 opened (fd=0) >> > cmd_write: basic descriptor retrieved >> > subdevices count = 14 >> > read subdevice index = 0 >> > write subdevice index = 1 >> > cmd_write: complex descriptor retrieved >> > cmd_write: channel 0 >> > ranges count = 3 >> > range's size = 16 (bits) >> > cmd_write: channel 1 >> > ranges count = 3 >> > range's size = 16 (bits) >> > cmd_write: scan size = 4 >> > cmd_write: size to write = 400 >> > cmd_write: command successfully sent >> > cmd_write: 400 bytes successfully written >> > >> > also... >> > r...@xenomai:/usr/xenomai/bin# ./insn_read -rv >> > insn_read: switching to real-time mode >> > insn_read: device (null) opened (fd=0) >> > insn_read: basic descriptor retrieved >> > subdevices count = 14 >> > read subdevice index = 0 >> > write subdevice index = 1 >> > insn_read: complex descriptor retrieved >> > insn_read: channel width is 16 bits >> > insn_read: global scan size is 20 >> > 0xff 0xff >> > 0x0 0x0 >> > 0xff 0xff >> > 0x0 0x0 >> > 0xff 0xff >> > 0x0 0x0 >> > 0xff 0xff >> > 0x0 0x0 >> > 0xff 0xff >> > 0x0 0x0 >> > insn_read: 20 bytes successfully received >> > >> > What I would like to make sure is that I can write to comedi0 without >> > having >> > mode switches. Therefore I copied cmd_write and added a rt_task_spawn to >> > make sure that the task_body runs in real-time (even though the -r option >> > results in the same behavior.) This way, I could add/change code to check >> > for mode switches... However, since unfortunately I am debugging things >> > remotely I cannot "see" the output (the display) of our oscilloscope that >> > is >> > connected to the pci express card. I'll send an email as soon as I know >> > more. >> >> Be careful with the printf() I inserted in the test programs cmd_read, >> cmd_write; they will make you switch in the secondary domain. >> >> > Besides that, I updated to your latest xenomai and re-compiled having the >> > comedi drivers compiled as loadable modules. After booting the new kernel I >> > can see the following: >> > >> > xenomai:~> uname -a >> > Linux xenomai 2.6.30.5-xenomai-ipipe-comedi #6 SMP Wed Oct 21 20:05:37 PDT >> > 2009 i686 GNU/Linux >> > xenomai:~> lspci -v >> > ...snip... >> > 06:00.0 Class ff00: National Instruments Device 717f >> > Flags: bus master, medium devsel, latency 64, IRQ 11 >> > Memory at f7dfe000 (32-bit, non-prefetchable) [size=4K] >> > Memory at f7dff000 (32-bit, non-prefetchable) [size=4K] >> > Kernel driver in use: mite >> > Kernel modules: comedi_ni_pcimio >> > ...snip... >> > xenomai:~> lsmod | grep come >> > comedi_ni_tio 26884 0 >> > comedi_8255 4420 0 >> > comedi_ni_mite 12708 1 comedi_ni_tio >> > xeno_comedi 39908 3 comedi_ni_tio,comedi_8255,comedi_ni_mite >> > >> > >> > However, the problem is that there is: >> > >> > r...@xenomai:/usr/xenomai/sbin# ./comedi_config comedi0 comedi_pcimio >> > comedi_config: comedi_snd_attach failed ret=-22 >> > >> > also... >> > >> > r...@xenomai:/usr/xenomai/sbin# ./comedi_config comedi0 comedi_ni_mite >> > comedi_config: comedi_snd_attach failed ret=-22 >> > >> > r...@xenomai:/usr/xenomai/sbin# dmesg >> > ...snip... >> > [ 11.298460] Comedi: MITE: Available NI device IDs: 0x717f(used) >> > [ 11.305333] comedi_8255: module license 'unspecified' taints kernel. >> > [ 11.305337] Disabling lock debugging due to kernel taint >> > [ 11.331840] comedi_ni_mio: Unknown symbol ni_tio_handle_interrupt >> > [ 11.331936] comedi_ni_mio: Unknown symbol ni_tio_set_mite_channel >> > [ 11.331986] comedi_ni_mio: Unknown symbol ni_tio_cmd_mask >> > [ 11.332171] comedi_ni_mio: Unknown symbol ni_tio_init_counter >> > [ 11.332317] comedi_ni_mio: Unknown symbol ni_tio_winsn >> > [ 11.332416] comedi_ni_mio: Unknown symbol ni_gpct_device_destroy >> > [ 11.332466] comedi_ni_mio: Unknown symbol ni_tio_insn_config >> > [ 11.332696] comedi_ni_mio: Unknown symbol ni_tio_acknowledge_and_confirm >> > [ 11.332786] comedi_ni_mio: Unknown symbol ni_tio_cmdtest >> > [ 11.332921] comedi_ni_mio: Unknown symbol ni_tio_cancel >> > [ 11.332976] comedi_ni_mio: Unknown symbol ni_gpct_device_construct >> > [ 11.333139] comedi_ni_mio: Unknown symbol ni_tio_rinsn >> > [ 11.333189] comedi_ni_mio: Unknown symbol ni_tio_cmd >> > ...snip... >> > >> > How can I fix this ? Or should I simply work with the statical linked >> > comedi >> > drivers ?? >> >> I will update my git repository soon with these fixes. However, could >> you switch to the analogy branch ? As you may know, comedi/RTDM has >> been renamed as analogy: >> https://mail.gna.org/public/xenomai-core/2009-09/msg00016.html >> >> Alexis. > > > _______________________________________________ > Xenomai-help mailing list > [email protected] > https://mail.gna.org/listinfo/xenomai-help > _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
