New version of the vr920 headtracking driver coming soon

Last year I published the first version of my linux headtracking driver for the VR920 HMD here. Currently I am working on a new driver version which will have the following additional features:

  • Multiple Protocols:
    -UDP multicast (as before)
    -UDP unicast (for flightgear connection and perhaps more)
    -mouse emulation (via uinput)
    -joystick emulation (via uinput)
    -character device for direct angle readings (via cuse, will
    require a kernel >= 2.6.31)
  • Inverting of axes (to have moving the head up making the mouse pointer up or down, depending on needs)
  • Better filtering algorithm (more stable headtracking)
  • Scaling of data (i.e. to match screen size with mouse mode)
  • Customisable delay between sensor readings
  • User interface separated from the driver

With the upcoming MPX and the mouse emulation it should be possible to control the visible viewport by turning around the head. Controlling the view for games or other software that do not natively support headtracking should also be possible with the emulation.

In the current development stage most of the features are basically working so expect the new driver to be released soon.

Stay tuned for updates

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

pulseaudio – flash blocks the audio device

On my x86_64 gentoo box, running gnome and therefore pulseaudio, I experienced the problem that when and after playing some flash videos (i.e. youtube) the sound device was blocked and no other application was able to play sound.  After killing the plugin sound worked just normal, but that was no convenient way.

64-bit flash plugin for Firefox

My first suspective was the 32-Bit flash plugin I used  in my 64-bit Firefox until now. So I replaced it by the new 64-bit plugin, which did not solve the problem, since it does also not use pulseaudio for playback. But I include the steps for completeness here:

echo “=www-plugins/adobe-flash-10.2.161.22_pre20100915 **” >> /etc/portage/package.keywords

emerge adobe-flash

For other linux distributions  like Debian, Ubuntu, Redhat or Suse you obviously have  to search the appropriate plugin and  install it the distribution-specific way. Afterwards you have to remove the 32-bit plugin from nspluginwrapper, which makes 32-bit plugins available for 64-bit firefox:

nspluginwrapper  -r /usr/lib/mozilla/plugins/npwrapper.libflashplayer.so

As I stated before this does not solve the problem, but at least it gives one a 64-bit flash plugin 😉

Make alsa applications use the pulseaudio server

There is a pulseaudio plugin for alsa, which is necessary for playback of alsa sound via the pulseaudio server. So the next step is to install this plugin. For gentoo it is contained in the alsa-plugins package. So for the gentoo way:

emerge alsa-plugins

Afterwards make sure that your /etc/asound.conf contains the following lines:

pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}

After restarting alsa everything that is playing sound via alsa now uses pulseaudio via the plugin and the sound device is no more used concurrently. One can playback via pulseaudio after using flash sites or even at the same time. Mission accomplished!

OSS emulation for pulseaudio

Sadly the above only works for applications directly using the alsa sound system. Applications depending on OSS (i.e. all Java Applications), using the kernel layer alsa oss emulation, still block the audio device, so the the kernel layer OSS emulation is a no go with pulseaudio. Include the corresponding modules in /etc/modprobe.d/blacklist.conf or remove the emulation completely from your kernel configuration.

screenshot

Of course this only shuts off these applications completely but is neccesary for the further steps to work. We´re lucky, we can use a daemon which provides the OSS devices (/dev/dsp, etc.) and links them via fuse to the pulseaudio daemon. For this we need to load the cuse kernel module (add it to /etc/modules.autoload.d/kernel-2.6 and it gets loaded automatically on next reboot)  or when not available add the functionality  to your kernel configuration and rebuild your kernel.

kernel configuration for cuse

