# The Ubuntu Forum Community > Ubuntu Specialised Support > Apple Hardware Users > [all variants] HOWTO: Fix iSight in Hardy

## benanzo

Unfortunately despite all the great improvements we've seen in Hardy, the iSights on our Apple Intel Macs got left a little out in the cold.  First we're having problems getting the firmware to load, then after fixing that the stock uvcvideo.ko doesn't create a valid video chain which causes the camera not to work at all.

Below are the instructions to get your iSight up and running.

First, if you haven't already done it go ahead and add the Mactel PPA to your /etc/apt/sources.list.  This is a good repo to find Mactel-specific fixes and features, including where we'll find the tools to fix our iSights.



```
# Mactel PPA
deb http://ppa.launchpad.net/mactel-support/ubuntu hardy main
deb-src http://ppa.launchpad.net/mactel-support/ubuntu hardy main
```

Next open a terminal and do:


```
$ sudo apt-get update
$ sudo apt-get install isight-firmware-tools
```

Go ahead and put the iSight firmware (AppleUSBVideoSupport) in /lib/firmware

Now we're going to use one of the utilities we just installed to extract the iSight firmware so it can be properly loaded:


```
$ sudo ift-extract -a /lib/firmware/AppleUSBVideoSupport
```

We're now done messing with the iSight firmware portion of the fix.  Now test to see if your iSight works by doing:


```
$ sudo modprobe -r uvcvideo
$ sudo modprobe uvcvideo
```

If your camera works (test with Cheese or Ekiga) then you're done.  Otherwise you might try compiling a new uvcvideo as detailed below:



```
$ sudo modprobe -r uvcvideo
$ sudo mv /lib/modules/$(uname -r)/ubuntu/media/usbvideo/uvcvideo.ko /lib/modules/$(uname -r)/ubuntu/media/usbvideo/uvcvideo.ko.orig
$ sudo apt-get install libusb-0.1-4 libusb-dev linux-headers-$(uname -r) subversion
$ svn co --revision 205 svn://svn.berlios.de/linux-uvc/linux-uvc/trunk uvcvideo-r205
$ cd uvcvideo-r205
$ make
$ sudo make install
$ sudo depmod -ae
$ sudo modprobe uvcvideo
```

If it worked then Cheese should autostart after that last command.  If it doesn't then try starting Cheese by hand.  If the camera still doesn't work go ahead and try rebooting.  It is also possible that halting your machine (power off completely) then starting it up again instead of a simple reboot will fix the problem.

Good Luck!

----------


## Dale Cooper

I got no problem at all, I just followed the basic instructions and it worked instantly.

I own a MB C2D 2nd gen. Is this a problem with newer machines?

----------


## benanzo

I'm using a first-gen MacBook (1,1)

This howto is in response to the following two bugs:
https://bugs.launchpad.net/mactel-support/+bug/185634
https://bugs.launchpad.net/ubuntu/+s...24/+bug/216310

----------


## cyberdork33

> Now we need to mess with the uvcvideo module so it will create a valid video chain when it's loaded.
> 
> To do this we need to compile a new version of uvcvideo.


As far as I know, the version of uvcvideo in Hardy was working fine. (It is still working for me...) I think this might only affect certain models.

Also, going to try to get Dirk to replace the old iSight How-To in the FAQ.

----------


## benanzo

> As far as I know, the version of uvcvideo in Hardy was working fine. (It is still working for me...) I think this might only affect certain models


That may be true since my iSight was working fine circa Alpha 3 but has stopped in Hardy final.  I found that I could only get it to work again by compiling a new uvcvideo in addition to the firmware extraction bit.

But you're right, compiling a new module *may* not be necessary.

----------


## exoticorn

Thanks for the HOWTO.
One note for those following it, though: You should really try your isight after just the firmware extraction - I followed the whole HOWTO and my isight only worked in ekiga, not in cheese. I then reverted the uvcvideo.ko back to the original one and everything worked fine.

----------


## benanzo

> Thanks for the HOWTO.
> One note for those following it, though: You should really try your isight after just the firmware extraction - I followed the whole HOWTO and my isight only worked in ekiga, not in cheese. I then reverted the uvcvideo.ko back to the original one and everything worked fine.


