Tag Archives: linux

At last, the old webcam Logitech Quickcam Web works on my Debian box!!!

I followed whatever is suggested at http://ubuntuforums.org/showthread.php?t=654153.

I had followed the commands that are given there. Recounting them here..

aptitude install qc-usb-sources
cd /usr/src
sudo m-a prepare
sudo m-a build qc-usb
dpkg -i qc-usb-modules-[your_version].deb
modprobe quickcam

Now, firing up gqcam fails. In XTerm, it was exiting with message, device file not found. In /dev, the file that corresponds to the cam is /dev/video0. I did a ln -s video0 video and now gqcam show a vague resemblence if what lies in front of its eye.

Wow! never expected I’ll get this cam working on this beige machine. Remember, the cam is no less than seven years old. It worked OK under Windows. But after quitting Windows, I had almost given up hopes on getting this cam work.

Now, gotta learn how to use this cam under Pidgin or such applications..

here is what ‘lsusb’ says about this cam: “Bus 002 Device 002: ID 046d:0850 Logitech, Inc. QuickCam Web”

Advertisements

PCC won’t build on Debian..

Until recently, pcc was only complaining that it couldn’t locate headers. I have only tried a plain one liner helloworld.c.

It complained about missing stdio.h. I pointed the location. Then it complained about a headers used by stdio missing. This went on for upto some four or five levels of headers within headers and at last, pcc would find errors with the headers themselves. Too bad I haven’t recorded those error messages before doing a ‘cvs-update’.

After the ‘cvs-update’, pcc now refuses to build.

Below is the output of the configure script.

santhi@debian:~/testing/pcc$ ./configure –prefix=/home/santhi/testing/pcc_install
checking whether make sets $(MAKE)… yes
checking for a BSD-compatible install… /usr/bin/install -c
checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking target system type… i686-pc-linux-gnu
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ANSI C… none needed
checking whether byte ordering is bigendian… no
checking for gcc… (cached) gcc
checking whether we are using the GNU C compiler… (cached) yes
checking whether gcc accepts -g… (cached) yes
checking for gcc option to accept ANSI C… (cached) none needed
checking for flex… flex
checking for yywrap in -lfl… yes
checking lex output file root… lex.yy
checking whether yytext is a pointer… yes
checking for bison… bison -y
checking for a C compiler for mkext… not cross compiling
checking for strip… yes
checking how to run the C preprocessor… gcc -E
checking for egrep… grep -E
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking for string.h… (cached) yes
checking alloca.h usability… yes
checking alloca.h presence… yes
checking for alloca.h… yes
checking for working alloca.h… yes
checking for alloca… yes
checking for mkstemp… yes
checking for strlcat… no
checking for strlcpy… no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating cc/Makefile
config.status: creating cc/cc/Makefile
config.status: creating cc/cpp/Makefile
config.status: creating cc/ccom/Makefile
config.status: creating f77/Makefile
config.status: creating f77/f77/Makefile
config.status: creating f77/fcom/Makefile
config.status: creating config.h

Target CPU is ……………….. i386
Target OS is ………………… linux
Compiler is called …………… ppc
Installing compiler into ……… /home/santhi/testing/pcc_install/bin
Installing pre-processor into …. /home/santhi/testing/pcc_install/libexec
Using assembler ………………
Using linker …………………
Using include path ……………
Using library path ……………

Configure finished. Do ‘make && make install’ to compile and install.

It shows two functions are missing. But that was not a problem before the ‘cvs-update’ and I don’t expect that to make a big fuss after the ‘cvs-update’ as well.

Running make says..

santhi@debian:~/testing/pcc$ make
cd cc && make all
make[1]: Entering directory `/home/santhi/testing/pcc/cc’
cd cc; make all -w
make[2]: Entering directory `/home/santhi/testing/pcc/cc/cc’
gcc -I../../os/linux -I../../arch/i386 -Dmach_i386 -Dos_linux -g -O2 -DLIBEXECDIR=\”/home/santhi/testing/pcc_install/libexec\” -DINCLUDEDIR=\”/home/santhi/testing/pcc_install/include\” -c cc.c
cc.c:150: error: expected expression before ‘/’ token
cc.c:151: error: expected expression before ‘/’ token
cc.c:152: error: expected expression before ‘/’ token
cc.c:152: error: initializer element is not constant
cc.c:152: error: (near initialization for ‘endfiles[0]’)
make[2]: *** [cc.o] Error 1
make[2]: Leaving directory `/home/santhi/testing/pcc/cc/cc’
make[1]: *** [cc] Error 2
make[1]: Leaving directory `/home/santhi/testing/pcc/cc’
make: *** [cc] Error 2

