‏إظهار الرسائل ذات التسميات intrepid ibex. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات intrepid ibex. إظهار كافة الرسائل

الأربعاء، 4 مارس 2009

New Directions for Building HandBrake SVN

Update (5/15/09): I have working binaries available in my PPA repository. Directions for adding it to your package manager are available here.

A couple of months ago, the HandBrake devs implemented some major changes to the build procedure for HandBrake from the project's SVN repository. I'm not really sure why they did this, but it seems to have cut a couple of dependencies, which is nice*. Here's the new method that worked for me on Ubuntu 8.10 Intrepid Ibex and 9.04 Jaunty Jackalope (adapted from their build instructions in the readme).

Step 1: download the dependencies
In a terminal, type:
sudo aptitude install subversion build-essential m4 wget autotools-dev yasm autoconf intltool libtool libbz2-dev zlib1g-dev libglib2.0-dev libdbus-glib-1-dev libgtk2.0-dev libhal-dev libhal-storage-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev automake1.9 libnotify-dev libwebkit-dev
Update (6/18/09): as of svn 2550, libgtkhtml-3.14-dev was replaced by libwebkit-dev.
Users of OpenSuSE may need to download the additional dependencies zypper and in to build the CLI, as well as gtkhml2 and gtkhtml2-devel to build the GUI. Users of Red Hat/Fedora or derivatives may need to install the package groups "Development Tools," "Development Libraries," "X Software Development," and "GNOME Software Development," as well as zlib-devel, bzip2-devel, dbus-glib-devel, hal-devel, gtkhtml3-devel, gstreamer-devel, and gstreamer-plugins-base-devel.

Step 2: download the source from HandBrake's SVN repository
in a terminal, type:
svn checkout svn://svn.handbrake.fr/HandBrake/trunk hb-trunk
This will download a bunch of stuff and finish by telling you which revision you have checked out.

Step 3: switch to your newly created directory
in a terminal, type:
cd hb-trunk
Step 4: prepare the source for building
in a terminal, type:
./configure --launch
This command should take care of most of the remaining steps, i.e. making a scratch directory and compiling the source for both the CLI and GUI interfaces.

Step 5: install the GTK GUI
in a terminal, type:
cd build/gtk ; sudo make install
In you experienced any errors during Steps 4 or 5, you can attempt to run through the build functions manually:
In a terminal, type:
rm -rf build ; mkdir build ; cd build
then:
../configure ; make
and finally:
cd gtk ; make ; sudo make install


*Interestingly, the build process no longer invokes/requires jam, which had always been a vestigial requirement left over from HandBrake's roots in the venerable BeOS.

الأحد، 18 يناير 2009

Aspire One's Synaptics Trackpad Suspend Issue in Intrepid

