Monday, June 27, 2016

Prince of Persia: The Sands of Time - startup error

I got my free copy of Prince of Persia: The Sands of Time. It installed just fine, but upon startup it'd show a window with "The local sound file is missing please see Readme.txt file for technical support." and quit.

Googling didn't help, so I started looking around.
I found it interesting that there were soundlocal.big and soundlocal.fat files under the Support\inst\data\EN game subdirectory, but there was only soundlocal.fat under the Sound subdirectory. And indeed copying the missing file to Sound fixed the issue.
I'm not sure what happened, but there wasn't much space available wile I was installing it. Perhaps the installer didn't do a proper job of assuring there was enough space and this file got lost as a result.

So far this was the only issue, the game ran smoothly from then on, but after five minutes I found out I don't like the game at all and wiped it :-)

Monday, February 22, 2016

[SOLVED] gqrx crash on startup

I plugged the SDR dongle in and launched gqrx. All seemed to go well, however as soon as I git the 'Start DSP' button, it crashed with
gqrx: symbol lookup error: /usr/lib/x86_64-linux-gnu/librtlsdr.so.0: undefined symbol: libusb_handle_events_timeout_completed

Googling for the error message found just a few hits: An ages old bug caused by bad versioning and a newer question without answer.
If the web doesn't have the answer, I'll need to find it myself, so ...
hajma@debian:~$ ldd -d /usr/lib/x86_64-linux-gnu/librtlsdr.so.0
 linux-vdso.so.1 (0x00007ffc29380000)
 libusb-1.0.so.0 => /usr/local/lib/libusb-1.0.so.0 (0x00007f9ea0fd7000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9ea0c2c000)
 librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f9ea0a24000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9ea0807000)
 /lib64/ld-linux-x86-64.so.2 (0x00007f9ea13f3000)

hajma@debian:~$ readelf -s /usr/local/lib/libusb-1.0.so.0|grep libusb_handle_events_
    60: 0000000000005e70   215 FUNC    GLOBAL DEFAULT   12 libusb_handle_events_time
    80: 00000000000058a0    92 FUNC    GLOBAL DEFAULT   12 libusb_handle_events_lock
   237: 0000000000005e70   215 FUNC    GLOBAL DEFAULT   12 libusb_handle_events_time
   258: 00000000000058a0    92 FUNC    GLOBAL DEFAULT   12 libusb_handle_events_lock
Indeed, there's no libusb_handle_events_timeout_completed in there.
hajma@debian:~$ grep libusb_handle_events_timeout_completed /usr/include/libusb-1.0/libusb.h 
int LIBUSB_CALL libusb_handle_events_timeout_completed(libusb_context *ctx,
but the header file has it, what's up? It took me a minute or two to realize that the library resides in /usr/local/lib. That's an unusual place for a Debian library, isn't it?
hajma@debian:~$ ls -l /usr/local/lib/libusb-1.0.so.0
lrwxrwxrwx 1 root root 17 Jan 25  2014 /usr/local/lib/libusb-1.0.so.0 -> libmchpusb-1.0.so
and googling for libmchpusb-1.0.so found me the answer:

This is actually a library supplied with Microchip's MPLAB-X software I installed two years ago. It seems to be an ongoing source of frustration for their users :-)
/usr/local/lib is included by default on Debian:
hajma@debian:~$ cat /etc/ld.so.conf.d/libc.conf
# libc default configuration
/usr/local/lib
For the time being I workarounded this with simply removing /usr/local/lib/libusb-1.0.so.0 and it works quite well:

Saturday, February 6, 2016

A new screen for Xperia Ray

After three plus years, the screen of my Ray was seriously scratched.
I got a replacement one from Aliexpress for 16 USD some time ago and have just found enough time and courage to install it.
I followed this disassembly guide, but with the slight modification suggested by Ιωάννης-Πάρις in the first comment below the video.
All went well though there are bits of glue coming out at the edges here and there :-)
I prolonged the useful life of the device by a year or two, not too bad.

Sunday, December 13, 2015

Which OpenWRT version to use?