This error, when the code apparently compiles on NetBSD and OpenBSD systeems, presumably both systems use gcc.

I am left wondering what is wrong with this code. Contacting thee mailing list got a wiki page up in the pcc official site. They suggested that some header or lib path is wrongly set.

I searched for the error message over the Internet. Google could only find some 150 (give or take 10) hits of which only about a handful had the exact error message. Of them, one suggestion was, some build-essential packages are missing on the system.

configure script’s screen output shows nothing so badly missing. So, what am I staring at now? A correct C code for sure. A working gcc(4.2 that is available on Debian unstable). Some missing packages? What packages are missed so badly? The investigation continues..

continuing with building pcc on Debian..

Its been a long time since I last updated about my work on pcc. I contacted the Debian Developer who had filed an ITP for pcc. But he had told he was busy and will send some patches along with explanations to get pcc compile a ‘hello world’ program.

I was growing curious and had lot of time on hand to look around. So, I took the source rpms from the Downloads section.

Installed alien and rpm and made debs from them as described here.

But the rpm way looks like too much of work for now. So, I wrote a gdb command file with 100s of ‘s frame bt’ after setting args and breakpoints and running. Then I built the pcc from cvs and ran gdb with the command file. GDB promptly spewed out all the lines of code that were executed along with the requested information. But haven’t looked in the 1000s of lines of code that is traced by this command file yet. I hope to figure out the problem today before I fall asleep 😀

Some Google tech talks on git

Git is the source control system for the Linux kernel. From the talks, git looks like it provides just the mechanisms to manage a fully anarchic development model. The ‘manage’ bit comes into the play. There is no one single boss. Instead, you can download the source tree from whoever you trust the most. ‘Trust’ is the keyword that will make more people download your source tree. The more the number of people downloading the sources from your repository, the more they trust in you and you gain that much wide recognition. Trust, being what it is, needs lots of work. So, even though git supports an anarchic model, ‘trust’ comes in to put some order in it.

Watch these videos yourself to dispel the long held beleifs of software development models.

some upcoming slick browsers

Kazehakase, Hv3 and Midori look promising for a computer that I have here. All these look slick, with very small claims for real estate. That is a boon for my 128 meg, over six!!! year old computer. It is not my primary computer, but I don’t like to have it lying idle. So at least I can use the oold computer for some basic web browsing.

Now, I use Epiphany browser on it. Sometimes that slows down the computer a lot largely due to low RAM. It seems there are still people who use low RAM machines, and I’ll be lucky to find small browsers and other applications taht don’t hog memory on my old computer.

Just installed Galeon to see how it feels on this antique computer. Its been ages I used Galeon. It was the only browser that would work on this computer only a couple of years ago. But when I discovered Epiphany, I had almost forgot about Galeon.

PS: I can upgrade the computer. But it uses an obsolete Intel850 chipset with RDRAM. So I see it as an antique piece for anyone interested. I find this computer interesting, so I’ll not upgrade it in the foreseeable future. I’ll use my laptop for serious work and use this for some pastimes and experimenting.

A cool looking application for Linux

http://www.linux.com/feature/120000.

FSLint. Sounds a bit like Windows’ Disk Cleanup. But who knows. I haven’t used Windows in ages and got only a less then vague memory of what Disk Cleanup does.

Buying a computer? Ignore these spare parts

http://www.leenooks.com/ is a place that keeps a list of hardwares that don’t work with Linux. By extension, they can be safely assumed to not work with any other FOSS systems such as *BSD or any other thing.

Even worse, when they get old, the manufacturer might choose to stop supporting them and leave you with no drivers to run these hardwares on a new operating system. By making them work on Linux or other FOSS systems, a loose end is set from where interested people can continue to write drivers for running these hardwares on new operating systems.