tinkering – Terminally Incoherent http://www.terminally-incoherent.com/blog I will not fix your computer. Wed, 05 Jan 2022 03:54:09 +0000 en-US hourly 1 https://wordpress.org/?v=4.7.26 So I inherited a Mac http://www.terminally-incoherent.com/blog/2011/01/10/so-i-inherited-a-mac/ http://www.terminally-incoherent.com/blog/2011/01/10/so-i-inherited-a-mac/#comments Mon, 10 Jan 2011 15:35:33 +0000 http://www.terminally-incoherent.com/blog/?p=7482 Continue reading ]]> If you have been reading this blog for a while, you have probably noticed that I frequently take in very old computers and do stuff with them. I got a lot of use from the ancient Compaq Presario 1240 which at one point was running a NetHack server for me. I messed around with the venerable Texas Instruments Extensa Scholar but it was mostly a command line system for me. On the other hand I got the Compaq Presario 1800 set up with a bare bones Debian/Fluxbox installation, and it was running so efficiently my mom ended up using it to check her email and browse the web when she was staying here over the summer.

Last week I inherited a brand new junker to add to my collection: an eMac. Yes you read that correctly, it is not an iMac, but an eMac. Wikipedia tells me this was Apple’s attempt to target the educational market (hence the e in the name) with a cheaper and slightly more robust (as in resistant to being roundhouse kicked in the monitor by a kid who just developed high tolerance to ritalin he did not even need to take in the first place) model. It is a huge, 17″ bulbous CRT monstrosity, but I just couldn’t say no to it. It was a free computer that I could mess with.

In fact, this might be the most powerful machine that I have rescued from being tossed into garbage recently. It sports a 1GHz PowerPC G4 CPU, 768 MB of RAM and has a 40 GB hard drive. This is actually not a horrible machine. This is actually a borderline decent system. Decent as in acceptable, not as in good. In fact, if I really wanted to spend around $50 I could actually upgrade the memory to 1GB which would likely give it a little bit more boost. But it is probably not worth it.

I’m not exactly sure what to do with it yet. Hell, I’m not sure where to even put it. I wish the damn thing was a flat screen rather than a CRT. I already forgot how incredibly heavy these things used to be. I almost dropped it on the pavement when I was taking it out of the trunk of my car. How the hell did we deal with this shit back in the day?

Anyways, right now the machine sits precariously perched on a little stool next to my desk, hooked up to an old Dell keyboard and a wireless Microsoft mouse. No seriously, the person who gave it to me kept the original peripherals for some reason. I don’t really care about the mouse (Apple mice are sort of crappy, sorry) but the keyboard would probably be nice since the thing doesn’t really have any buttons on the case. For example, I had to Google how to eject the CD drive (press and hold F12). I believe the original keyboard had a dedicated button for that. Actually my first attempt was to pull up a terminal window and type in “eject”. I mean, this is a Unix like system, no? So I figured the familiar linux command will work. It didn’t.

Actually, I could install linux on it. There should still be some distros out there which support the PowerPC architecture… It would probably even be quite challenging – these crazy machine fusions with integrated monitors and streamlined shapes are never straightforward to work with. I don’t think I will do that though. I mean, I’m pretty comfortable in Linux world but OSX still feels quite alien to me. I have only ever used in passing – in a computer lab at school, or or helping someone with some issue on their MacBook. So this could be my chance to mess around with OSX, poke in it’s innards and actually get familiar with how this system works inside out.

I don’t know if I have mentioned this, but every semester I get more Mac users in my class. Back when I was a graduate assistant at my university mac users were rare and welcome sight for me. Now that Apple became trendier than ever, everyone is carrying a MacBook in their book bag. Last semester I think a little under half of my class were either full time or part time Mac users. While I know windows inside out, and while I can troubleshoot linux issues in my sleep, I’m not familiar with Mac related quirks. Sometimes my Mac using students ask me some apple specific question, and all I have to go by are my vague recollection of using a Mac like 5 years ago. I was never motivated enough to set up OSX in a virtual machine of some sort, but now that I have this gargantuan CRT beast sitting here, I think it might as well play with it.

Right now it is running Tiger (OSX 10.4) which is actually quite out of date. I think I could possibly upgrade it to 10.6 (or at the very least to 10.5) but that may actually degrade the performance. What do you guys think?

Also, I must say that I am still kinda baffled by how OSX handles software installation. I knew how it worked for years, but after installing and uninstalling bunch of apps over the course of the last few days, I have to say that I really like the drag and drop idea. It is just so… Intuitive. It actually feels more natural than the Debiuan/Ubuntu way – even though it shouldn’t. I mean, you can’t really make anything easier than picking stuff from a list, but since Apple hides the processing from you it’s way feels more direct and straightforward.

In case you have never installed anything on a Mac, this is how it looks: you download yourself an .app file, and then you drop it in the Applications folder which is prominently displayed in your file browser’s side panel. That’s it – no progress bars, no check boxes, no scrolling text. Just drag and drop, and it works.

Btw, one of the first applications I downloaded was MacVim.

]]>
http://www.terminally-incoherent.com/blog/2011/01/10/so-i-inherited-a-mac/feed/ 14
New Toy: Compaq Presario 1800 http://www.terminally-incoherent.com/blog/2010/06/08/new-toy-compaq-presario-1800/ http://www.terminally-incoherent.com/blog/2010/06/08/new-toy-compaq-presario-1800/#comments Tue, 08 Jun 2010 14:11:45 +0000 http://www.terminally-incoherent.com/blog/?p=5548 Continue reading ]]> I have inherited yet another old laptop. This time it is a lovely Compaq Presario 1800. If you have never actually seen one of these, here is how it looks like:

