...making Linux just a little more fun!

next -->


By Kat Tanaka Okopnik

Submit comments about articles, or articles themselves (after reading our guidelines) to The Editors of Linux Gazette, and technical answers and tips about Linux to The Answer Gang.


[In reference to the article Re-compress your gzipp'ed files to bzip2 using a Bash script (HOWTO) - By Dave Bechtel]

Dmitri Rubinstein (rubinste at graphics.cs.uni-sb.de)
Thu Feb 9 01:28:46 PST 2006

There is following code in the script:

   # The Main Idea (TM)
     time gzip -cd $f2rz 2>>$logfile \
         |bzip2 > $f2rzns.bz2 2>>$logfile
   #  rc=$?
     [ $? -ne 0 ] && logecho "!!! Job failed."
   # XXX Currently this error checking does not work, if anyone can fix it
   # please email me. :-\

The gzip error code will be always ignored so error checking will not work correctly.

"set -o pipefail" should help in this case, however it is available only since bash 3.0.
Maybe better to use PIPESTATUS variable. e.g:

  > true | false | true
  > echo ${PIPESTATUS[*]}
  0 1 0


[In reference to the article A Short Tutorial on XMLHttpRequest() - By Bob Smith ]

Willem Steyn (wsteyn at pricetag.co.za)
Mon Feb 20 09:30:41 PST 2006

This example in the 4th exercise works great.Just one problem that I have with all these AJX & XMLHTTPREQUEST is that the user's browser (IE) prompts every time at the call-back that the page is trying to access off-site pages that are not under its control, and that it poses a security risk. How do you get past this without asking the user to turn off the security settings?

Take for example a real-world scenario where a transactional page must get a real-time transaction back from another server-based page. Then upon clicking something like a SUBMIT button, the user is going to get this little message popping up, stating that it is a security risk. Any ideas?

Thanks in advance.

[Ben] -

Hi, Willem -

First off, please turn off the HTML formatting when emailing TAG. Many people in help forums, including a number of people here, will not take the trouble to answer you if you require them to wade through HTML markup, and will discard your mail unread; others will just be annoyed at having to clean up the extraneous garbage. In addition, you've tripled the size of your message. I've corrected the above problems, but some information may have been lost in the process.

Pardon me... you've used 'IE' and 'security' in the same sentence, without the presence of modifiers such as 'bad' or 'non-existent'. I'm afraid that makes your sentence unparseable. :)

As I sometimes point out to people, the term "Linux" in "Linux Gazette" tends to imply certain things - one of which is that answering questions like "How do I make IE do $WHATEVER" comes down to "use Linux". Asking us how to fix broken crapware in a legacy OS is, I'm afraid, an exercise in futility; the very concept of "security settings" in a *browser*, a client-end application designed for viewing content, is something that can only be discussed after accepting the postulate that water does indeed run uphill, and the sun rises in the west.

Perhaps your client can mitigate the problem somewhat by running a browser that isn't broken-as-designed; Mozilla Firefox is a reasonable example of such a critter. For anything beyond that, I'd suggest asking in Wind0ws- and IE-related forums.


[In reference to the article PyCon 2006 Dallas - By Mike Orr (Sluggo) ]

David Goodger (goodger at python.org)
Sun Mar 5 07:49:28 PST 2006

