23/12/2008

openSuSE 11.1 - cool stuff and quirks

A small list of what we like and don't like about openSuSE 11.1:

22/12/2008

Kill and restart plasma

Though pretty slick and usable by now, KDE4 is not exactly stable all the time, especially plasma.
ToDo after a desktop crash (found here) - if you are lucky enough to still have a shell:
kbuildsycoca4
kquitapp plasma-desktop
kstart plasma-desktop (see comment by Casian, thanks!)
I added #!/bin/bash in front and copied the script to /usr/bin to have it at the ready. It's cleaner that just killall plasma-desktop & plasma-desktop, because the system configuration cache is rebuilt first and KDE handles quit and start.

For pre-KDE 4.3 users:
plasma is now plasma-desktop, so, in the code above change plasma-desktop to plasma.

19/12/2008

SuSE 11.0 to SuSE 11.1 and back again

This is a HowTo to update from 11.0 to 11.1 - theoretically. Actually, I'm back to 11.0 again on Tisiphone and pretty pissed off - I really like compiz and a working wireless card. Additionally, I have plenty of other things to do right now, and maybe I didn't spend as much time on this issue as it deserved ;-)
Update: It got better after the third try.
Important preliminaries:
If you do a virgin install it might be a good idea to remember what you had on the old system.
rpm -qa > allpackages.txt
Backup your system and home partitions as described here. DO IT! You will probably need it.

Hotkey problems after updating openSuSE 11.0

While I recently updated my openSuSE 11.0 on my Samsung P35, I was warned that something in the hotkey-subsystem had changed, blabla... Being the normal stupid user, I told myself "oh well, don't worry". But of course, my hotkeys were broken afterwards. To recover their functionality, simply install the package "hotkey-setup" via YaST, open a root console and cast the command:
/usr/sbin/rchotkey-setup start
Life can be so easy...

16/12/2008

Console CD burning

This was originally part of the last post, but I got stuck in an increasingly off-topic quagmire. I'm not a console zealot, but if some quick one-liner in a shell means I don't have to fire up a big GUI, I'm all for it. CD copying and ISO burning are prime candidates. You need wodim/cdrtools and cdrdao for this, which are probably installed by default as K3b depends on them. cdrtools users, replace wodim with cdrecord (see below).

12/12/2008

K3b: "cdrecord did not exit cleanly"


Some Audio CDs K3b consistently refuses to copy, no idea why (large number of tracks in all cases, though): Image files are written, all burning media are OK...
Some kind of fix: Start the copy as usual, but don't remove the image files. K3b aborts as mentioned above.

In the temp directory shown in the burning dialog you will find all extracted audio files. Burn a new Audio CD, then remove the temp files.

PS: The hard limit set by the CD standards is 99 tracks - I had about 40 each. K3b is weird.
PPS: If you are totally fed up with K3b, try console copying.

03/12/2008

Wacom Graphire 4 on SuSE 11

This is really nothing new, just a quick reminder that the Wacom setup for SuSE 10.3 doesn't change for 11.
Check your system for x11-input-wacom and x11-input-wacom-tools, get the tablet event-mouse identifier from /dev/input/by-id, and edit your xorg.conf as shown in my previous post.
Tested with Xanthippe's ATI Radeon X1300 and a fairly recent fglrx/AIGLX. Nvidia ought to work analogously - never had any trouble with their drivers.

02/12/2008

Meta-Blogging: Linus Torvalds

Yesterday Linus Torvald's blog made the Blog of Note list on Blogger - nicely positioned in the usual bunch of food, photography and knitting blogs.
The mythical larger-than-life Mr. Torvalds is actually a real-life Finnish guy living in the US who blogs about books, elections, love of pets (no penguins!), dislike of tedious sports, kids and the occasional new kernel release just like your average Joe. He is not convinced yet by the whole blogging thingy and started the blog as a nice little family/friends experiment, without flashy design or special topics.
What's really funny is the flock of tech bloggers with nerdy aliases like "sauron" or "deep thought" starting reverent discussions on every entry. Sadly, for them, Mr. Torvalds answers comments only very occasionally.
Behold a Geek Icon hopelessly out-geeked.

18/11/2008

SSH port changes and the openSuSE firewall

