HomeHome ArchiveArchive

Installing a Creative WebCam PRO eX under Linux


The following steps were necessary to bring a Creative WebCam Pro eX up and running:

  1. Get the pwcx module (to have higher resolutions etc.) (the 2.4.20 module compiled with gcc 3.2 would work just fine, allthough I’m running 2.4.22 compiled with gcc 3.3.2)
  2. Install the pwcx driver under ` /lib/modules/usb` so that the module won’t be erased on each new make modules_install.
  3. Compile and install kernel with the following options:
    1. usb-uhci as a module (the usb module would NOT let the pwc driver recognize the cam)
    2. enable video4linux as a module (required by the pwc driver)
    3. get the 8.12 release of the pwc driver (the version shipped with kernel 2.4.22 (version 8.10) would not recognize the cam)
    4. replace the respective files under /usr/src/linux/drivers/usb with the ones from the pwc sources/tarball
    5. disable symbol versioning (otherwise the pwcx module wouldn’t work)
  4. modprobe usb-uhci
  5. modprobe pwc (modprobing for pwc before probing for usb-uhci wouldn’t recognize the cam)
  6. insmod --force /lib/modules/usb/pwcx-2.4.20.o (you can make that automatic)
  7. (Make the required /dev/video* devices - here they were made by the first video app I’ve installed (under Debian))


Sound input is over a C-Media Electronics Inc CM8738 onboard soundchip/-card. Output is over passive audio boxes or over the headset.

Both input and output are horribly low. Video conferencing without voice is useles. This sucks. Sound output from other programms (f.ex. xmms) is loud enough. Does anybody know why? Is the creative headset plain crap (expensive crap for that matter) or is it a software problem?


I’ve tried to run camstream and gnomemeeting. Both seem to be running OK.


I’d be happy to hear from you if this HOWTO was useful for you (makes me feel better and write more useful howtos).

Enjoy - Tomas Pospisek

Embedding Ruby in C++


Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in Perl). It is simple, straight-forward, extensible, and portable. This class embeds the Ruby interpreter in a C++ application.

Usage examples

  RubyEval& ruby = *RubyEval::instance();

  ruby.eval("puts 'hello ruby'");

  assert( NUM2INT( ruby.eval("1+1") ) == 2 );

  assert(RubyEval::val2str(ruby.eval("'Regexp'.gsub(/x/, 'X')")) == "RegeXp");


Class documentation

Public Methods


\~RubyEval ()


run_file (const char *filename, ostream &out=cout)


Run Ruby interpreter with filename. **


eval (const char *code)


Evaluate code string. **


eval (const char *code, ostream &errout)


Evaluate code string and print errors. **


evalOk ()


Last evaluation was successful. **

Static Public Methods

RubyEval * 

instance ()


Singleton Instance. **


val2str (const VALUE rval)


Convert Ruby value to string. **


strval2str (const VALUE rval)


Convert Ruby string value to string. **


exception_print (ostream &errout=cerr)


Get Ruby error/exception info an print it. **


exception_info ()


Get Ruby error/exception info as string. **

Tuning Linux for a Toshiba Satellite 1800-712


Here are infos on how to tune Linux for better performance on the following hardware. It should apply to other machines than the specific Toshiba modell provided that some of your HW is the same. It is meant as a supplement to Enrico Segre’s page and jxh’s page that describe general configuration more in detail. Toshiba maintains quite good Linux pages. Useful tools are Jonathan Buzzard’s Toshiba Utilities, klaptop and apm.

I’d be happy to hear from you if you’ve succeeded in resolving any of the remaining problems on your toshiba.

Enjoy - Tomas Pospisek


Laptop Toshiba Satellite 1800-712 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 01) IDE Interface ALi Corporation M5229 IDE (rev c3) VGA compatible controller Trident Microsystems CyberBlade XPAi1 (rev 82) - - Kernel 2.4.22 XFree86 4.3.0 ——————————– ——————————————————————–


The performance under a standard distribution kernel was painfully slow - hickups in the X screensaver were the rule. Freezes for a few seconds up to half a minute after heavy disk access happened. The ALi 15x3 driver remedies that - it quadrupled disk performance (!). Make sure that you put all settings in the BIOS to maximum performance (even the Fan setting!?!?!?!!!) otherwise the driver won’t be able to switch on DMA. Tuning the IDE system with hdparm didn’t bring any advantage. The IDE subsystem is currently performing at:

petertosh:~# hdparm -Tt /dev/hda

Timing buffer-cache reads:   128 MB in  1.20 seconds =106.67 MB/sec
Timing buffered disk reads:  64 MB in  3.48 seconds = 18.39 MB/sec

See also my results here. I used the rawtest program to test raw read/write throughputs.


Under the 2.4.18 kernel the sound module would die after a suspend/resume if it had some client playing music. The 2.4.22 kernel fixes that problem.


At the moment I’ve compiled the VESA Framebuffer driver into the kernel. The Trident FB driver is giving me rather interesting psychadelic effects. For X I’m using Alan H’s trident X driver, version 4.3.0.

I needed to upgrade libxine from 1-beta9-1 to 1-rc0a-1 to be able to watch movies - before that X would crash with the x11 driver and performance with the xv and the xshm driver would be horrible.


I’ve read somewhere that not using ACPI would fix the problem that the laptop will freeze after a reboot. It didn’t fix it here - it’s still freezing.