• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

MSI Starcam 370i und Suse 11.0

peterf

Newbie
Hallo,

ich versuche gerade an meinen neuen Notebook HP Compaq 6710b unter OpenSuse 11.0 mit Gnome meine Webcam zum laufen zu bekommen (hauptsächlich für Sykpe). Als Linux Neuling habe ich im Web gesucht, aber nur viele gefunden, die das auch wollen (Ich habe die Webcam schon unter Windows an meinem anderen Notebook betrieben, dort hat es geklappt und klappt immer noch). Gstreamer zeigt nur ein Testbild mit Rauschen. lsusb zeigt folgenden EIntrag:

Bus 006 Device 002: ID 0c45:60c0 Microdia PC Camera with Mic (SN9C105)

Hat wer eine Idee?

Danke,

Peter
 
OP
P

peterf

Newbie
Hi,

habe im Netz einen Treiber für die Cam an folgender Stelle gefunden:

http://www.linux-projects.org/modules/mydownloads/

Ich habe versucht den Treiber zu kompilieren, aber leider ohne Erfolg. Es gibt ein Makefile und mit:

$make module_install

sollte eigentlich alles erledigt sein, es kommen aber jede Menge Fehlermeldungen.

Hat einer von Euch eine Ahnung, was ich vielleicht an Bibliotheken noch laden muss, damit alles funktioniert?

Ciao,


Peter
 

whois

Ultimate Guru
Wahrschein Compiler und Kernel Sources nicht installiert.
Trotzdem sollten die Fehlermeldungen hier schon rein sonst müssen wir raten.
 
OP
P

peterf

Newbie
Hi,

soryy - Wir haben verstanden ...

linux-fh59:/home/peterf/Downloads/msicam # make
make -C /lib/modules/`uname -r`/build SUBDIRS=/home/peterf/Downloads/msicam CC=cc modules
make[1]: Entering directory `/usr/src/linux-2.6.25.11-0.1-obj/i386/default'
make[1]: *** Keine Regel, um »modules« zu erstellen. Schluss.
make[1]: Leaving directory `/usr/src/linux-2.6.25.11-0.1-obj/i386/default'
make: *** [default] Fehler 2

linux-fh59:/home/peterf/Downloads/msicam # make install
mkdir -p /lib/modules/`uname -r`/kernel/drivers/usb/media/
rm -f /lib/modules/`uname -r`/kernel/drivers/media/video/msicam.ko
install -c -m 0644 msicam.ko /lib/modules/`uname -r`/kernel/drivers/usb/media/
install: Aufruf von stat für „msicam.ko“ nicht möglich: Datei oder Verzeichnis nicht gefunden
make: *** [install] Fehler 1


Hier das Makefile:
VERSION = 01.00.20

DEFINES =

###
# The following flags enable experimental features.
# By default, these are enabled for development versions of the driver, and
# disabled for release versions.

# Optional: Enable driver debugging
DEFINES += -DGSPCA_ENABLE_DEBUG

# Optional: Enable direct register read/write for PAC207 development
#DEFINES += -DGSPCA_ENABLE_REGISTERPLAY

###
# The following flags enable features that aren't yet implemented, and
# therefore are disabled by default.

# Optional: Enable compression
DEFINES += -DGSPCA_ENABLE_COMPRESSION

###
# Rest of Makefile follows here. You probably won't need to touch this.

# Setup defines
DEFINES += -DCONFIG_USB_GSPCA_MODULE=1 -DMODULE -D__KERNEL__
DEFINES += -DVID_HARDWARE_GSPCA=0xFF -DGSPCA_VERSION=\"$(VERSION)\"

ifneq ($(KERNELRELEASE),) # We were called by kbuild
EXTRA_CFLAGS += $(DEFINES)
obj-m += msicam.o
msicam-objs := gspca_core.o decoder/gspcadecoder.o

else # We were called from command line

KERNEL_VERSION = `uname -r`
KERNELDIR := /lib/modules/$(KERNEL_VERSION)/build
PWD := $(shell pwd)
MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/media/
MODULE_INSTALLDIR2 = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/media/video/

default:
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) modules

install:
mkdir -p $(MODULE_INSTALLDIR)

rm -f $(MODULE_INSTALLDIR2)msicam.ko

install -c -m 0644 msicam.ko $(MODULE_INSTALLDIR)
/sbin/depmod -ae

uninstall:
rm -f $(MODULE_INSTALLDIR)msicam.ko
/sbin/depmod -aq

endif