Compaq Presario 1800

I have no clue what is it with my relatives and Compaq machines. I it just goes to show that Compaq was once as dominant force on the market as Dell is today. Everyone seems to have an old Compaq or two somewhere in the attic or under their bed. It’s uncanny.

Presarion 1800 is actually a huge step up from the previous two junkers that I managed to run into the ground. If you remember correctly, my Presario 1240 had a rather interesting life running Damn Small Linux, Slax, Fluxbuntu and then vanilla Ubuntu Hardy with Ratpoison. This laptop is actually way ahead in terms of specs:

  • Intel Pentium III 696 MHz
  • 128 MB RAM
  • ATI Rage Mobility M3
  • 20 GB HD
  • Intel Pro/100 S Mobile LAN

The only bad thing about this machine is the fact that the battery is completely dead. So the only way it will even power up, is when you attach it to AC power. Still, compared to the TI Extensa Scholar ESS2 I was messing around not so long ago, this is like a race car. Btw, I eventually got a bare bones, CLI only linux system running on the Extensa, but it crapped out on my before I managed to get the networking figured out.

Presario 1800 Closed Lid

So far I haven’t done much with this machine. When I got it, it was running Windows XP. I don’t know how, but it was running it, and the performance wasn’t actually that bad. I t was sluggish, but workable. I decided to scrap it, and exchange it with something leaner and more fitting. And then I picked the most bloated and performance retarded distro ever: Xubuntu. I made that decision after seeing how XP was rather responsive on this system. I figured that if it can reliably run the bloated MS system, it should handle Xubuntu, no?

Well, it can but it ain’t pretty. First off, Xubuntu would not even boot into the live distro on this machine. This should have been a red flag, but I didn’t really pay it any attention. I used the alternative installer instead and managed to get the system running. The good news was that networking seemed to work out of the box. The machine didn’t have any on-board wifi card, and I didn’t really need one seeing how it needs to be tethered to power outlet at all times. The bad news was that it was running almost unbearably slowly.

Xubuntu has a nice polished UI but it is a power hungry abomination of a system. With only 128MB of RAM almost everything required swapping. Hell, moving my mouse a bit would usually cause grinding hard drive sounds to be heard. Launching Firefox was a 5 minute ordeal, during which the machine would almost shake from the frantic hard drive activity. It saddens me to say this, but if you have an older machine like this one, XP will actually perform better than Xubuntu. There is just nothing lean or low-end friendly about that distro – it is as bloated and resource crazy as the vanilla Gnome version. It’s just a distro for people who like Ubuntu but hate both Gnome and KDE.

One thing that I like about this system is the touch pad area:

Presario 1800 Touchpad Area

It has little built in LCD display which was supposed to make this machine into something like a CD player. It will actually display the track you are currently playing and etc. I’m not sure if I could get it working under Ubuntu, but it would be neat if I could take it over and use it to display some arbitrary messages if possible. This will require some research.

Btw, if you look at the two blue buttons next to the mouse keys – they are my favorite thing in this whole laptop. They are essentially a scroll-wheel replacement and they worked out of the box in Xubuntu. I was able to scroll web pages up and down with them which was amazing. I always hate using touchpads on old laptops which do not implement that whole “drag finger across the edge to scroll” feature. This is brilliant. All the other buttons, except for the volume control were useless of course.

My next step is probably going to be installing a command line only Ubuntu system, and some lighweight UI. I might go with Ratpoison again. I’m not sure yet. Does anyone have suggestions? What distro should I try next?

]]>
http://www.terminally-incoherent.com/blog/2010/06/08/new-toy-compaq-presario-1800/feed/ 13
Python, Telnet and GUI-fying Legacy Apps http://www.terminally-incoherent.com/blog/2008/11/12/python-telnet-and-gui-fying-legacy-apps/ http://www.terminally-incoherent.com/blog/2008/11/12/python-telnet-and-gui-fying-legacy-apps/#comments Wed, 12 Nov 2008 16:31:24 +0000 http://www.terminally-incoherent.com/blog/2008/11/12/python-telnet-and-gui-fying-legacy-apps/ Continue reading ]]> Today I want to talk about telnet. Yes, telnet is stupid and you should use ssh. Sometimes you can’t though. For example if there is some old legacy app that is sitting on some remote server that is not even yours and the only way to interact with it is via telnet session. We have one of these things at work – it is a little app running on a mail server that allows people to set up an auto-reply message when they go on vacation.

In theory this is something that every user should be able to do themselves. The instructions are simple enough. Go to Start, Run, paste this telnet command into the box, hit enter, follow prompts on the screen. The interface is easy to use, if a little clunky. I never had any issues with it. And yet, no one ever wants to deal with. That black window with the dreaded blinking cursor is incredibly scary it seems. Most people call the help desk and request a message to be set up for them instead. This is not the end of the world, but it’s backwards. This system does not have a main administration panel where we could set these things up from above. So when someone calls in with a request, the helpdesk must actually telnet to the system and use their username and password.

So I started thinking if we could dumb-down this process enough to make it accessible to our average luser. The idea was to have a GUI layer shielding the user from the scary telnet stuff. I hacked up a tiny little prototype app in Python and it looked a bit like this:

auto_reply.JPG

It is very simplistic – kinda ugly actually. It’s Python using the Tkinter widgets for GUI-fication. It is less than 30 lines of code once again demonstrating that Python can be very terse and concise language despite it’s strict whitespace regime – even when coding GUI apps. Observe:

