Switched from digitalspace to justhost

I’ve been running my website on digitalspace.net hosting for years. Then they sold out to jumpline, and my ability to push changes to my website via ‘rsync‘ disappeared, and was never restored. Although I still had ssh shell access, the account was seriously limited. It was probably a good security decision on their part, but I missed having wget, tar, gunzip, chmod, and other essential utilities that I used when upgrading my blogging software. It became tedious, at best, to maintain my website.

I’ve finally switched to hosting through http://www.justhost.com and the transition has taken more time than I wanted. As a father of four dear children, I feel the time pinch. Migrating wordpress has been more tedious than expected. And then there’s email — that was a pain to switch as well. At one point, I even considered abandoning my website and switching my blog to a site like blogger.com. But I stuck with it.

Jumpline support has been good to work with, and I’m pleased with my ssh shell access. I get the power of a typical linux shell with my favorite utilities: rsync, tar, etc.

My impressions of Fedora 11

Here's my take on installing Fedora 11, which was released June 9, 2009. I chose not to do an upgrade as I often do. Instead, I did backup, followed by a fresh install, preserving my /home partition, but wiping out the other partitions. Then I used meld to restore my configuration files in /etc -- such as ssh server keys, printer settings and file system mounts. I found that I had to use the kernel boot option nomodeset in order to avoid system lockups. Overall, I've been pleased with my Fedora 11 experience, despite the bumps.

Fedora 11 useful resources:

Pre-install:

  • cp -a /etc /home/backup/etc
  • cp -a /root /home/backup/etc
  • backup /home
  • booted the LiveCD to make sure it would detect my hardware and run

Install

  • I decided to preserve my partition layout, which isn't the default option upon fresh install
  • Didn't delete my /home partition.
  • Reformatted all other partitions, with "/" as ext4

Post-install:

  • Had to enable eth0 in NetworkManager, and make "enabled" the default.
  • yum install -y meld nautilus-actions nautilus-open-terminal vim-X11 zsh screen mc rdesktop
  • meld /home/backup/etc /etc
    • Restored /etc/ssh settings
    • Restored /etc/cups printer settings
    • Checked /etc/fstab differences
  • Installed NX Server

Pleasurable:

  • Bootup is very pleasant, and seems faster. 30 seconds boot. 17 seconds login. 14 second shutdown. This is on an AMD Athlon 2400 Mhz Sempron with an ATI video card.
  • Artwork is top notch (backgrounds on login screen and default wallpaper)

Pain points:

  • Unavailable extensions for Thunderbird 3.0 -- Enigmail
  • Unavailable extensions for Firefox 3.5 -- Aardvark -- QuickProxy
  • Computer locked up every few hours until I added nomodeset to my kernel settings in /etc/grub.conf.

Gnome Slideshow Screensaver Sanity, Take 2

Last year, I wrote about how to achieve Gnome Slideshow Screensaver Sanity. I've recently upgraded to Fedora 11, and I noticed that GLSlideshow isn't installed by default (maybe it never was), and I wondered if I could alter the settings for gnome slideshow. By default, it uses pictures out of the $HOME/Pictures folder, and there's no way in the user interface to change that location, which can be frustrating. Here's how I worked around it. Note the use of the --location option, and that I changed my Name= setting.

  • cp /usr/share/applications/screensavers/personal-slideshow.desktop ~/.local/share/applications/my-slideshow.desktop
  • gedit ~/.local/share/applications/my-slideshow.desktop

[Desktop Entry]
Encoding=UTF-8
Name=Custom Photos
Exec=/usr/libexec/gnome-screensaver/slideshow --location=/home/images/Photos
TryExec=/usr/libexec/gnome-screensaver/slideshow
StartupNotify=false
Terminal=false
Type=Application
Categories=GNOME;Screensaver;
OnlyShowIn=GNOME;

Go into the screensaver preferences (System -> Preferences -> Screensaver), and select "Custom Photos". There's no way to customize the duration to display each photo, but at least I don't have to settle for Gnome's default location.

Backup that laptop!

Recently, a relative called and said her laptop wouldn't boot. She wondered whether I could help. I asked if she had a backup. "No" was her answer.

I booted into linux (using Knoppix from a bootable CD) and attempted to back up her Windows account to an external USB hard drive. As I worked with the laptop, I discovered it was shutting itself off. On my second attempt, I managed to make a successful backup.

