Don't understand german? Read or subscribe to my english-only feed.

Grazer Linuxtage 2011: Call for Lectures / Projects

January 28th, 2011

Am Samstag, dem 9. April 2011 finden an der FH Joanneum die Grazer Linuxtage 2011 (GLT11) statt. Die ganztägige Veranstaltung (9:00 bis 18:30 Uhr) richtet sich mit zahlreichen Vorträgen und Informationsständen nach den Interessen der Zielgruppen Anwender, Administratoren und Softwareentwickler.

Soeben sind Call for Lectures und Call for Projects online gegangen. Wer auf den GLT11 einen Vortrag halten oder ein Open-Source-Projekt mit einem Stand präsentieren möchte, kann das ab sofort über die Homepage einreichen.

Ich hoffe man sieht sich im schönen Graz!

Grml User Survey 2011

January 11th, 2011

Grml users out there: We are interested in getting your feedback so we can further improve Grml. We are also working on a webpage which lists happy Grml users and also some quotes and use cases. Now we need your help:

Please provide your feedback and take part in Grml’s user survey!

Booting ISO images from within GRUB2

January 7th, 2011

You might be aware of GRUB’s loopback option for booting an ISO, I wrote about it in Boot an ISO via Grub2 more than a year ago. A few months ago Goswin von Brederlow came up with this idea:

grml functions great as rescue system. So it would be nice to have a boot entry for it in grub instead of having to go look for the CD when needed. To make installing and updating simple it would be great if one could install this as a normal debian package which would register itself in grub (and maybe lilo too).

What a lovely idea: no need for a CD or USB stick as long as the bootloader and the harddisk are still working. Minimal manual intervention needed to keep it up2date and working – sounds like the perfect rescue system. 8-)

Now since end of 2010 a new stable version of sysadmin’s favorite live system (AKA Grml 2010.12) is available and the great news is that we came up with two independent solutions known as grml-rescueboot and grub-imageboot. Having shipped them to one of my customers already I’d like to write some words about it and why you should also consider using it on all your systems where GRUB2 is available.

grml-rescueboot uses GRUB2 and its loopback feature for booting. Grml as well as Ubuntu provide all what’s needed out-of-the-box. If you’re interested in the details check out Jordan Uggla’s excellent Loopback.cfg webpage in the supergrubdisk wiki. The best about it: you can provide custom bootoptions automatically when booting Grml. For example just set CUSTOM_BOOTOPTIONS=”ssh=grml2011″ in /etc/default/grml-rescueboot and the Grml rescue system will automatically start the OpenSSH server with the specified argument as password for user grml. Of course you can use all the other nifty bootoptions like scripts/netscript/… to further customize your Grml rescue system. [A note to other distributions like Ubuntu: I'd be interested to establish a mechanism to pass kernel options for loopback boot in a standardized way, drop me a note if you're interested in this.]

grub-imageboot uses GRUB2 and syslinux’ memdisk to boot ISOs and floppy images. It doesn’t rely on the loopback feature but instead maps the ISO into the memory directly. This is great for Linux ISOs that can’t and won’t support the the loopback feature (and have everything inside their initrd so the ISO doesn’t have to find itself during booting), like BIOS or firmware updates. Also for example FreeDOS and Alpharev are known to work just fine. But sadly memdisk ISO emulation doesn’t work with all Linux systems, as documented in the syslinux wiki. The good news is that Grml supports the memdiskfind/phram/mtdblock approach out-of-the-box. As far as I know therefore Grml is the first Debian based live system supporting memdisk ISO boot, though my patches already went to the Debian-Live project so if you’re using live-boot >=2.0.14-1 or >=2.0.12-1+grml.04 your live system should be able to boot via memdisk ISO emulation as well.

Summary: If you want to boot a Linux system which supports loopback.cfg use grml-rescueboot as its a more powerful tool to boot Linux live systems like Grml and Ubuntu. If you want to boot non-Linux systems (BIOS-/Firmware-Updates/FreeDOS/….) use grub-imageboot.

Alright – how do you deploy this solution? Just grab and install grml-rescueboot and/or grub-imageboot.

To deploy grml-rescueboot (adjust $VERSION if you want to use another flavour):

# choose Grml version:
VERSION=grml64-medium_2010.12

# create directory
mkdir -p /boot/grml

