Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
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.
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.
On mccdaq.com, there is a link to download linux drivers for Measurement Computing's products; however, there is no technical support available from the company to help actually install the drivers.
I'm a linux noob, and I really need some help with this. Does anyone have any ideas?
Much appreciated.
Click here to see the post LQ members have rated as the most helpful post in this thread.
I took a quick look, and it appears that the packages require you to build the drivers from the source code that makes up the driver package. You unpack the tarball, and run make. This will result in kernel drivers (xxxx.ko for 2.6 kernels), which you load at runtime with modprobe or insmod. There seems to be a udev configuration file, which should allow you to set up properly configured drivers at boot time.
There is paid support available from MCC, and the driver author's name and contact information is all over the source packages. In the package I downloaded, the included README file provides more detailed information about what I've written here.
By the way, thank you for your prompt response, Rod.
I was not aware of the paid support service; however, I don't think would use it unless exhausted all other options.
The error message is saying than the linker (/usr/bin/ld) cannot find the sytandard C library, and the math library. Usually, a properly installed toolchain will know where to find those, since they are integral parts of the toolchain itself. Does your build host have a libm.so and libc.so somewhere? What is the output of
Code:
gcc -print-search-dirs
The toolchain will look in all of the places listed to find its component parts. Did you use a distro repository to get your toolchain, or did you roll your own somehow?
[root@fedora pps]# yum install glibc-devel
Loaded plugins: langpacks, presto, refresh-packagekit
Setting up Install Process
Package glibc-devel-2.14-5.i686 already installed and latest version
Nothing to do
[root@fedora pps]# yum install kernel-headers
Loaded plugins: langpacks, presto, refresh-packagekit
Setting up Install Process
Package kernel-headers-2.6.40.6-0.fc15.i686 already installed and latest version
Nothing to do
Okay, so it looks like the glibc-devel package is installed, but what about glibc itself? I cannot imagine a working system that doesn't have glibc.so.something. The Makefile must be specifying some odd compiler switch '-L'.
I'm not sure what usually provides libm; perhaps you can use your package manager to look it up for your distro. As far as I know, it should have come with gcc as well.
Put the follwing code in a C source file, lmath.c
Code:
#include <stdio.h>
#include <math.h>
int main(){
double a = sin( 3.1415926L );
printf( "%lf\n", a );
}
Then, try building it with
Code:
make CFLAGS+=--verbose LDFLAGS+=-lm lmath
If that succeeds, then the answer must be in the driver's Makefile somewhere, possibly in the definition of $(LDFLAGS).
Okay, so it looks like the glibc-devel package is installed, but what about glibc itself?
glibc-2.14-5 is installed.
After stumbling upon a similar problem that someone else had on another forum site, I found that running dmesg | tail displayed information that confirmed that the USB device was being read.
Code:
[root@fedora input]# dmesg | tail
[ 2354.763919] CE: hpet increased min_delta_ns to 67879 nsec
[ 3801.364396] SELinux: initialized (dev sda2, type fuseblk), uses genfs_contexts
[ 4987.750138] usb 5-1: USB disconnect, device number 2
[ 4992.000082] usb 5-1: new low speed USB device number 3 using uhci_hcd
[ 4992.170092] usb 5-1: New USB device found, idVendor=09db, idProduct=007a
[ 4992.170099] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4992.170104] usb 5-1: Product: USB-1208LS
[ 4992.170107] usb 5-1: Manufacturer: MCC
[ 4992.170110] usb 5-1: SerialNumber: 0159ADDE
[ 5077.250091] usb 6-1: USB disconnect, device number 2
That is simply telling you that the USB driver layer (upon which your driver depends) is finding the device. Your driver will use that to find and communicate with the data acquisition device. Your findings will be useful once you get the driver built and loaded. Right now, you need to focus on the driver build, or have you solved that?
Yes, I ran the make install on the untar-red file and got it all to compile.
Edit: I would give more detail, but I did all of that yesterday, trying all kinds of different things to get it working, and to be honest I don't remember everything I updated.
Last edited by dmoyamendez; 10-27-2011 at 09:58 AM.
Reason: needed to expand detail in comment
Okay, so it looks like the glibc-devel package is installed, but what about glibc itself? I cannot imagine a working system that doesn't have glibc.so.something. The Makefile must be specifying some odd compiler switch '-L'.
I'm not sure what usually provides libm; perhaps you can use your package manager to look it up for your distro. As far as I know, it should have come with gcc as well.
Put the follwing code in a C source file, lmath.c
Code:
#include <stdio.h>
#include <math.h>
int main(){
double a = sin( 3.1415926L );
printf( "%lf\n", a );
}
Then, try building it with
Code:
make CFLAGS+=--verbose LDFLAGS+=-lm lmath
If that succeeds, then the answer must be in the driver's Makefile somewhere, possibly in the definition of $(LDFLAGS).
--- rod.
Code:
[pps@fedora ~]$ make CFLAGS+=--verbose LDFLAGS+=-lm lmath
cc --verbose -lm lmath.c -o lmath
Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-redhat-linux/4.6.1/lto-wrapper
Target: i686-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux
Thread model: posix
gcc version 4.6.1 20110908 (Red Hat 4.6.1-9) (GCC)
COLLECT_GCC_OPTIONS='-v' '-o' 'lmath' '-mtune=generic' '-march=i686'
/usr/libexec/gcc/i686-redhat-linux/4.6.1/cc1 -quiet -v lmath.c -quiet -dumpbase lmath.c -mtune=generic -march=i686 -auxbase lmath -version -o /tmp/ccg4hI0X.s
GNU C (GCC) version 4.6.1 20110908 (Red Hat 4.6.1-9) (i686-redhat-linux)
compiled by GNU C version 4.6.1 20110908 (Red Hat 4.6.1-9), GMP version 4.3.2, MPFR version 3.0.0, MPC version 0.8.3-dev
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/lib/gcc/i686-redhat-linux/4.6.1/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/i686-redhat-linux/4.6.1/../../../../i686-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/i686-redhat-linux/4.6.1/include
/usr/local/include
/usr/include
End of search list.
GNU C (GCC) version 4.6.1 20110908 (Red Hat 4.6.1-9) (i686-redhat-linux)
compiled by GNU C version 4.6.1 20110908 (Red Hat 4.6.1-9), GMP version 4.3.2, MPFR version 3.0.0, MPC version 0.8.3-dev
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 7c75a840b33bb054b6c8e0f7ad3bf699
COLLECT_GCC_OPTIONS='-v' '-o' 'lmath' '-mtune=generic' '-march=i686'
as --32 -o /tmp/ccILG3LS.o /tmp/ccg4hI0X.s
COMPILER_PATH=/usr/libexec/gcc/i686-redhat-linux/4.6.1/:/usr/libexec/gcc/i686-redhat-linux/4.6.1/:/usr/libexec/gcc/i686-redhat-linux/:/usr/lib/gcc/i686-redhat-linux/4.6.1/:/usr/lib/gcc/i686-redhat-linux/
LIBRARY_PATH=/usr/lib/gcc/i686-redhat-linux/4.6.1/:/usr/lib/gcc/i686-redhat-linux/4.6.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'lmath' '-mtune=generic' '-march=i686'
/usr/libexec/gcc/i686-redhat-linux/4.6.1/collect2 --build-id --no-add-needed --eh-frame-hdr -m elf_i386 --hash-style=gnu -dynamic-linker /lib/ld-linux.so.2 -o lmath /usr/lib/gcc/i686-redhat-linux/4.6.1/../../../crt1.o /usr/lib/gcc/i686-redhat-linux/4.6.1/../../../crti.o /usr/lib/gcc/i686-redhat-linux/4.6.1/crtbegin.o -L/usr/lib/gcc/i686-redhat-linux/4.6.1 -L/usr/lib/gcc/i686-redhat-linux/4.6.1/../../.. -lm /tmp/ccILG3LS.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i686-redhat-linux/4.6.1/crtend.o /usr/lib/gcc/i686-redhat-linux/4.6.1/../../../crtn.o
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.