I tried running the system restore, but it would fail at random intervals. Next, I booted into the System Rescue CD and ran the memory test. It shut at random intervals during each memory test. I figured it couldn't be the hard drive that was at fault, but that the hard drive had probably gotten corrupted from the computer powering off suddenly.

My relative took her laptop to Geek Squad to see if they could diagnose the problem. They ran the system restore, and it succeeded. They didn't do any further troubleshooting. They charged her $50.00 without solving the root problem. It continued to shut off at random intervals.

A colleague of mine looked at the computer, and found that the heat sink on the CPU was clogged with dust. Most likely, the CPU was getting too hot and powering off. He removed the dust buildup, and from then on, the laptop seemed to work well. I was able to restore the files, and my relative was much happier.

And she bought an external USB hard drive to do future backups. Good thinking.

I use Mozy for automated, regular backups of my most important files. It's not a complete solution for my whole hard drive, but it's far better than nothing, and it only costs $5.00 a month. For linux, I need a similar solution. It turns out that there is one: spideroak. It runs on Windows, Mac and Linux. And it can synchronize files between several computers.

The future of Gnome Apps: JavaScript?

There's an interesting article called "Building desktop Linux applications with JavaScript" By Ryan Paul, January 19, 2009.

I didn't immediately understand the vision. Don't we already have Python, Ruby, Java, C++ and Perl bindings for Gnome? Yes, we do. So why would we add JavaScript to the mix? Or any other scripting language?

The best way to think about it is Firefox plugins, like Greasemonkey, that actually modify the web browser to give you a new experience. Firefox extensions are written in JavaScript. JavaScript has hooks into the application (Firefox) to manipulate it.

Gnome hackers want to do the same thing for Gnome. Not only could you write Gnome application in JavaScript, you could extend a Gnome application using JavaScript, no matter what language it was written in.

Another way to think about it is this: When most people think of Java, they don't think of the language. They think of the platform -- the libraries that are shipped with the language (networking, database connectivity, etc.). The same is true for Python, Perl, and Ruby.

The goal is to us an embeddable language to tweak the Gnome platform, not to use a platform (like Java, Python or Perl) to tweak Gnome. When they embed a language into Gnome, application developers will use the Gnome platform way of doing networking, instead of doing it the Java library way. They will use the Gnome way of opening file picker, not the Java library way. They will use the Gnome way of doing HTTP, not the Python or the Java or the Perl way.

Fedora 10 lacks “wow” appeal; OpenSolaris 11

I upgraded one of my machines to Fedora 10 last month, and for me, this release lacks the “wow” appeal that other releases have had. A minor annoyance is that the keyboard repeat delay is broken for me and so far, there is no fix other than disabling keyboard repeat. On the plus side, Fedora 10 includes OpenOffice.org 3 and other new features. Be sure to check out the Common Issues people have experienced with Fedora 10.

The other day, a co-worker handed me an OpenSolaris 11 Live CD. I booted it, expecting to be underwhelmed like I was with the Solaris 10 JavaDesktop. I was pleasantly surprised, however. Sun’s “Nimbus” GNOME theme knocks the socks off of the boring Fedora window manager themes. The experience felt like I was running Linux. It was responsive, supported my newer hardware, and the system was built with GNU utilities on the command line so I get my favourite options to ‘ls’, ‘grep’, etc. It supported my NVidia card out-of-the box, and had Compiz eye-candy as an option. The only thing I missed (in my superficial test) was the familiar ‘yum’ and ‘rpm’ for package management. I suspect that if I used it from day to day, I’d find other things I miss. Does OpenSolaris support encrypted file systems? Does it have as much optional software as I can get with Fedora Extras?

I’ll keep my eye on OpenSolaris a little more closely in the future.

Using the 2.6.26 Linux Kernel Debugger (KGDB) with VMware

Reading the linux kernel documentation on KGDB wasn’t enough for me to be able to use the newly built-in KGDB kernel debugger with version 2.6.26 or 2.6.27. The breakthrough for me was reading part of Jason Wessel’s guide.

I have two machines:

  • developer – where I run gdb
  • target – where the kernel is being debugged, running in VMware

Configure VMware on the developer machine

  • Power down the guest (target)
  • Edit the VM guest settings
  • Add a serial port
    • Use named pipe /tmp/com_1 (it’s really a UNIX domain socket)
    • Configure it to “Yield CPU on poll” (under Advanced)
  • Install ‘socat’, if not already installed

Configure and Compile the kernel on the developer or the target machine

  • Get kernel 2.6.26 or newer
  • make menuconfig # or make gconfig
  • Under Kernel Hacking:
    • enable KGDB
    • enable the Magic SysRq key
    • enable “Compile the kernel with debug info”
  • Build kernel: make