# download and verify ISO
cd /boot/grml
wget download.grml.org/${VERSION}.iso{,.md5}
md5sum -c ${VERSION}.iso.md5

To deploy grub-imageboot:

# choose Grml version:
VERSION=grml64-medium_2010.12

# create directory
mkdir -p /boot/images

# download and verify ISO
cd /boot/images
wget download.grml.org/${VERSION}.iso{,.md5}
md5sum -c ${VERSION}.iso.md5

That’s it! Now when running update-grub you should get something like:

# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.36-grml64
Found initrd image: /boot/initrd.img-2.6.36-grml64
Found memtest86+ image: /boot/memtest86+.bin
Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin
  No volume groups found
Found Grml ISO image: /boot/grml/grml64-medium_2010.12.iso
Found memdisk: /boot/memdisk
Found iso image: /boot/images/grml64-medium_2010.12.iso
done

Voilà, when rebooting your system you should see something like:

Screenshot: grml-rescueboot

The “Grml Rescue System” entry is what grml-rescueboot provides and “Bootable ISO Image” is what’s provided by grub-imageboot. Just select the entry you’d like to use, press enter and and you should get the bootsplash of the according ISO.

BTW: I’ve tested this with Ubuntu 10.10 too, grml-rescueboot works out-of-the-box with the Ubuntu ISO as well, it just doesn’t support the memdisk ISO boot by grub-imageboot (yet).

Tip: if you want to use grml-rescueboot and grub-imageboot with the same ISOs without having them twice on the disk just point the configuration option IMAGES in /etc/default/grub-imageboot to the according directory (like /boot/grml).

Note: if you’re using the ext{2,3,4} filesystem on the partition that’s being used for /boot please be aware that you need GRUB >=1.98+20100804-12 (newer version is already available in Debian/unstable and hopefully migrates to squeeze in time) or GRUB >=1.99~20101122-1 because of the INDIRECT_BLOCKS support, see #543924 for the details.

PS: We think about providing grml-rescueboot and grub-imageboot within official Debian. If you’re interested in seeing integration support for other distributions as well please help and drop us a note.

Simple DNS in chroots

January 7th, 2011

Update: Ulrich ‘mru’ Dangel suggested pdnsd as nice alternative to dnsmasq and Cyril ‘KiBi’ Brulebois pointed out, that it’s not necessary to invoke dnsmasq after fresh installation as it’s running by default then – I adjusted the text accordingly, thanks for the pointers!

If /etc/resolv.conf doesn’t provide any nameserver entries glibc[1] will automatically initialize the nameserver to the loopback address. This is nice for dealing with chroots without having to manually edit resolv.conf to get working DNS.

Just install a basic DNS forwarder like dnsmasq (‘apt-get install dnsmasq’) or if it’s already on your box just start it (‘/etc/init.d/dnsmasq start’). That’s it. Now when chrooting into a system without an existing resolv.conf configuration it will give you a working DNS setup without any further work.

PS: Grml ships dnsmasq by default and ‘/etc/init.d/dnsmasq start’ or ‘Start dnsmasq’ will work out-of-the box. In Ubuntu the dnsmasq package is available only through the universe repository – but the dnsmasq-base package (providing e.g. the init script) is shipped by default, so replace the ‘/etc/init.d/dnsmasq’ command with a simple ‘dnsmasq’ there.

[1] At least the [e]glibc versions provided on Debian and Ubuntu are known to provide this glibc extension. Other libc implementations like dietlibc and uclibc don’t seem to provide it, so don’t strictly rely on this feature but use it as the icing on the cake.

Open Source Projektmanagement

November 18th, 2010

*

Seit Ende September gibt es das Resultat von rund 3 Jahren Arbeit in Buchform im Handel. "Open Source Projektmanagement – Softwareentwicklung von der Idee zur Marktreife" ist mein literarischer Beitrag rund um das Management von Open-Source-Projekten. Dass das Buch so lange auf sich warten hat lassen, liegt – entgegen anders lautender Gerüchte – nicht an der schönen Seitenzahl 28-1. Die Seitenzahl war natürlich reiner Zufall. Mir war es aber durchaus wichtig, dass das Buch einen leicht zu bewältigenden Umfang hat und nicht im Buchregal verstaubt.

