Linux 7.1 Removes Drivers for Bus Mouse Support

(phoronix.com)

38 points | by speckx 2 hours ago

10 comments

  • midtake 12 minutes ago
    Is this due to Mythos and other LLMs finding a bunch of obscure bugs or simply a precaution? If someone (a normie not a gentooman) wanted to run Linux on retro hardware how would they do it? Boot Debian Sarge?
  • xiphias2 1 hour ago
    Microkernels have lost the open kernel wars because of their speed problems, but this is a great example of a driver that should have been running in userspace a long time ago, just like how Windows has been moving in that direction.

    Isn't Linux planning to do the same?

    • augusto-moura 1 hour ago
      I guess things are going into that direction naturally, but not officially. eBPF is helping with getting deep kernel aspects into userspace. And there's some ressurgence of out-of-tree graphics drivers, specially for gaming.

      I believe userspace drivers are much more powerful and easy to build than 10 years ago, but it is not from a requirement from the kernel.

      Who knows, maybe we will get a smaller (instead of bigger) kernel in 10-20 years

    • e12e 25 minutes ago
      > this is a great example of a driver that should have been running in userspace a long time ago, just like how Windows has been moving in that direction.

      Hasn't windows (nt lineage) moved solidly in the opposite direction? Used to be you could reload/restart the video card ("GPU") driver if the driver crashed?

      • halter73 11 minutes ago
        I think this conflates two different eras/layers. NT 4 famously moved the window manager/GDI/graphics subsystem into kernel mode, so that’s probably the “opposite direction” history. But modern GPU-driver recovery is WDDM/TDR, and it very much still exists: WDDM splits the display driver into user-mode and kernel-mode components, and TDR resets/recovers a hung GPU/driver instead of requiring a reboot.

        https://learn.microsoft.com/en-us/windows-hardware/drivers/d... https://learn.microsoft.com/en-us/windows-hardware/drivers/d...

        I also update NVIDIA drivers regularly on Windows 11 without rebooting, though that’s install-time driver reload rather than exactly the same thing as TDR.

      • doctorpangloss 16 minutes ago
        No it's the opposite. WDDM and DirectX are constantly being updated and have been improving crash recovery of the GPU, updating its driver, power management, abstracting features like video encoding and storage DMA, among many things. In Linux it is taking ages, the first proposal for DRM to support 2010 era WDDM features was in 2021 and it still does not exist. Graphics is one of the few places some of Microsoft still innovates. Although not in the sense of having great code, they just put in the work to coordinate these changes from the handful of vendors. If only someone hosted more steak dinners for Linux.
  • bastawhiz 1 hour ago
    This is the kind of spring cleaning I crave. Deleting busted drivers that haven't worked in over a decade? Fantastic!

    Some of this hardware likely has exactly zero users because the material it's made from can't possibly have survived. Look at the cord on the mouse in the photo: you might be able to plug it in, but I wouldn't bet money signal can still make it down the wire.

    • trollbridge 1 hour ago
      My bus mouse still works just fine; things built in the 80s tended to be pretty solid.

      However, it would be hard pressed to find a machine with ISA slots with enough resources to run Linux 7.1 acceptably.

      • cestith 1 hour ago
        There are still ISA slots in new systems with fairly modern processors and plenty of RAM, if you don’t mind buying specific models of industrial PCs for way too much money.

        For $1100 or so you, too, could have a 4th generation Core i3 machine. https://www.rampcsystems.com/product/2-isa-slot

        Or maybe you need 4 PCI and 9 ISA for some reason. DuroPC’s got you, if you can drop $1800 on a system with the same generation of processor. https://duropc.com/product/r810-4p9i-4

        • M95D 1 hour ago
          ISA slots are all identical. If you have one slot, you can multiply it to 100 slots just by connecting the wires.
          • bitwize 2 minutes ago
            This is what the word "bus" used to mean on a hardware level: a backplane of connections to which multiple peripherals could be attached. These days a bus is a LAN of point-to-point serial connections which, it turns out, is much more viable at the high communication rates demanded of modern hardware.
          • cestith 52 minutes ago
            That’s one of those facts that’s always good to know, but in practice people tend to put one card in one slot with no expanders.
          • stackghost 32 minutes ago
            I'm pretty sure the host will run out of IRQs long before 100. Don't most systems only have 16?
            • M95D 12 minutes ago
              You don't really need IRQs for most ISA boards. OPL3/Adlib sound cards don't need one, MIDI doesn't, joystick port doesn't. I saw various I/O boards that don't need IRQ. Soundblaster does, but I don't know for what purpose. Maybe someone here can explain?
              • stackghost 2 minutes ago
                Sound Blasters and compatible cards used IRQ lines because back in the bad old days CPUs were slow, bandwidth was tiny, and buffers were minuscule.

                To get responsive/real time audio the card needs to signal to the CPU, not the other way around, and at the time IRQs were the way to do that on ISA busses.

                I would imagine that ISA cards that didn't need IRQs either required CPU polling or DMA.

          • SV_BubbleTime 43 minutes ago
            How were different devices addressed? I assume it’s a master and slave system, but even then were address collisions automatically resolved?
            • jlokier 11 minutes ago
              To avoid collisions, you moved physical jumpers on cards that might conflict, to select among a small range of addresses, I/O ports and/or select IRQs.

              For example if you had two identical network cards, or SCSI disk controllers, you would need to physically reconfigure one of them away from its defaults.

              There were only a small number of configurations available on each type of device, and some weren't configurable at all, so you could still get irreconcilable conflicts.

              The Linux kernel of the time was full of hard-coded "probe" addresses and I/O ports, probe sequences to see if there was a device there, and IRQ auto-detection routines that triggered an interrupt to find out which IRQ line was asserted. Some of the probes had to be run in a particular order, so that probes for one type of device wouldn't break another type.

              Later came ISAPnP, meaning Plug'n'Play for ISA, which allowed the operating system to use a clever protocol to talk simultaneously over ISA with all devices on the bus that support it, identify and select them individually, query what they required and and configure their addresses, I/O ports and IRQs to avoid overlap, or permit overlap where it was ok for IRQs. After the operating system was done configuring them, they operated as if they were configured physically like the older ISA cards. If necessary this could be implemented cheaply by adding an ISAPnP module to an existing ISA card design.

              Eventually ISA was superceded by PCI which had better, well-defined enumeration and configuration methods from the start which all devices had to implement. PCI also allowed MMIO and IO base addresses to be set anywhere in (32-bit), not just a small number or single option as ISA cards usually had, so there were no more address conflicts. The operating system still had to find the PCI configuration registers itself, but after that, probing was simpler and more reliable than with ISA.

              USB also arrived around the same time, and also had well-defined enumeration and configuration methods. Many simpler ISA devices were replaced by equivalent USB devices. Although USB was (and is) complex to implement at a low level, the complexity was handled very well be low-cost, generic USB modules on the device side, so it was easy for device manufacturers to use.

            • tialaramex 28 minutes ago
              In original ISA none of this is managed, the owner of the PC is expected to manually configure both hardware and software appropriately.

              So e.g. [with the PC turned off!] you move a tiny jumper (basically just a piece of conductive metal with a plastic housing) to the "IRQ 8" position and you pick "IRQ 8" in some menu or set it in an environment variable in DOS or whatever.

              By the time PCI is starting to appear there is some level of "Plug and Plug ISA" but it's fairly crazy because of course all the old stuff still exists whereas for PCI the bus always had this intelligence baked in so nobody just assumes they can pick.

              • M95D 9 minutes ago
                It can't be IRQ 8 on an ISA board. That's the IRQ for the RTC.
            • toast0 29 minutes ago
              > How were different devices addressed?

              There's a shared address bus. Each device responds to the i/o and/or memory addresses it's configured for. Configuration can be static, jumpers, isapnp.

              > I assume it’s a master and slave system, but even then were address collisions automatically resolved?

              No. If two devices want to use the same address space, you'll have problems. isapnp might help you out, but it was added in the second decade of ISA, so ... lots of things don't use it.

            • stackghost 32 minutes ago
              They used 16-bit addresses from 0x0 to 0xffff.
      • estimator7292 1 hour ago
        Most things.

        Plastics and rubbers tend to not survive well a lot of the time just because of the chemistry. There's really no way around plastic embrittlement and rubber decomposing. You can prolong it with the right storage conditions, but those molecules are gonna break down sooner or later.

    • kube-system 48 minutes ago
      The mouse in the photo was made somewhere between 1987-1993. I have computers older than that which work just fine.
      • kstrauser 9 minutes ago
        Same, but I didn't spend a lot of time putting my grubby hands on those computers.
    • FpUser 1 hour ago
      My Z840 server I use for self hosting has both bus original IBM keyboard and bus mouse attached. Either works just fine.
  • clifflocked 1 hour ago
    If anyone is curious, here is the actual commit that removed the drivers: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
  • flohofwoe 1 hour ago
    Raises the question whether a bug in code that's never called actually exists ;)
    • advisedwang 1 hour ago
      Code that is never normally used can sometimes still be gotten to run by an attacker, and therefore can still be a security risk.
      • M95D 53 minutes ago
        But that code would have to be selected in menuconfig, compiled, and the module loaded. I assume that nobody does that for bus mice, and even if someone, by mistake, selects one of the drivers, that's 1 machine in a billion. Who would target that?

        Same argument for any retro-tech. What hacker would spend hours/days to hack my bare-metal DOS box running Arachne + a packet driver just to mine bitcoins on a K6-2 for a couple of hours until I turn it off from the AT power switch (not button).

      • Someone1234 38 minutes ago
        From my understanding, that isn't how drivers in Linux work. Nearly no kernels will have that code compiled into them because kconfig won't call for it. It is "opt-in", and it is so niche few Distros would have done so.

        Linux only ships with a tiny sub-set of the drivers in the source tree.

    • rationalist 1 hour ago
  • mongol 46 minutes ago
    What is a bus mouse? Is it using the old PS/2 port?
  • mmooss 21 minutes ago
    > looking to remove old drivers due to the surge of AI/LLM bug reports

    I wonder how OpenBSD's careful code quality and hygiene (maybe there's a better word) has affected its vulnerability to LLM bug finding. Did their approach pay off in this case?

  • shevy-java 43 minutes ago
    This makes me sad.

    Now, most will say "but why, 1995 is ancient history, no such hardware exists anymore". The thing is ... should Linux get rid of what is old? I understand you have a smaller kernel when you have less code, less cost to maintain, I get it. Still, I wonder whether this should be the only allowed opinion. Would it not be better to, kind of, transition into a situation where any hardware built in the future, would be supported? So in 2050, we'd not say "damn, computers from 2026 are obsolete now". We could say "no problem, linux is forever". Everything is supported. I actually would prefer the latter than the "older than 30 years, we no longer support it".

    • bigfishrunning 24 minutes ago
      > Would it not be better to, kind of, transition into a situation where any hardware built in the future, would be supported?

      easier said then done -- the kernel's internal interfaces aren't static, they change often. The project has never committed to stabilizing it's driver api, so every driver takes non-zero work to maintain.

      I would assume computers that are still running these old ISA mouses (mice?) probably are also running an older version of linux; and if they're running a new kernel then it'll be somebodys job to port the drivers forward. There's some likelihood this will end up maintained by someone out-of-tree, which is a nice way of saying "we've sent your dog to a farm upstate..."

      • sockaddr 4 minutes ago
        To add to this, as long as the diff representing the removal of the driver is kept in the git history it would be trivial for someone in the far future to say to an AI agent:

        "Please take this linux source and patch the Bus mouse driver back in but match the new driver interface".

        With code preserved in git history it's never actually "removed". It's just, disconnected.

    • wang_li 3 minutes ago
      The real issue is that they don't have stable intra-kernel ABI/APIs. It should entirely be the case that technologies that are 10+ years old are stable and a clean abstraction layer can be created. You maintain the abstraction layer and all the things on the other side of it don't have to track random kernel changes. Things like this just keep working indefinitely.
    • jamesgeck0 26 minutes ago
      That date feels a little bit late. The PS/2 devices that superseded the bus mouse started appearing around 1987. There were certainly still bus mice around in 1995, but they were thoroughly obsolete.
  • whalesalad 2 hours ago
    that pee stained microsoft mouse is really sending this home
    • thekid314 2 hours ago
      That's the next Apple Neo color for you.
    • cptskippy 49 minutes ago
      I'm sure that photo was chosen rather deliberately to garner support from a wide cross selection of grey beards.
  • hackyhacky 44 minutes ago
    [flagged]