from Tkinter import *
class AutoReply:
   def __init__(self):
      self.root = Tk()
      self.root.title("DG Auto Reply Tool")
      self.root.resizable(0,0)

      self.text = ""
      self.email = StringVar()
      self.onoff = StringVar()

      self.reply = Text(self.root)
      self.reply.grid(row=0, column=0, columnspan=5)

      eml = Entry(self.root, textvariable=self.email)
      eml.grid(row=1, column=0)

      status = Label(self.root, textvariable=self.onoff)
      status.grid(row=1, column=3)

      button = Button(self.root, text="Update", command=self.update)
      button.grid(row=1, column=1)

      toggle = Button(self.root, text="Auto Reply:", command=self.toggle)
      toggle.grid(row=1, column=2)

      self.root.mainloop()

   def update(self):
      pass

   def toggle(self):
      pass

if __name__ == "__main__":
   app = AutoReply()

This is what Python is good at – creating usable software really fast. Next step was to figure out how this GUI layer would communicate with the telnet application. I started thinking about sockets and streams and all that fun stuff. That was my first instinct – just open a socket and dump messages to it and try to see if I can get anything back. I did something like this before, and it was a lot of tedious coding just to get the communication between the client and server. Of course I was using Java to do it, which means there was a lot of tedious coding there in general.

Python on the other hand ships with a built in telnet library (aptly named telnetlib) and all you really need to do to connect to a server and start sending messages is this:

I didn’t want to do all of that.

import telnetlib

HOST = "my.remote.host"
PORT = 1337
user = "my-username"
password = "my-password"

tn = telnetlib.Telnet(HOST, PORT)

tn.read_until("login: ")
tn.write(user + "\n")
tn.read_until("Password: ")
tn.write(password + "\n")

You just follow this pattern for all your other interactions with the server. You read_until and then you write and etc. I abstracted this into a tiny self contained class, and made my GUI initialize it in the constructor and then call it every time it needed to send or receive data. I kept it simple – each transaction was self contained, connecting to the server, logging in, interfacing with the app and then disconnecting. This way I didn’t have to worry about keeping the connection alive, timeouts, disconnects and could pretty much rely that the app running on the server will be in predictable state when I connect to it.

The rest was just a bit of creative screen scraping. The read_until method returns a string, which I could break into lines, and then parse each line to extract the information I needed. It was pretty easy to isolate the important data and discard everything else. I’m not going to post the code here because it is really customized to the particular application, and thus probably useless to most people.

The GUI works pretty well, but it is synchronous – it will block until the read/write transactions are accomplished which is probably not the worst thing that could happen. I’m pretty sure I could do it asynchronously but it would take more effort and make no huge impact on usability. The blocking as it is right now actually works like a feedback mechanism that shows the user when sending and receiving is taking place.

My app is actually more user friendly because it allows you to edit the message as a whole in a familiar editor window. The telnet app forces you to type the message line by line. The only way to change a line already in place is to delete it, append new line to the end of the message and then move it up one line at a time until it is in the right place. Oh, and pressing backspace inserts the lovely ^H instead of actually deleting the character. So the GUI is much friendlier and I deal with the craziness by simply nuking the message and then re-inserting it every time the user clicks on update.

I haven’t unleashed it on unsuspecting users yet – it’s still buggy and unfinished. I’m just throwing it out here to show how easy it is to hack things like that together with just a little bit of Python. The complete app is tiny (only slightly over 100 lines of code – including white space). The only problem is that most of my users are not running Python. This of course could be solved by using py2exe but then I’m basically converting 3KB of python into 30 MB of crap. Not a perfect solution there. I could either deploy python, ship the app as a huge native package, or rewrite it in C#. What would you do?

]]>
http://www.terminally-incoherent.com/blog/2008/11/12/python-telnet-and-gui-fying-legacy-apps/feed/ 4
Using Spare Laptop LCD as a VGA Monitor http://www.terminally-incoherent.com/blog/2008/03/31/using-spare-laptop-lcd-as-a-vga-monitor/ http://www.terminally-incoherent.com/blog/2008/03/31/using-spare-laptop-lcd-as-a-vga-monitor/#comments Mon, 31 Mar 2008 15:32:04 +0000 http://www.terminally-incoherent.com/blog/2008/03/31/using-spare-laptop-lcd-as-a-vga-monitor/ Continue reading ]]> We have bunch of old broken laptops lying around at work. Most of them are unusable, but I don’t like to throw them out because they are a great resource of spare parts. Sometimes I’m able to dig in that pile and use stuff like display hinges, bezels, arm rests, touch pads and etc to quickly fix some of the older machines that are still floating around. Naturally all these machines have been stripped out of memory, hard drives and CPU’s long time ago. One thing that doesn’t get replaced that often are LCD’s. There is probably 6 or 7 displays like the one below in that pile.

Spare Laptop LCD

They are just sitting there and not doing anything constructive, so I started thinking about putting them to a good use. There is another problem I often face – lack of spare monitors. Every time someone brings in a desktop for service we have to go an pull a monitor from one of the currently unused machines available in the office. Which is not the end of the world, since I usually have some flat surface available to set it all up.

Sometimes however a friend or relative brings their machine to my house asking for help. This is where the fun begins. I do have a spare CRT up in the attic that I keep for just hat occasion. What I don’t have is space. When I’m fixing someone’s computer you will usually see a scene of pure mayhem on the floor of my room:

Family Tech Support

