Installing Epson Perfection V300 Photo on openSUSE 13.2

3. July, 2015

Locate Linux drivers on http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX
Search for “v300”

The search gives two results:

  1. “iscan plugin package” from 2011
  2. “core package&data package” from 2015

You need both. The first one is esci-interpreter-gt-f720-0.1.1-2.* which is a necessary plugin for iscan to enable the software to talk to the scanner via USB. Without it, you get odd “Permission denied” errors and “scanimage --list-devices” will come back with “No scanners were identified.”

Then get iscan-2.30.1-1.usb0.1.ltdl3.x86_64.rpm (not sure what those files with a ~ in the name at the top are) plus iscan-data-1.36.0-1.noarch.rpm from the second search result.

Install all three of them at the same time.

Both scanimage and xsane should now be able to detect and use the scanner.

Related:


Hibernating openSUSE 13.2 (Harlequin)

8. February, 2015

openSUSE 13.2

I had some trouble to get hibernate (suspend to disk with power off) to work properly on openSUSE 13.2. You can find the problems that I ran into and how I solved them below.

Getting a Boot Menu

Since a while, Linux systems try to hide the fact that they’re Linux. You switch the PC on and after a few seconds, you see a desktop. I hate that. So the first step is to get the boot menu back. Edit /etc/default/grub and look for GRUB_TIMEOUT. It’s 0 now, set it 8:

...
GRUB_DEFAULT=saved
GRUB_HIDDEN_TIMEOUT=8
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=8
...

Note: You can’t use YaST for this. YaST can only modify GRUB_HIDDEN_TIMEOUT which is not very useful IMO.

After making these changes, run grub2-mkconfig as explained at the top of /etc/default/grub to update Grub 2’s configuration.

See also: GRUB Manual 2.00: Simple configuration

Authorize Hibernate

If you tend to get this dialog when you try to hibernate:

Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig, während andere Benutzer angemeldet sind. – PolicyKit1-KDE_016

then someone else is logged in. In my case, I sometimes have a root shell lying around somewhere or an SSH session. There are two solutions to this problem:

  1. Hibernate. Wait. Realize that the system won’t hibernate. Log in again. Find the error dialog. Close it. Find the root shell. Log out root. Try again. Don’t forget to mumble curses all the time since it’s 2:00am and you want to go to bed instead of fighting a security policy.
  2. Tell polkit that if the user in front of the display wants to hibernate, then simply do it!

To do the second, edit the file /etc/polkit-default-privs.local and append this line:

org.freedesktop.login1.hibernate-multiple-sessions auth_self:auth_self:yes

After making the change, you need to run /sbin/set_polkit_default_privs to activate the changes; no reboot or relog necessary.

The first word in the line is the operation, the second one is the permissions. The default for *.hibernate-multiple-sessions is auth_admin:auth_admin:yes which means “ask for root privileges” which makes sense for a server or a shared PC where people connect remotely. auth_self means “Authentication by the owner of the session that the client originates from is required” which should be good enough for any standalone/private PC.

Related: Polkit man page

Hibernate KDE With a Single Click

Something that I’m missing since a long time is a way to hibernate a KDE desktop at the push of a button. Options from worst to best:

  1. Open the start menu. Try to navigate to the shutdown options without accidentally closing the menu. Wonder which of the options is the right one for the millionth time. Click and hope for the best.
  2. Open a root shell, keep it open at all times and run the command /usr/sbin/pm-hibernate
  3. Use KShutdown
  4. Allow yourself to execute the command /usr/sbin/pm-hibernate via sudo without asking for a password. Put sudo /usr/sbin/pm-hibernate into a script and wrap the script with an icon on the desktop.
  5. Issue the hibernate command via shell script and wrap the script with an icon on the desktop.

Options #1 is too cumbersome. #2 wastes too many resources. #3 isn’t standard and I’ve found it increasingly difficult to find the binary for my system. #4 doesn’t lock your screen so anyone able to turn on your computer can mess with it.

