• Update - Linux kernel driver, Python transputer tools

    From John Snowdon@21:1/5 to All on Sun Jan 31 01:15:58 2016
    Not sure how many people are still actively looking at this group, but I thought I'd drop a note to say that the Linux kernel driver for the B004/B008 compatible ISA interface cards that I've been working on is now pretty stable and working well.

    Did you know that you can still buy Core2/Core2Quad and i3/i5/i7 boards with ISA slots???? I was struggling on with an ancient Pentium Pro 200.....

    All the code is in github (http://github.com/megatron-uk/INMOS-Link-Driver) and it is working nicely.

    So far I've made some small changes to ispy/mtest to get them to build on modern versions of Linux. Of the two, ispy now works correctly and consistently, though mtest is not quite there yet. Again, you can find all of this on my github pages (http://
    github.com/megatron-uk/INMOS-ispy). I'm also taking the opportunity to tidy up the code of ispy/mtest - the original source code has a mixture of tabs and spaces, indented and non-indented code, and it's a bit of a pain to follow.

    That brings me on to my next project - which is a re-implementation of ispy/mtest in pure Python. This uses the new Linux kernel driver as per the c-implementation of ispy, but could be (and I hope that I can get to this point!) the basis of a new Python
    INMOS/Helios IO server.
    I don't want to duplicate the work Axel is doing with Helios from the transputer side of things, but being able to talk to Helios from Linux (or essentially anything else with a working B004/B008 driver) would be fantastic; we've not been able to do this
    ever before.... so that's what I'll be doing now.

    Anyway, the python version of the tools - imaginatively called 'pyspy' is yet again up on github (http://github.com/megatron-uk/INMOS-pyspy), I'm still shaking out the network map bugs, so it's only at the early stages yet, but the functionality maps 1:1
    to the original ispy as it uses Andy R's boot and check code as well as re-implementing almost all of his original functions from check.c and cklib.c.

    Oh yeah, still trying to track down reasonably priced carriers, trams and more - let me know if you want to get of any. It would be useful to be able to test the new kernel driver with other hardware than my one TMB04!

    What's everyone else up to?

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike B.@21:1/5 to All on Wed Feb 3 09:35:02 2016
    Hi John!

    I've compiled two applications (peek and poke) for Linux (x86 & amd64). Unfortunately I have no transputer hardware connected to my (virtual) Linux box.

    If you are willing to supply a linkio Shared Library for your driver and make the tests I can try to compile the other stuff also for Linux.

    Kind regards
    Mike

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike B.@21:1/5 to All on Mon Feb 1 08:41:16 2016
    Hi John!

    i3/i5/i7 boards with ISA slots

    There is no such thing - and that wouldn't make any sense - and if there is such a thing it's very very very special which also means - very expensive.

    still trying to track down reasonably priced carriers

    We all do that :-)

    About ispy and ... "what's everyone else up to?"

    The c-part of ispy/check is nothing else than the wrapping. The functionality and the spirit are in the occam code parts. To read and maintain these parts is really challenging. What makes ispy/mtest/ftest c-part hard is the annoying text parsing.

    And finally: To hardwire application with a special link-interface is cumbersome.

    If you create a new application, you have to compile/adopt it with many other interfaces. If you design a new interface, you have to compile all applications (if the code is available).

    So I'm splitting these two parts: The application and the interface. The interface is a loadable module based on the INMOS linkio "standard". This interface is not very powerful but plain and easy.

    My currently assisted infrastructure is: (MS)DOS, Windows-X86, Windows-AMD64 and Windows-IA64. (Windows=NT and later)

    Adjusted Applications are: Afserver, Iserver, Ispy, Mtest, Ftest, Rspy, Peek & Poke

    This on its own produces 4 x 8 = 32 Binaries.

    The loadable module approach is also implemented in DOS (with EXEC - LOAD AND/OR EXECUTE PROGRAM).

    Following interface modules has been developed so far:

    Link004 (B004) - DOS portIO only
    Link008 (B008) - DOS device (s708driv.sys) only.
    LinkLPT (ParallelPort) - DOS, Windows-X86 only.
    LinkNEC (NEC) - DOS portIO only (almost identical to B004)
    LinkBBK (BBK-PCI-Light) - Windows-X86 only
    LinkUSB (V1.1) - Windows-ALL

    For the LinkUSB exists a DOS-interface module for the NT-VirtualDosMachine. I use it mainly to test the DOS-Applications.

    Also for the NT-VirtualDosMachine I'm developing just now an s708wnt.sys driver which allows a link-up to an arbitrary Windows linkio module. This is primary intended for the HELIOS-IO-server (DOSDEVICE).

    The biggest problem is, there is no documentation and I didn't find the time to update the transputer.net hardware/software pages to make this project public available.

    There is also a funny undocumented project from 2011: A link interface for the parallel port with only one C012, one GAL16V8, one DS8921 (for differential link signals) and one 5MHz oscillator. I've called it the "poor man" link adapter.

    And last but not least, about one year ago I become airborne with the INMOS flight simulator!

    As you see, many things are happening ... unfortunately almost on the Q.T.

    Kind regards
    Mike

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Snowdon@21:1/5 to Mike B. on Sun Mar 6 00:53:49 2016
    On Wednesday, February 3, 2016 at 5:35:03 PM UTC, Mike B. wrote:
    Hi John!

    I've compiled two applications (peek and poke) for Linux (x86 & amd64). Unfortunately I have no transputer hardware connected to my (virtual) Linux box.

    If you are willing to supply a linkio Shared Library for your driver and make the tests I can try to compile the other stuff also for Linux.

    Kind regards
    Mike

    Hi Mike,

    My computer with the built link driver and tools is currently out of action - hope to get the disk transferred to another system this week; it's got some slightly later code than currently in Github, so I don't want to lose it.

    I also managed to get a more modern P4 system with ISA slots put together, so it should make working on the Linux driver/tools a bit easier since the old box was a relatively sluggish Pentium Pro 200.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Edwards@21:1/5 to John Snowdon on Wed Mar 30 22:12:21 2016
    On Sunday, January 31, 2016 at 8:15:59 PM UTC+11, John Snowdon wrote:
    Not sure how many people are still actively looking at this group, but I thought I'd drop a note to say that the Linux kernel driver for the B004/B008 compatible ISA interface cards that I've been working on is now pretty stable and working well.

    I certainly am still looking and active :-)

    All the code is in github (http://github.com/megatron-uk/INMOS-Link-Driver) and it is working nicely.


    Thanks this is fantastic. So I have got this to compile as follows on Ubuntu Linux 15.10, Thinkpad X60, uname -a as per the follows

    Linux x60 4.2.0-25-generic #30-Ubuntu SMP, i686 i686 i686 GNU/Linux

    To start I got the following errors

    make -C /lib/modules/4.2.0-25-generic/build M=/home/ejb/new/INMOS-Link-Driver-ma
    ster modules
    make[1]: Entering directory '/usr/src/linux-headers-4.2.0-25-generic'
    CC [M] /home/ejb/new/INMOS-Link-Driver-master/link-driver.o /home/ejb/new/INMOS-Link-Driver-master/link-driver.c: In function 'byte_to_binar
    y':
    /home/ejb/new/INMOS-Link-Driver-master/link-driver.c:144:5: warning: ISO C90 for
    bids mixed declarations and code [-Wdeclaration-after-statement]
    int z;
    ^
    had to move "int z;" to start of function.

    Then I got the following error for link_read/link_write/link_ioctl

    In file included from /home/ejb/new/INMOS-Link-Driver-master/link-driver.c:64:0:
    /home/ejb/new/INMOS-Link-Driver-master/link-driver.c: In function 'link_read': /home/ejb/new/INMOS-Link-Driver-master/link-driver.c:267:39: error: 'struct file
    ' has no member named 'f_dentry'
    const unsigned int minor = MINOR(file->f_dentry->d_inode->i_rdev);
    ^
    include/linux/kdev_t.h:10:38: note: in definition of macro 'MINOR'
    #define MINOR(dev) ((unsigned int) ((dev) & MINORMASK))
    ^
    A bit of research and I found out I had to change references to f_dentry to f_path.dentry

    once done I recompiled and although there were some warnings "make" generated the module.

    then running ./build i get the following on dmesg. FYI this makes sense as I don't have a link card in my laptop but I did have a 32bit linux to play with :-).

    [ 1571.241819] link_driver: module license 'unspecified' taints kernel.
    [ 1571.241826] Disabling lock debugging due to kernel taint
    [ 1571.241891] link_driver: module verification failed: signature and/or require
    d key missing - tainting kernel
    [ 1571.344014] LINK(0) resetting transputer. (0x160)
    [ 1571.344020] LINK(0) reset() data [0x00]
    [ 1571.448017] LINK(0) reset() data [0x00]
    [ 1571.552009] LINK(0) reset() data [0x01]
    [ 1571.656011] LINK(0) reset() data [0x00]
    [ 1571.968011] LINK(0) resetting transputer. (0x180)
    [ 1571.968014] LINK(0) reset() data [0x00]
    [ 1572.072019] LINK(0) reset() data [0x00]
    [ 1572.176011] LINK(0) reset() data [0x01]
    [ 1572.280011] LINK(0) reset() data [0x00]
    [ 1572.592011] LINK(0) resetting transputer. (0x1a0)
    [ 1572.592014] LINK(0) reset() data [0x00]
    [ 1572.696017] LINK(0) reset() data [0x00]
    [ 1572.800009] LINK(0) reset() data [0x01]
    [ 1572.904011] LINK(0) reset() data [0x00]
    [ 1573.113416] link: no interfaces found.


    next step will be to build up a Pentium machine with a link card and see how that goes.

    Thanks again and hope that helps anyone looking to get this to compile on a current release

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)