Mein Buch ist ein Rundumschlag um alle möglichen Aspekte des Projektmanagements im Open-Source-Bereich – wie etwa Marketing, Kommunikation, Entwicklung und Infrastruktur. Darüber hinaus bietet dieses Buch Hilfestellung und Hinweise was es bei einem Open-Source-Projekt alles zu beachten gilt und wie man das in die Praxis umsetzt.

Warum dieses Buch? Seit mehr als 7 Jahren bin ich Projektleiter von Grml und darüber hinaus in vielen anderen Projekten wie u.a. Debian und FAI als Entwickler aktiv, seit mehr als 2 Jahren lebe ich ausschließlich von freier Software. Ich bin ein überzeugter Anhänger des Open-Source-Gedankens, stelle aber leider zu häufig fest, dass viel-versprechende Projekte beim Projektmanagement teilweise versagen. In meinem Buch berichte ich über diese, auch von mir begangene Fehler, warne vor bestimmten Praktiken und stelle Möglichkeiten zur Verbesserung des Entwicklungs- und Releaseprozesses vor.

Natürlich berichte ich nicht nur aus der Theorie oder meinen persönlichen Erfahrungen im Grml-Projekt, sondern lasse auch andere Personen zu Wort kommen: Alexandra Leisse (Nokia, Qt) erzählt vom Community Management bei Nokia, Lenz Grimmer (Oracle, MySQL) von der Arbeit in der virtuellen Firma MySQL. Wie das Releasemanagement in großen Projekten funktioniert erläutern Andreas Barth (Debian) und Michael Renner (PostgreSQL). Ferdinand Thommes (Sidux) schließlich erzählt von seinen Erfahrungen im Vereinswesen eines Open-Source-Projekts.

Für wen ist das Buch? Einerseits nimmt es den Einsteiger an der Hand und führt ihn mit Themen wie Projektstart, Lizenzwahl, Projekt-Logo und Namenswahl in die Open-Source-Welt ein. Andererseits zeigt der Blick in das Inhaltsverzeichnis, dass auch Beitragende von bereits bestehenden Open-Source-Projekten davon profitieren können: Kapitel zur Projektverwaltung, die Beleuchtung der unterschiedlichen Entwicklungsmodelle, Aspekte rund um das Team, Code und Releasemanagement, über Infrastruktur und Dokumentation bis hin zu Marketing und dem Thema Finanzierung sollten jedem Entwickler genug Anregungen und Stoff zur Selbstreflektion liefern.

Wer Interesse daran findet: Ich würde mich besonders freuen wenn ihr das Buch in der Buchhandlung eures Vertrauens bestellt und damit eure Buchhändler auf das Buch aufmerksam macht. Ich freue mich insbesondere über jede Rezension die für mein Buch zustande kommt. Ich halte es hier mit Tom vom Bestatterweblog: "Wenn viele gute Rezensionen bei einem Buch stehen, erhöht sich natürlich die Wahrscheinlichkeit, dass auch andere es noch kaufen, und darüber würde ich mich natürlich auch sehr freuen."

An dieser Stelle möchte ich mich noch einmal bei allen Beteiligten recht herzlich bedanken. Insbesondere bei meiner Verlobten, die auf ein 3 Jahre andauerndes Projekt Rücksicht genommen hat und mehr als nur den einen oder anderen Abend auf mich verzichten musste. Ich möchte mich auch noch bei Rhonda für die sehr schönen Worte über mich und Grml bedanken.

Also, viel Spass beim Lesen und ich hoffe man sieht sich auf der einen oder anderen Open-Source-Konferenz!

Event: Vorträge “Internet und Recht” und “Privatsphäre im Internet” am 18.11. in Graz

November 8th, 2010

via Peter Kuhm:

Am Donnerstag, den 18. November 2010 finden um 18:30 Uhr die Vorträge

* Internet und Recht – Stolpersteine und Wegmarken
* Privatsphäre im Internet – Facebook, Xing, Twitter und Co statt.

Wo: TU Graz, HS E, Kopernikusgasse 24/1, 8010 Graz.

Vortragende: MMag. Dr. Albrecht HALLER, Rechtsanwalt, Wien
Mag. Markus KLEMEN, Geschäftsführer SBA Research GmbH, Wien

Nähere Informationen finden Sie unter:
http://www.ove.at/akademie/details.php?ID=1233