There was a grocery store (Tom Thumb's) a 30-minute walk away, or you could take the hotel's free shuttle service. Alternatively, a Walmart with a large grocery section was a 10-minute walk away, just behind the CompUSA store (not to be confused with the CompUSA headquarters building beside the hotel).

Talkback:124/smith.html (1)

[In reference to the article Build a Six-headed, Six-user Linux System - By Bob Smith ]

Richard Neill rn214 at hermes.cam.ac.uk
Sat Mar 4 09:23:16 PST 2006

Re multi-seat computers, I think you are heading for much pain to use the /dev/input/X devices directly!
If USB devices are powered on in a different order, these will move around!

Use Udev rules, and symlinks....

I have 4 mice on my system (don't ask why!); here is my config in case it is useful:

#Rules for the various different mice on the system (the PS/2, Synaptics and Trackpoint)

#PS/2 mouse (usually /dev/input/mouse0)
#Symlink as /dev/input/ps2mouse
BUS="serio", kernel="mouse*", SYSFS{description}="i8042 Aux Port", 
NAME="input/%k", SYMLINK="input/ps2mouse"

#Synaptics touchpad (in mouse mode) (usually /dev/input/mouse1)
#Symlink as /dev/input/synaptics-mouse
BUS="usb", kernel="mouse*", DRIVER="usbhid", 
SYSFS{bInterfaceClass}="03", SYSFS{bInterfaceNumber}="00", 
SYSFS{interface}="Rel", NAME="input/%k", SYMLINK="input/synaptics-mouse"

#Synaptics touchpad (in event mode) (usually /dev/input/event5)
#Symlink as /dev/input/synaptics-event
BUS="usb", kernel="event*", DRIVER="usbhid", 
SYSFS{bInterfaceClass}="03", SYSFS{bInterfaceNumber}="00", 
SYSFS{interface}="Rel", NAME="input/%k", SYMLINK="input/synaptics-event"

#Trackpoint (usually /dev/input/mouse2)
#Symlink as /dev/input/trackpoint
BUS="usb", kernel="mouse*", DRIVER="usbhid", 
SYSFS{bInterfaceClass}="03", SYSFS{bInterfaceNumber}="01", 
SYSFS{interface}="Rel", NAME="input/%k", SYMLINK="input/trackpoint"

#WizardPen (usually /dev/input/event6)
#Symlink as /dev/input/wizardpen
BUS="usb", kernel="event*", DRIVER="usbhid", 
SYSFS{bInterfaceClass}="03", SYSFS{bInterfaceNumber}="00", 
SYSFS{interface}="Tablet WP5540U", NAME="input/%k", SYMLINK="input/wizardpen"

Then I can configure paragraphs in xorg.conf like this:

Section "InputDevice"
     Identifier "ps2mouse"
     Driver "mouse"
     Option "Device" "/dev/input/ps2mouse"
     Option "Protocol" "ExplorerPS/2"
     Option "ZAxisMapping" "6 7"

Section "InputDevice"
     Identifier "trackpoint"
     Driver "mouse"
     Option "Device" "/dev/input/trackpoint"
     Option "Protocol" "ExplorerPS/2"
     Option "ZAxisMapping" "6 7"
         #We want to use emulatewheel + emulatewheelltimeout.  But need Xorg 6.9 for that
         #Option "EmulateWheel" "on"
         #Option "EmulateWheelButton" "2"
         #Option "EmulateWheelTimeout" "200"
         #Option "YAxisMapping" "6 7"
         #Option "XAxisMapping" "4 5"
         #Option "ZAxisMapping" "10 11"

[Bob] - Picture Bob smacking his head and saying "Doh!" You are right and the next article, the one where I get it *all* working, will use udev and symlinks.
Using /dev/input was not too bad since the USB bus is enumerated the same way on each power up. I only had to move things around once right after the initial set up.

[[RichardN]] - I shall be interested to see how it goes, especially if you can make the resulting system stable. Also, I wonder whether you can use udev to distinguish between 6 different copies of a nominally identical item? Some may let you use a serial number. Using the BUS id would be cheating - one ought to be able to plug it together randomly and have it work!

P.S. An interesting challenge would be to get separate audio channels working (eg a 5.1 channel motherboard could give 2 1/2 stereo outputs!) Or you could use alsa to multiplex all the users together so that everyone can access the speakers (and trust the users to resolve conflicts).

[Ben] -

> I have 4 mice on my system (don't ask why!); here is my config in case
> it is useful:

All right, I won't ask.


OK, maybe I will. :) So, why do you have _4_ mice on your system? And what's the difference between 'mouse mode' and 'event mode'?

[[RichardN]] - OK. I have an IBM ultranav keyboard containing a trackpoint and a touchpad.

1)The trackpoint is my primary mouse.

2)The touchpad is also used as a mouse (mainly for scrolling). It appears as 2 different devices, so you can either treat it as a mouse (I called this mouse-mode), or as an event-device. The latter is the way to use its advanced features with the synaptics driver, but I'm not actually doing this for now.

3)A regular, PS2 mouse, for things like PCB design.

4)A Graphics tablet

[Ben] - Perhaps you should just write an article on Udev. :)

[[RichardN]] - You're very kind. But there is one already: http://reactivated.net/udevrules.php

[Ben] - [snip code] I can see a lot of sense in that. Judging from this example, I should be able to figure out a config file that will keep my flash drive at a single, consistent mountpoint (instead of having to do "tail /var/log/messages" and mounting whatever random dev it managed to become.) I've heard of Udev before, and even had a general idea of what it did, but never really explored it to any depth. Nice!

[[RichardN]] - Indeed. You'll get a random /dev/sdX, but a consistent symlink /dev/my_flash_drive (which you specify). Then, you can specify where it should be mounted via options in fstab.

Even better: you can specify that a digital camera should have umask and dmask (in fstab), which will fix the annoying tendency of JPGs to be marked as executable!

Talkback:124/smith.html (2)

[In reference to the article Build a Six-headed, Six-user Linux System - By Bob Smith ]

Andy Lurig (ucffool at comcast.net)
Sun Mar 5 10:19:42 PST 2006

Have you tried a USB audio solution for each station as well, and how would that be worked into the configuration?

[Bob] - I have not tried it yet and do not know. The keyboards in my system have a built in, 1 port hub. I was going to try to tie that hub to the user at that keyboard. So, a flash drive plugged in would only be visible by that user. Kind of the same with audio; they would have to bring their own audio set but it would work if they plugged it in.

BTW: Two reader have mentioned http://linux-vserver.org as a way to securely isolate users from each other.

Talkback:124/smith.html (3)

[In reference to the article Build a Six-headed, Six-user Linux System - By Bob Smith ]

Richard June (rjune at bravegnuworld.com)
Tue Mar 7 06:37:46 PST 2006

