Hi everyone,
I can’t use my webcam that is incorporated in my iMac, and I couldn’t find a good solution on www.
Can anyone help me with this ?
Thanks,
Lovin
Hi everyone,
I can’t use my webcam that is incorporated in my iMac, and I couldn’t find a good solution on www.
Can anyone help me with this ?
Thanks,
Lovin
Is anything showing with:
lsusb
Also check in Yast > Hardware > Hardware Information > USB >
Is it showing there
And if so, when you expand it, what info is there
Bus 001 Device 004: ID 05ac:8300 Apple, Inc. Built-in iSight (no firmware loaded)
Honestly. I think it’ll be a miracle if you ever get that working in anything but apple’s OS
I found this, here: LXR / The Linux Cross Reference
" 1/*
2 * Driver for loading USB isight firmware
3 *
4 * Copyright (C) 2008 Matthew Garrett <mjg@redhat.com>
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the Free
8 * Software Foundation, version 2.
9 *
10 * The USB isight cameras in recent Apples are roughly compatible with the USB
11 * video class specification, and can be driven by uvcvideo. However, they
12 * need firmware to be loaded beforehand. After firmware loading, the device
13 * detaches from the USB bus and reattaches with a new device ID. It can then
14 * be claimed by the uvc driver.
15 *
16 * The firmware is non-free and must be extracted by the user. Tools to do this
17 * are available at Built-in iSight Firmware Tools
18 *
19 * The isight firmware loading was reverse engineered by Johannes Berg
20 * <johannes@sipsolutions.de>, and this driver is based on code by Ronald
21 * Bultje <rbultje@ronald.bitfreak.net>
22 */
23
24#include <linux/usb.h>
25#include <linux/firmware.h>
26#include <linux/errno.h>
27#include <linux/module.h>
28#include <linux/slab.h>
29
30static const struct usb_device_id id_table] = {
31 {USB_DEVICE(0x05ac, 0x8300)},
32 {},
33};
34
35MODULE_DEVICE_TABLE(usb, id_table);
36
37static int isight_firmware_load(struct usb_interface *intf,
38 const struct usb_device_id *id)
39{
40 struct usb_device *dev = interface_to_usbdev(intf);
41 int llen, len, req, ret = 0;
42 const struct firmware *firmware;
43 unsigned char *buf = kmalloc(50, GFP_KERNEL);
44 unsigned char data[4];
45 const u8 ptr;
46
47 if (!buf)
48 return -ENOMEM;
49
50 if (request_firmware(&firmware, “isight.fw”, &dev->dev) != 0) {
51 printk(KERN_ERR "Unable to load isight firmware
");
52 ret = -ENODEV;
53 goto out;
54 }
55
56 ptr = firmware->data;
57
58 if (usb_control_msg
59 (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, “\1”, 1,
60 300) != 1) {
61 printk(KERN_ERR
62 "Failed to initialise isight firmware loader
");
63 ret = -ENODEV;
64 goto out;
65 }
66
67 while (ptr+4 <= firmware->data+firmware->size) {
68 memcpy(data, ptr, 4);
69 len = (data[0] << 8 | data[1]);
70 req = (data[2] << 8 | data[3]);
71 ptr += 4;
72
73 if (len == 0x8001)
74 break; / success */
75 else if (len == 0)
76 continue;
77
78 for (; len > 0; req += 50) {
79 llen = min(len, 50);
80 len -= llen;
81 if (ptr+llen > firmware->data+firmware->size) {
82 printk(KERN_ERR
83 “Malformed isight firmware”);
84 ret = -ENODEV;
85 goto out;
86 }
87 memcpy(buf, ptr, llen);
88
89 ptr += llen;
90
91 if (usb_control_msg
92 (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, req, 0,
93 buf, llen, 300) != llen) {
94 printk(KERN_ERR
95 "Failed to load isight firmware
");
96 ret = -ENODEV;
97 goto out;
98 }
99
100 }
101 }
102
103 if (usb_control_msg
104 (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, “\0”, 1,
105 300) != 1) {
106 printk(KERN_ERR "isight firmware loading completion failed
“);
107 ret = -ENODEV;
108 }
109
110out:
111 kfree(buf);
112 release_firmware(firmware);
113 return ret;
114}
115
116MODULE_FIRMWARE(“isight.fw”);
117
118static void isight_firmware_disconnect(struct usb_interface *intf)
119{
120}
121
122static struct usb_driver isight_firmware_driver = {
123 .name = “isight_firmware”,
124 .probe = isight_firmware_load,
125 .disconnect = isight_firmware_disconnect,
126 .id_table = id_table,
127};
128
129static int __init isight_firmware_init(void)
130{
131 return usb_register(&isight_firmware_driver);
132}
133
134static void __exit isight_firmware_exit(void)
135{
136 usb_deregister(&isight_firmware_driver);
137}
138
139module_init(isight_firmware_init);
140module_exit(isight_firmware_exit);
141
142MODULE_LICENSE(“GPL”);
143MODULE_AUTHOR(“Matthew Garrett <mjg@redhat.com>”);”
I’ll see if this can help me : Linux Kernel Driver Database: CONFIG_USB_ISIGHTFW: iSight firmware loading support
On 03/22/2011 03:36 PM, caf4926 wrote:
>
> Honestly. I think it’ll be a miracle if you ever get that working in
> anything but apple’s OS
maybe there are some clues in here that might be useful with
openSUSE and this kernel (which may be different from any successes in
this search, if any):
http://tinyurl.com/6csxxdh
if nothing there is real helpful the OP might find it interesting or
useful to send a nice letter to the Apple folks and ask them for the
URL to download the Linux driver needed . . . or, alternatively they
could supply the APIs needed for a Linux programmer who could build
the driver for them (and would probably do it for little or no money,
if it were released free and open source)…
–
DenverD
CAVEAT: http://is.gd/bpoMD
[NNTP posted w/openSUSE 11.3, KDE4.5.5, Thunderbird3.1.8, nVidia
173.14.28 3D, Athlon 64 3000+]
“It is far easier to read, understand and follow the instructions than
to undo the problems caused by not.” DD 23 Jan 11
It’s done
I found an old post here, and I followed the instruction, and now it’s working flawless.
Here is the old post, for anyone who’s interested: isight firmware tools how to use???
Cheers !
Thanks for posting back with this
Just goes to show how wrong I can be.
Well done!
Well, now it’s that situation, where I can say, that I’m happy that you was wrong
You can leave reputation to the user that pointed you in the right direction, or was that yourself
You can’t rep yourself.