I’m usually forced to squeeze the old CRT, the desktop, the keyboard and mouse in the tiny little amount of free space between the bed and the TV, and essentially sit with my back wedged against my desk, occasionally turning around to Google something on my desktop in the back. I could buy a LCD screen, but even a tiny 15″ cheepo sells for almost $200 at neweg – which seems a bit high for something that I would use twice a year, and then stash in the attic or at the bottom of some closet.

This is where the two needs begin to merge: my need to do something useful with the spare laptop LCD’s and my need for ultra-small portable LCD screen. I figured that if I could find an Laptop LCD to VGA adapter I would be all set. Or not…

It turns out that I’m not the only person who had this brilliant idea. Unfortunately, it turns out that it is not as easy as one might think. The laptop LCD has a digital output that is designed to pin into a controller circuit which in turn talks to the video card. These things are mostly proprietary, not standardized and not widely available. The difficult part is figuring out exactly what kind of controller circuit do you need, then locating and ordering one. It’s definitely possible though.

For example, I have found this blog describing the process. Unfortunately it is very light on technical details to the point of being relatively useless. It’s more or less photographic proof that it is possible, but not much more:

dyilcd.jpg

The last entry is particularly discouraging – apparently the merchant who was supplying the circuits used in the example no longer produces them, and is currently out of stock. :(

A slightly more informative but less complete post can be found on the mp3car forum. They actually post a link to a vendor who seems to have quite a few different models for sale. There are two caveats though – the vendor seems to be located in Europe, and they only sell in bulk (100 units of more) which makes them useless as a resource. I found few others but none of them was really selling anything online.

Then I remembered a piece of old internet wisdom – if it exist, someone is probably selling it on ebay. Believe it or not, I found some interesting looking kits for sale. Here is a closeup pic of one of them:

tft_lcd_panel__back_light_1.JPG

It is a TFT LCD controller with a back light inverter, which seems to be exactly what I would need. It also looks astonishingly simillar to what the dude in the first blog I linked to was using. Good news is they seem to be selling for $35 + shipping and handling (which will probably be another $30 or more knowing these types of ebay stores). So I’m tempted. It could work, provided that my LCD is one of the models supported by this device and that there are no funky drivers required to actually run this thing.

Anyone ever did something like that? Should I do it? It could make for a nice, space saving, ultra portable monitor, provided that I could find a semi-decent frame to mount the circuit and LCD…

[tags]laptop lcd, tft lcd, laptop lcd vga, monitor, controller, hardware[/tags]

]]>
http://www.terminally-incoherent.com/blog/2008/03/31/using-spare-laptop-lcd-as-a-vga-monitor/feed/ 31
Ubuntulite: Problems Running Feisty on Old Hardware http://www.terminally-incoherent.com/blog/2007/09/20/ubuntulite-problems-running-feisty-on-old-hardware/ http://www.terminally-incoherent.com/blog/2007/09/20/ubuntulite-problems-running-feisty-on-old-hardware/#comments Thu, 20 Sep 2007 15:31:48 +0000 http://www.terminally-incoherent.com/blog/2007/09/20/ubuntulite-problems-running-feisty-on-old-hardware/ Continue reading ]]> While I was moderately happy with Fluxbuntu, I decided to give Ubuntulite a shot. It sounded like a great idea – the most basic of basic systems, with minimal Openbox setup on top of it. Fluxbuntu still seemed to exhibit some strange bloat here and there, and a very stripped down system seemed exactly what my old junky Presario 1240 needed.

Ubuntulite Logo

So I followed the Ubuntulite instructions to the iota and got the system on my machine. It’s very spartan, and rough around the edges, but hey – that’s what I wanted, wasn’t it?

But I run into a heap of issues with this installation. And I’m not really blaming Ubuntulite team for this. I think this is sum of unfortunate software choices, and inherit Feisty issues. My biggest issue was the strange shit that was happening on boot time. Every time I would power up this machine, I would get the following lovely message:

[ 0.000000] ACPI: Unable to locate RSDP
Loading, please wait...
kinit: name_to_dev_t(dev/disk/by/uuid/the-long-uuid-goes-here) = hda5(3,5)
kinit: trying to resume from /dev/disk/by/the-long-uuid-goes-here
kinit: No resume image, doing normal boot...

The machine would actually hang and wait about a minute on the Loading prompt before displaying the kinit messages and resuming boot sequence. Apparently, this issue has not one but at least two bug reports on launchpad already #103148 and #105316 and neither one has been resolved. There is also this thread in the Ubuntu forums about it. I followed all the proposed fixes and nothing worked. This was not a show stopper, but an annoyance.

I finally resolved it by following the instructions here, but instead of using the UUID’s I actually modified my fstab to use standard notation like /dev/hda5. If you are to lazy to follow the link and try to figure it out on your own, here is what you do. In your /etc/fstab you will see the following line for swap:

#/dev/hda5
UUID=the-swap-partition-uuid-number-here	swap	sw	0	0

Delete the UUID bullshit and change it to:

/dev/hda5	swap	sw	0	0

Now open your /etc/initramfs-tools/conf.d/resume. It will have a long UUID listed there. Get rid of it, and replace it by simple:

RESUME=/dev/hda5

Once that is done, do:

sudo update-initramfs -u

Note that this will take around 17 million hours when you are on slow hardware, so just be patient. Once it is done, sudo reboot now. Problem solved – at least for me. Your millage may vary.

To get rid of the ACPI error I just modified my GRUB entry to add acpi=off noacpi at the end of the kernel string. Go to your /boot/grub/menu.list and find the part where it lists all the bootable entries. Find the line that specifies the kernel – it will look something like this:

