>>>>> "Colin" == Colin Paul Adams <colin@xxxxxxxxxxxxxxxxxx> writes: >>>>> "Andrew" == Andrew Jordan <aj@xxxxxxxxxxxx> writes: Andrew> Hi All, Has anyone here managed to get the Phillips ToUcam Andrew> webcam working under Fedora Core 4? Colin> Yes - I had it working (it's not working now - I think Colin> probably because of an automatic kernel upgrade - I suspect Colin> if I just relink, that will do the trick). Hm. Just tried Colin> that - it's not quite so simple. I'll check it out soon. Well, it nearly was. First I had to do a rmmod ov511 and rmmod ovcamchip Then within the patched 2.28 driver directory: make clean make make install then modprobe ov511 and it works. Colin> BTW, I had to patch the driver. I emailed my changes to the maintainer of the driver, but heard nothing. Since the 2.28 sources are rather old (over a year), I guess it is not under development. So here is my patch against a 2.28 source tree: diff -u ov511-2.28/ov511_core.c ov511-2.28-patched/ov511_core.c --- ov511-2.28/ov511_core.c 2004-07-13 12:54:22.000000000 +0100 +++ ov511-2.28-patched/ov511_core.c 2005-06-20 19:58:07.000000000 +0100 @@ -4883,7 +4883,7 @@ while (size > 0) { page = kvirt_to_pa(pos); #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 3) || defined(RH9_REMAP) - if (remap_page_range(vma, start, page, PAGE_SIZE, + if (remap_pfn_range(vma, start, page >> PAGE_SHIFT, PAGE_SIZE, PAGE_SHARED)) { #else if (remap_page_range(start, page, PAGE_SIZE, PAGE_SHARED)) { diff -u ov511-2.28/ovcamchip_core.c ov511-2.28-patched/ovcamchip_core.c --- ov511-2.28/ovcamchip_core.c 2004-07-16 11:58:25.000000000 +0100 +++ ov511-2.28-patched/ovcamchip_core.c 2005-06-19 16:57:36.000000000 +0100 @@ -582,7 +582,7 @@ static struct i2c_client client_template = { I2C_DEVNAME("(unset)"), - .id = -1, + /* .id = -1,*/ .driver = &driver, }; diff -u ov511-2.28/ovfx2.c ov511-2.28-patched/ovfx2.c --- ov511-2.28/ovfx2.c 2004-07-16 00:32:08.000000000 +0100 +++ ov511-2.28-patched/ovfx2.c 2005-06-20 19:58:13.000000000 +0100 @@ -2504,7 +2504,7 @@ while (size > 0) { page = kvirt_to_pa(pos); #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 3) || defined(RH9_REMAP) - if (remap_page_range(vma, start, page, PAGE_SIZE, + if (remap_pfn_range(vma, start, page >> PAGE_SHIFT, PAGE_SIZE, PAGE_SHARED)) { #else if (remap_page_range(start, page, PAGE_SIZE, PAGE_SHARED)) { diff -u ov511-2.28/saa7111-new.c ov511-2.28-patched/saa7111-new.c --- ov511-2.28/saa7111-new.c 2004-07-13 13:04:46.000000000 +0100 +++ ov511-2.28-patched/saa7111-new.c 2005-06-19 16:58:08.000000000 +0100 @@ -520,7 +520,7 @@ static struct i2c_client client_template = { I2C_DEVNAME("(unset)"), - .id = -1, + /* .id = -1,*/ .driver = &driver }; diff -u ov511-2.28/tda7313.c ov511-2.28-patched/tda7313.c --- ov511-2.28/tda7313.c 2004-07-15 11:06:44.000000000 +0100 +++ ov511-2.28-patched/tda7313.c 2005-06-19 16:58:33.000000000 +0100 @@ -202,7 +202,7 @@ static struct i2c_client client_template = { I2C_DEVNAME("tda7313"), - .id = -1, + /* .id = -1,*/ .driver = &driver, }; -- Colin Adams Preston Lancashire