Linux - Distributions This forum is for Distribution specific questions.
Red Hat, Slackware, Debian, Novell, LFS, Mandriva, Ubuntu, Fedora - the list goes on and on...
Note: An (*) indicates there is no official participation from that distribution here at LQ. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
08-12-2014, 09:45 PM
|
#1
|
LQ Guru
Registered: Nov 2010
Location: Colorado
Distribution: OpenSUSE, CentOS
Posts: 5,573
|
Distro selection
I know I know, these threads get posted 10 times a day, but this one is different...I promise!
This is a special machine, purpose built for a specific job.
It will have a public IP and it will be in use for many years to come, so LTS security updates are important.
But here's the kicker - It's using a very large and very expensive A/D card as part of its place in this system. The card manufacturer does provide Linux drivers, but they're not exactly the most modern. The kernel module only supports 32-bit kernels, and will only work (so they claim) for kernels 2.6.35 and under. In addition to this, I've discovered that their closed-source shared object library requires libstdc++-libc6.1-1.so.2 - yes that's a 14+ year old c++ library.
I initially tried CentOS 6.5 64-bit because it's running 2.6.32 and will be supported until 2020 and the machine has 8 GB of RAM. Obviously I quickly ran into the 64-bit kernel problem, so I switched to CentOS 6.5 32-bit PAE. I couldn't find a source for libstdc++-libc6.1-1.so.2, so I installed the old compat library (which was libstdc++-libc6.2-2) and symlinked it with the correct name as a "good enough" approach. This allowed me to build and load the kernel module and run their demo application that pulls in data from the A/D, all of which ran great.
The problem came about when trying to develop my own application using their shared object library. They provide example code, which I started with, but quickly ran into a seg fault and started stripping pieces out to track it down. I stripped it down to literally:
Code:
int main()
{
return 0;
}
which when compiled with
works fine, and with
Code:
g++ -lDSCIO example.cpp
it seg faults when trying to execute it (DSCIO is the closed source .so provided by the card manufacturer).
Is it a libstdc++ issue? I don't know, if it's not then I don't know what else it is. gdb and valgrind provide no useful info since it's failing inside of the closed source .so.
So, I decided to branch out and installed Debian 6 in a VM. I was able to track down a valid libstdc++-libc6.1-1.so.2 at http://archive.debian.org/debian/poo....66-4_i386.deb, installed it, built and loaded the kernel module, re-tried the above test with the stripped down application, and everything worked great!
The problem here is that Debian 6 is already EOL, and the extended LTS is only going to hold it for another year, and Debian 7 is running a kernel > 2.6.35.
Of course there's always the Windows alternative, for which the card manufacturer provides drivers all the way up through 8.1. Frankly I'd rather run a Linux distro that's past EOL than any version of Windows.
So, suggestions?
|
|
|
08-12-2014, 11:05 PM
|
#2
|
LQ Guru
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,564
|
Well, you could try one of the *buntus. They tend to come with a lot of drivers and support vectors, but forewarned things in Linux aren't what they used to be.
One growing problem is several distributions that have switched to systemd and by it's design they are locked at certain minimal kernel versions so Linux distributions using that init system are becoming less backwards hardware compatible. With those you may run into less and less compatibility with a driver source package if it's too old.
Another problem is if a kernel driver provided by a manufacturer isn't patched to support modern glibc, gcc, or kernel revisions, it can tend to fail to compile. Without patches or an ability to patch code as needed, you can get stuck with dead or unsupported hardware.
The real question is how vital is this A/D card to the system?
If you say it has driver support up to Windows 8.1, then honestly, you should give it some thought to try at least Windows 7 first and foremost if the card is mission critical. Just because it's Microsoft, and yes you can stop groaning at the mentioning of that name now, doesn't mean you should forgo proper hardware support just because an OS isn't free or is made by an unwittingly evil company, shouldn't discourage you from getting the most out of your hardware properly.
Linux isn't a one shot kill all solution for all purposes. Often at times, you have to run other operating systems to get a means to an end. That doesn't make any OS better or worse, it's just if you want to do things properly, you have to use the right OS.
Last edited by ReaperX7; 08-12-2014 at 11:07 PM.
|
|
|
08-13-2014, 09:50 AM
|
#3
|
LQ Guru
Registered: Nov 2010
Location: Colorado
Distribution: OpenSUSE, CentOS
Posts: 5,573
Original Poster
|
This computer, and the A/D contained within, is the key to the entire $150k+ system. Without it, the system doesn't work.
*buntu - I guess I did forget to mention that this machine will be installed in the boondocks and needs to function pretty much headlessly, with as much reliability and stability as possible from an operating system. The few times I've used Ubuntu since version 10.x it's been a buggy mess, I'm not going to use it for this system. Not to mention that Ubuntu hasn't used a <2.6.35 kernel since 10.04, which went EOL over a year ago (at least the desktop version did, the server version looks like it's only good for another ~9 months, even worse than Debian 6).
The system already runs Windows, never again. Scheduling is a pain in the ass, autonomy is a pain in the ass, everything is GUI based which makes remote management over low bandwidth connections almost impossible, and between software crashes, OS crashes, random reboots, lockups, and BSODs, it is the least reliable component in the entire system by at least an order of magnitude. I'm not opposed to Windows because of some "evil" notions about Microsoft, I'm opposed to Windows because it's an unapologetic piece of crap that compromises the usability and reliability of the entire system to a level I'm not willing to ignore any longer.
Last edited by suicidaleggroll; 08-13-2014 at 09:57 AM.
|
|
|
08-15-2014, 02:41 PM
|
#4
|
LQ Guru
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,564
|
Modern Windows can use PowerShell very effectively even over remote protocols. As far as remote services, you can always add various things to ensure reliability.
Even headless and networked, you could always use free software within the box effectively to avoid more proprietary software.
Windows may be unapologetic, but all modern operating systems are becoming that as well. To be fair, I've ran Windows 7 for four or more years now since RC and it's been very reliable and stable which was not the case with Vista and prior versions. I only installed one time, which was never a norm for me having to redo a system every five months due to issues and stability.
I don't see Windows any different than OSX, FreeBSD, Slackware, or any other OS. To me, it's a set of software and tools formulated for a job, and regardless of how I feel, I have to say to myself, a tool is only as good as the person using it. Trust me, I wish I could switch full time to Linux for everything, but to me now that's a foolish thought. Every platform is good and bad in every area, but when you have to use something, you have to use it, no questions asked. A GUI may be bad in some ways, but it's good in others the same a command prompt is good in some ways and bad in others.
|
|
|
08-15-2014, 02:55 PM
|
#5
|
LQ Addict
Registered: Dec 2011
Location: UK
Distribution: Debian Sid AMD64, Raspbian Wheezy, various VMs
Posts: 7,680
|
Just throwing ideas out there but how about a VM of some sort? Can you use IOMMU (or whatever the term is) to allow an antiquated or undesirable OS that lives in a container access the card you need then use a proper OS to firewall it and control access to it?
|
|
|
08-15-2014, 02:58 PM
|
#6
|
LQ Guru
Registered: Nov 2010
Location: Colorado
Distribution: OpenSUSE, CentOS
Posts: 5,573
Original Poster
|
Possibly, I'm working with the card manufacturer right now to address the problems with their closed source drivers, so I'll see where that discussion leads before making any final decisions.
|
|
|
08-15-2014, 03:12 PM
|
#7
|
Moderator
Registered: Oct 2008
Distribution: Slackware [64]-X.{0|1|2|37|-current} ::12<=X<=15, FreeBSD_12{.0|.1}
Posts: 6,361
|
Is there some unique property of this particular A/D card that would preclude you selecting another? Maybe even a USB device (I am not actually familiar with any at the moment, but...), or even roll-your-own for a straight forward design with polled or interrupt driven sample rate might fit into a $150K+ system easily enough.
Last edited by astrogeek; 08-15-2014 at 03:20 PM.
|
|
|
08-15-2014, 03:22 PM
|
#8
|
Senior Member
Registered: Nov 2005
Distribution: Debian, Arch
Posts: 3,815
|
Quote:
Originally Posted by suicidaleggroll
Is it a libstdc++ issue? I don't know, if it's not then I don't know what else it is. gdb and valgrind provide no useful info since it's failing inside of the closed source .so.
|
There might also be a requirement for g++ version. ABI compatibility is much trickier in C++ than C (in theory ABI incompatible versions of the compiler should use incompatible name-mangling so you get a link time error).
|
|
|
08-15-2014, 04:00 PM
|
#9
|
LQ Guru
Registered: Nov 2010
Location: Colorado
Distribution: OpenSUSE, CentOS
Posts: 5,573
Original Poster
|
Quote:
Originally Posted by ntubski
There might also be a requirement for g++ version. ABI compatibility is much trickier in C++ than C (in theory ABI incompatible versions of the compiler should use incompatible name-mangling so you get a link time error).
|
It turned out to be a PAE issue actually. For some reason the 36-bit internal memory addressing screws up their driver module. CentOS 6 doesn't have a non-PAE option, unfortunately. I had the same error when using the i686-bigmem kernel on Debian 6 too, it didn't go away until I switched to the true 32-bit kernel.
Last edited by suicidaleggroll; 08-15-2014 at 04:04 PM.
|
|
|
08-15-2014, 04:03 PM
|
#10
|
LQ Guru
Registered: Nov 2010
Location: Colorado
Distribution: OpenSUSE, CentOS
Posts: 5,573
Original Poster
|
Quote:
Originally Posted by astrogeek
Is there some unique property of this particular A/D card that would preclude you selecting another? Maybe even a USB device (I am not actually familiar with any at the moment, but...), or even roll-your-own for a straight forward design with polled or interrupt driven sample rate might fit into a $150K+ system easily enough.
|
It's a pretty high end card with synchronous sampling, disciplined clock, on-board DSP for filtering and anti-aliasing, etc.
I am investigating alternatives though, ACCES I/O makes some nice units with good open source drivers, sample code, and amazing technical support (they're also significantly cheaper). I'd lose the on-board filtering and anti-aliasing, but there are some work-arounds that might still make it feasible.
Last edited by suicidaleggroll; 08-15-2014 at 04:05 PM.
|
|
|
08-15-2014, 05:32 PM
|
#11
|
LQ Guru
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,564
|
36-bit memory addressing?
That's an odd amount.
|
|
|
08-15-2014, 05:37 PM
|
#12
|
LQ Guru
Registered: Nov 2010
Location: Colorado
Distribution: OpenSUSE, CentOS
Posts: 5,573
Original Poster
|
http://en.wikipedia.org/wiki/Physical_Address_Extension
It's a way for "32-bit" kernels to utilize more than 4 GB of RAM, and it's the default on a lot of (most?) "32-bit" Linux distributions. RHEL/CentOS 6 doesn't even have a non-PAE option available. Debian has PAE (they call it "bigmem") as an option, but they also have a true 32-bit kernel as well.
Last edited by suicidaleggroll; 08-15-2014 at 05:44 PM.
Reason: clarification
|
|
|
08-15-2014, 05:40 PM
|
#13
|
LQ Addict
Registered: Dec 2011
Location: UK
Distribution: Debian Sid AMD64, Raspbian Wheezy, various VMs
Posts: 7,680
|
Indeed, as I understand the CPU I'm running at the moment has a 48bit address space.
|
|
|
All times are GMT -5. The time now is 12:35 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|