If you want a relief from the never-ending stories about flaws in router firmware and the incompetence of vendors to deliver fixes, OpenWRT is about the only relatively sane option and I've been using it for almost a decade, since the White Russian release.

OpenWRT has a development branch or trunk which may be a bit experimental and a Stable branch. A Stable branch is released about once a year. Their documentation says that basically anything beyond the current stable release is unmaintained. Is it really so? Well, it's open source, so it should be easy to find out.

Attitude Adjustment, or OpenWRT 12.09, has seen its last commit in September 2014, so it's dead indeed.
Barrier Breaker, or OpenWRT 14.07, on the other hand has seen an update five days ago, so it's certainly moving. But is it still fresh and safe to use? I did a quick and simple check to find out.

There were twelve security vulnerabilities (possibly more, but these were easy to filter) fixed in Chaos Calmer (OpenWRT 15.05, the current stable release) during its lifetime. I grepped for them in the Barrier Breaker sources and here's the result:



Fixed in
Chaos Calmer
Fixed in
Barrier Breaker
CVE-2015-3193 12/03/15 12/07/15
CVE-2015-3194 12/03/15 12/07/15
CVE-2015-3195 12/03/15 12/07/15
CVE-2015-5291 10/18/15 Still vulnerable!
CVE-2015-3143 07/12/15 Still vulnerable!
CVE-2015-3144 07/12/15 Still vulnerable!
CVE-2015-3145 07/12/15 Still vulnerable!
CVE-2015-3148 07/12/15 Still vulnerable!
CVE-2015-3153 07/12/15 Still vulnerable!
CVE-2015-3236 07/12/15 Wasn't vulnerable
CVE-2015-3237 07/12/15 Wasn't vulnerable
CVE-2015-1793 07/09/15 07/09/15

There's a bunch of security issues lurking in the code unfixed.
It looks like an older release may still get some support in the first few months after it's been replaced, but it's not really wise to delay the update.

Thursday, November 26, 2015

Arduino development in Solaris Studio

The unbeatable advantage of the Arduino IDE is that it just works, together with the large library of examples. However it really sucks as a source code editor.
Fortunately there's an Arduino plugin for Netbeans (and therefore for Solaris Studio, which is just thinly veiled Netbeans bundled with the Oracle compilers).

The trouble is the Netbeans plugin URL download button gets you the Windows version, but do not despair. The author apparently plays with Linux too, and there's a tmp/linux folder in the repository, containing a functional Linux version of the plugin.

I only had to alter the default Makefile slightly to adjust for Debian's packaging of the Arduino software and my version of the chip:

8,9c8,9

8,9c8,9
< COM_PORT = /dev/ttyACM0
< BAUD_RATE = 115200
---
> COM_PORT = /dev/ttyUSB0
> BAUD_RATE = 19200
11,12c11,12
< ARDUINO_BASE_DIR = /home/jaques/opt/arduino-1.6.5-r5
< ARDUINO_CORE_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/avr/cores/arduino
---
> ARDUINO_BASE_DIR = /usr/share/arduino
> ARDUINO_CORE_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/cores/arduino
20c20
< ARDUINO_MODEL = atmega328p
---
> ARDUINO_MODEL = atmega168
22c22
< ARDUINO_PINS_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/avr/variants/standard
---
> ARDUINO_PINS_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/variants/standard
38c38
< AVR_DUDE = ${ARDUINO_BASE_DIR}/hardware/tools/avr/bin/avrdude -C ${ARDUINO_BASE_DIR}/hardware/tools/avr/etc/avrdude.conf
---
> AVR_DUDE = ${ARDUINO_BASE_DIR}/hardware/tools/avrdude -C ${ARDUINO_BASE_DIR}/hardware/tools/avrdude.conf

Monday, November 16, 2015

What can go wrong with Debian upgrade

When I moved from testing to stable I thought it'd be enough to just stop updating testing a while before the release, modify the apt sources and dist-upgrade.
And indeed all seemed to be working well.

Until now.