I just corrected a really strange and infuriating issue with the trackpad on my Acer Aspire One running Ubuntu Intrepid. I'm going to write the whole story in case someone finds it useful, but here is the short version: trackpad quit working and didn't come back with a reboot. The solution was to hit Fn+F7 a couple of times (didn't work on first press, but did after a few presses...).

Now for the long version:

My fancy new Aspire One went to sleep (suspend) on accident--I know there are some unresolved issues with devices after suspending, so I've tried to avoid it--and I couldn't make it wake up, so I did a hard reset by holding the power button down for ~5 seconds. However, upon reboot, I was horrified to find that my trackpad no longer worked. It still showed up in the hardware profiler and in the kernel boot log, but it was totally unresponsive. No cursor movement, no clicks, no nothing. I rebooted. Still nothing!

I scoured the intarwebs looking for a software solution, including purging/reinstalling the xorg drivers, reloading modules, etc. to no avail. However, I did find a forum post where another Acer user had reported a nonfunctional trackpad that followed him across several Live CDs, suggesting a hardware issue. I was horrified by this prospect, as I love my little machine and I've finally gotten it configured to my satisfaction. Luckily, this user was kind enough to post his deceivingly simple solution: re-enable the trackpad using a key combination of Fn+F7.

I don't remember ever pressing this key combo to disable it in the first place, so I'm forced to assume that it happened on its own. Now I know how to fix it, should it happen again.

السبت، 15 نوفمبر 2008

How to run ZSNES Super Nintendo Emulator on 64-bit Ubuntu Linux

ZSNES is my favorite SNES emulator in the Windows world, but it can be a real pain to get going in 64-bit Linux. Most tutorials will suggest you set up a chroot jail and maintain a parallel set of 32-bit libs so that you can run the 32-bit version, but this is both a hassle and overly complex for many users.

I tried to compile my own binaries from source to avoid this, but I kept running into architecture errors and ended up throwing in the towel after a few hours of fiddling. Luckily, a ZSNES developer known as Nach has provided specialized precompiled binaries for a variety of architectures that worked a treat for me.

Just follow this link, scroll down a bit, and then download the binary that matches your architecture. I have an Athlon 64 X-2 4000+, so I selected the Athlon64-SSE3 binary.

Next, install libsdl-dev either through Synaptic or by typing sudo aptitude install libsdl-dev into a terminal.

Once downloaded and decompressed, you should find your binary inside, which you can run by double-clicking it or typing ./zsnes into a terminal. If you double-click and nothing happens, try running it through the terminal to spot any errors. I personally encountered this error:
Unable to poll /dev/input/event8. Make sure you have read permissions to it
repeated 9 times (1 for each /dev/input/event* 0-8).

I was able to get around this by running ZSNES as root (i.e., sudo ./zsnes), which is certainly not ideal, but I haven't found a way around it yet.

If you take this route, be aware that the default location for saved games will not be ~/.zsnes as it normally would be. Instead, it will be located in /root/.zsnes (since you're running as root). This in mind, you may have to copy your .srm files into this directory for them to be recognized. When I first got my copy to run, I couldn't get it to recognize any of my saved files, even though I tried changing the path for saved files under the preferences. However, once I copied the files into the /root/.zsnes directory, everything showed up just dandy.

Using the native 64-bit binary referenced above also had another unexpected (perhaps coincidental) positive effect of making my gamepad's d-pad work correctly. Using dfreer's zsnes32 binary worked well for me in most respects, but it just wouldn't recognize my Logitech Precision gamepad's d-pad. The buttons worked fine, but when it came time to assign the directions, it would just sit there dumbly, even though jscalibrator and cat /dev/input/js0 both showed plenty of action. This problem remained no matter how many kernel modules I loaded (usbhid, analog, etc.), until I tried Nach's binary. Now it works just fine. Go figure...

This information was written for Ubuntu 8.10 Intrepid Ibex, but it should be applicable to other distros as well.

الجمعة، 24 أكتوبر 2008

Intrepid Ibex broke my Netatalk

I mostly use Macs, but all of my media files are stored on a home server that runs Ubuntu. I had been using Gutsy and sharing my files using netatalk, an open source implementation of Apple's AppleTalk protocol, and everything was working swimmingly.

However, as soon as the beta for the newest version of Ubuntu--known as Intrepid Ibex--was released, I upgraded to it and was shocked to find that I could no longer connect through netatalk using my Macs (they're running 10.5 Leopard). Every time I tried, it would fail with this error:
A volume failed to mount.
The volume [directory name] could not be mounted
I fiddled with configurations on both ends to no avail, so I decided to try a workaround: I uninstalled the version of netatalk from the Intrepid repos (sudo aptitude remove netatalk) and then downloaded outdated deb binaries for netatalk and its only other major dependency, libdb4.2, from the Gutsy repos.

Install (sudo dpkg -i [package name]) libdb4.2 first (it'll give you a warning about downgrading from a higher version), then netatalk, and then let the service start. You should now be able to connect to your shares again.

Leave me a comment if this doesn't fix your problem and I might be able to help.