So here is how to do #5. First, we need a shell script$HOME/bin/hibernate with this content:

#!/bin/bash
dbus-send \
  --session \
  --dest=org.freedesktop.PowerManagement \
  --type=method_call \
  /org/freedesktop/PowerManagement org.freedesktop.PowerManagement.Hibernate

How let’s create a button for the script:

  1. Make the script executable with chmod +x $HOME/bin/hibernate
  2. Right click on the desktop, add applet “Folder View” (German: “Ordner”).
  3. Create a new folder $HOME/Hibernate and select this new folder in the settings. That gives you a small window on the desktop that you can size and move – perfect to position our button.
  4. Right click in the new window and create a shortcut for a program.
  5. Enter “Hibernate” as name on the first tab.
  6. On the program tab, select the script.
  7. Click OK.
  8. Open the properties for the new shortcut.
  9. Click the icon to replace it.
  10. In the new dialog, select “Actions” and search for “hib” which should offer you “system-suspend-hibernate” Click the icon to select it.
  11. Click OK
  12. Size and move the folder view to have the button where you want it.

Deleting Files From Snapper

16. February, 2014

Snapper is a nice tool to revert changes made to your system.

Unfortunately, it has a nasty side effect: If you happen to delete some large files (say, an ISO image you accidentally copied to the wrong place), and that large file ended up in one of your snapshots, well … the file will be gone but the disk space will still be allocated.

The first step is to locate the large file(s) under /.snapshots

The next step is to delete it/them. That’s not so easy since snapper created read-only file system snapshots. The workaround is to create a writable snapshot, delete the files, delete the read-only snapshot, create a new one and then delete the writable snapshot. Too much on one sentence? Here is the sequence of commands:

cd .../
btrfs subvolume snapshot snapshot snapshot.bak
rm -rf snapshot.bak/...
btrfs subvolume delete snapshot
btrfs subvolume snapshot -r snapshot.bak snapshot
btrfs subvolume delete snapshot.bak

Breakdown: First, we cd into the folder which contains the snapshot itself (it also contains a file “info.xml”).

Then we clone the snapshot in “snapshot.bak” which we can modify.

The last three steps replace “snapshot” with the new, cleaned “snapshot.bak”.

In at least one occasion, that didn’t free the disk space, yet. I also had to delete the oldest snapshot which contained the file.


Wine on OpenSUSE Without Sound

4. September, 2013

Yesterday, I tried to install the Windows game Homeworld on my openSUSE 12.3. After a couple of problems, the no-cd patch, I could start the game with:

/opt/cxoffice/bin/cxrun --bottle Homeworld homeworld.exe /1600 /enable3DNow /enableSSE /device gl /heap 1073741824

Note: For /device gl, you must install DirectX 9.

The main problem: No sound. Starting the Wine Configuration, I saw that it was using winealsa.drv in the Audio tab.

Looking into the terminal finally solved the mystery:

ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so

My system is 64bit but Crossover is probably a 32bit application.

Installing alsa-plugins-pulse-32bit finally solved the problem.

Also make sure you have this in your ~/.asoundrc:

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

Related:


Firefox Crashing When Opening a New Window in openSUSE 12.2

11. September, 2012

Does Firefox crash for you when you open a new window?

Report the crash using the built in tool, then browse “about:crashes” (shows you which crashes you reports), click the topmost link.

If frame #0 in “Crashing Thread” (bottom of the page) reads “libtracker-sparql-0.12.so.0.1205.0”, then this package is the culprit: tracker-miner-firefox

Delete it and Firefox should work again. If that helps in your case, you’ve been hit by this bug.

What’s this piece of crap do? From the web site:

Tracker is a semantic data storage for desktop and mobile devices. Tracker uses W3C standards for RDFontologies using Nepomuk withSPARQL to query and update the data.