Good suggestion, I have updated the howto accordingly.

----------


## guj4_n3b3sk4

I have edited source.list file as it was said in 1st step of howto. I follow steps and when I do 3rd code box, here's what happens:



```
ugljesha@blackbox:~$ sudo ift-extract -a /lib/firmware/AppleUSBVideoSupport -f /lib/firmware/isight.fw 
** Message: Found Mac OS X.4 intel driver

** ERROR **: Unable to open /lib/firmware/lib/firmware/isight.fw for writing.
aborting...
Aborted
```

Where's the problem?

----------


## mabovo

> I have edited source.list file as it was said in 1st step of howto. I follow steps and when I do 3rd code box, here's what happens:
> 
> 
> 
> ```
> ugljesha@blackbox:~$ sudo ift-extract -a /lib/firmware/AppleUSBVideoSupport -f /lib/firmware/isight.fw 
> ** Message: Found Mac OS X.4 intel driver
> 
> ** ERROR **: Unable to open /lib/firmware/lib/firmware/isight.fw for writing.
> ...


Same here   :Sad: 

mabovo@macbook:~$ sudo ift-extract -a /lib/firmware/AppleUSBVideoSupport -f /lib/firmware/isight.fw
** Message: Found Mac OS X.4 intel driver

** ERROR **: Unable to open /lib/firmware/lib/firmware/isight.fw for writing.
aborting...
Cancelado
mabovo@macbook:~$

Also running gstreamer-properties I got this:

mabovo@macbook:~$ gstreamer-properties
gstreamer-properties-Message: Skipping unavailable plugin 'artsdsink'
gstreamer-properties-Message: Skipping unavailable plugin 'v4lmjpegsrc'
gstreamer-properties-Message: Skipping unavailable plugin 'qcamsrc'
gstreamer-properties-Message: Skipping unavailable plugin 'esdmon'
mabovo@macbook:~$

- Not supported std output video device for autovideosink channel
- None device found std input video for v4l2 plugin

Do we need still blacklist isight_usb in Hardy ?

Can we set iSight be loaded with udev instead of hal  ?

----------


## cyberdork33

> Same here  
> 
> mabovo@macbook:~$ sudo ift-extract -a /lib/firmware/AppleUSBVideoSupport -f /lib/firmware/isight.fw
> ** Message: Found Mac OS X.4 intel driver
> 
> ** ERROR **: Unable to open /lib/firmware/lib/firmware/isight.fw for writing.
> aborting...
> Cancelado
> mabovo@macbook:~$


Try running the command without the last part:


```
sudo ift-extract -a /lib/firmware/AppleUSBVideoSupport
```




> Do we need still blacklist isight_usb in Hardy ?


I don't think it even exists




> Can we set iSight be loaded with udev instead of hal  ?


The IFT dev said that there is a switch or something to force the use of udev, but as you know, there are problems using udev to do it. It should use hal.

mabovo, you have already done this part anyway... All you need to do is compile the newer uvcvideo module

----------


## sharelove

> hello
> 
> just done your tutorial with hardy x64 and works great with ekiga not with cheese, i dunno if it's being posted or not,but i just had to do:
> 
> 
> CODE]
> $ sudo apt-get update
> $ sudo apt-get install isight-firmware-tools
> [/CODE]
> ...


Hi, your tutorial is the best! I added a response meant for you with this posting as it worked!!! Checkout the reply later on in this thread - it's for you. Thanks again!!

----------


## rickbsgu

I did this on an AMD-64 install of 8.04.  Had to do that last re-compile bit and reboot the system and then it came up fine.

I suspect it won't survive a kernel update, so I'll have to put together a script to do the last bits over, I suppose.

Be nice when this gets fixed in the mainstream distro.

thanx,
rickb

----------


## cyberdork33

> I did this on an AMD-64 install of 8.04.  Had to do that last re-compile bit and reboot the system and then it came up fine.
> 
> I suspect it won't survive a kernel update, so I'll have to put together a script to do the last bits over, I suppose.
> 
> Be nice when this gets fixed in the mainstream distro.
> 
> thanx,
> rickb


In Intrepid, you just have to place the isight.fw file in /lib/firmware everything else is in the kernel and works fine.

----------


## Heds

Sorry, I got stuck at this part:

"Go ahead and put the iSight firmware (AppleUSBVideoSupport) in /lib/firmware".

What EXACTLY am I supposed to do. I'm a newbie as far as how deep I've delved into Linux. I'm currently running ONLY Linux Mint5 on my MacBook, so any and all very specific help I can get I would greatly appreciate, thanks.

----------


## cyberdork33

> Sorry, I got stuck at this part:
> 
> "Go ahead and put the iSight firmware (AppleUSBVideoSupport) in /lib/firmware".
> 
> What EXACTLY am I supposed to do. I'm a newbie as far as how deep I've delved into Linux. I'm currently running ONLY Linux Mint5 on my MacBook, so any and all very specific help I can get I would greatly appreciate, thanks.


You have to get a file from your OSX install that has the iSight firmware in it. It is located in 
/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport

----------


## kbgabt

Hey guys.. well, this is a question that has to do a lot with this, so here it goes.
Is there a way to make the image of the webcam a little better (in pixel quality, i mean)? Because, if i'm not wrong, the image it gives under MacOS is a lot better.

----------


## sheybklyn

Man, I have been looking for DAYS how to get this webcam working and finally this howto worked seamlessly.

A tip though, if it does not work after the complete install, do the firmware extraction again. Cheese works flawlessly. Ill try Gyachi later for yahoo webcamming, I dont use Ekiga soooo I dunno..

MANY MANY MANY thanks to the how-to scriber.

Good lookin out troop.

----------


## Cifra

> You have to get a file from your OSX install that has the iSight firmware in it. It is located in 
> /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport


Well, I installed the firware package from synaptic (I'm using Intrepid).

And because nothing happened after reboot, I went on with the instructions here

http://ubuntuforums.org/showthread.php?t=958326#3

and pasted this command


```
ift-extract -a /media/Macintosh\ HD/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport
```


output:



```
Unable to read driver /media/Macintosh HD/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport
```

And this is the error that I get. I already saw that other people got this error, but I don't get how the workaround works. SO, what should I do next?

----------


## cyberdork33

> Well, I installed the firware package from synaptic (I'm using Intrepid).


I don't know what you mean by this. What "firmware package"?




> and pasted this command
> 
> 
> ```
> ift-extract -a /media/Macintosh\ HD/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport
> ```
> 
> output:
> 
> ...


That just looks like a problem with permissions on that file. You can just boot into OSX, copy the file to a thumb drive, and copy onto your Ubuntu install if it is easier. I wrote a short post on iSight in Intrepid on my blog here:
http://www.rickycampbell.com/isight-intrepid/

----------


## moviemaniac

As my integrated iSight-camera works in Skype [on Intrepid 32bit] but fails in all other applications (Cheese, VLC...) I just tried to install the driver (iMac 8,1). 

It fails at this step: 



```
root@klaus-imac:/home/klaus# sudo ift-extract -a /lib/firmware/AppleUSBVideoSupport