Configure target

  • Enable Magic SysRq key on target:
    • Edit /etc/sysctl.conf and set kernel.sysrq = 1
    • or run sysctl -w kernel.sysrq=1 # this doesn’t survive a reboot
  • Install developer kernel
    • On the developer machine: rsync -av --exclude .git ./ root@target.host.name:/mnt/work/linux-2.6.26
    • On the target, a RedHat based system: make install make modules_install
  • Edit /boot/grub/grub.conf and set timeout=15
  • Boot into the newly installed kernel

Start debugging

  • On target: echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc
  • On developer: socat -d -d /tmp/com_1 PTY: # notice what pty is allocated — /dev/pts/1 in my case gdb vmlinux set remotebaud 115200 target remote /dev/pts/1
  • On target, do one of the following:
    • echo "g" > /proc/sysrq-trigger
    • Type ALT-SysRq-G
  • Ready, get set, go! Go back to developer machine and use gdb to set breakpoints, continue, etc.

I set up debugging because I wanted to understand the behavior of the kernel when loading a module. It turns out that loading of the module failed because sitting in a debugger delayed the execution, causing a timeout in module load by the time I stepped through the code. Use of printk turned out to work better.

HP xw4600: HOWTO enable hardware virtualization

How to enable Intel hardware virtualization on an HP xw4600:

* Boot into the hardware BIOS setup
* Got to Security -> System Security
* Enable both types of virtualization (VTx and VTd)
* Save settings, and power-cycle the machine.

I’m running Linux, Fedora 9, and using KVM, so I run the following:

modprobe kvm-intel

Loading that module will fail if hardware virtualization isn’t enabled.

Transferring a linux hard drive to a new machine

For over a year, I’ve endured a development machine that would lock up under heavy disk I/O. Yesterday, I apparently complained loudly enough that I was given a new machine to replace it. I didn’t want to reinstall Fedora 9, so I transferred my old hard drive to the new machine, as the primary drive. To get it to boot and function properly, here’s what I did:

* Booted with the Fedora 9 install CD into “rescue mode”
* Ran the following commands once I had a shell:

mount –bind /dev /mnt/sysimage/dev
mount –bind /sys /mnt/sysimage/sys
chroot /mnt/sysimage
mv /boot/initrd-2.6.25…i686.img /boot/initrd-2.6.25…i686.img.orig
mkinitrd /boot/initrd-2.6.25…i686.img 2.6.25…i686

* Then I ran ‘grub’, and typed the following:

root (hd0,0)
setup (hd0)
quit

* Ejected the install CD, and rebooted. Once booted, I noticed that my network cards weren’t set up quite right. My new network card was listed as “eth2″ in system-config-network, and I didn’t actually have cards for the listed “eth0″ and “eth1″ interfaces anymore. I didn’t know what file to change to get my new card listed as “eth0″, so I ran the following command to find out what files I might need to edit:

find /etc -type f -print0 | xargs -0 grep “eth[01]“

That command listed the following files, among others:

* /etc/udev/rules.d/70-persistent-net.rules
* /etc/vmware/locations

I edited /etc/udev/rules.d/70-persistent-net.rules and ripped out the assignments for my old NIC interfaces, and set the new one to be “eth0″, then rebooted and used `system-config-network` to set up my network.

When I ran my VMware guest, VMware Server gave me an error message about not being able to use bridged mode for the selected interface. With my old computer, VMware had used eth1 for bridged networking, and I didn’t have an “eth1″ interface anymore. I edited /etc/vmware/locations and changed “eth1″ to “eth0″, and restarted vmware. This time, bridged mode worked correctly.

xguest

I just discovered and installed the xguest package for Fedora 8 and 9. Here’s what it does:

Installing this package sets up the xguest user to be used as a temporary account to switch to or as a kiosk user account. The account is disabled unless SELinux is in enforcing mode. The user is only allowed to log in via gdm [or the fast-user-swiching applet]. The home and temporary directories of the user will be polyinstantiated and mounted on tmpfs.

Here’s how to install it:

yum install xguest

I hit a brick wall when I first tried it. I thought my machine was in SELinux Enforcing mode, when it wasn’t — it was in Permissive mode. I fixed it using system-config-selinux.

It’s possible to change what the xguest user can do using system-config-selinux. I’ve attached a screenshot showing what capabilities can be granted or revoked.

SELinux Administration for xguest user