kernel	/boot/vmlinuz-version.number root=/dev/hda2 ro quiet splash elevator=cfq

Slap the aforementioned string at the end like so:

kernel	/boot/vmlinuz-version.number root=/dev/hda2 ro quiet splash elevator=cfq acpi=off noacpi

This is an old POS laptop, and none of the distros I tried could figure out the ACPI stuff for it. I kinda gave up on that stuff. I mean, there is no point in loading it if it won’t work on this machine anyway, no?

The rest of the boot was working ok, but I noticed bunch of things there that I can probably shave off to save time – like fetchmail, CUPS and etc.

Openbox configured itself pretty well, but with two odd quirks. First one would only show up when you switched to a TTY using the Alt+Function Key shortcut and then go back to X. The display would become inexplicably dim and dark. Almost as if someone turned down the brightness on your monitor down to the lowest setting – but only when displaying X. All the other terminal screens looked fine. Killing X and restarting it solves the problem. I’m suspecting this is some oddball vesa quirk. Fluxbuntu did not seem to have this issue. :(

Any idea why this happens and how to fix it? Once again, this is not a show stopper – just annoying as hell.

The most bizzare quirk however was the odd Openbox numlock behavior. The Presario 1240 is a laptop, and as many mobile machines it as one of those Fn keys and no numeric keypad. In a half assed attempt to provide customers with one, Compaq decided to use combos like Fn+J through L to mean 1-3 thereby re-using the whole right side of the keyboard as the numpad.

When logged into Openbox, it forces NumLock to the on state and so my keyboard would actually use these alternate values for all the “fake-numpad” keys. So pressing K would actually type 2, pressing P would trigger a minus sign and etc. I could still get the “normal” letters by holding down the Fn key as I press them but that was just plain stupid. External keyboard would work normally, and pressing NumLock on it would “fix” this issue on the built in keyboard as well.

Quickly swiching to a TTY and back would do the same. But then I’d have to deal with that dark-vision effect so that was not a good solution either. Why wouldn’t I just hit NumLock on the laptop keyboard? Oh, probably because I fucking couldn’t. You see – NumLock on that keyboard is one of these special keys that can only be accessed while holding Fn key. And for some reason, it would just not work. Whooptie do!

Fortunately, it seems that I’m not the only person experiencing this issue, and there is a quick software fix for this behavior called numlockx:

numlockx off

The downside of this is that you have to run this command every time you boot into X. I’ll have to figure how to plug this command into the openbox boot sequence, along with commands to start the fbpanel and xsetroot into something not ugly. Care to point me in the right direction? I still haven’t gotten around to customizing my environment this way.

Its strange, but none of the other distros I used really touched NumLock. Go figure.

Btw, I’m not saying Ubuntulite is bad I actually I kinda like it. Being rough around the edges is kinda their aim, so I can’t complain about that. And the fact it doesn’t pus any given setup GUI setup on you let’s me experiment with different lightweight components and create an environment I’m happy with. Most of my problems seem to be Feisty related – rather than Ubuntulite specific. Dapper was rock solid on this machine. Feisty is a tad flaky as you can see from the issues above. I will play around some more with this system. I think I solved most of the jarring issues, and the rest will probably just fall into places soon. If it continues being flaky, and pisses me off I will probably scrap this installation and try Vector or Wolvix at some point. We’ll see.

Update 09/23/2007 11:44:03 AM

Just to clarify – Ubuntulite is still in a very early beta stage. It’s in no way a finished product. I’m not really bashing the distro – just pointing out minor issues I encountered with the early version. If you download it now, it will be more polished and usable than when I got it because they just released a new version. :) I think this will be a really good distro for old hardware once it matures a bit and reaches a stable state.

[tags]ubuntu, ubuntulite, compaq, presario 1240, ubuntulite on presario 1240, compaq presario, lptop[/tags]

]]>
http://www.terminally-incoherent.com/blog/2007/09/20/ubuntulite-problems-running-feisty-on-old-hardware/feed/ 12
Installing Fluxbuntu on Compaq Presario 1240 http://www.terminally-incoherent.com/blog/2007/09/10/installing-fluxbuntu-on-compaq-presario-1240/ http://www.terminally-incoherent.com/blog/2007/09/10/installing-fluxbuntu-on-compaq-presario-1240/#comments Mon, 10 Sep 2007 13:53:06 +0000 http://www.terminally-incoherent.com/blog/2007/09/10/installing-fluxbuntu-on-compaq-presario-1240/ Continue reading ]]> This post is yet another entry in the Compaq Presario 1240 saga. If you have been reading this blog for the past week or so, you know what is going on. If you are new, let me explain. Last December I “inherited” some old laptops. And by “inherited” I mean someone gave them to me saying “if you don’t want them, I’m just gonna throw them out”. One of them was the ancient, ancient Presario 1240 with 200MHz CPU and 98 MB of RAM. At first I tried to set it up with Windows and perhaps give it to a relative, but the system was just to slow, even when I set it up with bbLean as the default shell. So I decided Linux was the way to go. Over the past few days I tried several lightweight distributions including Deli Linux (which didn’t have ndiswrapper) DSL Linux, Arch Linux (which didn’t work) and Slax Popcorn. I was not entirely happy with either of those systems.

So I decided to go back to what I know and love – Ubuntu. Or rather Fluxbuntu (a *buntu with Fluxbox) as suggested by jambrama. While Fluxbuntu is only in beta, it is based on Dapper which is remarkably stable (not to mention that it is a LTS distro).

Fluxbuntu Logo

