I have compiled cqcam-0.90pre8 on Sparc4 w/RH6.0, with a hack suggested by the developer (http://www.cs.duke.edu/~reynolds/cqcam/) |Here's a nice kludge to try: at the top of port.C and port.h in the |libcqcam directory, add the line | |#define arm | |and try building again. IOW, pretend that you're building this on an ARM |processor and force the system to use /dev/port instead of direct I/O |through <asm/io.h>. /dev/port support is slow, BTW, because it requires |two context switches for every 4- or 12-bit chunk of data. it compiles, but when I run it this happens: [arild@vega arild]$ sudo xcqcam Killed [arild@vega arild]$ Nov 26 18:16:38 vega sudo: arild : TTY=pts/0 ; PWD=/home/arild ; USER=root ; COMMAND=/usr/bin/tail -f /var/log/messages Nov 26 18:17:24 vega sudo: arild : TTY=pts/0 ; PWD=/home/arild ; USER=root ; COMMAND=/usr/local/bin/xcqcam Nov 26 18:17:24 vega kernel: Unable to handle kernel NULL pointer dereference<1>tsk->mm->context = 0000004a Nov 26 18:17:24 vega kernel: tsk->mm->pgd = f0351000 Nov 26 18:17:24 vega kernel: \|/ ____ \|/ Nov 26 18:17:24 vega kernel: "@'/ ,. \`@" Nov 26 18:17:24 vega kernel: /_| \__/ |_\ Nov 26 18:17:24 vega kernel: \__U_/ Nov 26 18:17:24 vega kernel: xcqcam(1215): Oops Nov 26 18:17:24 vega kernel: PSR: 049000c5 PC: f00f1758 NPC: f00f175c Y: 00000000 Nov 26 18:17:24 vega kernel: g0: 00000000 g1: ffffff7f g2: 0000fc00 g3: 0000037a g4: 00000000 g5: 00000000 g6: f348e000 g7: ffffff00 Nov 26 18:17:24 vega kernel: o0: 0002c954 o1: 0002c954 o2: 00000000 o3: f29d0578 o4: 0000037a o5: 0000ffff sp: f348ff08 o7: f0044e8c Nov 26 18:17:24 vega kernel: l0: f29d0560 l1: 5000cd78 l2: 503c5be8 l3: 00000001 l4: 041d1b01 l5: 00000000 l6: 00000000 l7: 5002891c Nov 26 18:17:24 vega kernel: i0: ffffffea i1: 0002c954 i2: 00000001 i3: 0000037a i4: 00010000 i5: 500298e8 fp: f348ff70 i7: f0011398 Nov 26 18:17:24 vega kernel: Caller[f0011398] Nov 26 18:17:24 vega kernel: Caller[00017e18] Nov 26 18:17:24 vega kernel: Instruction DUMP: 80a3000d 1880000e 8610000c <c40b0000> c42a0000 86100000 80a0e000 06bffff2 8410000a According to Patrick, this looks like a kernel bug in the /dev/port-driver for Sparc Linux. -Arild Hestvik
You need to run that oops log through the 'ksymoops' program for it to be of any use.
Reading Oops report from the terminal Nov 26 18:17:24 vega sudo: arild : TTY=pts/0 ; PWD=/home/arild ; USER=root ; COMMAND=/usr/local/bin/xcqcam Nov 26 18:17:24 vega kernel: Unable to handle kernel NULL pointer dereference<1>tsk->mm->context = 0000004a Nov 26 18:17:24 vega kernel: tsk->mm->pgd = f0351000 Nov 26 18:17:24 vega kernel: \|/ ____ \|/ Nov 26 18:17:24 vega kernel: "@'/ ,. \`@" Nov 26 18:17:24 vega kernel: /_| \__/ |_\ Nov 26 18:17:24 vega kernel: \__U_/ Nov 26 18:17:24 vega kernel: xcqcam(1215): Oops Nov 26 18:17:24 vega kernel: PSR: 049000c5 PC: f00f1758 NPC: f00f175c Y: 00000000 Nov 26 18:17:24 vega kernel: g0: 00000000 g1: ffffff7f g2: 0000fc00 g3: 0000037a g4: 00000000 g5: 00000000 g6: f348e000 g7: ffffff00 Nov 26 18:17:24 vega kernel: o0: 0002c954 o1: 0002c954 o2: 00000000 o3: f29d0578 o4: 0000037a o5: 0000ffff sp: f348ff08 o7: f0044e8c Nov 26 18:17:24 vega kernel: l0: f29d0560 l1: 5000cd78 l2: 503c5be8 l3: 00000001 l4: 041d1b01 l5: 00000000 l6: 00000000 l7: 5002891c Nov 26 18:17:24 vega kernel: i0: ffffffea i1: 0002c954 i2: 00000001 i3: 0000037a i4: 00010000 i5: 500298e8 fp: f348ff70 i7: f0011398 Nov 26 18:17:24 vega kernel: Caller[f0011398] Nov 26 18:17:24 vega kernel: Caller[00017e18] Nov 26 18:17:24 vega kernel: Instruction DUMP: 80a3000d 1880000e 8610000c <c40b0000> c42a0000 86100000 80a0e000 06bffff2 8410000a Nov 26 18: 17:24 vega kernel: Unable to handle kernel NULL pointer Nov 26 18:17:24 vega kernel: tsk->mm->pgd = f0351000 Nov 26 18:17:24 vega kernel: \|/ ____ \|/ Nov 26 18:17:24 vega kernel: "@'/ ,. \`@" Nov 26 18:17:24 vega kernel: /_| \__/ |_\ Nov 26 18:17:24 vega kernel: \__U_/ Nov 26 18:17:24 vega kernel: xcqcam(1215): Oops Nov 26 18:17:24 vega kernel: PSR: 049000c5 PC: f00f1758 NPC: f00f175c Y: Using defaults from ksymoops -t elf32-sparc -a sparc Nov 26 18:17:24 vega kernel: g0: 00000000 g1: ffffff7f g2: 0000fc00 g3: Nov 26 18:17:24 vega kernel: o0: 0002c954 o1: 0002c954 o2: 00000000 o3: Nov 26 18:17:24 vega kernel: l0: f29d0560 l1: 5000cd78 l2: 503c5be8 l3: Nov 26 18:17:24 vega kernel: i0: ffffffea i1: 0002c954 i2: 00000001 i3: >>PC; f00f1758 <n_tty_ioctl+4a4/1ab4> <===== Nov 26 18:17:24 vega kernel: Caller[f0011398] Nov 26 18:17:24 vega kernel: Caller[00017e18] Nov 26 18:17:24 vega kernel: Instruction DUMP: 80a3000d 1880000e Trace; f0011398 <get_options+1390/1634> Trace; 00017e18 Before first symbol Code; f00f1758 <n_tty_ioctl+4a4/1ab4> 0000000000000000 <_PC>: Code; f00f1758 <n_tty_ioctl+4a4/1ab4> 0: 80 a3 00 0d cmp %o4, %o5 Code; f00f175c <n_tty_ioctl+4a8/1ab4> 4: 18 80 00 0e bgu 3c <_PC+0x3c> f00f1794 <n_tty_ioctl+4e0/1ab4> Code; f00f1760 <n_tty_ioctl+4ac/1ab4> 8: 00 00 00 00 unimp 0
/dev/port is not and will never be supported on Sparc