Die Vorträge werden in Kooperation mit der Österreichischen Computer Gesellschaft (OCG), der Fakultät für Elektrotechnik und Informationstechnik, der Fakultät für Informatik und dem Absolventenverein ELiTE veranstaltet und sind – wie immer – kostenlos. Im Anschluss gibt es bei einem Buffet (auf Einladung von OVE und OCG) die Möglichkeit zum Informationsaustausch in geselliger Atmosphäre.

Die Teilnahme ist kostenlos, um Anmeldung wird jedoch gebeten.

LART of the day – the solution

October 31st, 2010

Remember my LART of the day? It looked like:

% cat foo.c
int main() { return 0; }
% gcc foo.c
foo.c:1: fatal error: can’t open /tmp/ccxgyEhb.s for writing: Permission denied
compilation terminated.

Congratulations to sunckell and Bernd for guessing the right answer.

Additionally to the blog comments (which I delayed through moderation to give everyone the same chance) I received further comments through ICQ/Jabber/IRC. It’s interesting that most people think it’s related to /tmp, but the issue isn’t related to /tmp at all.

The solution

Umask settings.

Just try my demo with ‘umask 222′. No mount/ACL/SELINUX/whatsoever tricks necessary. :) To clarify:

% umask
002
% gcc foo.c
% umask 222
% gcc foo.c
foo.c:1: fatal error: can’t open /tmp/ccteC66I.s for writing: Permission denied
compilation terminated.
% touch /tmp/ccteC66I.s
% ls -la /tmp/ccteC66I.s
-r--r--r-- 1 mika mika 0 Oct 31 12:56 /tmp/ccteC66I.s

I stumbled upon this LART by accident. As part of implementing a specialized configuration management system for a customer I had to deal with permission handling. The requirement was to generate configuration files based on the permissions of the template files but remove any existing write permissions. While playing with umask settings I noticed that you can’t set umask in the shell to get the executable flag being set. I was aware of umask(2) and always had its 0777 in mind. But files are actually generated via:

0666 & ~umask

by default instead. As I noticed that most people aren’t aware of this fact and that a umask of 222 turns out to be pretty unobtrusive this was the perfect base for a LART. Learning something new and coming up with a LART at the same time. Win-win! :)

LART of the day – guess what’s wrong

October 29th, 2010

Update: see LART of the day – the solution for the solution.

% cat foo.c
int main() { return 0; }
% gcc foo.c
foo.c:1: fatal error: can’t open /tmp/ccxgyEhb.s for writing: Permission denied
compilation terminated.

Uh?! Ok, does the file exist? Do I have write permissions? gcc ok?

% pwd
/tmp
% ls -lad /tmp
drwxrwxrwt 23 root root 1000 Oct 29 16:43 /tmp/
% ls -la /tmp/ccxgyEhb.s
ls: cannot access /tmp/ccxgyEhb.s: No such file or directory
% echo foo > /tmp/ccxgyEhb.s
% cat /tmp/ccxgyEhb.s
foo
% which gcc
/usr/bin/gcc
% gcc --version | head -1
gcc (Debian 4.4.3-7) 4.4.3

Alright, everything looks fine, right?

Assuming I would apply this LART to YOU, would you correctly guess what I did to you?

Vortrag “Gute Open-Source-Projekte bestehen aus mehr als nur Code”

August 26th, 2010

Auf der FrOSCon (Free and Open Source Software Conference) habe ich am letzten Wochenende einen Vortrag mit dem Titel "Gute Open-Source-Projekte bestehen aus mehr als nur Code" gehalten.

Das Videoteam war heuer schnell (danke!) und daher gibt es für Interessierte zu meinen Vortragsfolien (PDF, 10MB) auch bereits das Video zum Vortrag:

DebConf10: done

August 18th, 2010

Picture: Columbia University / New York

Finally I’m back from DebConf10 in New York. It was the first DebConf I attended and it was just great. Thanks a lot to all involved people for making DebConf such a great event.

I had a big todo list for DebCamp and DebConf and managed to get a bunch of work done. Besides several discussions, bug hunting, testing stuff and attending BoFs and talks the work that I could get done for Debian included:

  • released FAI 3.4.0
  • released initramfs-tools 0.98
  • sponsored upload of:
    • pyneighborhood
    • md5deep
    • grokevt
    • kpicosim
    • shunit2
    • mpris-remote
  • uploaded new version of stressapptest (required some build tuning)
  • prepared new upload of tct
  • fixed RC bugs:
    • #587557 – problems installing plymouth
    • #591257 – stressapptest: FTBFS on sparc: configure: error: sparc is not supported!
    • #589836 – mdadm: breaks initramfs on fresh (chroot) installation

