Running Old Desktops Headless?
CajunArson writes "I recently dug up an old P4 that is in fine working order and did what any self-respecting Slashdotter would do: I slapped Linux on it to experiment with making an NFSv4 server. One other thing I did was to remove the old AGP video card to save on power, since this is a headless machine. Now, I removed the video card after the installation, and I'm doing just fine as long as the machine will boot to a state where networking works and I can SSH to it. My question: Is there a good solution to allow me to log into this box if it cannot get on the network? I'm looking for solutions other than slapping a video card back in. In my case, I will have physical access to the machine. A few caveats to make it interesting: This question is for plain old desktop/laptop systems, not network servers designed to run headless. Also, I am aware of the serial console, but even 'old' machines may only have USB, and I have not seen any good documentation on how and whether USB works as a substitute. Finally, if there is any way to access the BIOS settings without needing a video card, that would be an extra bonus, but I'm satisfied with just local OS access starting from the GRUB prompt."
The question about bios settings is a good one though, and I don't know.
Maybe I'm way off base here, but putting in an old low memory (2-32MB) APG card isn't going to draw that much power. I totally understand your issues with wanting to run a headless machine, I have a few myself. But honestly I've found it's just a LOT easier to leave a cheapo card in the rig so that if something comes up I don't have to crack open a case.
I know there's a type of card that will push the serial interface through the network, if having a serial console (like running HyperTerminal in windows with a Null Modem cable plugged in) is not sufficient. That should allow you to get to the bios without having the monitor plugged in-- that's the theory, at least.
Also, if you're using this system as the lowest wrung sort of server, you might want to look into simply buying some Via Nano or Intel Atom hardware and just creating an ultra low-wattage server. Older desks were not renowned for their power efficiency, so over a few months, if its running 24/7, more efficient hardware might actually pay for itself in terms of energy costs, especially if you're somewhere with expensive power like California. It might be clever to cannibalize your old systems for hard disks and such and use them in this low power system, since the power usage of the hard disk will be largely a software problem, etc.
Most of the Dell and IBM servers I've used will let you get to the BIOS/GRUB over a serial console with some configuration, but I've never seen a desktop motherboard that would do it. If you really care about power consumption the easiest route is probably to buy a cheap, low-power itx board that has VGA built in and skip the console altogether. Plus, that way you don't need a laptop to talk to the box, just an old monitor.
Anyone know some tricks to get serial console to work with grub on a desktop mobo?
This game will waste your life. Don't clicky!
If that box and another both have serial connections, then use the serial console: Get a null-modem cable. Connect that to another box. Make sure the you add console=ttyS0,19200n8 or some variation to the append line in your grub entries. On the client side use cu aka tip, minicom or PuTTY to make the serial connection, making sure that bps, parity and stop bits match.
Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
As many others have mentioned, the serial console is the way to go. Even if there's no DB9/DB25 serial port out the back, there's likely at least one serial port header on the motherboard. The header/pinout is generally standard, so go digging in that 'really old parts' box that we all have and see if you can dig up a DB9 port mounted on a plate to mount where a card would normally go. It will have a ribbon cable to attach it to the motherboard...
They ARE still available, and for as little as $15. USB/serial port adapters do work for outgoing connections from a laptop or PC, but you will probably need an adapter card for the 'server' if it does not have a serial port.
KVM over IP might be what you're looking for.
KVM over IP Network Card
I've never done business with this company. I just googled and took the first link.
load "$",8,1
I have no idea how much power your AGP card used, but unless it was a gaming rig in its glory days, the CPU probably absorbs most of the power, especially since you mentioned that it is a Pentium 4. I would see if there are any power-saving features in your BIOS and enable them, undervolt your processor to just the speed that you need, and get a cheap PCI video card for when problems occur. I've never used the serial port for diagnostics, but I don't think it will help much if you ever run into a situation where your system won't boot.
Have a look on ebay for a compaq iLo PCI card. This is a network-attached video card (also providing keyboard and mouse) allowing an administrator to get an actual screen (like VNC) over a network connection.
You'll have access to bios as well!
"Lame" - Galaxar
I have been doing something similar for half a decade now, in a firewall/storage/NAT server running Debian stable. I found that the only really critical operation is changing the kernel, and for that I have a vido card handy (by now I use a low-power board with integrated graphics). For other things, including updates, I just cross my fingers.
The options that are there to do without the spare video card are basically IPMI (expensive, needs special mainboard), virtualisation and a serial console + remote reset capability. A serial console needs for your kernel to come up, and in fairness, also needs remote reset capability. It also needs a second computer to connect the serial line to. I used that for a test machine in a computer cluster with good results for several years.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
True story - I was working late one night and was busy shutting down everything in my office before going home. One by one I closed terminals on my laptop until typing 'shutdown now' in the last one.
I was still packing stuff and reached over to put my laptop in my bag and blinked at the terminal message 'connection to servername lost.'
With horror I realised that I had shut down our main mailserver! I had forgotten that I was still in an SSH session after reading through exim logfiles trying to find a missing e-mail that a client had insisted was stuck in our server.
This machine is an hour's drive from the office, and the support techs at the IDC took almost 30minutes to get up from their desks and walk down the corridor to push the power button. Talk about service. It is literally a five minute job!
When I phoned my colleague who was responsible for the server I said "Guess what I just did!?"
He laughed and joked "Probably shut down the mailserver?"
When I confirmed he responded "*groan* I forgot to alias that command! Sure I aliased poweroff, but not shutdown!"
Good Times.
Seven Days with Ubuntu Unity
And buy one Sheeva Plug Computer http://www.marvell.com/featured/plugcomputing.jsp. I bought one and now I save about 245 W per hour. I love this wonderful machine. I have an apache/mysql/webcam, mldonkey, bittorrent, ssh, samba, print server and nfs services and run fine!
GRUB:
Define the serial port and configure GRUB to use the serial port, as shown in Figure 4-6. Figure 4-6. GRUB configuration for serial console
--unit is the number of the serial port, counting from zero, unit 0 being COM1. Note that the values of --parity are spelt out in full: no, even and odd. The common abbreviations n, e and o are not accepted. If there is mysteriously no output on the serial port then suspect a syntax error in the serial or terminal commands. If you also want to use and attached monitor and keyboard as well as the serial port to control the GRUB boot loader then use the alternative configuration in Figure 4-7.
Kernel:
The Linux kernel is configured to select the console by passing it the console parameter. The console parameter can be given repeatedly, but the parameter can only be given once for each console technology. So console=tty0 console=lp0 console=ttyS0 is acceptable but console=ttyS0 console=ttyS1 will not work. When multiple consoles are listed output is sent to all consoles and input is taken from the last listed console. The last console is the one Linux uses as the /dev/console device.
The syntax of the console parameter is given in Figure 5-1.
Figure 5-1. Kernel console syntax, in EBNF
Quite a bit more info at tdlp.org..
It's a P4 desktop.... so presumably it isn't designed for headless use on the mobo/BIOS behaviour.... Haven't seen this mentioned yet - but part of the POST sequence is initialising video and most boards will fail POST with no video interface... even if it was an old ISA/PCI card... which pretty much makes all this moot.
Many server-class machines have something called IPMI (IP Management Interface), sometimes called LOM (Lights-Out Management). It is essentially KVM over IP, but built into the motherboard, sometimes via a small add-on card.
If you're playing around with desktop equipment, you should know that most boards will refuse to boot if a video card isn't detected. If you're trying to do this the cheap way, pop in the simplest video card you can find, hook it up to a KVM and get on with your life.
I run a bunch of headless machines here, they're all fully-functional PCs. When something breaks, I just whip out a USB keyboard and a VGA extension cord, and deal with it. The rest of the time it's all SSH and/or serial.
-Billco, Fnarg.com
Assuming the PS/2 interface still works, you can still log in locally and work blind. It's a little slower, because you have to stop and think more about what you're doing (e.g., tab completion is a good deal less useful), but if you know what you're doing you CAN make it work. Back in the days *before* convenient networking, I used to occasionally have to work blind when a monitor was out for some reason, most commonly to copy files to a floppy disk so I could take them to another computer. Like I said, you have to stop and think, but if you know the system you *can* do it. You don't need to see the output. You can mostly predict what the output is going to be, and if you *do* need to verify some command's output for some reason you can pipe it into a very short Perl script and make it beep once for yes or twice for no, or if worst comes to worst cat the output onto a floppy disk and take it to another computer to analyze.
HTH.HAND.
Cut that out, or I will ship you to Norilsk in a box.
In general, USB Serial under Windows is horrible. Windows XP has many USB serial ports with buggy drivers. Most devices that I tested had either data corruption issues, or simply wouldn't do high baud rates, or both. If you use the FTDI chipset based devices, then at least no data corruption occurs at high baud rates. All of the drivers that I used would fail if the USB device was disconnected while RS-232 communication was occurring, and then reconnected again. To recover, Windows XP either had to be rebooted, or the USB port reassigned to a different COM port number. A reboot for a USB driver???
Also, many older specialty programs won't work with USB serial ports. Essentially, Microsoft slightly changed the behavior of the polled mode ReadFile/WriteFile calls, so USB serial ports behave differently than built-in serial ports. This breaks old software.
USB serial ports under Windows for antiquated embedded / real-time applications can be a real nightmare. The only success I had at high baud rates was with the FTDI chipset and drivers. Even they, broke old software, and required a reboot if the USB device was unplugged during communications.
And you are worried about Linux driver support? I'm pretty sure that this is one of those cases where Linux works better than Windows.
For P4s and Celeron Prescott/Northwood using same technology, just install cpufreqd and make sure it's using the ondemand governor. cpufrequtils is also useful and doesn't clash. The actual work is done by the kernel module p4_clockmod, must be in /etc/modules.
This makes some difference to power consumption. As for temperature, the best thing I did was to remove the old thermal paste on the CPU/cooler and apply some new Zaward paste - CPU temperature dropped by 20 degrees C (something like 30F).
The closest thing to a Consumer Desktop Remote Management card I've found is a "PC Weasel" which I saw back in 2000... http://www.realweasel.com/intro.html
That said, the website hasn't been updated since ~2000, it's expensive, but is the closest thing to what you're asking for, "Headless BIOS access" without going with real server hardware. Personally, I'd just keep a video card in the thing and hook it to a KVM switch... It's not going to pull that much extra power.