The installation went smoothly if you don’t count my CD burning issues. The Live distro was a bit sluggish, and the GTK based GUI install was very, very slow. Still, every live distro was slow on this machine. I think the CD-ROM is at most x4 or x8 so you can’t expect good read times from that. So I wasn’t that concerned.

One thing that Fluxbuntu people should probably fix is the lack of auto-login on the live distro. Once the thing boots you are presented with a login screen, and no idea what is the username and password. Quick trip to their wiki page will tell you that it is:

user = fluxbuntu
password = livecd

This is all fine, but if you don’t have internet connection, you are pretty much stuck at the login screen. Also, the live distro does not include an install icon on the desktop like it’s other *buntu sisters. To launch the installation script you need to pull up a terminal and type in:

ubiquity

I guess this is the name of the universal *buntu GUI install script, but perhaps symlinking it to something like install_ubuntu could have been a good idea. But I guess these are the joys of working with a beta system. As mentioned before, the install was slow. And when I say slow I mean Slowpoke slow:

Slowpoke Slow

With Slax and DSL the installs were quick because you had at most 100 MB of data to copy to the drive. Fluxbuntu takes up the full CD weighing in almost 700 MB which takes considerably longer to copy – expecially with a full desktop and a GUI installer running in the background and only 98 MB of RAM with no hd to swap. So slow is the operative word here.

While installation was nice and uneventful, the post installation tasks were what gave me a headache. My WPC54G v1.2 card worked on all other platforms – but fluxbuntu (which is Dapper based) refused to touch it. The ndiswrapper would take the driver without complaining, then I would generate modprobe alias as normal. Then I would run modprobe, and dmesg output gave me the following:

bcm43xx_microcode5.fw not available or load failed

WTF? The intefeace wlan0 doesn’t even show up on the radar. Nothing works. Time to do some reasearch!

After some googling, I found out that I might need to strip out the firmware drivers from the bcmwl5.sys windows driver file.

aptitude install bcm43xx-fwcutter
bcm43xx-fwcutter -w /lib/firmware/ ~/bcmwl5.sys

Then I unplugged the card, plugged it again, run modprobe as before and…

dick

Same error. Thanks internet, but you are no fucking help at all. I rebooted the machine, run the whole operation back again from scratch and got same exact result. Nothing.

Funny thing is that this same card is working perfectly in my other laptop which is also Dapper based. Actually my laptop is a Hoary which was dist-upgraded to Dapper because I’m awesome like that. I also remember having great old time getting my card working after the upgrade. But that was because my ndiswrapper-modules package was compiled from source and it apparently did not work with the newer ndiswrapper-utils. I fixed it by removing ndiswrapper and re-installing it from scratch.

This however was a whole different issue. So I hit google again, this time finding some very useful information. Apparently Dapper ships with the bcm43xx module of it’s own that interferes with ndiswrapper. The answer:

rmmod ndiswrapper
rmmod bcm43xx 
ndiswrapper -m
modprobe ndiswrapper

BOMSHAKALAKA! My wlan0 just got associated!

iwconfig wla0
ifup wlan0

I’m online kids! Me and Internet 1, Dapper 0. Wohoo! Me and Internet make a good team. Oh yeah! I conquered the machine once again. Ph34r the awesome power of the human intellect (and the ocean of information diarrhea and monkey piss that is the internet).

You just need to remember to add the following line to your /etc/modprobe.d/blacklists to prevent the bcm43xx driver from loading at startup:

blacklist bcm43xx

If you omit this step, the system will load the driver next time you boot, rendering ndiswrapper useless once again, and forcing you to repeat the rmmod and modprobe steps once again. Once you do this, it’s smooth sailing.

So, Fluxbuntu is working. The base system is running at an acceptable speed. I think both Slax and DSL were performing better. This system just feels slower and more cumbersome. I trimmed it down using sysv-rc-conf and removed all the unnecessary daemons and background processes. This made boot times more tolerable, and made the UI a wee bit more responsive. I’m not sure if I can tweak it down from here, but suggestions are always appreciated. I guess the rest is just choice of software you use on the machine.

The default terminal on Fluxbuntu is Eterm. It is a very pretty and lightweight terminal, with nice scrollbars, it’s own menus and nice backgrounds. It has one drawback though – on my machine it is deadly slow to startup. I don’t know about you but if I can count up to 5 or 6 Mississippi’s before the window even shows up, it’s bad. I need a terminal that is a little bit snappier than this. Fortunately Martin Ankerl did all the legwork for me, and conducted a very extensive Linux terminal speed benchmark. Armed with that document, I found the best match for me: Wterm which combines good startup speeds, with acceptable output rendering. And yes – Wterm actually beats the good old xterm. I’m really happy with it so far. It pops up almost instantly!

Rox is also very swift as the file manager. I might look for another alternative later on, but so far it is working fine for me. Kazehakase is a whole other story. It is slower than slow. And when I mean slow, I mean Slowpoke Rodriguez slow:

Slowpoke Rodriguez Slow

But, here is the thing: this is a 200 MHz machine with 98 MB of RAM and Kazehakase is a gecko based browser. Gecko is a modern rendering engine which eats memory for breakfast, shits all over your swap file, and then wipes itself with your CPU cashe. I don’t think I can make it any faster. In fact, I doubt that there is a modern, full featured browser that can run fast on this hardware. There is always Dillo, but browsing the web with it is bit tedious (OMG, where are my tabz?). Not to mention that you get the retarded version of the web since Dillo is worse than IE at properly rendering CSS.