My talk about "State of Debian (based) Linux live systems in 2010" went pretty well according to the feedback I got (thanks for that), even though OpenOffice failed horrible once again (one completely broken line on one slide, several broken gradients on several slides in presentation mode, the presenter screen just didn’t work at all,…). I just uploaded the slides of my talk (8.4MB, PDF), though they won’t be useful without the talk – but thanks to the awesome videoteam my talk is available as recording.

On the next weekend (August 21st/22nd) you can meet me at FrOSCon/Germany where I’ll be at the Grml booth and giving a talk titled "Gute Open-Source-Projekte bestehen aus mehr als nur Code" (english: Good open source projects are more than just code).

BTW: What’s a wiki? Say whaaaaaat?</insider>

Event: System Administrator Appreciation Day 2010 in New York

July 30th, 2010

On each last Friday of July the annual System Administrator Appreciation Day is taking place.

Matt Simmons organized a SysAdmin Day Meetup to celebrate this event in New York. If you’re in New York on 30th of July consider registering yourself (it’s free and takes just a few seconds).

If you are participant of the Debian Conference in New York and are already hacking at the DebCamp you might want to join our group of Debian people who plan to show up, currently consisting of Paul Wise, Lars Wirzenius, Thomas Lange and myself. If you plan to join please ping me so we can show up at the SysAdmin Day Meetup together.

Report from FAI developer workshop 07/2010

July 8th, 2010

Last weekend (2010-07-02 – 2010-07-04) nine people met at the FAI developer workshop at Linuxhotel in Essen/Germany. If you can’t remember: FAI is a non-interactive system to install, customize and manage Linux systems and software configurations on computers as well as virtual machines and chroot environments, from small networks to large-scale infrastructures and clusters.

The participants of the FAI meeting:

picture of participants of the FAI developer workshop 2010

second row from left to right: Michael Goetze, Michael Prokop, Andreas Schuldei
first row from left to right: Sebastian Hetze, Manuel Hachtkemper, Thomas Lange, Mattias Jansson
missing on the picture: Thomas Neumann (left on sunday midday) and Stephan Hermann (only part-time)

Friday afternoon started with getting to know each other, continuing with discussions all around FAI. On saturday we started to hack on FAI.

*

Between the hack sessions and discussions the attending people presented their FAI usage and approaches. Some notes from the presentations:


FAI Manager webfrontend / Stephan Hermann

Stephan ‘\sh’ Hermann presented his FAI web frontend which should be released under the GPL license in those days. The frontend uses qooxdoo whereas the backend is based on django, rpc4django and python-tftpy.

Screenshot of FAI manager webfrontend

A demo video is available at blip.tv. Currently Stephan is searching for a nice name for his FAI management tool – please send suggestions either to him or to the linux-fai-devel mailinglist.

Grml / Michael Prokop

Grml is a Debian based Linux live system specially made for system administrators. Grml uses grml-live for building the ISOs, whereas grml-live itself uses FAI’s dirinstall feature to build the live system. This provides the Grml team with a nice way to autobuild 18 ISOs per day, known as daily.grml.org. Mika also presented Grml’s netscript bootoption and the ethdevice bootoption of live-initramfs which is useful for booting Grml/FAI via PXE.

Host Europe / Michael Goetze

Host Europe uses FAI for installing Debian and Ubuntu (32+64 bit) in the support center. They have ~20 FAI classes and use a Debian lenny NFSROOT as base for all deployed systems. Their main problems with FAI aren’t related to FAI itself, but instead e.g. broadcom NICs with lack of support for it in Lenny’s kernel. They are not using softupdate (yet) and currently use Kickstart for deploying CentOS but are working on deploying CentOS with FAI as well.

LIS AG / Sebastian Hetze

Linux Information Systems AG (LIS AG) are using FAI 3.2.17 and provide a luma and PyQt based GUI to their customers. They use DHCP, LDAP and DDNS for inventory, configuration and deployment.

Mathematical Institute of the University of Bonn / Manuel Hachtkemper

