Here's another driver that needs a developer. Anyone want to work on it? Let me know. thanks, greg k-h ------------------ Summary: tty over TCP driver Description: A company has devices that are exposed over TCP to a local machine as a "normal" tty serial port. A driver needs to be written for Linux to expose this kind of functionality to the user so that standard serial programs can be used to control the device. Estimated skills needed: tty layer experience TCP from within the kernel experience This is not a good "first driver" type project, but should not be that complex (with the exception of trying to understand the tty layer, a currently moving target.) _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
I don't know enough about the 1394 API to judge for this project, but I believe that there are similarities to IPTV systems, where the streams are coming through an Ethernet interface. Some people want to avoid the copy from kernel to user space (network stack) and back to kernel space (inject into some hardware demux) in case of a user space application, hence they go for the kernel space implementation and claim it's for performance reasons, but I do have evidence, that it's not enough. (different implementations on the same hardware platform) In case you receive some RTP stream over the network you need to peel off various headers and stuff like layers from an onion to end up with the raw data, which can be injected into the demux. So the classic approach is for each packet to allocate some memory for one layer and less for the next (stripped stuff) and less for the next and so on. To pass from one layer to the next you do some copies, which is very expensive in terms of performance. It turned out that it's worthwhile to write your own memory manager, which contains a reusable pool of chunks of memory. In order to pass form one to the next layer no copying is needed, but just some playing around with pointers. Like this a user space application with a memory manager can easily outperform a kernel space application, which does not use it's own memory manager. Of course if you would use a memory manager in kernel space, you could achieve the best results, since you would avoid the copies form kernel to user space and back. Do you see similarities for the 1394 stuff? Regards, Robert --- Robert Berger Embedded Software Specialist Reliable Embedded Systems Consulting Training Engineering Tel.: (+30) 697 593 3428 Fax.:(+30 210) 684 7881 email: robert.berger@reliableembeddedsystems.com URL: www.reliableembeddedsystems.com --- ......The moral is obvious. You can't trust code that you did not totally create yourself. -- Ken Thompson My public ...
Can you say, "telnet?" Can you say, "pty?" -Jay _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
A: No. Q: Should I include quotations after my reply? I might be totally missing something, but how to you send line speed and flow control settings over telnet? Even with a pty, you can't do that. Here's a bit more information. This device is a box, that you plug a ethernet cable into, and a serial port comes out of. On the remote end, you connect to the device, and it needs to look like you are directly controling that serial port, line settings and flow control and all. Just like a usb-serial device, but instead of USB, you are using TCP as the transport layer. With those requirements, can telnet and a pty still implement this? thanks, greg k-h _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
Oh, and some of these devices are 1 ethernet, multiple serial ports, requiring the protocol to support multiple endpoints on the same TCP connection. Again, just like usb-serial devices. thanks, greg k-h _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
1. It's called a console server, or a terminal server, depending on whether it performs the multiplexing or demultiplexing function. These have been around for twenty years, and they don't require device drivers. 2. To reiterate: a) this is a solved problem, b) with a strictly user-space solution. 3. Greg, kindly take me off this list. Deregister me, deactivate my account, whatever. Thanks. _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
--d6Gm4EdcadzBjdND
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Hi,
That's cool. So I can connect a bunch of Class 2 Fax modems to a
terminal server, point Hylafax at them, and have everything work out of
the box?
The answer is NO. There is no pty-lookalike driver which transparently
passes stuff like TERMIO(S) ioctl calls to userspace (and waits for a
reply, to allow for _WAIT behavior) or otherwise allows you to
manipulate modem control lines.
Then there's the high-volume problem. You could implement PPP entirely
in userspace, TUN/TAP is a solved problem with a mostly-complete
solution (unlike pty), but there's a very good reason not to.
--=20
Matthias Urlichs | {M:U} IT Design @ m-u-it.de | smurf@smurf.noris.de
Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de
- -
I never expected to see the day when girls would get sunburned in the
places they do today.
-- Will Rogers
--d6Gm4EdcadzBjdND
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFHFvdK8+hUANcKr/kRAhOtAJ9wNl2Jv/zo071buleK2nlpY3DZPQCgo+oO
KRvPNibyRqYonXeBs4wumSY=
=HYqD
-----END PGP SIGNATURE-----
--d6Gm4EdcadzBjdND--
I'd like to be involved. I'd like to think that this can wind up as some sort of part kernel/part userspace type of implementation though that may not be entirely possible. Hopefully there are other folks as well as I don't have a tremendous amount of time to dedicate to it but I do have quite a bit of serial and networking experience, and more -- David Hollis <dhollis@davehollis.com> _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
I would be interested in observing this driver and offering any assistance that I can. I've not previously worked on the linux kernel but feel comfortable with OS concepts and would like to get my hands dirty in the near future. -- David Glandon (864) 915-4862 _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
On Thursday 18 October 2007 08:53, David Glandon wrote: I been reading the this thread and I find something that I do not understand, this is going to be tty -> ppe ->TCP can you use the modem controls to quench the data (if not can be something _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
I'd like to be "in the loop" on this one too. FWIW, I have an IOLAN terminal server in my server cabinet downstairs that implements exactly this type of functionality. John -- John W. Linville linville@tuxdriver.com _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
OK. IOW the benefit is that FireWire DVB cards are presented to I am not familiar with isochronous 1394 application programming at all. But IIDC (uncompressed video for machine vision, surveillance etc.), DV (compressed video with camcorders, TVs, STBs), and semipro/pro audio are all handled in userspace, which is evidence that many realtime requirements can be satisfied with userspace implementations. AFAIU zero-copy operation is possible with raw1394 only within the constraints of a ring buffer of programmable size. This buffer is to be used during the whole reception, which makes zero-copy unrealistic in most situations. I don't know about the capabilities of video1394, which is another userspace ABI of the ieee1394 stack. The new firewire stack's firewire-cdev ABI allows for zero-copy operation without raw1394's restriction. However, zero-copy operation is not a general requirement for realtime applications, although it is of course desirable, or actually necessary AFAIK raw1394 uses a feature of FireWire controllers which discards IEEE 1394 headers from received streams before DMA. The new firewire-cdev API uses a more flexible feature, dual buffer DMA, which lets the controller write headers of configurable size (i.e. IEEE 1394 headers and optionally additional format-dependent headers) into a buffer separate from the payload buffer. (Note though that I have no expertise in any of these areas. Some people over at linux1394-devel have, but I didn't want to cross-post.) -- Stefan Richter -=====-==--- -==- -==== http://arcgraph.de/sr/ _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