** (ift-extract:9169): WARNING **: Unknown driver. Please report it to https://bugs.launchpad.net/isight-firmware-tools/+filebug with machine description and Mac OS X version.

** ERROR **: Unable to find firmware in the file.
aborting...
Aborted
```


a bugreport has already been filed: https://bugs.launchpad.net/isight-fi...ls/+bug/292935

----------


## cyberdork33

> As my integrated iSight-camera works in Skype [on Intrepid 32bit] but fails in all other applications (Cheese, VLC...) I just tried to install the driver (iMac 8,1). 
> 
> It fails at this step: 
> 
> 
> 
> ```
> root@klaus-imac:/home/klaus# sudo ift-extract -a /lib/firmware/AppleUSBVideoSupport
> 
> ...


Interesting. 

but your camera works in Skype? Very strange.

You might try to find some older AppleUSBVideoSupport file floating around on the net and see if it works.

----------


## moviemaniac

Yes. The first application I tried was Skype and I was happy. Then I wanted to use Cheese today but I don't get any image. When trying to change the resolution, Cheese freezes. The camera also doesn't work with VLC, Cinelerra and one other application I don't remember right now. So I assumed there was a problem with the driver and wanted to install it acording to the howto.

I think I'll go looking for an older AppleUSB.... file now, thanks!