So if you want speed, you use Dillo and deal with the weird web. If you want functionality, you use Kazehakase and go get some coffee while it starts, and every time you load a bigger page.

All in all, I think this system is acceptable. It is slower than I hoped for, but it’s also fully functional Dapper which means that any packages that I might ever want are there for me to use. This was not the case with Slax and DSL. I’m not sure how much more I can improve the performance. I’m sure that there are at least a few more speed tweaks I could do, but I’m not sure if they will help much. Of course Any suggestions on trimming it down are greatly appreciated. Let me know how do you butcher your *buntu to run fast and I will do it and report the findings. Btw, the stuff I will most likely be using this machine for is for testing, casual web browsing and email. Nothing serious. So anything that is not absolutely essential to web browsing can go.

[tags]fluxbuntu, WPC54G v1.2, ndiswrapper, bcm43xx, dapper, ubuntu dapper, wireless, wifi, wlan0, modprobe[/tags]

]]>
http://www.terminally-incoherent.com/blog/2007/09/10/installing-fluxbuntu-on-compaq-presario-1240/feed/ 8
Consistent Nero Burn Errors http://www.terminally-incoherent.com/blog/2007/09/09/consistent-nero-burn-errors/ http://www.terminally-incoherent.com/blog/2007/09/09/consistent-nero-burn-errors/#comments Sun, 09 Sep 2007 15:07:37 +0000 http://www.terminally-incoherent.com/blog/2007/09/09/consistent-nero-burn-errors/ Continue reading ]]> The other day I noticed that none of the 5 [tag]iso[/tag]’s I burned passed the [tag]integrity check[/tag]. I’ve been fighting with Ubuntu and fluxbuntu for couple of days now, and they always seem to be having the weirdest errors during install. Now I know why – the CD’s are [tag]corrupted[/tag].

I did a test [tag]burn[/tag] in [tag]Nero[/tag] at x8 speed and I made it verify the data after the burn. The result was astonishing number of [tag]verification errors[/tag] – probably over 20 of them. I tried several other times and got almost exactly same errors popping up all over the place.

Then I tried my external CD/DVD burner and got exact same results. So it is definitely not a hardware issue. Here is what I suspect:

  1. Starforce DRM b0rked my drives (unlikely but possible)
  2. Nero is a piece of junk (perhaps, but I used it before without any issues)
  3. Windows is just fucking up and needs a reboot (my uptime is over 3 weeks now – winXP doesn’t like to be on for so long)
  4. Bad RAM (most likely)

I’m afraid that this is most likely a memory issues. I don’t want it to be (cause that means spending money on new RAM) but all clues point to it. I will have to run a memory test overnight one day and see what is going on.

Of course if the RAM is fine this can possibly be a Mobo issue – some sort of interference on the bus or a failing DIMM socket – I’m seeing this kinds of issues popping up all over the place now. And that would suck royal balls. At that point I may just want to start looking for a brand new gaming rig on the cheap. Sigh…

What do you think it is?

Update 09/09/2007 06:45:02 PM

The issue seems to have resolved itself. I upgraded my Nero installation to the most recent version: OEM 6.6.1.15 and then rebooted the machine. I did a test burn of the same ISO that was giving me issues, and it came out clean. Go figure.

If you experience similar issues, upgrading and rebooting might be a good idea. Then again, this might be a fluke and the issues might come back. I will keep you posted.

An excerp of the Nero burn log showing the errors can be see after the cut.


9:31:14 PM	#22 Phase 37 File dlgbrnst.cpp, Line 1832
	Burn process completed successfully at 8x (1,200 KB/s)
	
9:31:14 PM	#23 Phase 78 File dlgbrnst.cpp, Line 1832
	Data verification started
	
9:31:17 PM	#24 Text 0 File ThreadedTransferInterface.cpp, Line 1119
	Removed 2 run-out blocks from end of track 1. Length: 356473 -> 356471.
	
9:31:21 PM	#25 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 0 on disc has different content to source
	
9:31:21 PM	#26 SectorVerify 10 File Cdrdrv.cpp, Line 10032
	Sectors from 16 to 19 on disc are different to source
	
9:31:21 PM	#27 SectorVerify 10 File Cdrdrv.cpp, Line 10032
	Sectors from 21 to 29 on disc are different to source
	
9:31:21 PM	#28 SectorVerify 10 File Cdrdrv.cpp, Line 10032
	Sectors from 31 to 39 on disc are different to source
	
9:31:26 PM	#29 SectorVerify 10 File Cdrdrv.cpp, Line 10032
	Sectors from 41 to 6401 on disc are different to source
	
9:31:26 PM	#30 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6432 on disc has different content to source
	
9:31:26 PM	#31 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6464 on disc has different content to source
	
9:31:26 PM	#32 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6496 on disc has different content to source
	
9:31:26 PM	#33 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6528 on disc has different content to source
	
9:31:26 PM	#34 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6560 on disc has different content to source
	
9:31:26 PM	#35 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6592 on disc has different content to source
	
9:31:26 PM	#36 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6624 on disc has different content to source
	
9:31:26 PM	#37 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6656 on disc has different content to source
	
9:31:26 PM	#38 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6688 on disc has different content to source
	
9:31:26 PM	#39 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6720 on disc has different content to source
	
9:31:26 PM	#40 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6752 on disc has different content to source
	
9:31:26 PM	#41 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6784 on disc has different content to source
	
9:31:26 PM	#42 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6816 on disc has different content to source
	
9:31:26 PM	#43 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6848 on disc has different content to source
	
9:31:26 PM	#44 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6880 on disc has different content to source
	
9:31:26 PM	#45 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6912 on disc has different content to source
	