##############################################################################
# OTHER TARGETS
##############################################################################
clean:
rm -r -f *.o decoder/.gspcadecoder.o.cmd decoder/*.o \
.gspca.o.cmd .gspca* *.o *.ko *.mod.* core *.i \
*.symvers *.err

##############################################################################


Make musste ich als SU ausführen.

Was meint Ihr?


Ciao,
Peter
 

Grothesk

Ultimate Guru
kernel-source und/oder gcc nicht installiert.
Und make wird nie als root ausgeführt. Erst ein
make install
wird von root ausgeführt.
 
...bzw. noch besser an Stelle von "make install" via rpmbuild oder checkinstall ein .rpm-Paket draus bauen und dieses dann als root mit dem Paketmanager installieren - dann kann man es nämlich auch sauber deinstallieren, falls der Treiber irgendwas vermurksen sollte.

"Make love, not install!"
 
OP
P

peterf

Newbie
Hi,

kernel-source und/oder gcc nicht installiert.
=> Richtig kernel-source, war nicht installiert. Habe ich nachgeholt.
Nun kommen folgende Fehlermeldungen:

**************************************************************************
* Building Video4Linux2 driver v1.48 for SN9C1xx PC Camera Controllers...*
* Official Linux 2.6.19 is the minimum version for this driver. *
* Read the documentation "sn9c102.txt" for more informations. *
* Type "make help" for a list of available targets. *
**************************************************************************

make -C /lib/modules/`uname -r`/build M=/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48 modules
make[1]: Entering directory `/usr/src/linux-2.6.25.11-0.1-obj/i386/default'
make -C /usr/src/linux-2.6.25.11-0.1 O=/usr/src/linux-2.6.25.11-0.1-obj/i386/default/. modules
CC [M] /home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.o
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_show_reg’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1041: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_store_reg’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1066: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_show_val’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1099: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_store_val’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1132: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_show_i2c_reg’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1169: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_store_i2c_reg’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1196: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_show_i2c_val’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1229: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_store_i2c_val’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1267: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_store_green’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1313: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_show_frame_header’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1391: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_create_sysfs’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:1422: warning: initialization from incompatible pointer type
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c: In function ‘sn9c102_usb_probe’:
/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.c:3302: error: ‘struct video_device’ has no member named ‘hardware’
make[4]: *** [/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48/sn9c102_core.o] Fehler 1
make[3]: *** [_module_/home/peterf/Downloads/MSI_Starcam_370i/sn9c1xx-1.48] Fehler 2
make[2]: *** [sub-make] Fehler 2
make[1]: *** [all] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.25.11-0.1-obj/i386/default'
make: *** [modules] Fehler 2


Hier nun ein Auszug aus der Readme. Ich weiss allerdings nicht was und wo ich das machen kann:

5. Driver installation
======================
As noted above, kernel 2.6.19 is the minimum for this driver; for it to work
properly, the driver needs kernel support for Video4Linux and USB.

The following options of the kernel configuration file must be enabled and
corresponding modules must be compiled:

# Multimedia devices
#
CONFIG_VIDEO_DEV=m

To enable advanced debugging functionality on the device through /sysfs:

# Multimedia devices
#
CONFIG_VIDEO_ADV_DEBUG=y

On the contrary, to disable the debugging functionality, it's necessary to both
set CONFIG_VIDEO_ADV_DEBUG=n and remove its definition from the Kbuild file
provided with the SN9C1xx driver.

# USB support
#
CONFIG_USB=m

In addition, depending on the hardware being used, the modules below are
necessary:

# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_UHCI_HCD=m
CONFIG_USB_OHCI_HCD=m

The SN9C103, SN9C105 and SN9C120 controllers also provide a built-in microphone
interface. It is supported by the USB Audio driver thanks to the ALSA API:

# Sound
#
CONFIG_SOUND=y

# Advanced Linux Sound Architecture
#
CONFIG_SND=m

# USB devices
#
CONFIG_SND_USB_AUDIO=m

Moving along to the SN9C1xx driver: after having downloaded the package,
decompress and compile:

[user@localhost home]$ tar xvzf sn9c1xx-v.vv.tar.gz
[user@localhost home]$ cd sn9c1xx-v.vv

(where "v.vv" has to be substituted with the version of the package just
downloaded)

It is necessary to properly configure your particular kernel source tree before
compiling the driver. The modular building process is used; therefore you must
have read and write access to your kernel source tree. If not, log in as root
before running the following commands:

[user@localhost sn9c1xx-v.vv]$ make clean
[user@localhost sn9c1xx-v.vv]$ make modules

If the commands fail, control the Makefile and change the path to the kernel
source tree or to any other files, according to your system configuration;
then run the previous commands again.

If everything went well, the SN9C1xx driver can be used either immediatly
(skip to the next paragraph) or be installed.

The driver will not be installed in the default directory reserved for modules
being built outside the kernel. This means that the possible version of the
driver present in the official Linux kernel tree might be overwritten during
the installation process.

To install the driver, run as root:

[root@localhost sn9c1xx-v.vv]# make modules_install


6. Module loading
=================
To use the driver, it is necessary to load the "sn9c102" module into memory
after every other module required: "videodev", "v4l2_common", "compat_ioctl32",
"usbcore" and, depending on the USB host controller you have, "ehci-hcd",
"uhci-hcd" or "ohci-hcd".

Loading can be done as shown below.

If the SN9C1xx driver has been installed as shown in the previous paragraph:

[root@localhost home]# modprobe sn9c102

otherwise, if you have not installed the driver, but have just compiled it,
run "insmod" indicating the path to the module; for example:

[root@localhost sn9c1xx-v.vv]# insmod ./sn9c102.ko

Note that the filename of the module is "sn9c102" for historic reasons,
althought the driver does not just support the SN9C102.
his point all the devices supported by the driver and connected to the USB
ports should be recognized. You can invoke "dmesg" to analyze kernel messages
and verify that the loading process has gone well:

[user@localhost home]$ dmesg

or, to isolate all the kernel messages generated by the driver:

[user@localhost home]$ dmesg | grep sn9c102


Also, was tun sprach Zeus?

Ciao,

Peter
 
Oben