Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 3 of 3

Thread: version `GLIBC_2.15' not found

  1. #1
    Member gimpo's Avatar
    Join Date
    Mar 2018
    Location
    Munich
    Posts
    51

    version `GLIBC_2.15' not found

    At my little laboratory I use a paleoarcheogical 32-bit PC with Ubuntu 10, marked with "by Ramses II" (I use it to drive my CNC-mill because it has an old parallel interface).

    It works well with the Arduino IDE. Unfortunately, when installing Teensyduino 1.45, I've got the following message:

    Code:
    ./TeensyduinoInstall.linux32: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by ./TeensyduinoInstall.linux32)
    To make things simpler, I have no internet connection at my lab...
    How I can upgrade the library?
    On OpenSUSE one can store an RPM package on an USB-key and install it everywhere. How I can do something similar with this (no more supported) version of Ubuntu?
    Any idea?

  2. #2
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    20,681
    Sorry, Ubuntu 10 is just too old. Starting with Teensyduino 1.42, we began using libudev1, which makes the oldest supported Ubuntu 14.

    Your only hope for Ubuntu 10 is to grab a very old copy of Teensyduino from the server. To do that, copy the link to the download and paste it into the address bar of a new browser tab/window. Before you press Enter to fetch the file, edit the 3 digit version number. We keep the older files on the server, but they're not linked from the main site. This info is also in the html source, so if you view source and scroll down to the download links, you'll see an explanation in the html comments.

    When you run that old installer, pay attention to the info on the intro screen. Yes, that's the screen nobody ever reads. On that first page, you'll see a list of which Arduino versions that installer supports. You must have one of those, so grab a supported copy from Arduino's website. If you don't do this, you'll know when the "Next" button won't enable when you've selected the Arduino directory. The installer will refuse to modify (corrupt) unsupported versions of Arduino.

    Before Teensyduino 1.42, we used a rather kludgey way to detect USB devices. So does Arduino (or really, the Java JSSC library they use). But Arduino's model of "everything is a serial port" makes things simpler. For Teensy, we support HID, MIDI, Audio, as well as serial, and in bootloader mode Teensy uses HID protocol, not serial. Historically, Teensy Loader and Teensyduino's utilities which Arduino runs used libusb 0.1 on Linux. Then as libusb 1.0 replaced libusb 0.1, and distros started shipping a rather buggy libusb 0.1 compatibility library (rather than the former very solid 0.1 version), we were forced to directly access Linux usbfs (which is mostly what libusb 0.1 did). Around ~2015, supporting Linux was becoming quite difficult....

    Before 2012-2014, most Linux distros had libudev0. Most also shipped with the hidraw driver back then, but early versions had 3 different bugs which prevented use with Teensy. I reported those bugs to the kernel developer who wrote the driver. Each time he fixed the bug within hours. Then it took ~6 months to get into the mainline kernel, then about 1 year for distros to start shipping the fixed driver. Around the time we could finally get a working hidraw driver in all popular distros, libudev version 1 started shipping. Finally we could get a real API for detecting devices, and a proper driver for HID, rather than the horribly kludgey polling of usbfs and directly accessing USB endpoints. 1.42 was the first version to start using these Linux APIs.

    Sadly, there doesn't seem to be any way we could link with both libudev0 and libudev1. So starting with 1.42 (in early 2017), we were forced to make libudev1 a requirement, which meant incompatibility with old distros having only libudev0, or no libudev at all. But even if you could solve the libudev0 issue, there's also the matter that those old kernels, if they have the hidraw driver, are likely to be the old versions before the 3 bugs were fixed.

    So GLIBC 2.15 is only the tip a massive iceberg of horrible compatibility problems that await you, if you try to use 1.42 or newer with such an old Linux system. Ubuntu 14 or later really is needed.

    However, 1.41 and older have a good chance of working on Ubuntu 10, as long as you also get one of the older Arduino versions they support.
    Last edited by PaulStoffregen; 04-24-2019 at 11:03 PM.

  3. #3
    Member gimpo's Avatar
    Join Date
    Mar 2018
    Location
    Munich
    Posts
    51
    Thanks Paul for the detailed answer.
    Now is up to me to take a decision... probably the best thing is to buy a second-hand PC with fresher software version (unfortunately, the space on my desk is limited...)
    Thanks again!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •