Category: Linux

  • SDLQuake on Maemo

    SDLQuake on Maemo x86

    Yep, it had to be done. Above you can see SDLQuake running on Maemo x86. I haven’t tried it on the ARM target but I heard that it or a port of it should run just fine on ARM. Between various emulators and game engines, it shouldn’t be hard at all to amuse yourself with a Nokia 770.

    No changes were required for this x86 build. ./configure, make and run-standalone.sh ./sdlquake.

  • Embedded D-BUS

    I’ve written about D-BUS before, but I just wanted to say that I love what I’ve seen with what Maemo does with D-BUS. All kinds of great stuff from application launching to state change notification is done with D-BUS. I strongly believe that D-BUS is going to rock both on the desktop and on mobile devices. D-BUS provides the infrastructure needed to build something like Growl for localhost and should allow apps to communicate with each other without having to worry about the fine details. I expect to see lots of advancements involving D-BUS in the next year and it will definitely improve the Linux/Gnome experience.

  • More Maemo Madness

    Calcoo
    Calcoo, an RPN and algebraic calculator
    Gnuboy 3x zoom
    Gnuboy, zoomed 3x using xgnuboy.
    VTE
    VTE terminal emulator.

    More successful builds on Maemo x86 today. I’m still in the information gathering stage, trying to find projects that are worth spending more time on doing “proper” hildonization to. All of the above screenshots were derived from downloading a source tarball and running ./configure and make, nothing more. VTE was exciting because it didn’t fail out on dependencies that I can’t easily provide and with run-standalone.sh the soft keyboard just popped up. Having a decent usable terminal emulator is going to be a key item for a physical 770 device. The error-free build is encouraging.

    When I have some more time I would like to package some of the apps that I have been tinkering with up in .debs for distribution, but I’d like to stress that everything I’ve posted in the last few days builds on x86 with little or no modification. They’re far from well integrated Maemo apps and I’ve only tested a handful on an ARM target (I’m waiting for the next scratchbox/qemu release to do any real testing), but it’s definitely a start.

  • More Maemo Success

    I managed to get a few more things compiled and running on Maemo (mostly on x86) over the weekend. Proper Maemo ports are also starting to come in from new sources. This CPU/Memory usage meter is hildonized and designed to fit in the top statusbar. Great little hack! There are a bunch of gnome-applet style things that would do great in that status bar.

    Two of the best places for fully-featured Maemo apps are INDT’s Maemo Apps pageand the Kernel Concepts Maemo page.

    With that said, on to some more low-hanging fruit of apps that compiled with little or no modification (on most of these ./configure and make “just worked”):

    MPlayer playing Rocketboom in a window
    MPlayer windowed playing the intro to Rocketboom
    Fullscreen MPlayer
    MPlayer fullscreen, zoomed 2x.
    GView
    GView: A very lightweight image viewer.
    Glock
    Glock: an analog clock.

    The smaller apps, GView and Glock could really rock if they were ported with a basic hildonized interface. Over the weekend I also got XChat built and running on x86 (here’s a screenshot) with everything but in-channel text input working perfectly. I still think that a properly ported Gaim would be the best graphical IRC interface for Maemo right now.

    The weekend is over but I hope to do some proper maemo hacking during my downtime this week.

    Update: MPlayer chewed up a lot of CPU and as such is probably not going to run very well on the device itself, especially since so much time and effort has been put in to tweaking GStreamer for the platform. I’ve grown accustomed to the “throw anything at MPlyaer” approach to Linux multimedia, so I had to try…

  • Maemo Emulation

    For those of you looking to kick it oldskool when the Nokia 770 comes out, there might be a few open source projects that fit the bill. Frodo 4.1b, a Commodore 64 emulator, and Atari800 built and ran without modification on the x86 Maemo development environment. Frodo chewed through almost all of the CPU on my Athlon XP 2500+, so getting that to run on the actual device might be a bit iffy. I saw some .asm files in the Atari800 source, which may be the downfall of Atari800 on Arm.

    We’ll see though. I tried a few more modern emulators (gameboy, nes, snes, etc) but nothing looked like it was going to be easy to get work at first glance. Here are a few screenshots of what I was able to get running this evening:

    Atari800 on Maemo x86
    Atari800 on Maemo x86
    Frodo C64 Emulator on Maemo x86
    Frodo (C64 emulator) on Maemo x86

  • GKrellM on Maemo!

    GKrellM running in Maemo

    This totally rocks! I’ve been tinkering around with Maemo this evening and I’ve been hunting around for apps to run on it. After a few misses I decided to try GKrellM. I was amazed when it “just worked,” compiled and ran in my Maemo x86 scratchbox! If you’d like to play for yourself, grab the source (I used 2.2.7), unpack it, run make, then go to the src dir and run run-standalone.sh ./gkrellm

    I haven’t set up an Arm environment using QEMU yet to test it there, but that’s next.

    Update: Here are some more screenshots showing how maemo handles the configuration dialogs.

    GKrellM Config: right click
    When you right click on the top of the GKrellM window.
    GKrellM Config: main config menu
    The main configuration menu.
    GKrellM Config: license dialog
    License dialog.

    Update: GKrellM isn’t quite as happy running on ARM under QEMU:

    GKrellM on Arm: not so happy
    Not so happy.
    GKrellM on Arm: menus
    No fonts in the menus.
    GKrellM on Arm: after restarting
    After running af-sb-init.sh restart.

    I’m told that changing to the ARM target while still running the X session is just asking for trouble. Oops! I’m not sure if the display issue is due to QEMU or if it will be a problem on an actual device. If anyone gets a chance to run it on a real live device I’d love to hear how it goes. Here’s the error I get over and over when running GKrellM on SDK_ARM using QEMU 0.6.1:

    (gkrellm:4068): Pango-CRITICAL **: pango_context_load_font: assertion `pango_font_description_get_size (desc) != 0' failed

  • Hello, Maemo!

    Hello, Maemo!

    Woohoo! After some help from the fine folks in #maemo on irc.freenode.net (special thanks to czr), I’m up and running the Maemo SDK. The biggest gotcha is that Maemo is expecting a 16 bit color depth and dies a horrible death if you try to run Xnest in 24 bit mode. This can be rectified by editing /etc/X11/xorg.conf (if you’re running XOrg) and changing DefaultDepth to 16 under the Screen section. If you’re feeling adventurous, Xephyr allows you to run a 16 bit window in a 24 bit environment.

    Maemo still complains a bit when I run af-sb-init.sh start, but clicking on the title bar actually does stuff rather than crash. Next step is to get one of the sample apps to compile. Thanks again to the crew in #maemo for helping me out!

  • The Nokia 770 and Maemo: Totally Amazed

    There’s been tons of coverage of the Nokia 770 and the open source Linux platform Maemo that goes with it. Everyone is excited, with reason, but I don’t think that the significance of the 770 and the platform have sunk in yet.

    We’re talking about a Linux based tablet with good resolution (800×480) running a custom GTK-based UI similar to Series 90 on a device with Wi-Fi and Bluetooth, 64 megs of ram, 128 megs of flash memory, and about a 3 hours battery life. The size is right too. Nokia have also been working with open source developers to adapt gstreamer for their uses, and the development environment is right there for you, enjoy.

    I’m really excited by this page detailing porting gaim to maemo. The port isn’t trivial, but it’s not far from it looks like a lot of the effort went in to making it look and behave better rather than getting it to actually run. Here’s a screenshot that just knocked my socks off:

    Gaim on Maemo

    I have been (sort of) following these instructions and now have a (sort of) working maemo environment up and running. I’m psyched to see Python (2.3.3) as well as Perl (5.8.4) in the development environment. I hope that both of these end up on the device or at least installable as an option. I’d also really like to see Mono or Java running on this little thing.

    I’m going to go tinker a bit more with the development environment (which uses scratchbox) and see if I can’t figure out what I’ve done wrong on the X side of things. It also looks like you can use QEMU to run apps compiled for ARM.

    Related reading:

    I get some nasty messages when I run af-sb-init.sh start and end up with the following almost (but not quite) working environment:

    Almost Maemo

    I used install.sh and then followed the installation instructions from there. I used this tarball as the rootstrap since I couldn’t find the file mentioned in the docs. I’ve got a shell, which is better than nothing, but I’m still working on a working X session…

  • Things I can\’t Live Without: Firefox Crash Recovery

    I really don’t know what I did before I discovered the Firefox extension that changed my life: Crash Recovery. I started using it after mplayer-plugin made Firefox on Ubuntu Hoary a bit, er, unstable. Shortly after installing it I discovered that it is far more useful than its intended use (you know, recovering from crashes and all).

    I quite literally haven’t quit firefox properly in weeks. Crash Recovery allows me to save my browser state in a way that I’ve never been able to before. On Linux I’ll just issue a shutdown command, which will kill Firefox in the process. When I boot up and start Firefox again, I’m exactly where I was when I shut down, after Firefox eats my processor and sucks bandwidth for a minute or two. If I need to restart in a hurry (perhaps after installing an extension), I can just find out the PID and kill it from the command line.

    I also have Crash Recovery running on my desktop at work so I can get a jump on whatever was in my browser while I download email and fire up a bunch of shells. Same thing goes there, I have Windows kill it at the end of the day or if I need it dead quick I find the “end process” button.

    Of course after a few weeks of this I tend to end up with tab clutter that I just can’t seem to get rid of. The first half of my tabs are things that I’ve been meaning to read for a few days or more but just haven’t had time to check out. I’m hoping that this del.icio.us extension might make bookmarking stuff a little easier, as the process of using the experimental bookmarklet just takes more time than I’d like if I have tabs running a foot to the right of the end of my computer screen.

    Tab clutter aside this plugin has really changed the way I do things across platforms. I would strongly suggest that anyone interested in a) something that can let you recover from a crash or b) save your browser state in a wicked way should check this puppy out.

  • Breezy Badger

    Distrowatch brings good tidings: Ubuntu 5.10 (Breezy Badger) has its first development release. I’m burning the ISO now so I can check it out, but it appears to still render a system useless if you try to apt-get update to it.

    I really miss being on the bleeding edge, so as soon as I can I will try to switch to Breezy fulltime. It looks like there are lots of great things that might be part of Breezy including a GCC 3.4 to 4.0 migration, tighter Mono integration (and hopefully Beagle!), OpenOffice 2.0 and a plethora of other goodies.

    Most users should of course wait until its “done” but I for one can’t wait to take it for a spin.

    Update: Breezy installed on a testbed just fine, but most everything I manage to do from saving a file in OpenOffice.Org2 to running a search in Beagle seems to crash. I did take time to fill out the hardware information survey and generally poke around a bit before powering down.

    Breezy should be even easier for novice users. Once the graphical installer is in that should reduce the “freak out” factor for new users. There is also a user friendly Add/Remove software menu option under Applications that allows for one click install/uninstall of some core apps. The selection isn’t huge, but it’s there. If you click on Advanced, you are taken to the powerful Synaptic package manager (which rocks).

    If you are curious what all is going in to Breezy, check out BreezyGoals, which will soon be migrated from the Ubuntu Down Under section to the main Breezy Badget wiki page.

  • Is DNS Broken?

    For what seems like the third time within a week, I’m getting absoluely no response from Comcast’s DNS servers. Luckily I can point my computers to DNS servers that I run, but the vast majority of Comcast customers don’t have the technical ability (or DNS servers) to do so.

    If you couple Comcast’s DNS issues with DNS cache poisioning, the following question comes to mind: Is DNS broken?

    If you’re a Comcast customer, your answer right now would probably be “yes.”

  • Is Ubuntu the Server Platform I\’ve Been Waiting For?

    Ubuntu Logo

    Ubuntu has been getting a lot of press and generating a lot of buzz in the desktop space recently. The Ubuntu installer also allows for a server-oriented installation. That begs the question: how cool is that!?

    I really like running a Debian-based server because I can keep in touch with security and program updates with a quck apt-get update && apt-get dist-upgrade. Right now stable is a bit mummified for my taste, but testing (Sarge) will become stable any month now, and has been quite solid for awhile. Sarge will be a great server platform for about the first year (year and a half?) after it is released. After that it will suffer from ancient packages and the inability to run the “cool new stuff” while at the same time it will be a tried and true and solid as can be server platform.

    I think that running an Ubuntu-based server may actually be the best of all possible worlds. Here’s why:

    • Ubuntu is based on Debian Unstable with additional packages
    • There is a new Ubuntu release every six months based on these packages
    • Each Ubuntu release is supported for 18 months after release (or 3 release iterations past the release).

    This means that an Ubuntu release is running the latest packages, but because of the intense six month release cycle, these packages are scrutinized a lot and fixes made for an Ubuntu release head upstream and are usually patched in Debian proper. When the bleeding edge is a bit too harsh, you can often choose between versions. Enabling Universe and/or Multiverse opens up easy installation of thousands of packages that do just about everything you can think of. I don’t think I’ve come across a desktop app that I really needed that wasn’t in one of these repositories.

    Security updates are also availble for a reasonable amount of time after release so that a major upgrade only need be executed every year and a half if you would rather not track the latest release. If you prefer the bleeding edge, apt makes it fairly painless to upgrade between releases and any known peculiarities will be addressed in the release notes.

  • Ubuntu Hoary On Its Way

    The Ubuntu Linux website got a makeover today in preperation for the release of Ubuntu Linux 5.04 (our friend Hoary Hedgehog). The release should hit some time tomorrow. If you were waiting for the release to give Ubuntu or Hoary a go, you should definitely snag it. I’ll probably be updating my /etc/apt/sources.list to point to Breezy Badger, since Hoary has been so good to me over the past few months.

    Congrats to the Ubuntu team and the Debian shoulders that they are standing on for their second excellent release.

    Update: It’s out on the street. Download it here. The release notes also do a great job at explaining what’s new and why Hoary rocks.

  • Kicking that Windows Habit

    I realized this afternoon that it’s been a week and a half since I booted Windows at home or on my Laptop. My main desktop machine at home runs Debian testing. I was still tied to Windows on my laptop until last Tuesday when I managed to get NDISWrapper working. I’m running Ubuntu Hoary on the laptop and have been for a month or two. Warty didn’t want to play nice with the laptop hardware, and the bleeding edge is the place to be anyway. The Hoary version of NDISWrapper doesn’t work with the latest kernels, so I grabbed the most recent release from sourceforge and it worked like a champ. I’m not completely sorted out, as connecting to open APs and WEP APs work great but I can’t connect to my WRT54G with WPA. It’s not that big a deal though. I just plug in to an ethernet cable at my desk.

    I managed to get NDISWrapper going just before PyCon and haven’t looked back at Windows since. Hoary handles speedstepping great, and I’ve fallen in love with bleeding edge Gnome, The Ubuntu Way, and Mono apps like F-Spot and Tomboy.

    I’m not completely free from Windows though. I use it quite a bit at work. I try my best to balance it out with my laptop on the right side of my desk connected to the wireless network. I haven’t run in to anything in Photoshop that hasn’t been possible with The Gimp, but I’ve only needed to do simple stuff in it so far. I should really look at how it handles slicing and PSD files with lots of layers.

    I have run in to a bit of a problem with hard drive space though. My now-primary Ubutnu partition is only 5 gigs, and I’ve managed to all but fill it. My Windows partition, gathering mothballs, is a heafty 30 gigs. I really need to boot up the partition, back my stuff up to DVD, and give Ubuntu the space it deserves. I’ll probably keep a small Windows partition handy though, you never know when it might be required.

  • Ubuntu April Fools Gag

    Ubuntu April 1 Gag
    Click for full Login Screen Setup image

    This is great. You can imagine how amused I was when I booted Ubuntu Hoary on my laptop this morning. Excellent work and a beautiful April Fools gag! The Login Screen image is a take on the (unneccesarily) controversial Human Circle of Friends login screen that shipped with early Warty releases.

  • Sun Does XMPP

    Via Jabber News, Yahoo! Finance:

    SANTA CLARA, Calif., March 30 /PRNewswire-FirstCall/ — Sun Microsystems, Inc. (Nasdaq: SUNW – News), today announced the latest version of Sun Java(TM) System Instant Messaging, a key component of Sun Java Communications Suite. With this latest release, Sun is supporting the eXtensible Messaging and Presence Protocol (XMPP), the first protocol to be approved by the Internet Engineering Task Force (IETF) as an Internet standard for instant messaging and presence technologies. In addition, Sun Java System Instant Messaging includes new privacy controls, significant improvements in usability and new partnerships to enhance the offering.

    Rock on Sun! Excellent move! Unfortunately the Sun Java System Instant Messaging page is giving me a really ugly Tomcat 500 error. (Actually, if I had scrolled down to the very bottom rather than searching Google, I would have found a working link. It’s also a bit weird that they’re running Tomcat now that you mention it. Don’t they sell software that does stuff like that?

    All dogfood issues aside, I’m always excited to see XMPP expand its base and make its way in to a new product.

  • Come on Ride the D-BUS (hey), Ride it (woo woo!)

    The February 2005 issue of Linux Journal contains a gem of an article by Robert Love called Get on the D-BUS. I didn’t notice it until I was trawling through the ACM Digital Library while working on a paper for my computer organization class. All tangents aside it’s a great article and anyone who uses Linux on the desktop should check it out, as I think that you’re going to see D-BUS do a lot of heavy lifting over the next few years.

    I’d strongly suggest reading the LJ article for a full definition, but to summarize: D-BUS is an interprocess communications system that is (or soon will be) used in both Gnome and KDE environments. It allows apps to send and receive messages to and from each other in a happy object-oriented easy-as-it-should-be way. The Gnome Mono codemonkeys are using it with Beagle, and probably other apps. There’s a D-BUS package and several apps that use it backed in to Hoary. There’s even a Security Enhanced DBUS built in to Security Enhanced Linux.

    The APIs and the software are under constant development, but there are already working libraries for C, Glib, and (yes I checked) even python. Here’s example-client.py (edited slightly to fit in my layout):

    #!/usr/bin/env python
    import dbus
    bus = dbus.SessionBus()
    remote_service = bus.get_service("org.designfu.SampleService")
    remote_object = remote_service.get_object("/SomeObject",
         "org.designfu.SampleInterface")
    hello_reply_list = remote_object.HelloWorld("Hello!")
    hello_reply_tuple = remote_object.GetTuple()
    hello_reply_dict = remote_object.GetDict()
    print (hello_reply_list)
    print str(hello_reply_tuple)
    print str(hello_reply_dict)

    It looks like D-BUS (or DBUS if you would prefer to abbreviate it that way) is going to be adopted in both the Gnome and KDE camps, which is A Good Thing. I think that it is going to lead to better interaction with applications on the desktop. I imagine a sexy Growl workalike telling me about all kinds of things that I may or may not want to know in a cute and unobtrustive way. As the technology is adopted, I see apps talking to one another and reacting to one another more and more. I see apps and frameworks taking advantage of external web services flowing over DBUS.

    Keep an eye on this list of apps that use D-BUS expand quickly.

  • Hoary Needs Beagle

    Beagle

    One Mono app that I didn’t mention last night in my Hoary post was Beage. This was an oversight. Beagle isn’t included in Universe, so I tried to build Beagle using these instructions from the Ubuntu Wiki. I managed to get it built after fiddling with the configure.in file (it was looking for dbus 0.23.1 and all I had was 0.23, but couldn’t get it to do anything useful.

    From the screenshots that I’ve seen, Beagle is probably the most useful Gnome Mono apps, and is the one with the biggest cool factor. I’d really love to see Beagle included in Hoary Universe so that we can play with it and use it without building from source.

    The fresh 0.0.7 release might just make that easier.

  • I (heart) Hoary

    I’m a Debian guy. I didn’t start out a Debian guy. I started out with Slackware back in the dowload images overnight and rawrite them to floppy days. Then I looked around and noticed everyone else using Red Hat, so I picked that up around 5.2 or so. I lost faith in Red Hat sometime after 7.3 and floated around a bunch of different distros until I finally drank the apt koolaid and settled on Debian and Debian-based stuff. I qualify that with “Debian-based” because there are a lot of excellent distros that build on the Debian core. For example, I try to have a copy of Knoppix or a Knoppix-based distro on me because you never know when a live Linux cd can come in handy. I’ve also been on a heck of an Ubuntu kick lately.

    I’ve got a couple of boxes that I frequent during a typical day. There’s a Debian-testing server that I have a screen session to on whatever machine I’m on. The machine I spend the most time on at home is a PIII-600 running Debian-testing. I’ve also got a Dual PIII-733 that boots Windows and as of yesterday the upcoming Ubuntu release, Hoary Hedgehog.

    It. Freaking. Rocks.

    Hoary feels a lot like Debian-unstable. There are rather major package updates every day or so. That’s okay though, because there’s a super friendly update manager that takes care of everything for you:

    Ubuntu Updates 1
    Available Updates

    Ubuntu Updates 3
    Downloading Updates

    Ubuntu Updates 2
    Installing Updates

    I can’t tell you how seamless it is and how right it feels. I guess that I shouldn’t be that amazed. Red Hat and Fedora have had a similar feature for years. I really like that I don’t have to pay for updates or have to register and confirm my email address and all that jazz. It’s just there, baked in, quietly doing its thing.

    Another thing that I love about Hoary is that they fixed my one big gripe. Now when you install an application via apt or Synaptic, it actually ends up in your Applications menu. I can’t say that this is the case for all applications, but for several Gnome and Mono apps that I installed, all of them ended up in Applications. This totally rocks! The lack of newly installed programs going in to some place in Applications was the only thing that really bugged me about Warty.

    Speaking of apps, I updated my /etc/apt/sources.list and pointed it to Universe. After that I promptly started playing around with a bunch of the Mono apps that I had heard about but hadn’t had a chance to look at. Here are a few screenshots from my playtime:

    Tomboy
    Tomboy

    Inkscape
    Inkscape

    Blam
    Blam

    I’ve got to say that I’m really impressed by the level of polish of these Gnome Mono apps. If I were on the same Linux box all day I would replace Instiki with Tomboy. I may augment my notetaking habits to work Tomboy in a bit while I’m home. You know what would be killer? Tomboy+WebDAV.

    I also played a bit with Inkscape. It reminds me of Illustrator with all of the path stuff. Blam is a solid 3-paned aggregator. Of course, because it’s a 3-paned aggregator it means that it’s not for me. I also fired up MonoDevelop and would love to spend some downtime reading Mono: A Developer’s Handbook and hacking on some GTK# stuff.

    Enough rambling. Here’s the reader’s digest version: Ubuntu rocks. Gnome rocks. Mono rocks. Man I love Linux!

  • When Things Just Work: Nautilus and SFTP

    Nautilus SFTP

    Every once in awhile my plain jane Debian workstation amazes me when something just works as it should. Tonight’s realization is that Nautilus plays extremely well with sftp:// URIs. I’m running version 2.8.2 which is relatively up to date but no bleeding edge. On a whim I decided to try using it to upload some pictures for my previous posts. scp:// failed but sftp://worked just fine. Since it uses SSH I already had the host key cached and it just prompted me for my password. Just as with SSH, you have to use sftp://username@host, otheriwse it assumes that you’re using the username that you are currently logged in as.

    Speaking of Nautilus (and Gnome for that matter): I love the minimalism and clean lines. I’ve spent some time in the eye-candy KDE camp, but I’ve got to tell you: I’m a Gnome guy. It does such a good job at getting out of your way and just letting you do what you need to get done. KDE is nice, but it’s a little candy coated and busy for my tastes. Of course I’ve got both Gnome and KDE installed on this particular box because there are some things that KDE does better than Gnome, but for everyday use, Gnome is where it’s at.