Note to self - when changing the SSH port from default 22, keep in mind:
  • Change listening port in Webmin (port number > 1024 recommended)
  • Let Webmin handle the sighup (existing connections are kept)
  • No webmin available: Change port in /etc/ssh/sshd_config (right where it says "Port") . It's easier just to restart (but all connections are killed)
    sudo /etc/init.d/ssh restart
    If you need a sighup (e.g. when you administrate over ssh):
    $ sudo -s
    # ps -alxww | grep ssh
    # kill -9 <process (3rd column) with 4th column "1">
  • YaSt and firewall: YaST->Security and Users->Firewall->Allowed Services. To simply allow SSH in the drop-down list is no use, as YaST automatically assumes port 22.
    Go to "Advanced..." and open the matching TCP and UDP ports.
  • Now I can't log in any more...: a ssh connection from shell needs the -p option
    $ ssh -p <portnum> <username>@<IP>;
    scp wants the -P option (capital P - can't they unify that?);
    other services like Unison (modify the profile files) or fish:// specify the portwith <user>@<IP>:<port>
  • I want to mount a remote ssh share:
    sshfs -p <portnum> <username>@<IP>:<folder> <share>

Most of the research by daWuzzzz.

17/11/2008

Move panel widgets in KDE 4.1


Taken from the doyoulinux KDE4-review. Moving widgets on the panel in KDE 4.1.3 (SuSE Factory) works, yet it takes some googling to find out how:
  1. Get the panel into config mode by clicking the Plasma icon at the right end of the panel. The panel will increase in size and show some handles as shown above. (I cut out the middle portion to save space). If the Plasma icon isn't there, you probably have to unlock the widgets by right-clicking on a non-widget panel area.
  2. When you move your mouse over any panel widget a 4-way-arrow appears, indicating that you can drag the widget around.

16/11/2008

Improve low-res text images in GIMP


My inner nerd loves pasting stuff to doors and walls, including an image I stole from BoingBoing. 500x500 px looks OK on-screen, but printed on A4 crappy as hell. Here is a one-minute GIMP howto for cleaning up simple b/w text or vector-like images.
1.Convert to greyscale (Image->Mode->Greyscale) and scale up (Image->Scale Image... scaling by 4 did OK for me). This takes care of discolourations, the scaling operation also smoothes the image. If you are not happy yet, include another Gaussian blur.
2. Adjust the colour curves to overexpose the whitish areas and underexpose the grey-to-black ones. I displayed the curves in log style to show better the rather small dark pixel peak. Pull most of the dark peak down to zero and most of the light peak to full white. This will also take care of compression artifacts in the "white" areas.

That's it. Good enough to stick to an office door at least.

10/11/2008

Palatino in LaTeX - the modern variant

In order to use palatino as font in a LaTeX document one runs into trouble if the package units is used and one wants to use the palatino.sty.

Use the modern version called mathpazo.sty which contains also the math fonts, but you will have to set the sans serif and typewriter by hand (the old palatino.sty still set Helvetica and Courier, respectively). mathpazo.sty also knows some options - please refer to the documentation.

One problem: mathpazo.sty doesn't know greek letters in the math alphabet \mathrm . Normally this is no problem, but if you use the package units you will end up without the greek symbols in the unit, because it uses the text mode. A (not very nice) workaround would be:
\[\unit[1]{\text{$\mu$} m} \]
or \unit[1]{$\mu$m}
Note that the \text command is from the ams package, which you will need as well.

Thanks to an anonymous colleague for pointing this out.

Addendum:
As avocadohead pointed out (see comment to this post), the usage of the package SIunits instead of units is unproblematic with greek letters.
However, please note that the syntax of both packages differs:
\usepackage{units}: \unit[3]{unit}
\usepackage{SIunits}: \unit{3}{unit}

05/11/2008

They call it Fast Fourier Transform

Memory Leaks in the python-numeric FFT module
At present, I'm doing 2d-FFTs on extracted movies 4000-6000 frames in length. Sadly, Python cancels the job after about 2000 frames citing segfaults or memory errors, as it's running out of 2GB each of RAM and swapspace...

KSysGuard serves as a primitive debugging tool here. Note that you actually have to kill Python to ultimately free your memory. The culprit was the fft2d function from the FFT module (comes with python-numeric). I didn't find any related issues online, so maybe it's just me. However, using fft2 from scipy.fftpack (Documentation here) resolves the issue. Computing times are more or less equal for both packages.

02/11/2008

Vanity Statcounting

Hooray, we cracked 10,000 visitors! Actually, some blogs get 10 times more in one day... Visitor with the IP 72.222.146.134 from Scottsdale, Arizona, you have our exclusive permission to download the following image of a nice and tasteful flower arrangement. If you contact us, we might even send you a package of genuine German Gummi Bears.

So it's time for an off-topic post on a previously undocumented office sport: vanity statcounting.
First: The ego boost. NASA dropped in. The Ivy League. Porsche. Nokia. Some actual human being from Mountain View. Completely makes your day.
Seriously, US military, no weapons of mass destruction here - oh, all right, you were googling "quicktime". Whew.
Second: competition. Try beating taaris' 'automount NTFS' post in popularity. Did I just shoot myself in the foot...?
Third: Feel totally international. Seriously, why oh why is Iceland ignoring us this week?
Fourth: Fun with statistics. (Is that an oxymoron or what?) Here's to penguin world domination: Two thirds of our visitors use Linux! OK, might be slightly topic related.
More from the animal kingdom: Firefox rules the browser stats. IE: also ran. Six to ten percent. On principle, we don't apologise for screwed-up layout in IE 6.
Chrome users started dropping in on the day after the release, whereas the Google bot is still running on Mozilla. Makes one trust in beta releases. (Seriously, people: version 0.2? Not to mention handing your complete browsing behaviour to Google on a silver salver?)
Fifth: one might actually use the keyword stats to improve one's posts. Gah. Booooring.
Sixth: Be a Do-Gooder. Wait for nice comments. If necessary, beg for them.
Seventh: Our Google PageRank™. It's 0.0000(0). Nice round number. Proud of it.
Last but not least: our sincere apologies to all the frustrated guys googling "bitches in latex".

30/10/2008

Find out stuff about your system from bash

Another post in the "no X server"-section - find out useful stuff from a shell:
  • kernel? uname -a (thanks, DaWuzzz)
  • How long has the machine been running? uptime
  • Who is logged in? finger
  • Short general information (hardware, kernel): sysinfo (package hxtools)
  • Which distro am I on (for remote administrators or extremely confused users)?
    ls /etc/*-release
    less /etc/<thedistro>-release
    (more information here)
  • Did I install this package? rpm -qa | grep -i <any part of package name> (you need grep if you don't know the exact package name: rpm -q doesn't like wildcards)

27/10/2008

openSuSE and quota

If you ever have to setup a file server, e.g. published via SAMBA, you normally will set local quota in order to keep the hard drive usage under control. The standard commands to deal with quota are

/sbin/quotaon
/sbin/qutoaoff
/sbin/checkquota
/sbin/edquota
/sbin/repquota

You will have to enable quota in /etc/fstab for the mountpoint you want to use it:
open fstab with vi as superuser and add "usrquota,grpquota" to the options. The changed line might look like this:
/dev/sdb1 /home ext3 suid,dev,acl,usrquota,grpquota,user_xattr,exec 0 2

Remember, only native linux file systems will have the possibility to set quota.
Now you need to create the files where the quota information is stored:
being superuser, command:
touch /partition/aquota.user
touch /partition/aquota.group (if needed)
chmod 0600 /partition/aquota.*
The files aquota.* should be owned and read-writable for root only.
Remount the partition you just prepared quota for.
mount -o remount /partition
To edit quota for a user, use /sbin/edquota as superuser (it is essentially a vi).
To switch on quota, use /sbin/quotaon -avug, to switch off quota /sbin/quotaoff -avug
If you want to get a usage statistic use the command
/sbin/repquota -avug.

Finally, if everything works, you might want to have quota enabled by default at system startup. For openSuSE (found for 10.2, 10.3 and 11) this is easily achieved by commanding
cd /etc/init.d
insserv boot.quota
as superuser and rebooting the machine.

Warning: Never never never (I really mean it) install quota on the mountpoint / otherwise you might get into trouble if root cannot login any more, because the file space available for root has reached the limit...

22/10/2008

openSuSE grub and exchanging hard drives

One very strange feature of the openSuSE grub is that it addresses all partitions with "device-by-id". Works perfectly reasonable as long as you don't want to transfer an existing installation on another hard drive. In this case remember to change all device references in the following files:
/boot/grub/menu.lst
and
/etc/fstab
(remember to back up the original ones first)
otherwise you will be left with an unbootable linux after having it successfully copied to your new hard drive.

You can do all these changes being root in a live linux of your choice.

SuSE KDE 4 rant

Dragging myself kicking and screaming into the 21st century, I resolved not to ignore KDE 4 completely any more - i.e. using it for serious work and longer than 3 minutes.
First impressions: more or less useable. Compiz works OK. Plasma crashes every time I change something in the panel (restarts again immediately, though). I still have to find out how to make my widget settings permanent.
Being in a rather daring and experimental mood, I checked out Amarok 2 beta 2 (I can't wait for the final release). You will find the RPM on KDE4:UNSTABLE; however, you can't install that on openSuSE standard KDE4, as it requires KDE >= 4.1.2 and openSuSE is still banking on 4.0.4.
Hello??
KDE 4.1 has been out since July and SuSE is still shipping it from Factory only? Installing stuff from factory is just something I don't like doing, even in such tiny and insignificant cases as my desktop environment. Ironically, 4.1.x is supposed to be a major improvement to the notoriously buggy 4.0.4 (which would be the default desktop in a plain SuSE installation, btw). Well, apparently they keep 4.1.x up their sleeve till the openSuSE 11.1 release sometime in December.
Why oh why can't they do it a bit more modularly? For one, keeping people waiting half a year for an important bugfix release is not a very nice thing to do, and even when 11.1 is out, I don't want to do a complete OS update just to brush up my desktop and update my favourite audio player. (To be fair, I wouldn't put it past them to parallelly release 4.1.x for 11.0 - but still: December?)
Enough italics for today. Still disappointed.
Update: The opensuse download page displays an one-click installer for 4.1.3 stable by now. Didn't try it because all my systems run on factory for reasons mentioned above - though daWuzz had some trouble with strange dependency conflicts.

Linux Swiss Army Knives for exchanging hard drives

One of the very basic problems: you have to exchange a harddrive, either because it is about to fail or it has simply become too small for the job, but of course you don't want to reinstall all your OS's and data. Here are some tools which might help you rescuing your cherished Windows, Linux and all your settings.

  1. Have a computer with a CD-ROM drive and enough RAM ready.
  2. (Can't say it often enough) BACKUP ALL YOUR IMPORTANT DATA!
  3. Download a live-cd of Gparted.
  4. Get a Live-CD of your favourite flavour just in case you need to work with a console . I like to use Xubuntu, because the desktop environment is saving resources and I need the shell most of all anyway.
  5. Get the CD version of Super-Grub.
  6. Set the drive jumpers (master/slave) accordingly to the setup in your machine.
    If you use P-ATA 2.5'' drives, get a 3.5'' to 2.5'' adapter for each of them to be able to connect it to the normal IDE bus.
Now start your computer with the GParted live CD. The process of copying and enlarging partitions is self-explaining within the graphical interface of GParted.

In my case, the Windows system partition as well as the ntfs data partition and the linux ext3 home partition were copied almost perfectly; however, the Linux system partition was entirely corrupted. I restored it via dd, see this post about dd, this post about mounting images and this post about mounting network shares

Now you have a nice and resized copy of your OS's on the new hard drive. Plug it into your destination computer. BUT: booting will still be a problem, since you never copied the Master Boot Record (and be very careful about fiddling with the MBR, you might kill all your data)

Here the SuperGrub disk kicks in: just boot from it and choose super-grub. The disk will rewrite an appropriate boot sector code and will enable you to boot at least one of your OS's. BTW: it can also restore a Windows XP MBR, if you just happen to have only this OS...

16/10/2008

Security bugfix in CUPS 1.3.9

Once again according to Heise, CUPS 1.3.9 fixes some possible exploits, so I was a bit miffed to find nothing more recent than 1.2.12 in the openSuSE main repos (on 10.3, at least).
However, CUPS 1.3.9 is available from the openSuSE Printing repo.

10/10/2008

Spontaneous Audio failure

Tried to play an mp3 this morning. Amarok message: "xine was unable to initialize any audio drivers" Mplayer: "jack cannot open server". Had a slight déjà vu and kicked myself for not having logged what worked in my case, which was deleting the card in Yast->Hardware->Sound and having in autoconfigured again afterwards.
No risk involved, provided you did not configure the card by hand and don't care about losing the old config.

N.B.: This happened on Xanthippe, Tisiphone and Archimedes consecutively. Is it just me???

08/10/2008

Network print on a Windows machine

Here is the howto for connecting to a Windows printer from Linux

Prerequisites: installed samba (maybe samba-client is sufficient), cups, ghostscript, foomatic-filters (most of them are default anyway), the printer must be shared and accessible over the network.

  1. Open a browser of your choice and type localhost:631 into the address bar
  2. Click "Add printer" and fill name, location and description and continue
  3. For device choose "Windows Printer via SAMBA"
  4. Device-URI: smb://<windowsboxname>/<printersharename> - no port required, so leave it empty
  5. Choose the model of the printer - if the driver is not in the database you'll have to provide the ppd-file.
  6. At around this point you'll be asked for user name and password for CUPS (most likely, your root password, depending on your configuration)
  7. Change options if neccessary and enjoy

06/10/2008

Packages to add to a standard installation

These are the packages I would always install from the main repo (more a reminder for myself, but I guess it is useful for many people out there as well). This list is by far not complete and will be updated.

  • ntfsconfig (gui helper for setting read/write ability for ntfs drives)
  • quanta (web site development suite)
  • lynx (text browser for console - old, but can be very useful if you're left with a shell only)
  • texlive (LaTeX System)
  • kile (LaTeX Editor)
  • miktex-tools (if you use LaTeX and want to have a convenient package manager
Additionally, there are some packages which are not really usable or functional in the standard installation and should be replaced by packman versions (see post by avocadohead)

03/10/2008

Keep track of your YaST updates

Right on top of my YaST Installer wishlist would be a "sort by install date" option in order to easily revert what yesterday's uncautious update screwed up. At least I found out where the installer log is: /var/log/YaST2/y2logRPM.
sudo tail -n 100 /var/log/YaST2/y2logRPM (100 last lines) ought to give you a hint about the most recent changes.

Note: Doesn't work for SuSE 11.1. Try
# sudo tail -n 100 /var/log/zypp/history
If you want to compare when you installed which version of a certain package:
# sudo cat /var/log/zypp/history | grep -i <packagename>

25/09/2008

HTML special characters with KFileReplace

O my beloved Umlaut! … and all the characters I never wanted to know about … €¶Ŧ←↓→ØÞ¨ÆßÐŊĦĸŁ …
Copy and paste of non-standard ASCII text in Quanta can be cumbersome as the automatic replacement plugin only works with typing (Settings->Configure Quanta…->Automatic replacement of the accented characters). Another option would be to do some batch search-and-replace.
KFileReplace works both as a standalone app and a Quanta plugin (I don't think there is a Kate plugin yet). Multiple strings can be replaced directory-wide in one go, the session format is XML. I just googled a special character map (for reference, see e. g. here), wrote the .kfr XML file with a spreadsheet editor, and loaded it from KFileReplace. (Search/Replace->Strings->Load Strings List From File...)
Warning: Alpha-Howto! This has not been tested rigorously and might do some unwanted replacements; neither can it be a comprehensive list (e.g. no Greek characters except µ, sadly, I also decided against Chinese). Also, KFileReplace overwrites your original file (no undo!). I strongly recommend to enable "Do backup copy instead of overwrite" in the "Customise Search/Replace Session" dialog.
Whoever finds another culprit in the replacement list, please leave a comment.

Firefox 3.0.2

According to the German Heise Security page Mozilla has patched some important security issues in Firefox 3.0.2. As of this morning, that version is not yet available in the main update repo, but you can get it from the Mozilla Build Service Repo.
Update: 3.0.2 had another bug, passwords containing non-ASCII characters can't be accessed. 3.0.3 is already out and fixed (same repo).

19/09/2008

KRDC/KDE4 screws up my keystrokes...

...and just now I have neither time nor nerve to look for a fix. "O" apparently is transmitted as enter, the left mouse button opens context menus, and so on. Neither a VNC restart on the remote machine nor a KRDC restart change anything - I've had that problem before (maybe it's the compressed ssh tunnel). Most forum and blog posters complain about apparent tightvnc bugs, but for me, switching to a different viewer already did the job.
Usually, the KDE3 KRDC version is less buggy (look for package kdenetwork3-vnc), but if you need just a plain vanilla VNC without extras like full screen windows and special key transmission, tightvnc's vncviewer (package tightvnc, binary is /usr/bin/vncviewer) has a nice minimalist interface (no space-eating menus). The -fullscreen option is also very useful.

18/09/2008

Setting up an Apache server for testing purposes

First, why the hell would we do that? In my case, I have to play around with some simple PHP gallery scripts at the moment, and I am not very keen on testing them instantly on our university server (I expect the sysadmins aren't very keen on that, either, I'm a complete noob on a steep learning-by-doing curve).
Note: I include some MySQL directions here, because a lot of scripts manage MySQL databases. However, e.g. for a not-too-complicated image gallery PHP alone should do the job.
Warning: Don't follow this to configure a fully functional web server: a little knowledge is a dangerous thing - and who lets a total noob configure a web server anyway? This is just to get some practice - reduce my amount of noobness, so to say - working locally, I didn't care too much about security.
Packages to install: Either go for the full LAMP glory (YaST->Software->Patterns>Web and LAMP server), or install by hand apache2, php5, apache2_mod_php5 (if you want php4, find a repo, it's not in the official openSuSE 11 distro any more), if you want Mysql, also mysql, php5-mysql and probably phpMyAdmin. For any kind of server administration, Webmin is also not a bad idea.
To start the apache daemon: run sudo /etc/init.d/apache2 start (at least that's where the http daemon is on my system - you need the full path because it's not in PATH). Guess the code for stopping…

Check your firewall (YaST->Security and users). The allowed services for the External zone should include nothing like 'Apache' or 'HTTP daemon'. Thus, you won't need to fiddle with access control settings, the server is only accessible from localhost (however, some good information on that subject is here and here).
I don't know about other distros, but on openSuSE there is a public_html directory in your home folder. Any HTML documents you store there can be accessed on http://localhost/~<your user name>.
This is comfy if you keep the server local. On a public server I would strongly advise against public folders in one's home directory. However, you can change that in the Apache config files: Remove the userdir entry from the APACHE_MODULES list in /etc/sysconfig/apache2 (either modify the file directly or use the YaST module System->/etc/sysconfig Editor).

Konqueror wants to open web documents in editor

Konqueror trying to open HTML web document
One of the problems when you marry a file manager to a web browser. I don't recollect why the file association got changed in the first place, but it's easy to change it back again:
Settings->Configure Konqueror...->File associations: Search for HTML under 'Find filename pattern', it's probably in 'text' or 'application'. Set 'Show file in embedded viewer' in the Embedding tab and make sure 'KHTML' is the first item under Services Preference Order.
If you still want to edit local HTML documents, use the right-click menu.

12/09/2008

More gcc 4.3 'victims'

Quoting from a KDE mailing list: "In GCC 4.3, the C++ header
dependencies have been cleaned up. The advantage of this is that programs will compile faster. The downside is that you actually
need to directly #include everything you use".
So, if you get make errors like "error: 'free' was not declared in this scope", this might be due to a source file missing the (c)stdlib dependency.
This is kind of a wailing wall for patch candidates.
  • miktex: patch exists
  • qtpfsgui-1.8.12: #include <stdlib.h> in src/Libpfs/pfs.cpp and src/TM_operators/ashikhmin02/tmo_ashikhmin02.cpp
    1.8.12 is the current stable release, the "new" version (>1.9.2) is already patched.
  • lshw-B.02.13: src/core/abi.cc needs cstdlib
And yes, it's not a bug, it's a feature. Really.

26/08/2008

Compiling master documents in Kile

Kile has no special "build project" tool for building LaTeX master files (which irritates former TeXnicCenter users like me).
To handle LaTeX master files, e.g. a thesis with chapter input from \include{file} statements, define a Kile project and add all .tex files irrespective of master and child status.
Check the master file in the project options, usually the auto-detect option works (I assume Kile searches all files for \begin{document}/\end{document}). All normal build tools shold now apply only to the master file, no matter which document you are just editing.

Another issue: Using BibTeX in a Kile project. For this you need the QuickBuild tool. PDFLaTeX+BibTeX isn't preconfigured (at least with my Kile version) and has to be added by hand in Settings->Configure Kile…->Tools->Build:
PDFLaTeX
BibTeX
PDFLaTeX
PDFLaTeX
After that, you can run everything from inside Kile with the QuickBuild button.
If you are using a Kile project with a master document, you have to specify the appropriate QuickBuild configuration in the Project->Project Options dialog. (Actually, if you include a BibTeX bibliography in a .tex file, Kile seems to run BibTeX and 3 times LaTeX automatically. Still, it's good to have the QuickBuild handy). Also, there was a bug removing duplicate entries like "PDFLaTeX PDFLaTeX" in the Quickbuild configuration of Kile/KDE4 (fixed by now).

25/08/2008

Blank Java windows with compiz

Java apps (e.g. my favourite BibTeX editor, JabRef) have a habit of coming up as persistently blank windows with compiz and several recent Java versions. According to this thread this is due to Java expecting your window manager to re-parent the window which compiz doesn't (I'm so not a WM expert...). The following workaround did OK for me. Override the Java VM's default AWT Toolkit, e. g. calling JabRef:
export AWT_TOOLKIT=MToolkit
java -jar JabRef-2.3.1.jar

If you use Java apps a lot, it might be a good idea to add the export statement to your ~/.bashrc - or write the two lines above in a shell script in /usr/bin or similar.

UPDATE (2010): My days of compiz are long past, but I didn't change my ~/.bashrc despite several new SuSE installations. Running Jabref 2.5 with Sun's Java 1.6.0_17 on SuSE 11.2 (KDE 4.4β) produced a segfault citing a problematic frame in libc.so.6. Unsetting the AWT_TOOLKIT variable solved it.

16/08/2008

Samsung P35: openSuSE 11 and Compiz

After I had completely f**ked up my X-Server by trying different fglrx drivers in order to get a reasonable compiz 3d-Acceleration, I finally decided to throw away my openSuSE 10.3 and install openSuSE 11 on my Samsung P35 XVM 1600 II, graphics card ATI Mobility Radeon 9700 series. Installation went smooth, apart from the interesting suggestion of the setup program not to just mount my home partition, but format it (yes, you should be careful about that as well - I don't want to lose all my settings just because openSuSE thinks that might be a good idea).

After the reboot, I was more than impressed... Compiz was running out of the box, without even the need to use the ati fglrx driver. This is the proof, with the radeon driver included in the XServer version of openSuSE 11 the card definitely runs AIGLX - by the way also without the well known "freeze after ending an x-session" error. Video playback of embedded flash movies in firefox unfortunately flickers a little bit. But if you use fusion-icon, you can switch back to Kwin as window manager temporarily for viewing (add the openSuSE Build: Xgl/Xorg repo to Yast in order to find fusion-icon). On the other hand, playing movies with Kaffeine doesn't show flicker at all.

The hotkeys don't work out of the box, but it is sufficient to look for acerhk in Yast after adding the standard repos and choose the appropriate rpm for your kernel flavor (which you can also get by opening Konqueror and typing sysinfo:/ into the adress bar). After the necessary reboot all the (important) hotkeys work.

01/08/2008

miktex-tools don't compile on openSuSE 11...

...because they included a newer gcc version (4.3.1 rc1). Typical make error: "expected ‘;’ before ‘<’ token". This is a known bug (see this discussion), and there is a patch - there are just some include statements missing.
Download the patch file mpm-2.7.3107-gcc-4.3.patch and run
patch -p0 < mpm-2.7.3107-gcc-4.3.patch
in the directory where you untarred the sources.
If your patch fails, try patching manually (read the patch file), it's just one or two lines each in less than 10 files. Mpm should compile OK now (HowTo).
A nice diff and patch intro can be found at linuxforums.org.
Considering the easy fix, I suppose they'll dispose of this bug soon ;-)

29/07/2008

Linux programs on Windows? Yes! The magic word: andLinux

Again a post which is not really related to OpenSuSE at all, but for people still living in the Windoze world...

Maybe you stumbled upon really nice programs while trying out some Linux distribution, but you can't get away from Windows (yet) and still want to use some of those nice programs? Here is the solution:
andLinux offers you a complete Ubuntu Linux within Windows. The nice thing is: it is not a virtual machine (i.e. a second "PC" starting in your main machine) but rather a running service in Windows which speeds up the whole thing quite a bit.

I've installed the andLinux kde version on my office Windows Machine. I didn't want to have it started automatically so I chose "run as service manually" in the install options. (Just a note: you'll need 4.5 GB of free harddisk space for the KDE version!)

You can exchange data with it most recommendetly via "Samba" - for all newbies: this is the part in Linux which can communicate with the Windows File Share System. To use this feature, you need to create a Share for the folder you want to exchange date with linux (most likely: your private data folder). Create a user with username and password and share the folder for this user (don't use blanks in the share name) - these data will be asked for during the install routine of andLinux and enable it to communicate with Windows

First impression: after having clicked the "Start andLinux" startup button in the associated Start-Menu entry, nothing happened.
The reason was my firewall: andLinux installes a virtual network device called TAP-Colinux and all the communication with windows runs over the TCP/IP-protocol. So tell your firewall to accept any traffic on that network device and from and to the IPs: 192.168.11.150 (linux host) and 192.168.11.1 (windows host). There is also the sound server called pulseaudio and the X-Server called Xming which need entire network address to the addresses mentioned before. You will also have to enable network access to "menu.exe" which communicates with the embedded linux via TCP/IP.

Now you can open any program in this nice little kde-launcher-menu installed by andlinux and running in the task bar, or if you prefer, open a console (see the andLinux start menu folder) and launch stuff from there. By using Synaptic you can install whatever package you like from the ubuntu

All that being very nice, I was still unhappy that e.g. the kde-menu and the Xserver Xming started on system boot up and not only when I wanted to use andLinux, so I edited the startup script "start andLinux" (i.e. C:\Programme\andLinux\srvstart.bat) to the following content and removed Xming and the kde-menu from the startup by using msconfig.exe (you should be familiar with that, otherwise don't fiddle with it!)
start C:\Programme\andLinux\Xming\Xming.exe :0 -dpi 85 -clipboard -notrayicon -c -multiwindow -reset -terminate -unixkill -logfile Xming.log
net start andLinux
cd C:\Programme\andLinux\Launcher\
start C:\Programme\andLinux\Launcher\menu.exe

Note: the first lines beginning with "start" until "Xming.log" are actually ONE line.

Just to let you know, in case you see strange characters e.g. by using Kate or Kile in Windows: the standard code page used for the German Windows is ISO 8859-15 (which you can set being the default for the programs mentioned).

BE CAREFUL: there is a security issue: every program is in standard run as the root user in andLInux, which means, you (or somebody else having access to your machine) can quite heavily damage the installed andLinux system by accident). There is in principle a way to change that in the wiki of andLinux, but it seems rather complicated and I didn't want to fiddle around with it so far.

python-matplotlib and wxmpl

wxmpl is a nice library for implementing matplotlib-plots in wxpython-GUIs.

However, it is not always synchronised with the latest matplotlib. So, a rather careless system update to matplotlib 0.98 (major makeover somewhere) from the packman repo quite efficiently disables wxmpl 1.2.9:
"ImportError: cannot import name Point" (from matplotlib.transforms)... and so on...
0.91 works - there is a SuSE package in the Education repository, add
ftp5.gwdg.de/pub/opensuse/repositories/Education/desktop/openSUSE_10.3/ in YaST (or openSUSE_11.0, note that the URL dropped a ":" since I last edited this post) - and while you're at it, protect your python packages against updates ;-)

On the matplotlib Sourceforge mailing list, someone has posted an inofficial updated version, which should be OK with matplotlib-0.98. However, they dropped 3d plotting support from matplotlib > 0.91, so maybe it's still advisable to stick to older versions. Update: 3d plotting is going to be back in in 0.99 (see here). Yay!
Note that there seems to be some bug with numpy's histogram function: if you set the normed keyword, you might get a
TypeError: 'NoneType' object is not iterable error.


Note: I've been experiencing segmentation faults at calling pylab.show() from a wxpython application. In my case this was due to the matplotlib using the wrong backend:
If there is no file ~/.matplotlib/matplotlibrc, copy it from /usr/lib/python2.5/site-packages/matplotlib/mpl-data/matplotlibrc.
Edit the "backend"-line to WxAgg:
#### CONFIGURATION BEGINS HERE
# the default backend; one of GTK GTKAgg GTKCairo FltkAgg QtAgg TkAgg
# WX WXAgg Agg Cairo GD GDK Paint PS PDF SVG Template
backend: WXAgg

Alternative: import the packages in exactly this order:
$ import matplotlib
$ matplotlib.use('WXAgg')
$ import pylab


On the other hand, calling pylab.show() repeatedly with the 'WXAgg' backend from a non wx-environment (e.g. a shell) can result in blank or crashing figure windows starting from the second call. Use some other backend, for example 'GTKAgg', following the example above.

27/07/2008

Amarok - composer vs. artist tag

It is always a bit frustrating for classical music lovers when audio players don't distinguish properly between artist and composer or insist on sorting by artist, so that one tends to specify the composer as the artist.
Amarok is quite good there. The tag editor (right click on file or album, ->Edit track information) distinguishes between artist and composer. The collection can be browsed by any criterion by clicking on "Group by" in the top toolbar. On-screen display ("%composer" placeholder) and the track list (edit columns) can also display composer info. Only the Wikipedia context browser still has only the "Artist" option. Someone wrote a wishlist entry (Bug 147552) on bugs.kde.org - so vote for it ;-)

Note (amarok2 on KDE4.2): check the output of qdbus org.kde.amarok /Player GetMetadata. And I wondered why my Karamba edits had no effect…
Moreover, they dropped the OSD text configuration option - so no composer there either.

Automating the pdf movie workaround

These ought to make the PDF-embedded movie workaround a bit less cumbersome.

25/07/2008

Embedded movies in LaTeX PDF - the workaround

Not very elegant, but it works. Als o slightly historic: okular and acroread/flash can be made to play back movies to a certain extent, and lately I defected to exporting the PDF presentation to Impress, because it has a gorgeous presenter console (summary here).
Prerequisites: mplayer, acroread and a window manager capable of window rules: KWin, Compiz with CCSM or Gnome with Devil's Pie (I'm not a Gnome user, so no experience with the latter)
You can automate most of this with a shell script, but that's going to be another post (this is over-long already).

22/07/2008

lshw: a pretty useful system analysis tool...

...which is not included in the openSuSE distribution. Get the sources from ezix.org.
Untar, run make, if you want the GUI, run also make gui (cf. the README file).
The lshw command-line tool is in the src subdir, the GUI (gtk-lshw) in src/gui. If you want to use both systemwide, copy lshw to /usr/bin and create a shell script in /usr/bin:
#!/bin/bash
kdesu <location of gtk-lshw>
Make it executable.
There is even a 10.3 rpm here. In case the sources don't compile - it also seems to work OK on 11.0.

Talking of compile bugs - I got a compile error on 11.0 with lshw-B.02.13 (apparenty yet again caused by the switch to GCC 4.3)
abi.cc: In function ‘bool scan_abi(hwNode&)’:
abi.cc:39: error: ‘free’ was not declared in this scope

Just add a #include <cstdlib> statement in <lshw source dir>/src/core/abi.cc.
dev.ezix.org had the solution and also a diff file.

HowTo configure an SSH tunnel via PuTTY

Not really OpenSuSE-related, well somewhat: how to tunnel to a ssh box from a Windows Machine using PuTTY

  1. Start PuTTY
  2. Enter the Host Name or IP address of the machine you want to connect in the appropriate field
  3. Change to Connection --> SSH --> Tunnel
  4. Enter the LOCAL Port Number in "Source Port"
  5. Enter the REMOTE host and port in the form: remotehost.tld:PortNumber in "Destination"
  6. Double Check whether "Local" and "Auto" is marked in the settings
  7. Click "Add"
  8. Something like "L12345 remotehost.tdl:23456" should appear in the "Forwarded Ports" box
  9. Go back to "Session" and save the session in order to keep the settings for the next start of PuTTY
  10. Connect to your machine - the terminal needs to stay open as long as you want to use the SSH-Tunnel
BTW: if you want to start PuTTY from the command line easily, just copy putty.exe into the /Windows/system32/ folder and rename it to ssh.exe, then you can start it by commanding ssh on a console or in the "run" dialog.

When Amarok doesn't play audio CDs…

Amarok 1.x is quite unreliable with audio CDs. Apparently this has to do partly with configuration bugs, so the following tricks might help - or not. Depending on the engine you use, you get different error messages - "No suitable input plugin" (xine) or "could not open cd device for reading" (yauap). On the other hand, Amarok2 does not play audio CDs at all.
BTW, Amarok comes without xine plugin in openSuSE 11.0, so install the amarok-xine package to use the engine.
Possible solutions:

21/07/2008

OpenSuSE 11, kdesu and sudo ;-)

Hardly more than a quick comment to daWuzzzz's last post:
Note that in 11.0 they switched from sudo to su behind kdesu. Starting YaST or KControl, you will still be prompted for the root password, even if you are a sudoer. Ben Kevan's blog has some recipe for that.
E.g. for KDE3, edit ~/.kde/share/config/kdesurc (or create that file).
[Passwords]
Keep=false

[super-user-command]
super-user-command=sudo
For KDE4, take the ~/.kde4/... equivalent (did it only on KDE3 myself). Of course, you can also switch kdesu to su on openSuSE 10.3 with the same method.

OpenSuSE 11 and Sudo

Just to let you know again: in order to add a user to the sudoers, adding the user to the group "trusted" and configuring it in the Yast Module Sudo is NOT sufficient. What avocadohead has already pointed out in this article posted in this blog is valid as well for OpenSUSE 11, i.e. manually configuring the /etc/sudoers file and commenting out the lines indicated in the commented file.

18/07/2008

ATI, OpenSuSE 11 and Compiz

Apparently the drivers in the openSuSE ATI repo are recent enough to support a reasonable AIGLX/Compiz performance, so no fiddling with the xorg.conf any more, just install the drivers and run sax2.
Compiz can replace KDM at startup: Control Centre -> KDE Components -> Session Manager. Here, you have a choice of window managers. "Compiz" will only work if compiz runs on your systems without extra options (e.g. --no-libg-fallback), which usually isn't the case. I prefer the "Compiz custom" option. To make that work, create a file "compiz-kde-launcher" in /usr/bin/, ~/bin or wherever your system can find it:
#!/bin/bash
sleep 3
wait
compiz --replace --no-libgl-fallback --ignore-desktop-hints ccp & #or whatever options work for you
sleep 1
emerald --replace &
exit 0

The sleep and wait statements are there to ensure that tray apps etc. have enough time to start up and emerald doesn't fire up before compiz is ready. Feel free to remove/change them.
Make the script executable:
# chmod a+x /usr/bin/compiz-kde-launcher
That's it.

Compiz and desktop shortcuts

One slightly annoying thing about Compiz is that it grabs control of some global shortcuts - I heavily depend on Katapult (default Alt+Space), the run dialog (Alt+F2) and the occasional XKill (Strg+Alt+Esc).
Fix:
1) Go to CCSM->General Options->Commands tab
2) Under "Commands", you can define up to 12 entries.
Katapult:katapult
Run dialog:dcop kdesktop KDesktopIface popupExecuteCommand
XKill:xkill
3) Associate any keyboard shortcuts you want under "Key bindings". If there is a conflict, compiz will notify you. Compiz had already set Run dialog for Alt+F2 before, but for some reason the shortcut didn't work this time. Also shortcuts containing Esc will not work, you have to choose a different one for XKill.

Global shortcut conflicts (Amarok example, most KDE programs work analogously):
Amarok shortcuts seem to be generally window-manager-independent, however, conflicts are resolved in favour of compiz. This usually affects Win (Super) + C (Enhanced Zoom/Group and Tab Windows) and Win + Z (Put Windows).
The easiest way is to change your Amarok shortcuts: Amarok->Settings->Configure Global Shortcuts…
If you want to keep the Amarok shortcuts and to know exactly which compiz plugin is blocking your shortcut, do a grep (found here) in /etc/gconf/schemas:
grep -A 2 '&lt;Super&gt;c' /etc/gconf/schemas/*.schemas
(XML file, so use HTML string notation. Example for <Super>C, adapt if necessary). Either change the shortcut directly in the affected .schemas file (check whether the plugin is active), or use the CCSM GUI.

KDE 4
Global shortcuts are managed in the Personal Settings manager (Keyboard & Mouse) for all KDE4 applications.

09/07/2008

X(anthippe)-Files Part 2: The "Clean" Install

First little joyful fact: SuSE 11.0 replaced the Ubuntu and not the SuSE 10.3 GRUB; took me a while to realise that, and a GRUB crashing at stage 1.5 or failing to read the system partition is not a pretty thing. Also, even the working version completely ignores the Windoze and Ubuntu installs. Still, one can fix that.

Secondly: SuSE boots, X doesn't start. At least I had a root shell and a network connection. xorg.conf had no mention of AIGLX options, so I started the console yast (old and staunch friend), added the ATI repositories, did an update, installed the fglrx driver and ran sax2. rcxdm restart resulted in a graphical login screen. Phew!

Thirdly: no users. I could have sworn I imported the old ones during installation. I logged in as root, created the users again in yast and gave them their old home directories, which remained unchanged, thank God.

Maybe it's Xanthippe, the little bitch, and her ATI Radeon X1300, or I was just extremely tired and stupid during install, but this could really have gone more smoothly (cf. Persephone).

06/07/2008

"Get the latest Quicktime" - !??!

Do you too check out movie trailers on apple.com when you are bored / procrastinating?
For quite a number of pages the movie doesn't play, instead you are told to get the latest Quicktime, which is a good joke for people stuck on mplayerplug-in.
Actually, the problem has already been resolved (see this discussion and the mplayer page), there is just no ready-made RPM yet:
1) According to the ArchLinux forums discussion, I changed
"QuickTime Plug-in 6.0 / 7:$" to "QuickTime Plug-in 7:$" in ~/.mozilla/firefox/pluginreg.dat
(not sure whether that is necessary)
2) I uninstalled the current mplayer-plugin and added the mozilla-xulrunner190-devel package (in place of Firefox development package) in yast
3) I got the mplayerplug-in daily build (3.55 probably works too, as it's just two weeks old) untarred, ran ./compile and make. Make install doesn't work, as the build files assume a different plugin directory, so copy the files by hand:
$ sudo cp mplayerplug-in*.so mplayerplug-in*.xpt /usr/lib/browser-plugins/

Control run on Tisiphone: Works also with just steps 2 and 3 and the 3.55 release.
Happy procrastinating!

04/07/2008

Upgrading SuSE 10.3 to SuSE 11.0 - The X(anthippe) Files

Being in a rather venturous mood, I decided to try out the upgrade-from-DVD feature on Xanthippe (I don't really want to hunt down every package of additional software again).
For starters, I dumped gzipped partition images of my system and home partitions (cf. daWuzz) on an external disk. I used knoppix to do this (and to format my external partitions), I am not sure whether one can dump the system partition of a running system. Caveats: to write to a drive in Knoppix, you have to enable write support (right click to drive's desktop icon). For the dumping you have to be root - there is no root password set by default, so sudo su won't ask for it.

During the update process (update option is given after the system analysis) the installer analyses the software repositories present on your system. Provided you get the internet connection working in the next step (which I didn't :-( ), you might manually change them to the corresponding SuSE 11 repos. Lacking a LAN connection, I had no 11.0 Packman repo available and got a small number of conflicts in the software selection, which could be resolved by downgrading to the SuSE versions (stuff like Amarok, Ktorrent or wxGTK).
The following update took approx. 2 hours (might be just due to all that additional packages), which is of course quite a bit longer that a clean install (1/2 h?). So if you don't have a lot of additional software and settings, you might consider to just leave your home partition as it is, do a clean install on the system partition and install by hand what's missing.

OK, bad news: during boot, the system gets stuck on endless repetitions of
hub 2-3:1.0: unable to enumerate USB device on port n
. This is the 2.6.25 kernel's reaction to my faulty internal USB hub - still, I can't get the updated system to boot that way.
I will try a clean install next...

Clean install notes:
Automatic partitioning setup even includes mounting my former home partition, which is quite nice. Not quite so smart: the user setup still just offers to create a new user, the "import old users option" is concealed behind the Change... button.

How to find a damn fast download server


The download page for the openSuSE releases usually chooses a mirror for you. I use to fetch big downloads over my university's broadband connection, so the server speed really matters to me.
Luckily, openSuSE features a mirror list (follow the mirrors link).

PS: In light of certain very recent releases, here are the mirror links for openSuSE 11.1.

02/07/2008

Who's afraid of SuSE 11?

Me, apparently.
After spending the release date abroad, I still didn't want to abandon any of my nicely running 10.3 systems. Luckily (?) Persephone's (crappy old Intel lab computer) hard disk had just crashed and I took the opportunity to add a trial SuSE 11 to the ubiquitous Windows XP.

First impressions:
Setup:
Computer took 3 reboots each to recognise the SuSE DVD and the system disk. Did I mention it's crappy and old?
During setup, it is apparently possible to set up a standard user account as root (tick mark during password setup, active by default). Seems pretty dangerous to me.
Given the choice of KDE 3.5.9 and 4.0.4, I settled for the 3.5 line (I'm waiting for 4.1 before trying anything serious). I presume that you can still add the KDE4-Desktop on top afterwards, as with SuSE 10.3.
Usage:
The default login screen in my humble opinion is ugly.
The system time is consistently off by more than an hour (I suspect the crappy hardware). Ctrl+Alt+Backspace has to be pressed two times to kill the X server, accompanied by a nasty beep (it's not a bug, it's a feature ... of Xorg 7.3 - thanks, daWuzzz). Hm. I can be pretty confused sometimes, but I have never in my life hit those keys by accident. Apparently one can remove the feature by setting "Zap Warning" to "off" in the xorg.conf (cf. comments here)
New Yast Software utility: miraculously, doesn't always refresh repositories before starting. If it does, it doesn't spawn pop-up windows every time a new repo is refreshed, so the focus-stealing issue is resolved. I love it!
Also comes in handy: The repository manager is directly accesible from the software manager.
The community repositories entry in Yast->Software has been merged into the Add-On Product item - as long as it's still around...
I didn't like the update checker in 10.3, the new one seems to speed up things a bit. Nice little extra: text bubble with update process details.

Eye Candy:
A not-too-fancy Compiz works OK even on a slightly older Intel on-board graphics chip (D845GVSR). AIGLX is enabled by default (no idea how this works with non-AIGLX capable chips or prorietary drivers, will test it with Xanthippe's ATI chip). Compiz can be started via Utilities->Desktop->Desktop Effects (some basic effects can be switched, for advances configuration use CCSM), no X restart necessary.

I will keep testing for some time - but I am seriously tempted to upgrade one of my other systems.

01/07/2008

Brother DCP-7010, openSuSE 10.3 and openSuSE 11

Ok, so I got the nice scanner-printer-copymachine-combo named DCP-7010 from Brother. Just some small things to mention:

  1. Printer Driver installation using the CUPS-Wrapper system went smooth following the description given by the brother people, i.e.

  2. Scanner Driver installation also went smooth:

    Xsane instantly could work with the scanner (I'm impressed - not necessarily because of the scanner - it is good for black/white and grey scans, not really good for colours - but because of the smooth installation)
  3. The BrKey tool enabling the support for the hardware "Scan-to-Email", "Scan-to-File", "Scan-to-Image" and "Scan-to-text" keys also worked buuuuuut: the fine tuning might be a little tricky, so here are some hints how to optimize your workflow:

Each of those "scanning options" simply invokes a script which does the work. You can find the scripts in the folder
/usr/local/Brother/sane/script
if you want to edit them, be sudo, if you want to work with them, be a normal user.

Change the resolution to your needs. I also wanted to change the scan length (in standard, it is obviously set to be 35cm, which is a little too much for normal A4 or letter...)
you can achieve that by adding the option -y 298.00 to the "scanimage" command. I furthermore wanted to have the scan not in 24bit color, but in b/w and wanted to get a pdf file out of it. Don't use the line brother suggests. For me the following script worked, so I'll just copy it here - I think most of it is self-explaining. BTW: with scanimage --help you can get the specific driver options for the brother as well, if you want to fiddle around more (but - Black & White seems to be just "Black", at least it worked for my model)


#! /bin/sh
set +o noclobber
#
# $1 = scanner device
# $2 = friendly name
#

#
# 100,200,300,400,600
#
resolution=400
device=$1
mkdir -p ~/brscan
if [ "`which usleep`" != '' ];then
usleep 10000
else
sleep 0.01
fi
output_file=`mktemp ~/brscan/brscan.XXXXXX`
chmod 644 $output_file
echo "scan from $2($device) to $output_file"
# ================================================
# here is the actual scan command:
scanimage --device-name "$device" --mode Black \
--resolution $resolution \
-y 298.00 \
|pnmtops > "$output_file".ps
ps2pdfwr "$output_file".ps "$output_file".pdf
# delete temporary files
rm "$output_file".ps
rm "$output_file"



All documents scanned will show up in a folder named brscan in your home directory.

Just to mention: since there are four scripts, you might want to have actually different "scan-to-file" settings on the other positions (scan-to-email, scan-to-picture, scan-to-ocr). Which scripts are started with each setting of the scan key is set up in the file
/usr/local/Brother/sane/brscan-key-versionnumber.cfg.
Just edit it to your needs. Have a lot of fun ;-) - and by the way: the DCP-7010 is really a good model, if you want to have a quite good laser printer and copier and no space on your desk for an additional scanner.

Update:
The same procedure works for a MFC-7820N (connected via USB) on Ubuntu 9.10 and 10.10. Follow the instructions on http://welcome.solutions.brother.com/ - you'll need to put /usr/bin/brscan-skey in the Autostart for every user who shall be able to use the scan key options. With the script above, unfortunately, the Automatic Document Feeder (ADF) doesn't work. You can however use it with Xsane: you'll just have to put the number of pages you want to scan in the upper left corner of the main field of Xsane.

2nd Update: 
The Automatic Document Feeder (ADF) actually works with a slightly modified script, as has been posted here.

25/06/2008

FlexLM Licence Manager Tricks (IDL version)

This is more of a very special entry for myself in order to store information - but maybe for some of you out there information of this might be useful.

The FlexLM Lincense manager is used e.g. by idl to distribute floating licenses. It uses two TCP/IP ports for communication, the first normally being 1700, the second one is chosen randomly in the standard installation. To fix the second port (which might be useful in order to configure the firewall of the server running it ;-) ) add the following to the specific license.dat file you received:
DAEMON idl_lmgrd /usr/local/itt/idl70/bin *PORT=31700
Another important step is to run the FlexLM license manager as a non-privileged user - which you can achieve by the following procedure:

  1. create a non-privileged user flexlm with own group and own user id - password set to * in order to avoid direct login and give it the standard shell /bin/sh

  2. locate the license files and manager executables and change their access rights to readable for the flexlm user (and group).

  3. locate the startup script (in my case on a SuSE 10.2 machine it is stored in /etc/init.d/sys5_idl_lmgrd)
    and modify the line where the daemon is started to:
    su flexlm -c "{original command line in startup file}"
  4. in the startup script add the line
    umask 022
    directly after
    #!/bin/sh

09/06/2008

Dumping a disk image to a remote share

Situation: You have a samba share on a networked PC (if not, set up a samba server) a broken system partition you want to back up before screwing with it, a Linux rescue CD and no available movable hard disks. Configure your network with ifconfig/ifup or the correspondig utilities on the rescue disk. Mount your Samba share with
# sudo mount -t cifs -o username=<yourusername>,password=<yourpassword> //ip.of.network.pc/<nameofshare> /<some mount folder>
Knoppix e.g. has an empty mount folder at /media/test.
Now the image can be dumped with
# dd_rhelp /dev/<sdxx> /<some mount folder>/<some image>

So far in theory: practically, I couldn't find ddrescue on my Knoppix 5.1 live CD (no idea why, maybe I was just tired), so I just plugged the drive into good old Archimedes again and dumped the drive locally before it got completely unreadable. However, dd onto a samba share worked up to the first I/O error, as expected, so dd_rhelp ought to work on the same lines. Booting the Knoppix 5.3 DVD afterwards produced a perfectly reasonable /sbin/ddrescue.

08/06/2008

Deleting more files tham rm can handle

I had to delete something between 20000 and 100000 bitmaps at work, which exceeded the 128k buffer for rm arguments.
Solution and extended discussion found here:
$ find . -name '*.bmp' | xargs rm
$ find . -name '*.bmp' -print0 | xargs -0 rm in case the file name contains spaces.

28/05/2008

Convert PDF to inkscape SVG

I tried to find a vector graphics program on Linux capable of importing pdf, like Corel does on Windows. No luck: Karbon works to a certain extent, Corel on wine seems to be tricky. Scribus can import postscript created by ps2pdf, but might shift lines in the image. There is, however, a workaround to convert PDF to inkscape SVG.
Note: This is once again a historic post, as inkscape has PDF import capabilities since version 0.46 via poppler. It's not in the official SuSE 10.3 repos, but easily available via software.opensuse.org. Works better than the workarounds. On second thought: if you are missing the importing text as curves option, you might want to use this version of pdf2svg (it's also on Ubuntu universe). Works great, even for multi-page documents.

27/05/2008

Miktex package manager on Linux

Yes, the MikTeX Package Manager does still exist for Linux, they are just in the process of porting major parts of MikTeX and don't ship the miktex-tools package any more.
Download the sources from the MikTeX page. Untar and just follow the directions in the README.unx file. For some obscure reason, lynx must be installed, also (less obscure) curl-devel.
# cmake -G "Unix Makefiles" -DMIKTEX_INSTALLROOT=/usr/share/texmf (or whereever your texmf tree is)
# make
# make install
# ldconfig
Add the installation path to the root PATH (just for convenience):
# export PATH=$PATH:/usr/local/bin
Or link mpm in /sbin:
# cd /sbin
# ln -s /usr/local/bin/mpm
For mpm usage, check man mpm or Christian Schenk's blog entry. Don't forget to run
# texhash
after making changes to get texlive to find the changed packages.

NB: mpm doesn't compile with gcc 4.3.1 (e.g. openSuSE 11) but can be patched successfully.

13/05/2008

Yet another crashed FAT hard drive

Last week my portable brain extension crashed (2.5'' 80GB FAT32 USB drive): Windows didn't recognise it at all (no surprises here), Linux mounted it, but stalled at loading the directory table.
Definitely a case for Dr. daWuzzzz's Crashed Disk First Aid Kit: one Linux desktop with a free ATA plug (unplug a CD drive if necessary), one ATA 2.5''/3.5'' adapter (like this one), one bloody big backup drive (not FAT32 because of file size limit).
Try mounting
Most portable drives can be easily extracted from their cases with a screwdriver. Connect the IDE and power plugs via the adapter to your drive. Remember to keep everything grounded! Boot up.
If you are not sure about the proper device node try
# ls -l /dev/disk/by-id
ata-SAMSUNG_MP0804H_S042J10LB08407 -> ../../sdc
ata-SAMSUNG_MP0804H_S042J10LB08407-part1 -> ../../sdc1
ata-SAMSUNG_MP0804H_S042J10LB08407-part5 -> ../../sdc5

So, the first logical partition is /dev/sdc5.
# mkdir <mountdirectory> e.g./media/backup
# mount /dev/sdc5 <mountdirectory>
If the filesystem is intact, it should be autodetected. Otherwise, try mount -t. In my case, I had now access to the whole directory structure.
Back up what's left
Dump a disk image on your backup drive (quick check free disk space with df -k).
As dd (see daWuzzzz's post) will stop copying at the first error it encounters, dd_rescue is your friend (search for "ddrescue" in YaST btw). Even more friendly is dd_rhelp (included in ddrescue, tip from the O'Reilly SysAdmin blog), which looks for healthy block sections and tries to read the damaged ones at the end of the run. It also logs the dd_rescue output, listing damaged blocks.
# dd_rhelp /dev/sdc5 /<backupdrive>/<imagename>.iso
Using the -B (hard block size, see the shell output of simple ddrescue for explanation) and -b (soft block size) options with dd_rhelp is supposed to speed this up a bit. -b makes use of the available hard disk cache, with newer drives its commonly 8M maximum (better check yours).
It still took my computer ca. 20 hours to back up my drive, so be patient. As the dump simply copies 0's and 1's, the image size is the drive size, regardless of free space.
Create a mountpoint (e.g. # mkdir /media/backup
and mount your image (read-only).
# mount -t vfat <yourimage> /media/Backup -o ro,loop
In cases of mild drive damage one can also try direct copying (even in Konqueror). However, the copy command tends to hang up, and you have to reboot (or umount -l?) quite a lot. In case of serious damage, try testdisk.
Check and repair the file system
Warning: from here you'd better have the dumped image available, possible data loss!
Unmount first. fsck ist the standard Linux disk check utility, for DOS file systems like FAT dosfsck applies (symlinked by fsck.vfat, for more file systems see end of man fsck).
# dosfsck -ar /dev/hdc5
Repairs your file system automatically, asks when in doubt. No optional arguments: check without repairing.
In my case dosfsck put out the message: "There are differences between boot sector and its backup." and listed the differences, e.g. "(offset:original/backup) 71:20/00, 72:20/00...". Writing backup to original and vice versa didn't help. All problems below offset 1BE (=446 hex, executable boot code, see here), so dumping zeros on top of it shouldn't hurt (don't intend to boot from this drive).
# dd if=/dev/null of=/dev/hda bs=446 count=1
In the next fsck run, I copied this MBR to the backup. Still I/O errors, so I decided to live with a few lost files (at least I knew which), re-formatted the drive and copied everything back from the mounted image. Dumping the image back is also possible (cf. daWuzzzz) but I wanted get rid of the corrupted files. Copying is also faster in this case.
Disk health
Format and reuse the drive or buy a new one? smartctl might give you a hint there (cf. daWuzzzz)
My drive (which is definitely f***d up) always passed the health test, so one had better rely on smartctl -a
The same procedure should of course also work with a crashed system partition and any Linux live CD containing ddrescue (e.g. Knoppix).
A great site for data restoration is also CGSecurity. Their TestDisk app reads out data even when the file system is corrupted.

12/05/2008

How to get the latest NTFS-3g

Due to a charming display of eccentric version numbering, you might be stuck with a year-old NTFS-3g version and not even be aware of it.
The developers are in the habit of tagging their versions by month and day of the release date, so 1.913 was released on 07/09/13, 1.1120 on 07/11/20 and 1.2506 (sic!) on 05/06/08. Some nice kind of mini-Y2K here, I wonder what they will surprise us with in October. Don't get me wrong: I love ntfs-3g, couldn't live without it on my dual-boot systems. Kudos to the developers!

Installing the latest:
Add one of the following software repositories in YaST (use "specify URL"):
http://ftp.gwdg.de/pub/linux/misc/suser-jengelh/SUSE-10.3/ http://download.opensuse.org/repositories/home:/benkai:/ntfs/openSUSE_Factory/
Both ship the 1.2506 release and according to ntfs.org that one is heavily recommended, the main repo still has 1.913. Note: I am not altogether comfortable about using a factory repo on a day-to-day system, and for whatever reasons, YaST reported conflicts for the 1.2506 version from the benkai repo, the jengelh repo works fine.

Duplicate entries in Amarok collection

This might be just a residual effect of an (resolved) amarok bug (see KDE bug #87986). I had duplicate album entries for AFAIK every mp3 file on my NTFS data partition. Less annoying, but equally weird: playlists in the playlist browser were listed in triplicate. Deleting playlist files and rescanning the collection (even getting Amarok to scan a completely different folder) had no effect.
What worked was to quit Amarok, remove the following files from ~/.kde/share/apps/amarok - collection.db, collection_scan.files, collection_scan.log (can't hurt ;-)) and playlistbrowser_save.xml - restart and rescan collection. After that, rescanning, changing folders, adding new files and changing tags worked OK.
Another bit of weirdness: apparently I can't create playlists on the NTFS partition (Amarok complains "You can only select local files"), but overwriting existing ones works. Edit: That's actually a (resolved) NTFS-3g problem, get the last stable release (no, not 1.913!!!). Thanks to Sven from roKymotion for pointing that out.

08/05/2008

Playing embedded movies in LaTeX PDF

Things have changed since I first posted this (find a summary here): the Okular version shipped with KDE 4.2/SuSE Factory plays embedded movies (haven't checked projector output yet, but for that, the graphics driver is responsible anyhow). There seems to be some unreliability in showing poster images, still, and phonon refused audio playback, but the basic functionality is there. For Lilypond users: point-and-click annotations also work by now. KDE users, consider the following post to be slightly historic ;-).

01/05/2008

Who needs an X server anyway?

Worst case scenario: your X server keeps crashing, no other computer available and you need to do some emergency googling, backup, downloading, system analysis etc.
Here is a collection of console system analysis tools:
  • First, a beauty of a fossil: the lynx browser, available from the main SuSE repository. Link navigation with arrow keys, the "g" key is useful for URL typing. Google search is a bit cumbersome, but feasible. Flash and Javascript sites (e.g. the ATI driver download site) are more or less unusable.

  • wget download utility: wget <file URL>

  • YaST has a comfortable command-line interface, simply type yast

  • burn backups: wodim, see the examples right at the end of man wodim

  • some decent vi manual

  • Start Samba filesharing server with smbd -D; start ssh server with sshd

  • Unison and rsync work from console, too.

  • Check free disk space: df -h

Less spectacular: You want to work on a remote machine via ssh and a VNC connection works too slow for you.
  • Midnight Commander (mc) is a classic console file manager with ftp capabilities.

  • The fish:// protocol allows you remote ssh access in Konqueror - e.g. fish://avocadohead@myserver.com/home/avocadohead/