The Mathematical Institute of the University of Bonn uses FAI 3.1.8 and 3.3.5 for managing ~150 systems. They are automatically running softupdates every day, reporting how many hosts actually did run the softupdate and how many didn’t run. The involved failogwatch tool supports two regex files, one for excluding specific hosts and the other one for grepping for known problems in the logs.

Spotify / Andreas Schuldei + Mattias Jansson

Spotify is a peer-to-peer music streaming service and the operating people at Spotify use FAI for deploying the systems. Currently they are using FAI 3.3.3 to deploy ~400 bare metal machines and ~150 virtualised machines. They have their class names in DNS using the txt/Text record entry. They are using a self written prepend_class script to manage dependencies between classes.

University Köln / Thomas Lange

Thomas uses FAI’s trunk version (of course :)), managing ~25 machines with less than 20 FAI classes. He’s not using softupdates as Lenny’s aptitude ignores the hold status of packages (this bug should be fixed for Squeeze).

$COMPANY

One of the big telecommunication providers in Germany uses FAI 3.3.3 for installing their bare-metal and virtual servers, providing Debian, Ubuntu and SLES. They are using Debian NFSROOT as a base for all systems as well and their main problems with FAI wasn’t FAI itself but how to manage installation of virtual machines.


On Saturday evening we had a nice barbecue which included beer and Kölsch *d&r*. ;) On Sunday we continued with discussions and development.

Our work-log of the weekend:

  • identified important packages for the Debian/squeeze release
  • discussed features that should be available (important packages and bugreports, missing features,…)
  • fixed several bugs (wrong exit codes, error handling, variable handling,…)
  • discussed FAI packaging for Ubuntu (packages for lucid are available at ppa at launchpad)
  • implemented support for grub2 in fai-cd (will be merged soon)
  • implemented initial support for retrieving sources with FAI (available in svn’s trunk)

Important decisions made:

  • next major release will have version number 4.x
  • we want to continue to provide a stable version 3.x (no new features, just bugfixes and maintenance) side-by-side with version 4.x
  • deprecated setup-harddisk will be dropped, setup-storage is well established, works fine and is properly maintained by FAI developer Michael Tautschnig (who sadly couldn’t attend the FAI developer meeting)
  • a FAQ section will be created on the FAI homepage

We noticed that many FAI users implement their own way how to handle dependency management between classes, we will re-consider how we could provide such a mechanism through FAI’s core. We also noted that it’s important that any self-written scripts used within FAI are fully idempotent and users should be aware of this.

Last but not least – many thanks to the sponsors of the FAI developer workshop 07/2010! The workshop wouldn’t have been possible without our generous sponsors, namely being:

FAI Developer Workshop 2010

June 22nd, 2010

From 2nd to 4th of July 2010 the FAI developer workshop will take place at the Linuxhotel in Essen/Germany. FAI? FAI is the abbreviation for Fully Automatic Installation. It’s a non-interactive system to install, customize and manage Linux systems and software configurations on computers as well as virtual machines and chroot environments, from small networks to large-scale infrastructures and clusters.

As the name states the workshop is targeted towards FAI developers. We – the FAI developers – want to get FAI into shape for squeeze, discuss pending issues like Ubuntu packaging, release management and of course meet in real life for networking and socializing. Our rough roadmap for the FAI weekend looks like this:

Friday:

  • Setup of the network
  • Introduction round, hello to everybody
  • Define things that need to be worked on with high priority for the squeeze release
  • Start of work

Saturday:

  • Work on things for squeeze release
  • Discussion: Features for squeeze
  • Read access from /dev/beer

Sunday:

  • Work on things for squeeze release
  • Final round: What did we manage to do this weekend

Further details are available in the FAI wiki at http://faiwiki.informatik.uni-koeln.de/index.php/DeveloperWorkshopJuly2010.

The meeting wouldn’t be possible without sponsors – so special thanks to:

If you are interested in sponsoring the FAI Developer Workshop as well please contact FAI lead developer Thomas Lange.

Vortragsfolien zu “Grml Live-Linux für Deployment und Desaster-Recovery”

May 8th, 2010

Auf den Grazer Linuxtagen und den Linuxwochen Wien habe ich jeweils einen Vortrag über “Grml Live-Linux für Deployment und Desaster-Recovery” gehalten, die Folien zum Vortrag gibts online (PDF – 1,6MB).

