Skip to content
  • Paul Bolle's avatar
    isdn/capi: fix (middleware) device nodes · d1cadce1
    Paul Bolle authored
    
    
    Since v2.4 the capi driver used the following device nodes if
    "middleware" support was enabled:
        /dev/capi20
        /dev/capi/0
        /dev/capi/1
        [...]
    
    /dev/capi20 is a character device node. /dev/capi/0 (and up) are tty
    device nodes (with a different major).
    
    This device node (naming) scheme is not documented anywhere, as far as I
    know. It was originally provided by the capifs pseudo filesystem (before
    udev became available). It is required for example by the pppd
    capiplugin. It was supported until a few years ago. But a number of
    developments broke it:
    - v2.6.6 (May 2004) renamed /dev/capi20 to /dev/capi and removed the
      "/" from the name of capi's tty driver. The explanation of the patch
      that did this included two examples of udev rules "to restore the old
      namespace";
    - either udev 154 (May 2010) or udev 179 (January 2012) stopped
      allowing to rename device nodes, and thus the ability to have
      /dev/capi20 appear instead of /dev/capi and /dev/capi/0 (and up)
      instead of /dev/capi0 (and up);
    - v3.0 (July 2011) also removed capifs. That disabled another method to
      create the /dev/capi/0 (and up) device nodes.
    
    So now users need to manually tweak their setup (eg, create /dev/capi/
    and fill that with symlinks) to get things working. This is all rather
    hacky and only discoverable by searching the web. Fix all this by
    renaming /dev/capi back to /dev/capi20, and by setting the name of the
    "capi_nc" tty driver to "capi!" so the tty device nodes appear as
    /dev/capi/0 (and up).
    
    Signed-off-by: default avatarPaul Bolle <pebolle@tiscali.nl>
    Signed-off-by: default avatarTilman Schmidt <tilman@imap.cc>
    Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d1cadce1