Webcam support in Linux

SectWebCam.png| video< | capturing< | streaming< | multimedia< in ubuntu (soho)< | device access< |

Here we compare compatibility of a few Web cameras with Ubuntu 8.04 (Hardy) and Fedora Core 8. Please note that in 2011 situation the improved significantly, and the article is rather outdated.Read more

Linux Hints


General Linux questions

Running a privileged command requires sudo. If it is performed from under apache, sudo says that it requires tty. To fix< it, run visudo and comment out a string in /etc/sudoers

 #Defaults requiretty<

or override its value for apache

 Defaults:apache !requiretty<

I have pre-built RPMs for CentOS 5, so for this OS just attach to the repository< and install RPMs:

rpm -i vitki-net-release-5-3.el5.noarch.rpm
yum install freetype cairo libXft
yum install gedit gedit-plugins<

Otherwise, you have to compile yourself.

Get the patches from< (or google for "david turner subpixel"):

Get the SRPMS<

rpm -i *.src.rpm<


BuildRoot: %{_tmppath}/%{name}-%{version}-root
Patch0: libcairo-1.2.4-lcd-cleartype-like.diff
%setup -q
%patch0 -p1

Note: Enabling bytecode interpreter not necessary, but fun to see windows fonts.


# Disables patented bytecode interpreter.  Setting to 0 enables
# the bytecode interpreter.
%define without_bytecode_interpreter    0
Source1: freetype-doc-%{version}.tar.bz2
Source2: ft2demos-%{version}.tar.bz2
Patch0: freetype-2.2.1-subpixel-disable-quantization.diff
# Add -lm when linking X demos
Patch5: ft2demos-2.1.9-mathlib.patch
Patch20:  freetype-2.1.10-enable-ft2-bci.patch
%setup -q -b 1 -a 2
%patch0 -p1
pushd ft2demos-%{version}
%patch5 -p1 -b .mathlib


BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Patch0: libxft-
%setup -q
%patch0 -p1
# Disable static library creation by default.
%define with_static 0


rpmbuild -bb ~/rpmbuild/SPECS/freetype.spec
rpmbuild -bb ~/rpmbuild/SPECS/libXft.spec
rpmbuild -bb ~/rpmbuild/SPECS/cairo.spec<

Subpixel smoothing (LCDs)

Subpixel order: RGB


 $ java -version
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-44)
$ alternatives --install /usr/bin/java java /usr/java/jre1.6.0_14/bin/java 2
$ alternatives --config java
There are 2 programs which provide 'java'.
Selection Command
*+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
2 /opt/jdk1.6.0_07/bin/java
Enter to keep the current selection[+], or type selection number: 2
$ java -version
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)<

While running

 rpm -ihv *.rpm<

you get the error message

 cpio: MD5 sum mismatch on rpms ...<

How to fix<:

 rpm --nomd5 -ihv *.rpm<

Since Yum does not have a force flag, rpm commands must be used along with Yum to do some heavy lifting. Here are a few ways to force the reinstall of a broken package on a Yum Managed system.
Yum Remove and then Install.The easiest solution is to yum remove the package and then yum install the same package. If there are too many dependencies at stake with the package in question, try another method.

 yum remove PACKAGE
yum install PACKAGE<

Force Erase and then Yum Install.RPM dependencies sometimes make a simple yum remove impossible and Yum will want to erase your entire OS before moving on. In this case, use rpm to force erase, then yum to install.

 rpm -e --nodeps PACKAGE
yum install PACKAGE<

Prune RPM Database and then Yum Install.If your package install is so corrupted that an rpm -e is dangerous or impossible, even with --nodeps, remove the package from the local RPM database to trick yum into reinstalling the package. No files are deleted when using rpm -e with --justdb.

 rpm -e --justdb --nodeps PACKAGE
yum install PACKAGE<

When I build a package, linking fails with

/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status<

This happens because a symbolic link is absent

/usr/lib/ -> /usr/lib/<

This is solved by

yum install libtool-ltdl-devel<

Update OS:

yum -y update<

Enable the DAG repository:

rpm –import
rpm -i rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum update

First of all, consider qutIM< (fc11 repo<).

For smileys to work, obtain oleaut32.dll< from windows and copy into ~/.wine/dosdevices/c:/windows/system32/.

Run winecfg and open "libraries" tab. Choose existing oleaut32.dll or insert this item manually, edit it and select "Native (Windows)".

To avoid choppy sound, run winecfg and open "sound" tab. Choose ALSA adn set hardware acceleration to "Emulation".

Install qipinfium9030.exe< into ~/.wine/dosdevices/c:/.

When you run Qip for the first time, wine detects and attempt to show a web page. Let it install GECKO or manually do it: download and install Mozilla ActiveX Control 1.7.12<. Ignore installer's requirement to point to mozilla directory.

