USB-Webcam an Fritz!Box

kein bier da...

hat die fritzbox nicht ein bier-hol-feature?

gleich mal anwenden... ;)
 
nach make toolchain hat auch make kernel-precompiled geklappt.

ov511.o wurde auch erstellt.

Nur: nach dem Firmwareupdate kann ich kein ov511.o auf der Fritz!Box finden.

/var/mod/root # find / -name "ov51*"
find: unable to open `/proc/7/fd': No such file or directory

:noidea:

Alle *.o Files sind die, die in der ds-mod in menuconfig ausgewählt sind.

Sollte ich jetzt besser das übersetzte Modul händisch auf die FB schmuggeln, ein Addon basteln oder das menuconfig der ds-mod ändern, daß das Modul dort selektiert werden kann?
 
olistudent schrieb:
Vom Weihnachtsmann... :mrgreen:

Geht natürlich nicht fürs Labor-Image!

MfG Oliver

Hi Olistudent...

Laeuft das Modul bei dir? Ich bekomms nicht zum Laufen oder muss ich vorab noch was anderes dafuer tun bzw. laden?

Gruss
 
Ich hab kein USB, daher kann ich dir nicht sagen ob es läuft. :-(

MfG Oliver
 
Sodelle, das ov511-Modul läuft nun:
/var/mod/root # cat /proc/bus/usb/devices | grep Driver
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
I: If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=ov511
I: If#= 0 Alt= 1 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=ov511
I: If#= 0 Alt= 2 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=ov511
I: If#= 0 Alt= 3 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=ov511
I: If#= 0 Alt= 4 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=ov511
I: If#= 0 Alt= 5 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=ov511
I: If#= 0 Alt= 6 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=ov511
I: If#= 0 Alt= 7 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=ov511

Was bisher dafür zu tun war:

1. make toolchain
2. make kernel-menuconfig (ov511 auswählen)
3. make kernel-precompiled
4. Die Datei kernel/Config.in um zwei Abschnitte erweitern:
config DS_MODULE_videodev
bool "videodev.o"
default n

config DS_MODULE_ov511
bool "ov511.o"
default n
5. make menuconfig (ov511 und videodev auswählen)
6. make
7. Firmwareupdate
8. ssh [email protected]
9. modprobe -v ov511
10. Webcam einstecken
11. nachschauen ob der Treiber auch genutzt wird mit: cat /proc/bus/usb/devices | grep Driver
 
wenn man im Kernel auch gleich Video4Linux auswählt, wird nach einstecken der Cam in der Fritz!Box auch gleich /dev/v4l/video0 angelegt.

Jetzt fehlt nur noch camsource oder hat jemand eine andere Webcam-Daemon-Idee?
 
Da ich von dem ganzen Mod-Kram keine Ahnung habe, aber an der Webcam-Funktion für meine FB7170 interessiert bin, zwei Frage:

Welche Funktionalität steht denn zur Verfügung, wenn man die hier beschriebenen Modifikationen vornimmt ?

Und kriegt man das als Linux-Laie hin oder braucht man dafür mehrjährige Linux-Erfahrung ?
 
camsource für mipsel übersetzen

Gleich ein Rückschlag:

erstmal die toolchain in den Pfad:

export PATH=/home/common/downloads/ds-0.2.9/toolchain/target/bin:$PATH

dann erster Versuch zu übersetzen:

[phoenix@kamasutra camsource-0.7.0]$ LDFLAGS=-static ./configure --build=i386-linux-gnu --target=mipsel-linux --host=mipsel-linux
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets ${MAKE}... yes
checking for mipsel-linux-gcc... mipsel-linux-gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether mipsel-linux-gcc accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of mipsel-linux-gcc... gcc3
checking build system type... i386-pc-linux-gnu
checking host system type... mipsel-unknown-linux-gnu
checking for ld used by GCC... /home/common/downloads/ds-0.2.9/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/ld
checking if the linker (/home/common/downloads/ds-0.2.9/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/ld) is GNU ld... yes
checking for /home/common/downloads/ds-0.2.9/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /home/common/downloads/ds-0.2.9/toolchain/target/bin/mipsel-linux-nm -B
checking whether ln -s works... yes
checking how to recognise dependant libraries... file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )
checking command to parse /home/common/downloads/ds-0.2.9/toolchain/target/bin/mipsel-linux-nm -B output... ok
checking how to run the C preprocessor... mipsel-linux-gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for mipsel-linux-file... no
checking for file... /usr/bin/file
checking for mipsel-linux-ranlib... mipsel-linux-ranlib
checking for mipsel-linux-strip... mipsel-linux-strip
checking for objdir... .libs
checking for mipsel-linux-gcc option to produce PIC... -fPIC
checking if mipsel-linux-gcc PIC flag -fPIC works... yes
checking if mipsel-linux-gcc static flag -static works... yes
checking if mipsel-linux-gcc supports -c -o file.o... yes
checking if mipsel-linux-gcc supports -c -o file.lo... yes
checking if mipsel-linux-gcc supports -fno-rtti -fno-exceptions... yes
checking whether the linker (/home/common/downloads/ds-0.2.9/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/ld) supports shared libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether -lc should be explicitly linked in... no
creating libtool
checking for mipsel-linux-gcc option to accept ANSI C... none needed
checking for an ANSI C-conforming const... yes
checking whether byte ordering is bigendian... no
checking for ANSI C header files... (cached) yes
checking linux/videodev.h usability... yes
checking linux/videodev.h presence... yes
checking for linux/videodev.h... yes
checking jpeglib.h usability... no
checking jpeglib.h presence... no
checking for jpeglib.h... no
configure: error: Could not find jpeglib.h

Mal nachschauen wo sich jpeglib.h finden lässt
[phoenix@kamasutra camsource-0.7.0]$ locate jpeglib.h
/usr/include/jpeglib.h

Also hab ich den header auf meiner Maschine, nur halt nicht für die toolchain. Wie bekomme ich die jetzt da rein?

--prefix=/usr hat nix gebracht
Auch reinkopieren in das toolchain-include hat nich geholfen.

Any Ideas?

[EDIT]: Bin schon etwas weiter gekommen.
Nach Crosscompile und installation in der Toolchain von
http://www.ijg.org/files/jpegsrc.v6b.tar.gz
findet configure nun die headers.

Nur leider stockt es später mit:
checking for jpeg_start_compress in -ljpeg... no
configure: error: Could not find libjpeg

Jpeg-6b hab ich wie folgt installiert:
1. LDFLAGS=-static ./configure --target=mipsel-linux --host=mipsel-linux --prefix=/home/emule/downloads/ds-0.2.9/toolchain/target --enable-static
2. Dann im Makefile händisch CC=mipsel-linux-gcc gesetzt
3. make
4. make install
5. make install-headers

 
Zuletzt bearbeitet:
@detg: Wenn Du die von mir aufgeführten Schritte exakt so nachvollziehst solltest Du eine eingesteckte Webcam für Software auf der Fritz!Box zur Verfügung haben (als /dev/v4l/video0). Ergo fehlt dann halt nurnoch ein Programm, das Bilder der Cam verarbeitet. Z.B. lokal abspeichern, per FTP hochladen oder halt direkt als Server zur Verfügung stellen. All die genannten Funktionen kann camsource erfüllen.

Mehrjährige Linux-Erfahrung ist eigentlich nicht notwendig.
 
jepp, sourcen von http://www.ijg.org/files/jpegsrc.v6b.tar.gz sind crosscompiled incl. header in der toolchain.

[EDIT]: Bin schon etwas weiter gekommen.
Nach Crosscompile und installation in der Toolchain von
http://www.ijg.org/files/jpegsrc.v6b.tar.gz
findet configure nun die headers.

Nur leider stockt es später mit:
checking for jpeg_start_compress in -ljpeg... no
configure: error: Could not find libjpeg

Jpeg-6b hab ich wie folgt installiert:
1. LDFLAGS=-static ./configure --target=mipsel-linux --host=mipsel-linux --prefix=/home/emule/downloads/ds-0.2.9/toolchain/target --enable-static
2. Dann im Makefile händisch CC=mipsel-linux-gcc gesetzt
3. make
4. make install
5. make install-headers

hab' auch versucht die toolchain in LD_LIBRARY_PATH aufzunehmen.
auch nach einem ldconfig hatte das nix geholfen. :(
 
Ist denn ein File namens libjpeg.so in dem Lib-Verzeichnis der Toolchain?
Kannst du in den configure-optionen vom camsource einen Pfad für die libjpeg einstellen?

MfG Oliver
 
Nein, dummerweise keine libjpeg.so.
Weder im Verzeichnis von libjpeg noch in der toolchain.

Ich hab aber eine /usr/lib/libjpeg.so - die hilft mir nur nicht viel, wenn ich die nicht selber cross-compilen kann.

Hab ich evtl. die falschen sourcen genommen?

Oh, da fällt mir ein, ich hab glaub libjpeg auch static übersetzt.
Das könnte wohl der Grund sein warum da kein SharedObject is, wad? ;)

[Edit]: Nope - das wars auch nicht. Es wird nur eine libjpeg.a erstellt, die in die mitübersetzten sampleprograms eingelinkt wird.

[Edit1]: Und, nein ich kann bei configure für camsource keinen extra Ort für libjpeg angeben. Nur die üblichen globalen prefixes.

[Edit2]: So, hab unter http://www.tux.org/~mayer/linux/book/node107.html den Hinweis gefunden, daß man das Makefile anpassen muss um eine so zu erhalten. Ist nun so geschehen und in toolchain/target/lib befindet sich nun libjpeg.so.6a und die links dazu libjpeg.so.6 und libjpeg.so
Hat aber auch nichts geholfen. libjpeg wird immernoch nicht gefunden.

[Edit3]: Egal wie ich es auch versuche (füllen von LD_LIBRARY_PATH, eintrag in /etc/ld.so.conf, versuch der direkten Übergabe an configure) nichts fürht zum Erfolg - immer das selbe Problem, daß libjpeg nicht gefunden werden kann. Wenn ich es nativ für meinen rechner übersetze klappt alles prima. Nur der Cross-Compile klappt nicht...
 
Zuletzt bearbeitet:
camsource statisch gelinkt :)

MfG Oliver
 
Zuletzt bearbeitet:
Fein, daß Du es übersetzen konntest.

Aber wie hast Du es gemacht?
So kann es ja niemand nachvollziehen. :(

Welche Version hast Du genommen? 0.7.0?

[Edit]: Außerdem - bist Du sicher, daß die binary statisch gelinkt ist?

Code:
$ qemu-mipsel ./camsource
Camsource 0.7.0 starting up...
Loading modules:
: '/usr/lib/camsource/libinput_v4l.so' is not an ELF executable for MIPS
Failed to load module input_v4l
Last dlopen error: File not found
: '/usr/lib/camsource/libhttp.so' is not an ELF executable for MIPS
Failed to load module http
Last dlopen error: File not found
: '/usr/lib/camsource/libfilewrite.so' is not an ELF executable for MIPS
Failed to load module filewrite
Last dlopen error: File not found
: '/usr/lib/camsource/libjpeg_comp.so' is not an ELF executable for MIPS
Failed to load module jpeg_comp
Last dlopen error: File not found
: '/usr/lib/camsource/libflip.so' is not an ELF executable for MIPS
Failed to load module flip
Last dlopen error: File not found
: '/usr/lib/camsource/libresize.so' is not an ELF executable for MIPS
Failed to load module resize
Last dlopen error: File not found
: '/usr/lib/camsource/libtext.so' is not an ELF executable for MIPS
Failed to load module text
Last dlopen error: File not found
Invalid or missing "plugin" attribute for 'default'
No valid <camdev> sections found, exit

[EDIT1]: Auf der Box läuft's auch nicht
Code:
/var/tmp/flash # ./camsource
Camsource 0.7.0 starting up...
Loading modules:
Failed to load module input_v4l
Last dlopen error: File not found
Failed to load module wc_serv
Last dlopen error: File not found
Failed to load module wc_serv
Last dlopen error: File not found
Failed to load module http
Last dlopen error: File not found
Failed to load module jpeg_comp
Last dlopen error: File not found
Failed to load module flip
Last dlopen error: File not found
Failed to load module resize
Last dlopen error: File not found
Failed to load module text
Last dlopen error: File not found
Invalid or missing "plugin" attribute for 'default'
No valid <camdev> sections found, exit
 
Zuletzt bearbeitet:
He, Oli!
Nicht einfach nur den Anhang löschen und nix dazu posten...

Wie hast Du die binary überhaupt erzeugen können?
Die Module auf die Box zu bringen wird dann auch nicht mehr ein Hexenwerk sein.
 
Die Plugins zählen anscheinend nicht als Libraries => Keine Ahnung ob man die statisch Linken kann...
Code:
/var/mod/root # ./ldd camsource
        libxml2.so.2 => not found
        libm.so.0 => /lib/libm.so.0 (0x2aaee000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x2ab40000)
        libdl.so.0 => /lib/libdl.so.0 (0x2ab96000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2abd8000)
        libc.so.0 => /lib/libc.so.0 (0x2ac24000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)
/var/mod/root #
Code:
LDFLAGS="-L/path-to-toolchain/usr/lib" CPPFLAGS="-I/path-to-toolchain/usr/include" ./configure --build=i386 --host=mipsel-linux --target=mipsel-linux --with-gnu-ld --enable-shared --enable-static
MfG Oliver
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.