I do a lot with LTSP, so I'm familiar with sharing a machine between multiple users. KDE's kiosktool will let you do quite a bit to disallow the more CPU intensive screensavers. Verynice is also helpful in keeping rogue processes in check.

Talkback:124/smith.html (4)

[In reference to the article Build a Six-headed, Six-user Linux System - By Bob Smith ]

vinu (vinu at hcl.in )

Wed Mar 8 22:24:36 PST 2006

I had worked on this multi terminal setup for around 6 months(from dec 2004 - july 2005) with RHEL 3.0 and RHEL 4.0, I made this setup with ati and nvidia cards. But my biggest problem was that many application makes problems on running on suh a setup especially sound applications. I rectified many of the things thru some wiered ways. But some apps like the SWF plugin for mfirefox made the big problems as only one instance of the plugin can be used, bcos the sound is redirected to the same device always, say /dev/dsp.To solve this problem we used a very ugly way,that we mounted the same /tmp folder for all the users and made the app thinks that it was using a seperate /temp and the device is always /dev/hda.This actually ruins the security of linux to a big extend.while some other apps like tuxracer, konquest etc,which using the videocards directly(DRI enabled).So I think the application design plays a vital role in such a setup. Though the last kernel i used was 2.9.11, I didn't tried any new patches or solutions aroused in last 8-10 months,but i am just sharing My other observations also:

1) I tried to make this setup on mother boards that of Intel make, whic was an unsuccessful attempt, for which i don't get a good explanation

2)These setups are working good on AMD,and Some MSI mother boards, with Intel or NVIDIA chipset with Nvidia cards.

3)The NVIDIA AMD combination shows excellent performance over others

4)The applications like mplayer shows certain level of uncertainity even we configured it properly

5)If u are using audio/visual applications u the application should be configurable(eg: mplayer on which we can select the audio device from the configuration options whic also supports the alsa devices).

6) For a normal user it's not possible to configure applications like swf plugin for firefox for all the six users.

7)this setup is best suited for a lab environment,and newbies bcos for advanced users the CPU speed may not be sufficient(like a kernel compilation fatally degrades the performance of the whole system)

I Dont know these observations are correct or not as per current situation.but I think most are still relevent.

[Bob] - Thanks, Vineesh.
My solution to the sound problem was to turn it off for everyone -- not a very elegant solution. A couple of readers have pointed out a system that would break the PC into six separate systems, each with its own sound, X, and especially important, security. The virtual server page is at http://linux-vserver.org. I have not tried it yet but it looks promising.

BTW: another web page dedicated to multi-head Linux PC can be found here: http://www.c3sl.ufpr.br/multiterminal/index-en.php.

Please let me know if there is anything I can do to help you with your project.

Talkback:124/smith.html (5)

[In reference to the article Build a Six-headed, Six-user Linux System - By Bob Smith ]

Chuck Sites (syschuck at kingtut.spd.louisville.edu)
Wed Mar 15 13:31:29 PST 2006

Hi Bob,

I've been posting on Chris Tylers blog regarding my Multiseat configuration. I've also had problems with a kernel Opps when the last person (seat 1 of a two seat configuration) logs out. I was looking at you kernel opps message and the call trace is very similar to yours. I was wondering if you still have that system running, and if so could you send me a copy of an 'lspci -vvv'. Also, I'm interested in hearing your experiences using the 'nv' driver. Were you having a similar Opps?

Best Regards,
Chuck Sites

[Bob] - The system is not running right now but I can set it up again fairly easily. What did you want to know from the 'lspci -vvv'?

I tried both the nv and vesa drivers. Neither could successfully get all six heads working. The nVidia driver was easily the best driver I tested.

Talkback:124/smith.html (6)

[In reference to the article Build a Six-headed, Six-user Linux System - By Bob Smith ]

Claude Ferron (cferron at gmail.com)
Fri Mar 17 19:23:24 PST 2006

When I try to start a screen with the -sharevts option CPU climb up to 100%....
I have the following in the system:

   6 x nVidia Corporation NV5M64 RIVA TNT2
   Xorg version 6.9 on slackware 10.2

[Bob] - Could you give a little more information.

What was the full line to invoke X?
Does the error occur on the first head or the last?
Could you send the x.org configuration for one head?

I saw this problem several times, but each time it was because I mis-typed a line in the x.org config file.


This page edited and maintained by the Editors of Linux Gazette

Talkback: Discuss this article with The Answer Gang


Kat likes to tell people she's one of the youngest people to have learned to program using punchcards on a mainframe (back in '83); but the truth is that since then, despite many hours in front of various computer screens, she's a computer user rather than a computer programmer.

When away from the keyboard, her hands have been found full of knitting needles, various pens, henna, red-hot welding tools, upholsterer's shears, and a pneumatic scaler.

Copyright © 2006, Kat Tanaka Okopnik. Released under the Open Publication license unless otherwise noted in the body of the article. Linux Gazette is not produced, sponsored, or endorsed by its prior host, SSC, Inc.

Published in Issue 127 of Linux Gazette, June 2006

next -->