EtherPad.com gone – long live TitanPad.com!

April 14th, 2010

I love EtherPad for online collaboration in real-time. By today (14th of April 2010) new pad creation will be disabled at EtherPad.com. Being aware of that in advance and as the EtherPad software was open sourced recently friends of mine and I were working on providing a dedicated EtherPad setup. TitanPad was born!

Quoting our TOS / Privacy Info:

TitanPad was launched to provide an EtherPad setup which is unrelated to any commercial and political entities. Its goal is to offer a stable service through proper operating.
[...]

Now TitanPad is officially up and running and you’re free to use it for online collaboration. Feel free to drop your feedback, questions and suggestions to our team via mail to support (at) titanpad.com.

Rest in Peace, Maxi

April 8th, 2010

Picture of Maxi

Fsck you, FIP.

Remote Console feature through Java applet failing?

April 6th, 2010

I’m working for a customer who’s using IBM blades. Remote access isn’t limited to e.g. SoL but also possible through a Remote Console feature using a Java applet.

After migrating one of my 32bit systems to a fresh 64bit system I suddenly couldn’t use this Remote Console feature any longer. The error message was (leaving it for search engines and help other affected users):

load: class vnc.VncViewer.class not found.
java.lang.ClassNotFoundException: vnc.VncViewer.class
	at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:152)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:447)
	at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:2880)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1397)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.ConnectException: Network is unreachable
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	at java.net.Socket.connect(Socket.java:525)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:161)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
	at sun.net.www.http.HttpClient.New(HttpClient.java:306)
	at sun.net.www.http.HttpClient.New(HttpClient.java:323)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:860)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801)
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:726)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1049)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
	at sun.plugin2.applet.Applet2ClassLoader.getBytes(Applet2ClassLoader.java:458)
	at sun.plugin2.applet.Applet2ClassLoader.access$000(Applet2ClassLoader.java:46)
	at sun.plugin2.applet.Applet2ClassLoader$1.run(Applet2ClassLoader.java:126)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:123)
	... 6 more
Exception: java.lang.ClassNotFoundException: vnc.VncViewer.class

The error message might not be obvious at a glance and that’s why I’m writing about it actually. It’s NOT the:

load: class vnc.VncViewer.class not found.

why it’s failing but instead the real reason for the failure is the:

java.net.ConnectException: Network is unreachable

As you can read in Debian’s Bug Tracking System in bug #560044:

Netbase has recently introduced the sysctl-setting
net.ipv6.bindv6only=1 in /etc/sysctl.d/bindv6only.conf and this setting will probably be the default in squeeze.

This setting breaks networking in java, and any traffic will always
result in a “java.net.SocketException: Network is unreachable”.

To quote /etc/sysctl.d/bindv6only.conf:

When disabled, IPv6 sockets will also be able to send and receive IPv4 traffic with addresses in the form ::ffff:192.0.2.1 and daemons listening on IPv6 sockets will also accept IPv4 connections.

When IPV6_V6ONLY is enabled, daemons interested in both IPv4 and IPv6 connections must open two listening sockets.

To work around this issue you can either execute the Java process through "java -Djava.net.preferIPv4Stack=true" or to change the IPv6 behaviour system wide execute "sysctl -w net.ipv6.bindv6only=0". To make this setting permanent across reboots adjust the setting inside /etc/sysctl.d/bindv6only.conf. After applying this workaround the Remote Console should work again.

Fun in the Linux kernel source

April 6th, 2010
void die_if_kernel(char *str, struct pt_regs *regs)
{
        static int die_counter;
        int count = 0;

        /* Amuse the user. */
        printk(
"              \\|/ ____ \\|/\n"
"              \"@'/ .. \\`@\"\n"
"              /_| \\__/ |_\\\n"
"                 \\__U_/\n");

  – arch/sparc/kernel/traps_64.c

I am going to DebConf 10

April 3rd, 2010

*

Just booked my ticket for DebConf10. See you in New York.

Event: Blender 3D UserDay 2010 in Graz

March 3rd, 2010

Via flo:

Wir möchten Euch auf eine Veranstaltung am 20. März 2010 im Medienkunstlabor Graz (im Kunsthaus) hinweisen:
Blender 3D UserDay 2010

Weitere Informationen auf www.blenderusers.at.