[완료]카메라구입처에서 받은 드라이버가 적재가 안됩니다.
GIGE vision Camera 용 리눅스버전 드라이버를 받았는데요.
라이브러리를 설치하고 나면 드라이버 폴더에 드라이버가 있는데.
Pro1000-2.6.9-55.ELhugemem.ko Pro1000-2.6.9-55.ELsmp.ko
Pro1000-2.6.9-55.EL.ko
이렇게 세개의 파일이 있습니다.
원래 제 리눅스 환경이 fedora core8 kernel 2.6.23 이었는데요. 여기서 저 모듈들이 안올라가서
본사에 문의했더니 core6 2.6.18에서 쓰는사람이 있다고해서 저도 core6 2.6.18로 바꿔서 해봤는데도 안되서
저 파일 이름에 있는것처럼 fedoracore3 2.6.9-1 로 바꾸고 해봤는데도
[root@localhost Drivers]# insmod Pro1000-2.6.9-55.EL.ko
insmod: error inserting 'Pro1000-2.6.9-55.EL.ko': -1 Invalid module format
[root@localhost Drivers]#
이렇게 나옵니다. 2.6.18에서 쓰고 있다는 사람은 도대체 뭘까요. 소스를 안주고 저렇게 ko 파일로만 줬습니다.
혹시 제가 간과한 부분이 있나요? 많은 조언 부탁드립니다.
그리고 저 드라이버이름에 나온 "RedHat Enterprise Linux 4.5( kernel 2.6.9-55 EL ) "을 받을 수 있는곳이 있나요? 너무 답답해서
CentOS가 클론이라는데 RedHat Enterprise Linux 4.5 의 클론버전은 CentOS4.5 가 맞나요?
저것과 동일한 환경에서 해보려고 합니다. 자꾸 2.6.18 에서 된다는 사람이 마음에 걸리네요. 해외의 다른 고객이라길래, 따로 연락해볼수도 없고 ㅠㅠ
파일을 한번 올려봅니다. 시간 나시는 분 심심풀이로 한번만 해보실 생각 없으신가요.
그리고 커널버전을 2.6.9-55.EL로 똑같이 바꾸려면 어디서 받나요. kernel.org에 가도 끝에 -55 이런식으로까지의 버전은 없는것 같던데 ㅠ
읽어주셔서 감사합니다.
첨부 | 파일 크기 |
---|---|
![]() | 3.33 MB |
modinfo 를 사용하시면
modinfo 를 사용하시면 모듈에 대한 정보를 볼 수 있습니다.
어떤 놈을 올려야 할 지는 uname -a 의 결과를 보고 적당히 선택하세요.
redhat enterprise linux 혹은 centos 일 텐데,
전자는 redhat korea 에 문의해서 구입하시면 되고,
후자는 검색해서 다운로드하면 됩니다.
linux-2.6.9 를 사용하는 버전이 정확히 뭔지는 모르겠습니다.
insmod 혹은 modprobe 의 -f 옵션 참고하세요.
OTL
GigE Vision 이라는게
GigE Vision 이라는게 제품명이 아니고 기가비트 이더넷 통신을 하는 카메라를 지칭하는 말인가보군요.
좀 더 정확한 장치(제품)명으로 드라이버를 찾으면 나올거라고 생각됩니다.
이더넷 장치이니 lspci, lsusb 로는 안나오겠고,
카메라에 모델명이 적혀있지 않을까요?
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/
https://xenosi.de/
네
저 위에 드라이버가 해당 카메라 제조사로부터 받은 드라이버입니다. 지금 계속 시도중입니다. ㅠㅠ
kernel-2.6.9-55.EL
kernel-2.6.9-55.EL 버전에서 컴파일된 바이너리 드라이버를 받으셨으니,,,
해당 버전 커널을 설치하시고,,, 드라이버를 사용하시면 되겠네요!~
그냥 CentOS 4.5 버전 설치하시고,,, 사용하는게 가장 편할듯...
미러하는곳에서 해당 버전의 커널 패키지들이 많이 삭제 되었네요...
웹서핑 해보니,,, 아래 URL 에서 해당 커널 패키지를 찾을 수 있네요!
페도라6에 아래 커널 패키지는 의존성 문제로 설치되지 않을 수 있습니다.
http://afs.caspur.it/afs/italia/project/bigbox/e4/i386/updates-kernelonly/
CentOS4.5를 설치했는데도 안됩니다ㅠㅠ
CentOS설치후 기대를 하면서 떨리는 마음으로 명령을 내렸는데..
[root@localhost Drivers]# uname -r
2.6.9-55.ELsmp
[root@localhost Drivers]# insmod Pro1000-2.6.9-55.ELsmp.ko
insmod: error inserting 'Pro1000-2.6.9-55.ELsmp.ko': -13011 Success
[root@localhost Drivers]# ../Binaries/StartDriver
Loading module /usr/local/iPORT/Drivers/Pro1000-2.6.9-55.ELsmp.ko...insmod: error inserting '/usr/local/iPORT/Drivers/Pro1000-2.6.9-55.ELsmp.ko': -13011 Success
Module could not be loaded
check /var/log/message or dmesg for details
[root@localhost Drivers]#
-13011 Success 라는건 찾아봐도 안나오네요.
ㅡ ㅡ ;
혹시 gcc 버전이 달라도 이런경우가 생길 수 있나요?
[root@localhost Drivers]# modinfo Pro1000-2.6.9-55.ELsmp.ko
filename: Pro1000-2.6.9-55.ELsmp.ko
license: Proprietary
description: Pro/1000 Grabber adapter
author: Pleora Technologies Inc.
vermagic: 2.6.9-55.ELsmp SMP 686 REGPARM 4KSTACKS gcc-3.4
depends:
[root@localhost Drivers]# gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.6/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux
Thread model: posix
gcc version 3.4.6 20060404 (Red Hat 3.4.6-8)
[root@localhost Drivers]#
3.4와 3.4.6-8 인데..;
휴...
모듈을 적재할 때도 shared library 를 가져다 쓰는것인가요? 지금 라이브러리는 설치했는데 샘플소스를 컴파일 해봐도 make오류가 나거든요.
Makefile 내에
.check-vars:
@[ ! "$(IPORT_ROOT)" = "" ] || ( echo "IPORT_ROOT is not set"; exit 1 )
@[ -d $(IPORT_ROOT) ] || ( echo "IPORT_ROOT is not valid"; exit 1 )
이런 구문이 있고 IPORT_ROOT는 설치경로를 뜻하는 거라서 .bash_profile 에 "IPORT_ROOT=/usr/local/iPORT"
라고 해놨는데
[root@localhost Simple]# echo $IPORT_ROOT
/usr/local/iPORT
[root@localhost Simple]# make
IPORT_ROOT is not set
make: *** [.check-vars] Error 1
[root@localhost Simple]#
이렇게 됩니다. ..........
로그파일을 보면
Jan 9 17:32:21 localhost kernel: Pro/1000 Grabber Adapter Driver - Copyright (C) by Pleora Technologies Inc. 2003
Jan 9 17:32:21 localhost kernel: Pro/1000 Grabber Adapter Driver Loaded (major: 254)
Jan 9 17:32:21 localhost kernel: No adapters found
Jan 9 17:32:21 localhost kernel: Pro/1000 Grabber Adapter Driver Unloaded (major: 254)
Jan 9 17:35:17 localhost dhclient: DHCPREQUEST on eth0 to 192.168.153.254 port 67
항상 시도할때마다 이런식인데요. No adapters found는 왜나오는걸까요. 카메라도 장착 해놨는데요. ㅠ
일단,,, 커널
일단,,, 커널 모듈이랑... GCC 버전은 상관없어 보입니다.
모듈 문제는... 제조사에 문의를 하는게 좋을듯 합니다!
그리고 두번째... make 는... export 붙여주면 될 것 같습니다.
export IPORT_ROOT=/usr/local/iPORT
답글 감사합니다.
Makefile 마지막줄에
export IPORT_ROOT=/usr/local/iPORT
를 추가했더니 컴파일은 이제 되네요 ㅋㅋ
그런데 이제 컴파일이 에러가 납니다.
[root@localhost Simple]# make
g++ -g -D_UNIX_ -D_LINUX_ -D_DEBUG -I/usr/local/iPORT/Includes -c sample.cpp -o sample.o
g++ -L/usr/local/iPORT/Binaries -lCyUtils -lCyImg -lCyCom -lCyCam -lCyDisplay sample.o -o sample
/usr/bin/ld: warning: libSDL-1.2.so.0, needed by /usr/local/iPORT/Binaries/libCy Display.so, not found (try using -rpath or -rpath-link)
/usr/local/iPORT/Binaries/libCyDisplay.so: undefined reference to `SDL_Quit'
/usr/local/iPORT/Binaries/libCyDisplay.so: undefined reference to `SDL_UnlockSur face'
/usr/local/iPORT/Binaries/libCyDisplay.so: undefined reference to `SDL_LockSurfa ce'
/usr/local/iPORT/Binaries/libCyDisplay.so: undefined reference to `SDL_UpdateRec t'
/usr/local/iPORT/Binaries/libCyDisplay.so: undefined reference to `SDL_Init'
/usr/local/iPORT/Binaries/libCyDisplay.so: undefined reference to `SDL_GetError'
/usr/local/iPORT/Binaries/libCyDisplay.so: undefined reference to `SDL_FreeSurfa ce'
/usr/local/iPORT/Binaries/libCyDisplay.so: undefined reference to `SDL_GetVideoI nfo'
/usr/local/iPORT/Binaries/libCyDisplay.so: undefined reference to `SDL_SetVideoM ode'
collect2: ld returned 1 exit status
make: *** [sample] Error 1
[root@localhost Simple]#
마지막 에러
/usr/local/iPORT/Binaries/libCyDisplay.so: undefined reference to `SDL_SetVideoM
를 예로들면, 이런 레퍼런스가 없다고 하는것은, 그 드라이버 모듈이 적재가 안되어서 그런것 맞나요?
확실이 이제 드라이버모듈만 적재되면 되는 문제 맞겠죠? ㅠㅠ 한단계 전진할 수 있게 해주셔서 정말 감사합니다;
모듈 드라이버
모듈 드라이버 적재랑 컴파일과는 연관이 없습니다.
g++ -L/usr/local/iPORT/Binaries -lCyUtils -lCyImg -lCyCom -lCyCam -lCyDisplay sample.o -o sample
이 줄을 보면... -lSDL 이 빠져 있는것 같은데....
Makefile 에서...
-lSDL -L/usr/local/iPORT/Binaries -lCyUtils -lCyImg -lCyCom -lCyCam -lCyDisplay
와 같이 될수 있도록 추가해 보세요...
제 개인적인 생각에는 제조사에게... 제대로된 드라이버랑 라이브러리 제공하라고 하는게 더 좋을듯... 합니다!
문서도... 함께...
답변 감사합니다
지속적인 답글 감사드립니다. 정말 미치겠습니다. 제조사는 gevicam 인데요 . 해당 제조사에서 드라이버를 제조하는것이아니고
GIGE vision 카메라들 드라이버 전문 회사인 pleora 사에 외주를 줘서 제작한다고 합니다. 그나마 리눅스계열 드라이버는
딱 두종류만 있네요. 지금 제가 삽질 하고 있는 내용이 이미 gevicam 사로부터 받은 라이브러리 파일과 드라이버입니다.
해당사에서 된다고 준 것들이 지금 이런 상황인 실정입니다. 그쪽 회사에도 윈도우쪽 비주얼 서포트 인력들은 있는데 리눅스쪽은 거의 전무한 실정이라고 합니다 . 외국의 어느 고객중에 2.6.18에서 설치해서 잘 쓰고 있다는 말만 해주네요 ㅠㅠ
그래서...제가 그냥 바보인거죠 ㅠㅠ 휴...
해결이 허무합니다.
Pro1000 기가비트 이더넷 카드를 장착하고 나서는 busy 상태라고 모듈이 안올라가길래
lsmod로 보니까
e1000 이라는게 있어서 그걸 내리고 insmod 하니까 Pro1000 이라는 모듈이 올라갔습니다 ㅡ ㅜ
그리고 컴파일이 또 안되었었는데 ( 라이브러리가 없다는 ) 이것도 해당 모듈이 올라가 있으니까
컴파일이 됩니다. ㅠㅠ 도움주신분들 정말 감사합니다.
댓글 달기