Obtain and copy msvcp60.dll< into /system32. Copy Mozilla Control DLLs into /system32:

find ~/.wine/dosdevices/c\:/Program\ Files/Mozilla\ ActiveX\ Control\ v1.7.12/* -iname '*.dll' -type f  | while read x; do echo cp "$x" "~/.wine/dosdevices/c\:/windows/system32/"; done<

To have correct russian character set, run as

LC_ALL=ru_RU.CP1251 wine "c:\usr\local\qip\QIP Infium\infium.exe"<


Download Mozilla ActiveX Control 1.7.12<.Install it and copy all DLLs into /system32. If animated smileys don't work, run qip with argument /oldgif

wine "~/qip.exe" /oldgif<

Complete run line:

env WINEPREFIX="~/.wine" wine "C:\Program Files\QIP\qip.exe" /oldgif


From here< (via here<)

cat /var/log/audit/audit.log | audit2allow -m local > local.te
vim local.te
checkmodule -M -m -o local.mod local.te
semodule_package -o local.pp -m local.mod
semodule -i local.pp<

This program requireselevated user privileges<.Back in 2005 the Portland project< proposedsomething likeRequiresRoot=true< indesktop entries<,then shifted to xdg-su<,but it was removed from 1.0. Ubuntu people adopted KDE approach: mark such entries by


The menu builder shows such entries only to sudoers, i.e. users beloging to the admin group.This is right the case for synaptic.

PROCESS STATE CODES -different values that the s, stat and state output specifiers(header "STAT" or "S") will display to describe the state of a process.

D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
W paging (not valid since kernel 2.6.xx)
X dead (should never be seen)
Z Defunct ("zombie") process, terminated but not reaped by its parent.
 rsync --progress -xaSHAX sourcedir/ destdir/<
 tune2fs -O +journal_data_writeback /dev/sdb9
tune2fs -O +dir_index /dev/sdb9
e2fsck -Df /dev/sdb9<

ext2 to ext3:

 umount /dev/sda9
tune2fs -j /dev/sda9
fsck.ext3 -f /dev/sda9
mount -t ext3 /dev/sda9<

ext3 to ext2:

 umount /dev/sda9
tune2fs -O ^has_journal /dev/sda9
fsck.ext2 -f /dev/sda9
mount -t ext3 /dev/sda9<

Trying to mount using loop device prints

 mount: could not find any free loop device<

See why devices are busy

 losetup -a<

And probably free one

 losetup -d /dev/loop5<

or all

 for f in /dev/loop*; do losetup -d $f; done<

You can increase number of available devices.Create /etc/modprobe.d/loop

 options loop max_loop=64<

and reload loop module (free all loop devices beforehand)

 rmmod loop
modprobe loop<

This will make devices appear automatically.
Newer kernels (2.6.21+) use a dynamic allocation of loop devices,so you will only have to create the filesystem representations:

 for ((i=8;i<64;i++)); do
mknod -m 0600 /dev/loop$i b 7 $i

Run it as

 ssh -vvv ...<

and see the reason.If it stops pending on reverese DNS lookup, check twice your DNS zones for duplicate records.Also restart your DNS server and see what it spits in /var/log/messages.
If it pends in the gssapi-with-mic authentication, edit /etc/ssh/ssh(d) and set

 GSSAPIAuthentication no<

Another reason for hang could be slow DNS. SSH uses reverse DNS check of incoming IP address.

 UseDNS no<

Kill hanging process with "-9".

 rpm --verifydb<

and if problems are found

 rm -f /var/lib/rpm/__db*
rpm --rebuilddb<

On FC9:

 yum reinstall package<

On FC7-8 use a trick - remove package from database only:

 rpm -e --justdb --nodeps package
yum install package<

Add this in /etc/yum.conf:


Add this in /etc/apt/apt.conf.d/proxy:

 Acquire { Retries "0"; HTTP { Proxy ""; }; };<

Reinstall RPMS: grub, fedora-logos (for grub splash), kernel

 vi /boot/grub/grub.conf<
 title Fedora Core 8 (
kernel /vmlinuz- ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-<
 grub-install --no-floppy --recheck
grubby --grub --add-kernel=/boot/vmlinuz-
--title='Fedora Core 8 ('
--initrd /boot/initrd-
--make-default --copy-default<
 rpm -qp --scripts some_package.rpm
rpm -qp --triggers some_package.rpm<

With e2fsprogs this works online for ext3 and ext4 on fedora 8 and 11:

pvresize /dev/sda3
lvextend /dev/VolGroup00/LogVol00 -L +2G
resize2fs /dev/mapper/VolGroup00-LogVol00<

If you like GUI, use system-config-lvm.
If your linux runs under vmware, extend vmware disk as:

vmware-vdiskmanager.exe -x 10GB disk.vmdk<

For details refer to vmware disk section<.


$ rpm -e PACKAGE
error: "PACKAGE" specifies multiple packages<


$ rpm -e --allmatches PACKAGE<


   $ gconftool-2 --dump / > backup.xml<


   $ gconftool-2 --load backup.xml<

I'm using an HP DeskJet 840C connected to the parallel port of a Fedora Core 5with cups-1.2.5-1, hpijs-1.6.6a-1.1, and hplip-1.6.6a-1.1.All packages are binaries from the Fedora repository.
The printer has been successfully installed using the hp:/ backend, andthe device URI in CUPS is hp:/par/DESKJET_840C?device=/dev/parport0. Thebuilt-in test page works, and CUPS can produce its test page -- however, allprintouts are unreadable due to what I presume are cartridge alignmentissues.
If I attempt to run hp-align, I get the following:

 HP Linux Imaging and Printing System (ver. 1.6.6a)
Printer Cartridge Alignment Utility ver. 2.5
Using device: hp:/par/DESKJET_810C?device=/dev/parport0
[WARNING]: No status available for device.
An alignment page will be printed.
Please load plain paper into the printer. Press to continue or
'q' to quit.
[ERROR]: Channel write error
Traceback (most recent call last):
base.g.Error: ('Device I/O error', 12)<

The fix is:

  $ su
$ cd /usr/share/hplip/data/xml
$ gvim models.xml<

Locate this section:

<model name="DESKJET_815C">


<io support="1" mode="0" control="0" mfp-mode="2" scan-port="0"/><


<io support="1" mode="1" control="0" mfp-mode="2" scan-port="0"/><

Also see here<

Running "strace -f -o trace.log some_multithreaded_app" (BTW -f is importantas otherwise strace wouldn't print at least pids) on Fedora Core 2where the application links with the NPTL implementation by defaultcan very probably freeze sooner or later at a point like:

  futex(0x583844, FUTEX_WAIT, 2, NULL)    = -1 EINTR (Interrupted system call)<

I found this can be helped by disabling NPTL via running strace as(don't ask me why 2.4.19 ;) )

  export LD_ASSUME_KERNEL=2.4.19 strace -f -o trace.log some_multithreaded_app<

Problem: Nautilus refuses to open *.wmv claiming it is *.asf.

 $ vi /usr/share/mime/packages/<

Locate the ASF entry and add:

<alias type="video/x-ms-wmv"/><

Then rebuild the MIME database and restart nautilus

 update-mime-database /usr/share/mime
killall nautilus<

Install the following: Xvfb, startx, import (from ImageMagick)
Now let’s try to run Firefox without a visible display.

  • Start Xvfb.
 startx -- `which Xvfb` :1 -screen 0 1024x768x24<
  • start Xvfb running on :1 with a screen size of 1024×768 and 24bits/pixel color depth.
 DISPLAY=:1 firefox<
  • Take a screenshot.
 DISPLAY=:1 import -window root firefox.png<

How to uninstall CPanel

WARNING! This is for advanced users of the shell, this is NOT a howto or tutorial. The thing is, I googled how to uninstall cpanel and for once in my life I came up empty.. And certainly the cpanel official sites themselves don't provide any instructions other than to say "Dont uninstall it, reinstall your entire operating system without it.".. they sure don't seem confident that they know exactly what their code is doing. At this point this is more of a series of notes than a guide. Ok now go have some fun!

Why Uninstall?

Why? Because I have always built my servers, php installations, perl installs, ruby, iptables, everything from source. I read the INSTALL/README docs, I read the man pages, and I read the info pages as well. I google for configuration advice, I google for tips, and I don't need a web-based perl script messing my stuff up!

The main problems I had with cpanel, which really is a great bit of software for millions of website developers, is that it was incredibly sneaky! I used it for about 6 months and spent that entire time trying to figure out what the heck it was doing. A couple issues that I really disliked, it takes over your bind install, it takes over your apache install, it takes over your php install. And although it does let you configure some things (very few) for custom configurations and the like, I just don't need any of that. By removing the darn thing I am saving GIGS of space on my server, tons of bandwidth, and most importantly to me I am saving CPU and processing time along with RAM and IO speed.Read more

Story URL: 

BidiLink, SOcat, RLwrap - Linux utilities for administrator

bidilink< is a general purpose Unix tool for linking two bidirectional data streams together. It extends the standard Unix "filter" paradigma to bidrectional streams.

socat< is a relay for bidirectional data transfer between two independent data channels. Each of these data channels may be a file, pipe, serial device, pseudo terminal, a socket, an SSL socket, proxy CONNECT connection, a file descriptor, readline, a program, or a combination of these.Read more

Syndicate content