----------


## cyberdork33

> Yes. The first application I tried was Skype and I was happy. Then I wanted to use Cheese today but I don't get any image. When trying to change the resolution, Cheese freezes. The camera also doesn't work with VLC, Cinelerra and one other application I don't remember right now. So I assumed there was a problem with the driver and wanted to install it acording to the howto.
> 
> I think I'll go looking for an older AppleUSB.... file now, thanks!



If you run 'gstreamer-properties' it will open a window where you can configure and test the video source. That may yield helpful information as well.

----------


## moviemaniac

Well, I'll be damned - everything works with that gstreamer-thingy, but applications still don't want to work. VLC says "v4l2 error: cannot open video device (Not a directory)"

----------


## cyberdork33

> Well, I'll be damned - everything works with that gstreamer-thingy, but applications still don't want to work. VLC says "v4l2 error: cannot open video device (Not a directory)"


hmm... I'd guess it was a bug with gstreamer or with the particular applications you are trying.

----------


## moviemaniac

I just searched in launchpad after trying a usb-microscope I had lying around that didn't work too (but worked in the gstreamer-thingy) and found this: https://bugs.launchpad.net/ubuntu/+s...ux/+bug/290506

It seems that using Cheese breaks the output for other applications (but not for Skype which might be due to Skype not using Gstreamer?  :Wink:  )

Oh, and then there's a problem concerning uvcvideo which might explain why so many applications fail: https://bugs.launchpad.net/ubuntu/+s...x/+bug/287888/

I guess I'll just have to wait (and until then use my old laptop when I want to use my USB-microscope...)

I sure have encountered more bugs in Intrepid during the last week than during the last six months with hardy  :Very Happy:

----------


## cyberdork33

> I just searched in launchpad after trying an usb-microscope I had lying around that didn't work too (but worked in the gstreamer-thingy) and found this: https://bugs.launchpad.net/ubuntu/+s...ux/+bug/290506
> 
> It seems that using Cheese breaks the output for other applications (but not for Skype which might be due to Skype not using Gstreamer?  )
> 
> Oh, and then there's a problem concerning uvcvideo which might explain why so many applications fail: https://bugs.launchpad.net/ubuntu/+s...x/+bug/287888/
> 
> I guess I'll just have to wait (and until then use my old laptop when I want to use my USB-microscope...)
> 
> I sure have encountered more bugs in Intrepid during the last week than during the last six months with hardy


Good finds. Hopefully this will be fixed soon.

PS Ekiga also does not use gstreamer  :Wink:

----------


## moviemaniac

Yup, Ekiga should work, too. The thing is that I mainly need a program that allows me to capture single frames when using my USB microscope. Cheese is perfect for that purpose, VLC works, too. I'm hoping for a quick fix here, but it's good to know that I don't have to pursue not being able to install the driver for the iSight cam  :Very Happy:

----------


## cyberdork33

> Yup, Ekiga should work, too. The thing is that I mainly need a program that allows me to capture single frames when using my USB microscope. Cheese is perfect for that purpose, VLC works, too. I'm hoping for a quick fix here, but it's good to know that I don't have to pursue not being able to install the driver for the iSight cam


If nothing else you can do a screen capture  :Smile:

----------


## calebio

> In Intrepid, you just have to place the isight.fw file in /lib/firmware everything else is in the kernel and works fine.


I followed the instructions in this thread to install */lib/firmware/isight.fw*, restarted HAL, and then ran gstreamer-properties. But when I click to test Video Default Input (V4L2), I see the following on the command line:



```
gstreamer-properties-Message: Error running pipeline 'Video for Linux 2 (v4l2)': Cannot identify device '/dev/video0'. [v4l2_calls.c(463): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src3:
```

This is on an iMac6,1

EDIT: Video now works after a shutdown and reboot. Magic....

----------


## cyberdork33

> EDIT: Video now works after a shutdown and reboot. Magic....


Yep, that is key... Weird, I know, but it has to be done.

----------


## rakan21

Thank you so much it worked like a charm. Of course I was able to uninstall it without having OS X installed. I'm 100% ubuntu I had to get the AppleUSBVideoSupport off my moms OS X. 

 :Wink:

----------

