Archive for the ‘linux’ Category.

ArchLinux via 2GB MicroSD Card

I recently re-discovered a laptop left for dead a few years ago. Originally I couldn’t figure out the problem and it sat on my shelf for a few years. With my knee surgery leaving it painful to sit in a chair for very long I decided now would be a great time to get that old laptop working so I can use it while laying down.

After booting it up for the first time in years, the problem was apparent. The hard drive was on it’s way out, and also sounded strangely in need of an exorcism. Immediately when the drive began to spin up I heard a horrible combination of ripping, screeching along to a series of clicks and clacks not quite like anything I’ve heard before. Removing the drive to save my ears from the beast, I decided an Ubuntu LiveCD would be the best environment until I could get a new drive for the machine. I was using an extra USB key I have as a holding point for any storage I may need. At some point I rebooted the computer, forgetting to remove the USB key. Sure enough, the laptop gave me disk errors as it tried to boot off of USB. This set the wheels in my head in gear.

Knowing that I could boot off of USB, I needed to find some form of storage to use for such a purpose. The original USB key would be off limits, I didn’t feel 512mb would be enough for an ArchLinux install with Xorg and Fluxbox installed. Looking through my closet of parts, I came across an unopened 2GB MicroSD card. It was almost as if it was waiting for this moment. Coupled with a USB adapter, I booted into the Arch LiveCD and saw it picked up as /dev/sda. I was good to go!

Starting up the install process I went through like normal, setting the time and so on. Once I got to the disk setup stage I attempted to create only a 32MB /boot partition and the remaining space for /, root. I decided to go against swap space just because it seems highly¬†unpractical for such a minimal system. Once I attempted to write the partitions, cfdisk error’ed out saying something along the lines of the drive didn’t exist. Doing a bit of Googling, I couldn’t turn out a definite answer, so I attempted to manually create the partitions in fdisk. I was successful in creating them via fdisk, and re-entered setup to finish things up.

This time cfdisk actually opened up with no problem, I’m going to assume the MicroSD may have had some sort of weird partition that caused cfdisk to choke until I formatted the drive myself. Having the disks set up, I selected my packages and let the install begin. The install finished in maybe twenty minutes, so I was about to begin configuring the system when out of nowhere the laptop died.

Oh that’s right, I had forgot to leave it plugged in and during my lengthy install the battery must have died. Luckily by this time I had worked out all the kinks and just did a quick re-install followed by the configuration and and initial boot-up. Following is the standard ArchLinux install process. Adding users, updating pacman, etc. I did spend a bit of trouble tracking down the right firmware version for the wireless card, a Broadcom of some sort using the b43 driver.

That all finished, I installed Xorg, the open-source ATI drivers, Flubox and Chromium. Not one hiccup has been felt since. After checking the disk space, it looks like the whole thing fits into 1.6GB of space. Not bad at all, I’m actually very impressed by the fact that I have my entire system contained on a MicroSD card. The access speed seems to be a little slow, and Chromium runs out of memory if I get too crazy on the tabs, but it works. Amazing what can be done with technology these days.

Thoughts after a few months of xmonad

To be honest, when I first installed xmonad, I didn’t think I would like it. I felt it had too high of a learning curve and wouldn’t be worth my initial investment. I was quite wrong, I think my search for the “perfect window-manager” may be over, at least for now.

Xmonad is a dynamic tiling window manager. It’s basic job is to manage placement of your windows, however, it can be extended to incorporate many other features such as virtual desktops, transparency and panels. By default Xmonad comes with a very minimal install, you will have no window decorations or status bars. Most users will require some level of customization to reach the desired level of functionality.

Xmonad is configured using a haskell configuration file, which you will recompile and then reload (on-the-fly, no logout required). Rinse & repeat as necessary. I’ve personally always been a bit afraid of haskell’s syntax, and still don’t really understand any of it, but I’ve figured enough out to properly configure my setup. I spent the better part of a few weekends deep in the documentation for xmonad and pulling different bits from any other xmonad.hs file I could find online. Many times this resulted in a non-working configuration, but sure enough I figured it out. Right now my configuration is working, is somewhat documented and (I think) has a decent framework to add extra functionality later on.

Most users would also like to have a panel, or even a place for status icons to sit. Following the minimalistic approach, Xmonad does not include these features in it’s core. When there is a will, there’s a way though. Xmobar is the software I am using to provide a system panel. Trayer is the software I use to provide a status icon area. Both pieces of software are very well documented, and in my experience, very easy to integrate with your Xmonad configuration

As far as performance and stability, I don’t recall having any issues whatsoever. Even at the times when my system is under a full load, xmonad still performs quickly and reliably. I also don’t think xmonad has ever actually crashed on me, except for a few botched config files of my own doing. It definitely puts your mind at ease when you feel like the system is rock solid beneath you.

Going back to the extra functionality, I haven’t found anything more I could want. Sure, I spent a week or two adding all the bells & whistles to mess around. And sure enough, I’d end up removing them to clear some of the clutter. I’ve decided to take a bare-bones approach to window-management from now on.

Xmonad Desktop July 2011

Xmonad Desktop July 2011

Xmonad Homepage
Xmobar Homepage
My xmonad.hs
My xmobarrc

On the hunt for some MRI visualization software

In a very unfortunate turn of events two nights ago, I managed to tear my meniscus (bucket-handle on the lateral). After meeting with my orthopedic, he recommended an MRI to get a better idea of whether or not I will require surgery to repair it, I’ll be going in for that later on tonight. I also understand that the imaging center will give me a CD containing the images for me to bring to the doctor. I fully intend on at least viewing the images myself as opposed to the two weeks until my follow-up appointment.

Now I’m on the search for some way to visualize this data on my computer. I really have no knowledge on actual MRI data formats, so that will be my research project for today. What I would like to know, is there any great MRI visualization software for Arch? How can I view these images on my computer as a 3D model as opposed to the 2D slices I see sometimes?

Thoughts on BFS

The CPU governor is a piece of software in the kernel which splits up your processors speed into time-based slices and then distributes these slices to the processes running on your system. In reality things are much more complicated than that, but an in-depth knowledge of their function is not required.

The BFS, or Brain Fuck Scheduler, is an alternative to the CPU governor included by the linux kernel by default. It is currently available as a set of patches to the linux kernel, or possibly as a pre-compiled kernel for your architecture/distribution. I haven’t had much luck installing the kernel packages. My first issue was with getting the proper packages installed, which took slightly longer than it should have due to a simple type that took me all day to catch. The next issue I ran into was with upgrades, it just didn’t seem to work properly. I kept running into circular dependencies and version mismatches and such. The main packages giving me issues would have been ‘nvidia-ck-k8′ and the VirtualBox ck-k8 kernel modules.

For the week or so that everything worked though, it was wonderful. BFS seemed to virtually eliminate lag. I was finally able to go tab-crazy in firefox, play minecraft and run a folding@home client without any noticeable lag. BFS does its job very, very well right out of the box. I felt no need to tweak anything at all.

In the end it was continued issues with the nvidia driver upgrades that caused me to go back to the stock kernel packages and thus the stock CPU governor. The difference is hardly noticeable as long as I keep the folding@home client closed and keep the number of tabs down in firefox.

I’ll probably be trying out the packages again in another week or two, just to see how things are coming along. I’d really enjoy using this cpu governor as my default. You probably will too, go give it a try!

Download patches & other files
BFS Introduction
BFS FAQ’s
Kernel26-ck Howto (Includes BFS)