I wanted to install wine32, but there were all sorts of errors popping up.
I narrowed it down to libxml2 - it wasn't possible to install the 32-bit part:

# apt-get install libxml2:i386
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 apache2-bin : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libabw-0.1-1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libaugeas0 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libe-book-0.1-1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libepub0 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libetonyek-0.1-1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libfontforge1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libgdraw4 : Depends: libxml2 (>= 2.6.27) but it is not going to be installed
 libgeoclue0 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libgtk2.0-0 : Depends: shared-mime-info
               Recommends: libgtk2.0-bin
 libgupnp-dlna-2.0-3 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libmate-window-settings1 : Depends: libxml2 (>= 2.6.27) but it is not going to be installed
 libopenconnect3 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libplist1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libstoken1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libxml-libxml-perl : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 marco : Depends: libmarco-private0 (= 1.8.2+dfsg1-6) but it is not going to be installed
         Depends: zenity
 mate-media : Depends: mate-media-pulse (>= 1.8.0+dfsg1-3) but it is not going to be installed or
                       mate-media-gstreamer (>= 1.8.0+dfsg1-3) but it is not going to be installed
 mate-settings-daemon : Depends: mate-settings-daemon-pulse (>= 1.8.2-4) but it is not going to be installed or
                                 mate-settings-daemon-gstreamer (>= 1.8.2-4) but it is not going to be installed
 python-libxml2 : Depends: libxml2 (>= 2.9.1) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

It took me a while to realize that my libxml2 was actually of higher version than the one in Jessie! As soon as I downgraded it, the installation of wine32 went well...

# dpkg -l |grep libxml2
ii  libxml2:amd64                         2.9.2+dfsg1-1+b1
# apt-get install libxml2=2.9.1+dfsg1-5
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be DOWNGRADED:
  libxml2
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
Need to get 800 kB of archives.
After this operation, 413 kB disk space will be freed.
Do you want to continue? [Y/n]
Get:1 http://ftp.cz.debian.org/debian/ jessie/main libxml2 amd64 2.9.1+dfsg1-5 [800 kB]
Fetched 800 kB in 0s (2,198 kB/s)
dpkg: warning: downgrading libxml2:amd64 from 2.9.2+dfsg1-1+b1 to 2.9.1+dfsg1-5
(Reading database ... 285067 files and directories currently installed.)
Preparing to unpack .../libxml2_2.9.1+dfsg1-5_amd64.deb ...
Unpacking libxml2:amd64 (2.9.1+dfsg1-5) over (2.9.2+dfsg1-1+b1) ...
Setting up libxml2:amd64 (2.9.1+dfsg1-5) ...
Processing triggers for libc-bin (2.19-18+deb8u1) ...


# apt-get install libxml2:i386
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Recommended packages:
  xml-core:i386
The following NEW packages will be installed:
  libxml2:i386
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 833 kB of archives.
After this operation, 1,910 kB of additional disk space will be used.
Get:1 http://ftp.cz.debian.org/debian/ jessie/main libxml2 i386 2.9.1+dfsg1-5 [833 kB]
Fetched 833 kB in 4s (168 kB/s)      
Selecting previously unselected package libxml2:i386.
(Reading database ... 285066 files and directories currently installed.)
Preparing to unpack .../libxml2_2.9.1+dfsg1-5_i386.deb ...
Unpacking libxml2:i386 (2.9.1+dfsg1-5) ...
Setting up libxml2:i386 (2.9.1+dfsg1-5) ...
Processing triggers for libc-bin (2.19-18+deb8u1) ...
#

http://blog.hajma.cz/2015/04/fixating-testing-to-jessie.html

Sunday, October 25, 2015

Současná umělecká díla v krajině - mapped

As much as I like the book,it's got one major flaw - there's no map with the location of the objects, so it's a poor choice for trip planning.
So I created a custom map with mapy.cz using their custom point feature.
Initially I included names of the authors, but I quickly ran into length limitations (they store all the info in the URL and impose their own limits; a sign of poor QA, the limit to save the map is somewhat longer than the limit to load it), so there're just the names of the objects.
Here's the map.