9:31:26 PM	#46 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6944 on disc has different content to source
	
9:31:26 PM	#47 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 6976 on disc has different content to source
	
9:31:26 PM	#48 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 7008 on disc has different content to source
	
9:31:26 PM	#49 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 7040 on disc has different content to source
	
9:31:26 PM	#50 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 7072 on disc has different content to source
	
9:31:26 PM	#51 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 7104 on disc has different content to source
	
9:34:00 PM	#52 SectorVerify 10 File Cdrdrv.cpp, Line 10032
	Sectors from 7113 to 356322 on disc are different to source
	
9:34:00 PM	#53 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 356352 on disc has different content to source
	
9:34:00 PM	#54 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 356384 on disc has different content to source
	
9:34:00 PM	#55 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 356416 on disc has different content to source
	
9:34:00 PM	#56 Text 0 File ThreadedTransfer.cpp, Line 228
	all writers idle, stopping conversion
	
9:34:00 PM	#57 SectorVerify 11 File Cdrdrv.cpp, Line 10032
	Sector 356448 on disc has different content to source
	
9:34:00 PM	#58 Phase 81 File dlgbrnst.cpp, Line 1832
	Data verification failed

Anyone seen that before? What was the issue? Let me know.

]]>
http://www.terminally-incoherent.com/blog/2007/09/09/consistent-nero-burn-errors/feed/ 10
Installing Slax Popcorn on Compaq Presario 1240 http://www.terminally-incoherent.com/blog/2007/09/08/installing-slax-popcorn-on-compaq-presario-1240/ http://www.terminally-incoherent.com/blog/2007/09/08/installing-slax-popcorn-on-compaq-presario-1240/#comments Sat, 08 Sep 2007 15:25:09 +0000 http://www.terminally-incoherent.com/blog/2007/09/08/installing-slax-popcorn-on-compaq-presario-1240/ Continue reading ]]> I was slightly disappointed with my installation of Damn Small Linux on the Compaq Presario 1240. Since Arch Linux didn’t work I decided to try another compact distribution called Slax. It’s based on Slackware and is designed to boot from usb sticks and such. I picked Slax Popcorn – the trimmed down version that uses Fluxbox instead of KDE.

The system booted just fine, and I experienced had no problems with the video. I’m guessing this was a DSL issue rather than hardware problem. The only things that didn’t work out of the box were sound and wifi. I already knew how to fix wifi, and sound probably wouldn’t be that hard to set up either so I wasn’t worried.

Slax is a pocket distro just like DSL – the Popcorn ISO weighs only 115 MB. But while DSL does offer some accommodations for users wishing to install the system on the HD, Slax remains 100% live distro. What does it mean? It means that it offers no mechanism to convert the system to a semi-normal linux environment. You can of course copy the files to the HD to speed up boot times, and free up your CD by issuing following commands once the system boots:

mount /dev/cdrom
cd /mnt/hdc_cdrom
./make_disk.sh /dev/hda1

However every time you boot the system will return to it’s original state forgetting all your settings. You can permanently install software using the Slax modules but most of regular system settings have to be explicitly saved and restored at each boot. For example my ndiswrapper settings would dissapear between each boot so I would always have to copy the drivers from the USB stick into the home directory and do:

ndiswrapper -i ~/lsbcmnds.inf
ndiswrapper -m
modprobe ndiswrapper
echo ndiswrapper >> /etc/modules
iwconfig wlan0 
ifconfig wlan0 up
dhcpcd -d wlan0

What I really wanted was an actual full fledged linux install that would retain my settings without some special hax and tinkering. So Slax was not for me.

Before I trashed it I made some observations. Slax is a KDE based distro, and the Popcorn edition seems to be nothing more than a stripped down version of the original. It’s as if someone removed all the KDE packages out of the distro, and then slapped on Fluxbox, Firefox and Thunderbird on top of it.

I am a hard core Firefox user, but unfortunately this browser means death to old hardware. Popcorn did not ship with any alternatives. There is a Dillo module available but what I kinda really wanted was Kazehakase which has not been modularized yet. And building a gecko based browser on a system that is not persistent (ie looses information on reboot) is not my idea of fun.

So, Slax is out. That’s not to say it’s a bad distro. It is a very good lean Live desktop that I have successfully used in the past on older hardware. Not as old as this Presario though. It requires special attention.

So let’s summarize the developments in my search for a perfect old-hardware distro so far:

  1. Deli Linux was disqualified because it lacked ndiswrapper that I needed for my wifi card
  2. Arch Linux wouldn’t even boot complaining my CPU is to old for it’s kernel
  3. DSL worked but it had odd video issues, and persistence problems
  4. Slax with Fluxbox worked fine, but it was not designed to be a persistent installed distro (oh, and I never worked out the sound issues)

So I’m pretty much back to the drawing board. I was not 100% happy with any of the recommended “old hardware friendly” distributions. So, what now? Any suggestions?

I think I’m going to go back to what I know and love – Ubuntu. I’ll start with the “Text Only” install that can be run from the Alternate Install disk. Then I will slowly build it up from there, install X server, fluxbox, Kazehakase, Dillo whatever else seems a good idea. Since this will be a Feisty install, I should have a plethora of good packages to choose from.

[tags]compaq presario 1240, compaq, presario, old hardware, dsl, arch, slax, slax popcorn, dillo, fluxbox, kde, ubuntu[/tags]

]]>
http://www.terminally-incoherent.com/blog/2007/09/08/installing-slax-popcorn-on-compaq-presario-1240/feed/ 13