If you don’t know, Nepomuk is the great technology that builds search indexes over anything on your disk. Unfortunately, it’s developed by people who believe quality in software is nice to have. So it tends to hog the CPU wasting your time, it can fill your harddisk with useless junk, and please, don’t run it on computers with more than 100 MB (that’s 0.1 GB) of disk space or more than 1’000 files; otherwise, it might never finish. If you try to search something, bring some time – useless results take a moment to come up with.

Don’t disable it either, or apps like Dolphin will be unhappy. It’s already beyond the abilities of these people to hide the UI elements for rating and tags when you try to protect yourself.

I opened a bug to have Nepomuk removed from KDE until it reaches alpha status but that bug was closed.

‘Nuf said.


Suspend Fail in openSUSE 12.1 After Upgrading KDE

29. June, 2012

When you upgrade openSUSE 12.1’s KDE 4.7 to 4.8 (using this repo), suspend to disk or ram might stop working. If so, you’ve encountered bug 758379:  STR (Suspend to RAM) fails when NetworkManager running and NFS shares mounted

The description is a bit misleading. It also happens for suspend to disk (STD) and when you don’t use NetworkManager.

Workaround: Unmount your NFS shares before you try to suspend:

sudo umount -t nfs -a

If you use NFS v4, then the command is:

sudo umount -t nfs4 -a

To check whether it worked, use this:

mount | grep nfs

This shouldn’t print anything with “type nfs” anymore. Afterwards, suspend should work.


Making openSUSE 11.4 Work on HP ProBook 5320m

11. December, 2011

If you have an ugly flickering screen when booting openSUSE 11.4 on a HP ProBook 5320m, then do this:

  1. You’ll need at least the package “xorg-x11-proto-devel” to build the driver (zypper install xorg-x11-proto-devel)
  2.  Download a working Intel graphics driver: xf86-video-intel-2.15.0.tar.bz2 (yes, there are other versions there as well and no, they don’t work)
  3. Unpack the archive
  4. cd xf86-video-intel-2.15.0
  5. Configure it: ./configure --prefix=/usr --libdir=/usr/lib64
  6. make
  7. as root: make install
  8. as root: Edit “/boot/grub/menu.lst” Add “nomodeset” to ever line which starts with “kernel”  and which doesn’t already have it
  9. Reboot.

Note: Do this remotely from a second PC – your eyes will be thankful. ssh and wget are your friends.


KDE4: Running ssh-agent at Login

21. August, 2011

Here is the recipe if you need to run ssh-agent when you log in. First, create a start-up script $HOME/.kde4/env/start-ssh-agent.sh

#!/bin/sh
eval `/usr/bin/ssh-agent`

To make sure the agent is killed when you log out, you need a script $HOME/.kde4/shutdown/kill-ssh-agent.sh

#!/bin/sh
/usr/bin/ssh-agent -k

Tested with KDE 4.7 on openSUSE 11.4.


Updating StarCraft 2 to 1.0.3 on openSUSE 11.3 SOLVED

19. August, 2010
A Protoss warrior, as displayed in StarCraft II.

A Protoss warrior, as displayed in StarCraft II. (Image via Wikipedia)

I had a lot of problems to download and install the patch to 1.0.3. Here is my solution after 144 failed attempts: Install IE6! The BlizzardDownloader.exe doesn’t work with the IE emulator (gecko) so use winetricks or /opt/cxgames/bin/cxinstaller to install IE6 instead and it won’t crash anymore.

Hint: The crash happens somewhere in the JavaScript DLL js3250:

