Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: t6ti00 - 23.11.09 - klo:18.41
-
Olen asentamassa cvEyeTrackeriä Ubuntuun ja toistaiseksi olen tehnyt seuraavat esitoimet:
- OpenCV on asennettu.
- Synapticista "libdc1394-utils" ja "libraw1394-dev" asennettu ainakin varalta.
- libraw1394-0.10.1 - pitäisi olla kunnossa.
- libdc1394-0.9.4 - pitäisi olla kunnossa.
Nyt on varsinaisen ohjelman asennuksen vuoro. Olen tehnyt korjaukset lähteen koodiin, mutta silti tulee seuraavia virheitä, kun ajan "make"n:
g++ -c -O2 cvEyeTracker.c -O2 -I/usr/local/include/opencv
cvEyeTracker.c:46:38: error: libdc1394/dc1394_control.h: Tiedostoa tai hakemistoa ei ole
cvEyeTracker.c:91: virhe: ”dc1394_cameracapture” does not name a type
cvEyeTracker.c:96: virhe: ”dc1394_feature_set” does not name a type
cvEyeTracker.c:169: virhe: ”MODE_640x480_MONO” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:169: virhe: ”MODE_640x480_YUV411” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Open_IEEE1394()”:
cvEyeTracker.c:209: virhe: ”dc1394_create_handle” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:219: virhe: ”dc1394_get_camera_nodes” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:223: virhe: ”dc1394_destroy_handle” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:228: virhe: ”dc1394_camera_on” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:232: virhe: ”FORMAT_VGA_NONCOMPRESSED” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:234: virhe: ”SPEED_400” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:235: virhe: ”FRAMERATE_30” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:236: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:236: virhe: ”dc1394_dma_setup_capture” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:236: virhe: ”DC1394_SUCCESS” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:238: virhe: ”dc1394_release_camera” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:239: virhe: ”dc1394_destroy_handle” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:242: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:242: virhe: ”dc1394_start_iso_transmission” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:242: virhe: ”DC1394_SUCCESS” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:244: virhe: ”dc1394_release_camera” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:245: virhe: ”dc1394_destroy_handle” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Grab_IEEE1394()”:
cvEyeTracker.c:254: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:254: virhe: ”dc1394_dma_multi_capture” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:254: virhe: ”DC1394_SUCCESS” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Release_IEEE1394()”:
cvEyeTracker.c:264: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:264: virhe: ”dc1394_dma_done_with_buffer” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Close_IEEE1394()”:
cvEyeTracker.c:273: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:273: virhe: ”dc1394_stop_iso_transmission” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:273: virhe: ”DC1394_SUCCESS” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:276: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:276: virhe: ”dc1394_camera_off” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:277: virhe: ”dc1394_dma_release_camera” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:279: virhe: ”dc1394_destroy_handle” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Grab_Camera_Frames()”:
cvEyeTracker.c:971: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Open_GUI()”:
cvEyeTracker.c:1145: virhe: virheellinen muunnos tyypistä ”void (*)(int, int, int, int)” tyypiksi ”void (*)(int, int, int, int, void*)”
cvEyeTracker.c:1145: virhe: alustettaessa funktion ”void cvSetMouseCallback(const char*, void (*)(int, int, int, int, void*), void*)” argumenttia 2
cvEyeTracker.c:1146: virhe: virheellinen muunnos tyypistä ”void (*)(int, int, int, int)” tyypiksi ”void (*)(int, int, int, int, void*)”
cvEyeTracker.c:1146: virhe: alustettaessa funktion ”void cvSetMouseCallback(const char*, void (*)(int, int, int, int, void*), void*)” argumenttia 2
cvEyeTracker.c: In function ”void Open_Ellipse_Log()”:
cvEyeTracker.c:1210: varoitus: vanhentunut tyyppimuunnos merkkijonovakiosta tyyppiin ”char*”
make: *** [cvEyeTracker.o] Virhe 1
x@kone:~/Lataukset/cvEyeTracker-1.2.5$ cd /usr/src
x@kone:/usr/src$ make menuconfig
make: *** Kohteen "menuconfig" tuottamiseen ei ole sääntöä. Seis.
x@kone:/usr/src$ dir
ati linux-headers-2.6.28-11 linux-headers-2.6.28-16
fglrx-8.671 linux-headers-2.6.28-11-generic linux-headers-2.6.28-16-generic
x@kone:/usr/src$ cd linux-headers-2.6.28.16
bash: cd: linux-headers-2.6.28.16: Tiedostoa tai hakemistoa ei ole
x@kone:/usr/src$ dir
ati linux-headers-2.6.28-11 linux-headers-2.6.28-16
fglrx-8.671 linux-headers-2.6.28-11-generic linux-headers-2.6.28-16-generic
Kysymykseni on: puuttuuko minulta vielä paketteja, vai onko vika kernelissäni? Asennusohjeissa sanotaan, että kernelin on oltava >= 2.6. Minulla on riittävän uusi kernel. Eräällä sivulla sanotaan, että libdc1394 vaatii kernelin IEEE1394 -tuella. Jos minun tarvitsee tietää, kuinka saan selville, tukeeko kernelini k. o. ominaisuutta?
Kiitos.
-
Näytä ladatut kernelin moduulit komennolla lsmod
-
Tämmöisen tulosteen antoi:
Module Size Used by
snd_usb_audio 90528 0
snd_usb_lib 24320 1 snd_usb_audio
snd_hwdep 15108 1 snd_usb_audio
nls_iso8859_1 12032 0
nls_cp437 13696 0
vfat 18816 0
fat 58272 1 vfat
ppp_deflate 12800 0
zlib_deflate 28312 1 ppp_deflate
bsd_comp 13568 0
ppp_async 16896 0
crc_ccitt 10112 1 ppp_async
binfmt_misc 16776 1
fglrx 1997916 59
ppdev 15620 0
cdc_acm 23712 2
bridge 56212 0
stp 10500 1 bridge
bnep 20224 2
joydev 18368 0
lp 17156 0
parport 42220 2 ppdev,lp
snd_hda_intel 435252 2
snd_pcm_oss 46336 0
snd_mixer_oss 22656 1 snd_pcm_oss
snd_pcm 83076 3 snd_usb_audio,snd_hda_intel,snd_pcm_oss
snd_seq_dummy 10756 0
snd_seq_oss 37760 0
snd_seq_midi 14336 0
arc4 9856 2
snd_rawmidi 29696 2 snd_usb_lib,snd_seq_midi
ecb 10752 2
snd_seq_midi_event 15104 2 snd_seq_oss,snd_seq_midi
uvcvideo 63368 0
psmouse 61972 0
snd_seq 56880 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
video 25872 0
ath5k 107520 0
compat_ioctl32 9344 1 uvcvideo
sdhci_pci 15232 0
serio_raw 13444 0
pcspkr 10496 0
input_polldev 11912 0
output 11008 1 video
mac80211 217592 1 ath5k
videodev 41600 1 uvcvideo
v4l1_compat 21764 2 uvcvideo,videodev
ricoh_mmc 11904 0
sdhci 23940 1 sdhci_pci
snd_timer 29704 2 snd_pcm,snd_seq
snd_seq_device 14988 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
iTCO_wdt 19108 0
iTCO_vendor_support 11652 1 iTCO_wdt
intel_agp 34108 0
agpgart 42696 2 fglrx,intel_agp
usbhid 42336 0
led_class 12036 1 ath5k
snd 62756 15 snd_usb_audio,snd_hwdep,snd_hda_intel,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore 15200 1 snd
snd_page_alloc 16904 2 snd_hda_intel,snd_pcm
cfg80211 38288 2 ath5k,mac80211
usb_storage 99648 0
ohci1394 38576 0
ieee1394 94660 1 ohci1394
r8169 40836 0
mii 13312 1 r8169
fbcon 46112 0
tileblit 10752 1 fbcon
font 16384 1 fbcon
bitblit 13824 1 fbcon
softcursor 9984 1 bitblit
-
- libraw1394-0.10.1 - pitäisi olla kunnossa.
- libdc1394-0.9.4 - pitäisi olla kunnossa.
Nyt on varsinaisen ohjelman asennuksen vuoro. Olen tehnyt korjaukset lähteen koodiin, mutta silti tulee seuraavia virheitä, kun ajan "make"n:
g++ -c -O2 cvEyeTracker.c -O2 -I/usr/local/include/opencv
cvEyeTracker.c:46:38: error: libdc1394/dc1394_control.h: Tiedostoa tai hakemistoa ei ole
Näyttää puuttuvan libdc1394-0.9.4:n headerit, eli vastaava dev-paketti? Mutta toimiikohan tuo vanha 0.9.4-versio edes 2.6.28-kernelin ieee1394-ajurilla? Miten asensit nuo kirjastot?
-
- libraw1394-0.10.1
- libdc1394-0.9.4
Nuo näkyivät olevan asennettuna, kun katsoin Synapticilla.
Muut mainitsemani (kaiken varalta) paketit asensin Synapticilla.
-
Mutta vastaavat -dev-paketit eli headerit puuttuvat?
-
libraw1394-8 ja libraw1394-dev löytyivät.
libdc1394-22-dbg, libdc1394-utils ja libdc1394-22 löytyivät.
libdc1394-22-dev puuttui ja asensin sen.
Edelleen samat virheilmoitukset.
-
libdc1394-22-dev puuttui ja asensin sen.
Mutta tuo ei sovi libdc1394-0.9.4:ään vaan libdc1394-2.0.2:een.
Mielestäni kannattaisi asentaa uusimmat Ubuntun ohjelmalähteistä löytyvät versiot noista kaikista kirjastoista (myös OpenCV:stä) ja sitten muokata cvEyeTrackerin lähdekoodi kääntymään ja toimimaan niiden kanssa.
-
Asensin uusimmat libdc1394-9:n libraw1394:n versiot. Edelleen tulee virhe " ...dc1394_control.h: Tiedostoa tai hakemistoa ei ole... ".
-
Asensin uusimmat libdc1394-9:n libraw1394:n versiot.
Varmaankin libdc1394-22 ja libraw1394-8, jos käytät Ubuntu 9.04:ää? 9.10:ssä on libraw1394-11.
Edelleen tulee virhe " ...dc1394_control.h: Tiedostoa tai hakemistoa ei ole... ".
...koska et ole portannut lähdekoodia kääntymään nykyisten kirjastojen kanssa. Tuota tiedostoa vastaa nykyisin dc1394/control.h, mutta sen lisäksi joudut todennäköisesti tekemään paljon vaikeampiakin muutoksia.
-
Nyt näyttää hieman paremmalta. Ainakin porttaukset onnistuivat:
g++ -c -O2 cvEyeTracker.c -O2 -I/usr/local/include/opencv
cvEyeTracker.c:190:1: warning: "YUV2RGB" redefined
In file included from /usr/include/dc1394/dc1394.h:49,
from /usr/include/dc1394/log.h:45,
from /usr/include/dc1394/control.h:23,
from cvEyeTracker.c:46:
/usr/include/dc1394/conversions.h:72:1: warning: this is the location of the previous definition
cvEyeTracker.c:91: virhe: ”dc1394_cameracapture” does not name a type
cvEyeTracker.c:96: virhe: ”dc1394_feature_set” does not name a type
cvEyeTracker.c:169: virhe: ”MODE_640x480_MONO” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:169: virhe: ”MODE_640x480_YUV411” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Open_IEEE1394()”:
cvEyeTracker.c:209: virhe: ”dc1394_create_handle” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:219: virhe: ”dc1394_get_camera_nodes” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:223: virhe: ”dc1394_destroy_handle” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:228: virhe: ”dc1394_camera_on” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:232: virhe: ”FORMAT_VGA_NONCOMPRESSED” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:234: virhe: ”SPEED_400” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:235: virhe: ”FRAMERATE_30” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:236: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:236: virhe: ”dc1394_dma_setup_capture” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:238: virhe: ”dc1394_release_camera” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:239: virhe: ”dc1394_destroy_handle” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:242: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:242: virhe: ”dc1394_start_iso_transmission” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:244: virhe: ”dc1394_release_camera” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:245: virhe: ”dc1394_destroy_handle” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Grab_IEEE1394()”:
cvEyeTracker.c:254: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:254: virhe: ”dc1394_dma_multi_capture” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Release_IEEE1394()”:
cvEyeTracker.c:264: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:264: virhe: ”dc1394_dma_done_with_buffer” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Close_IEEE1394()”:
cvEyeTracker.c:273: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:273: virhe: ”dc1394_stop_iso_transmission” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:276: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:276: virhe: ”dc1394_camera_off” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:277: virhe: ”dc1394_dma_release_camera” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c:279: virhe: ”dc1394_destroy_handle” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Grab_Camera_Frames()”:
cvEyeTracker.c:971: virhe: ”cameras” on esittelemättä tällä näkyvyysalueella
cvEyeTracker.c: In function ”void Open_GUI()”:
cvEyeTracker.c:1145: virhe: virheellinen muunnos tyypistä ”void (*)(int, int, int, int)” tyypiksi ”void (*)(int, int, int, int, void*)”
cvEyeTracker.c:1145: virhe: alustettaessa funktion ”void cvSetMouseCallback(const char*, void (*)(int, int, int, int, void*), void*)” argumenttia 2
cvEyeTracker.c:1146: virhe: virheellinen muunnos tyypistä ”void (*)(int, int, int, int)” tyypiksi ”void (*)(int, int, int, int, void*)”
cvEyeTracker.c:1146: virhe: alustettaessa funktion ”void cvSetMouseCallback(const char*, void (*)(int, int, int, int, void*), void*)” argumenttia 2
cvEyeTracker.c: In function ”void Open_Ellipse_Log()”:
cvEyeTracker.c:1210: varoitus: vanhentunut tyyppimuunnos merkkijonovakiosta tyyppiin ”char*”
make: *** [cvEyeTracker.o] Virhe 1