Now we´re ready to install ossp, the daemon I mentioned before. It is available from Sourceforge, probably also in your distributions package repository. For gentoo users, as usual there is a more easy way. I found an ebuild for ossp on gentoo bugzilla, which I got to work with minor modifications. You can download the modified ebuild here: [download#40]

To use the ebuild, just copy it to/usr/local/portage/media-sound/ossp/ . You probably have to create the directory. Then run

ebuild /usr/local/portage/media-sound/ossp-1.3.2.ebuild digest

Be sure to include the following line in your /etc/make.conf.

PORTDIR_OVERLAY=”/usr/local/portage”

Also include ossp into your /etc/portage/package.keywords

echo “media-sound/ossp **” >> /etc/portage/package.keywords

Afterwards just

emerge ossp

For having osspd started automatically on every system boot I lazily included it in my /etc/conf.d/local.start.

echo /usr/sbin/osspd >> /etc/conf.d/local.start

Now sound should just work as one expects it to. Different sources can playback at the same time. No blocked devices occur because of concurrency, no matter which sound API the applications use.

Jürgen

References:

BombStrike´s blog: How to use two different computers with two differents OSes seemlessly

H3X.SE: FAQ

Linux Live: ALSA and Jack Cooperate using PulseAudio

Gentoo Bugzilla: osspd ebuild

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

iptables mirror target for kernel version 2.6.35

The iptables mirror target I published here and here does not work anymore with kernel version 2.6.35. You can download the newer version for 2.6.35 and probably future kernels here:

[download#39] gplv3-127x51

It should work with kernels since 2.6.31. To build the module, boot  the kernel you want to use the module with. Afterwards unpack the archive, run the compile.sh script and the install.sh script.

Now you may use the mirror target in place of the reject or drop target  in the INPUT, FORWARD and PREROUTING chains, like this in your firewall script:

$IPTABLES -A INPUT -j MIRROR

Beware: The use of the mirror target may have strange results, i.e. if you want to connect to the iptables protected machine, you may end up connecting to the local machine without recognizing it. It also may use much bandwith. Worst case: if you have two machines using this module they may end up playing pingpong. So you have been warned, use with caution and at your own risk. For more information see: MIRROR target.

Downloads for older kernel versions are below. Notice the version numbering 2.6.25 works for kernels up to 2.6.27. 2.6.28 also works for 2.6.29 and 2.6.30 kernels.

[download#12]
[download#13]
[download#14]
[download#32]
[download#45]
gplv3-127x51

regards
Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

Pimp up your internet tablet

Did you ever ask yourself how to make your internet tablet more powerful?

For a Linux based device like Nokias N810 this question is quite easy to answer.  You can easily increase overall performance and responsiveness by using a “better” kernel than the stock kernel on your internet tablet. A further advantage is that you can add features that are not available in the stock kernel. Below you will find instructions on how to build your own optimized preemptive kernel or how to install my prebuilt kernel.

Nokia N810 Internet Tablet
Nokia N810 Internet Tablet

In both cases the following features are covered:

  1. preemtive kernel
  2. high-speed sd-cards
  3. screen rotation
  4. more granular backlight sertting
  5. easy-debian image

Read the rest of this entry »

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

gtkdoc-fixref problem on gentoo linux

Recently, when updating the gentoo linux on my amd64 box I got errors when building packages with the doc USE flag. All failing packages were using the gtkdoc tool for generating the documentation. Nowhere in the web was a topic concerning this problem. All these packages failed similar to example for libbonobo below. But many other ebuilds, i.e. glib, gedit etc. were also affected.

Writing libbonobo-bonobo-persist-file.html for refentry(libbonobo-bonobo-persist-file)
Writing libbonobo-bonobo-persist-stream.html for refentry(libbonobo-bonobo-persist-stream)
Writing libbonobo-bonobo-persist-client.html for refentry(libbonobo-bonobo-persist-client)
Writing persist.html for chapter(persist)
Writing debugging.html for refentry(debugging)
Writing libbonobo-faq.html for refentry(libbonobo-faq)
Writing libbonobo-bonobo-config-database.html for refentry(libbonobo-bonobo-config-database)
Writing misc.html for chapter(misc)
Writing ix01.html for index
Writing index.html for book(index)
Writing index.sgml for book(index)
Writing libbonobo.devhelp for book(index)
Writing libbonobo.devhelp2 for book(index)
gtk-doc: Fixing cross-references
try vitry vish: /usr/bin/vim: Datei oder Verzeichnis nicht gefunden
readline() on closed filehandle NEWFILE at /usr/bin/gtkdoc-fixxref line 467.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 470.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 471.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 475.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 476.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 477.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 478.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 479.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 480.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 481.
Can’t delete html/_temp_src.15046.h.html: Datei oder Verzeichnis nicht gefunden at /usr/bin/gtkdoc-fixxref line 486.
make[1]: *** [html-build.stamp] Fehler 2
make[1]: Leaving directory `/var/tmp/portage/gnome-base/libbonobo-2.24.3/work/libbonobo-2.24.3/doc/api’
make: *** [all-recursive] Fehler 1

After some days of searching I was able to track the issue down to the part of gtk-docfixref that uses vim for highlighting. Perhaps my gtk-doc version (gtk-doc-1.13-r2) is not compatible to my vi version (vim-7.2.303). Even uninstalling vi for testing purposes was not successful since at least this version of gtk-docfixref tries to use vi even if it is not installed.

Line 290 of gtkdoc fixref:

if (“/usr/bin/vim” ne “”) {

Changing this line to

if (“/usr/bin/vim” ne “/usr/bin/vim”) {

for forcing gtk-docfixref to always ignore vi was the (temporary) solution for me. Afterwards I was again able to build all the packages using gtk-doc for documentation.

Since I did not find any information about the problem in the web I am quite unsure if I should open a bug report for it or if it is only a local problem.  So, if you experience the same problem please leave a comment.

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Upgrade to compiz-fusion-0.8.6

Today, when I ran the regular update of my gentoo systems there was an update for compiz-fusion in portage. The compiz update did not work out of the box on my x8_64 systems, missing keywords, blocking packages, etc.

Here is the way I got it to work. The procedure is similar to the one I described in upgrade-to-compiz-fusion-0.82.

emerge -uND world

!!! All ebuilds that could satisfy “>=x11-plugins/compiz-plugins-main-0.8.6” have been masked.
!!! One of the following masked packages is required to complete your request:
– x11-plugins/compiz-plugins-main-0.8.6 (masked by: ~amd64 keyword)

Add to /etc/portage/package.keywords:

=x11-plugins/compiz-plugins-main-0.8.6 **
=x11-plugins/compiz-plugins-unsupported-0.8.6 **
=x11-plugins/compiz-plugins-extra-0.8.6 **
=x11-plugins/compiz-plugins-unsupported-0.8.4-r1 **

the last line is there just because I don´t know if there will be a newer version of compiz-plugins-unsuported or not.

emerge compiz-fusion

[blocks B ] x11-plugins/compiz-fusion-plugins-extra (“x11-plugins/compiz-fusion-plugins-extra” is blocking x11-plugins/compiz-plugins-extra-0.8.4-r1)
[blocks B ] x11-plugins/compiz-fusion-plugins-main (“x11-plugins/compiz-fusion-plugins-main” is blocking x11-plugins/compiz-plugins-main-0.8.4-r1)

emerge -C compiz-fusion-plugins-extra compiz-fusion-plugins-main compiz-fusion-plugins-unsupported

emerge compiz-fusion

Afterwards I had a working compiz-fusion-0.8.6.

regards

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

FlightGEAR 2.0.0 on GENTOO

I have searched for a 3D game on Linux and found this nice flight simulation. In Gentoos portage tree there is only an old version avaiable, so I wrote an ebuild for the new version. It compiles fine on my computer wth 64bit Gentoo – Linux.

The Power of my graphics board (nVidia Corporation Quadro FX 360M) seems to be enough for this simulation. The control is not easy, but with some time, you can fly around, like in a real aircraft.

What is FlightGear?
The FlightGear flight simulator project is an open-source, multi-platform, cooperative flight simulator development project. Source code for the entire project is available and licensed under the GNU General Public License.

HowTo install on Gentoo:

Download [download#37] file which include the ebuilds

cd /usr/locale/portage
tar -xzpvf ~/flightgear-2.0.0.tar.gz

Then you have to unmask the ebuilds in /etc/portage/package.keywords :
=games-simulation/flightgear-2.0.0 **
=dev-games/simgear-2.0.0 **
=dev-libs/boost-1.37.0-r1 **
=dev-util/boost-build-1.37.0 **
=media-libs/freeglut-2.6.0  **

now you can ’emerge =games-simulation/flightgear-2.0.0′

Have fun

Xexplorer

UPDATE 04.03.2010:

Now it´s in portage, with two different lines. First of all I found out that freeglut 2.6 is needed for flightgear, so I put it in the ebuild. And the second is a patch witch is needed if you don´t use freeglut 2.6. So I think my choice is the better way.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

siteinfo

Translator