=>0 0x0245b44c in js3250 (+0xfb44c) (0x0033b4b8)
  1 0x0245b2e6 in js3250 (+0xfb2e5) (0x0033b4d8)
  2 0x02459d62 in js3250 (+0xf9d61) (0x0033b4f8)
  3 0x023fc423 in js3250 (+0x9c422) (0x0033b548)
  4 0x01025b6a (0x0033b594)
  5 0x0033df84 (0x0033df84)
  6 0x02420b5a in js3250 (+0xc0b59) (0x0033dfd4)
  7 0x0239f43d in js3250 (+0x3f43c) (0x0033e1f4)
  8 0x023b21bb in js3250 (+0x521ba) (0x0033e2a4)
  9 0x02368391 in js3250 (+0x8390) (0x0033e2e4)
  10 0x0164c6e5 in xul (+0x5cc6e4) (0x0033e3a4)
  11 0x014eaf8d in xul (+0x46af8c) (0x0033e4e4)
  12 0x014eaa7b in xul (+0x46aa7a) (0x0033e5c4)
  13 0x014ea1c6 in xul (+0x46a1c5) (0x0033ea14)
  14 0x014e7cad in xul (+0x467cac) (0x0033ea74)
  15 0x0156ca4b in xul (+0x4eca4a) (0x0033eb54)
...
  31 0x01c634e4 in xul (+0xbe34e3) (0x0033ef44)
  32 0x01c0b086 in xul (+0xb8b085) (0x0033ef74)
  33 0x01bd77ce in xul (+0xb577cd) (0x0033ef94)
  34 0x7eccecfa WINPROC_wrapper+0x19() in user32 (0x0033efc4)
  35 0x7ecd0819 in user32 (+0xa0818) (0x0033f004)
  36 0x7ecd1cac in user32 (+0xa1cab) (0x0033f044)
  37 0x7ec9541e DispatchMessageW+0x9d() in user32 (0x0033f134)
  38 0x7ec660b9 in user32 (+0x360b8) (0x0033f194)
  39 0x7ec6626f DialogBoxParamW+0x8e() in user32 (0x0033f1b4)
  40 0x00406156 in blizzarddownloader (+0x6155) (0x0033fd84)
  41 0x7e725b64 in ole32 (+0xd5b63) (0x004cd07c)
  42 0x6b735a42 (0x0044303a)
  43 0xfffffec2 (0xe8f18b56)

Look for “xul” and “js3250” in the stack trace. If you use cxgames, start the game with

"$HOME/.cxgames/Starcraft II_ Wings of Liberty/desktopdata/cxmenu/StartMenu.C^5E3A^5Fusers^5FPublic^5FStart^2BMenu/Programs/StarCraft+II/StarCraft+II"

If you need to kill the game, use this line:

kill $(ps -e -o "%p:%a" | grep -E 'winewrapper.exe|wineserver|system32|StarCraft|winedbg|Blizzard'|grep -v grep|cut -d: -f1)

That should get rid of all leftover processes.

[Update] I sometimes get a window asking where to store a download. Ignore it; it closes eventually. Click outside of it, it if bothers you to hide it behind the update manager window.


StarCraft 2 on openSUSE 11.3: Update to 1.0.3 fails [update]

18. August, 2010

Found a solution! See this blog post.


When I tried to start the game today, it told me that 1.0.3 is available and that it needs an upgrade. After 49% of the download, the BlizzardDownloader.exe crashed. So I started it again. And again. And again.

The problem is always the same:

wine: Unhandled page fault on read access to 0x00000000 at address 0x245b44c (thread 0019), starting debugger...

I’ve opened a support ticket on codeweavers.

According to some comments in Wine’s AppDB by MrNice, restarting the installer eventually solves the problem.

[Update] It seems to help to delete the sc2-* files in the program directory and the file sc2-22660-22801-x86-Win-enGB-bnet-bin in the Updates folder. When I restart the game, I get the error dialog. Sometimes, a bit of the file has already been downloaded, sometimes, not even the changelog has been loaded. After closing the error dialog, the download resumes and hangs again at 49% with 3.8MB left.

[Update 2] Some people say that you just need to try often enough. That didn’t work for me. But I found a couple of *.torrent files in the installation folder which I showed to Vuze. After a couple of minutes, Vuze really started to download them … well, 4 of 5 of them. So I can’t play because no one has the 92666 byte file “sc2-16223-16291-x86-Win-deDE-locale”. Tragic.