Saturday, March 15, 2008

Running a Dell Inspiron 530 Headless

I finally finish configuring Ubuntu Linux on Digital Aggregates' new Dell Inspiron 530 PC with an Intel 2.4GHz Q6600 quad-core processor. I disconnect the USB keyboard and mouse and the flat-panel display I had borrowed from another system in my office, bundle up the power cord and Ethernet cable, pick up the 530, and trundle down several flights of stairs in the Palatial Overclock Estate (what the media still insists on calling the Heavily-Armed Overclock Compound) to the vast corporate computer center in the basement.

I plug the PC into the UPS, plug the Ethernet cable into the HomePlug hub, hit the power button on the 530, and wait a few minutes. Then I try telnetting into the 530 from an old Compaq laptop (running Fedore Core 5 Linux) that I use for stuff like this.

Nothing.

Well, crap, it worked five minutes ago up in my office. I try pinging. Still nothing. I check the Ethernet cable: the LEDs on both the HomePlug hub and the PC look good. I ping the other Dell PC on the same hub, the one that runs Fedore Core 1 Linux, Asterisk, Apache, and Subversion, and it promptly answers. I swap the 530's Ethernet cable to another port on the hub. Still nothing. I remember that these hubs are learning bridges, so I reboot the hub that the 530 is on. Nothing. I trundle upstairs and reboot the hub up in my office and then go back to the basement. Nothing. I go back up one flight of stairs (things are a little spread out in the Estate/Compound), I reboot the hub that the router is on, and then go back downstairs. Nothing. I ping everything that is on the wireless network and that has a static IP address. It's all good.

So I turn the 530 off, disconnect everything, cart the whole shooting match up several flights of stairs, and reconnect everything, including moving the display back over from where I had reconnected it to the other system in my office, an old ThinkPad T30 now more or less in permanent retirement in its docking station and used mostly as an X window server. Turn the 530 on, everything comes up fine.

For some reason I initially focus on not having a display. I google around for "Dell 530 without a display", I check the Support database on the Dell website, of course I find nothing.

Okay, now I remember vaguely having encountered this problem before on another system. I shut the 530 down, disconnect the mouse and the keyboard but leave the display connected, and hit the power button again. The BIOS helpfully announces

Keyboard error - hit F1 to continue or F2 for Setup

Okay, smart-ass, exactly how am I supposed to hit either F1 or F2 when you have a keyboard error? What brilliantly twisted mind thought of that as an error recovery strategy? I suppose you email your ISP when your internet connection isn't working, or dial the phone company on your landline when you can't get dial tone?

So by default you can't boot a Dell Inspiron 530 without a keyboard.

I reconnect the USB keyboard, hit F2 to drop into the BIOS Setup, and poke around until I find under Standard CMOS Features the option of Halt on All Errors, but Keyboard. Yeah, give me some of that! I do a Save and Exit, turn the PC off, disconnect the display, keyboard and mouse, and hit the power button again. After a few minutes I try pinging from my ThinkPad X61 over on my desk.

Golden.

Update (2008-04-05)

If you want to use your Ubuntu system as if it weren't headless, install the VNC server package on your system, and a VNC client on your desktop. I use the RealVNC client on my Windows XP and Windows Vista ThinkPads.

If you haven't already done so, you'll also need to install an X server package on your desktop system. I use Xming on Vista after a lot of pain trying to keep the Cygwin X server working under Vista. I set up my Windows systems so that the X server is started everytime I log into my desktop by placing a shortcut to the program in the appropriate Startup folder.

Login into your Ubuntu system using your favorite TELNET or SSH client. I use PuTTY on my ThinkPads.

Start the VNC server by using the vncserver (or the newer vnc4server) command. You do not need to be root to do this. The VNC server will need to be running on your Ubuntu system anytime you want to use your VNC client from your desktop. I haven't bothered yet to have it started automatically when Ubuntu boots up, since I only use it occasionally.

The first time you run VNC server, it will create in your home directory a subdirectory called .vnc which it will populate it with some files. Edit the file xstartup in that directory so that it looks something like this. All I did to mine was add the last two lines to startup the Gnome Window Manager and the Gnome desktop Session. Your mileage of course may vary.


#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "Desktop" &
gnome-wm &
gnome-session &


Now you can log out from your TELNET or SSH session. Fire up your VNC client on your desktop and log into your server. A complete Gnome desktop will come up in an X window on your desktop system. It's not the fastest thing in the world, but it's great for those occasional system administration chores.

3 comments:

Anonymous said...

Huge help on the "halt on everything but keyboard" fix. Thanks!

Anonymous said...

Thanks for taking the time to write up the fix for the Dell 530 missing keyboard boot problem. I had exactly the same issue. Your fix works beautifully.

Anonymous said...

Wow, trying to set up an old 530S as a remote server with no keyboard, and came across this to solve my problem, years later. LOVE the internet.