Monday, April 30, 2007

Cutter Summit 2007: Monday Miscellany

You'll find half the value of an event like the Cutter Consortium's Summit 2007 in the discussions that take place before and after the keynotes, roundtables and what-have-you. Some of Monday's best conversations:

When working on an estimated project, maintain a list of unknowns and keep it visible.

SnapLogic does what Yahoo! Pipes does, but it does it with all kinds of feeds/sources and not just RSS.

Book recommendation: The Devil in the White City.

Clients often ask you to do things that aren't a good idea, but they think they're helping you by having you do the things. In this case, a good approach is to show them a side-by-side comparison of the things they asked you to do and the things you recommend that you do. It gets the discussion right out there in the open.

Cutter Summit 2007: Web 2.0 panel

A by-the-bullets summary of the Cutter Summit 2007 Web 2.0 panel.

Panelists
Stowe BoydSylvia MarinoJP RangaswamiAndrew McAfeeEd Yourdon
/MessageSylvia MarinoConfused of CalcuttaThe Impact of Information Technology (IT) on Businesses and their LeadersThe Yourdon Report

Bullets
  • Something interesting to follow: The impact of blogs on politics.
  • Is this the de-SAP-ification of the enterprise?
    • Andrew: No. Sees a small minority of organizations implementing these things and a huge portion of the organization that's hostile to it.
    • Stowe: Draws parallel to companies being blindsided by the Internet.
  • Ways of keeping up:
    • Techmeme
    • Andrew: "Trying to determine what is going on in the world by reading newspapers is like trying to tell the time by watching the second hand of a clock." ~Ben Hech
  • What about companies' fears of openness?
    • A little role-playing as illustration:
      • I don't want my customers telling one another about my product's flaws.
      • I don't want my employees telling people what it's like to work here.
      • I want control.
    • Answers:
      • Sylvia: Heads already in the sand. Consumers are already talking about the flaws in your product. And employees are already talking in the hallways.
      • JP: The last thing you want to do when you have fear is to drive the discussion underground.
      • Ed: Cluetrain Manifesto. Also notes that Cluetrain Manifesto coauthor David Weinberger has just today released a new book: "Everything is Miscellaneous".
      • Stowe: Converstaion is going on already. You don't control your brand any more.
      • Andrew: Agree with others regarding the Internet. But on the Intranet, you have arbitrarily precise control. JP's approach is enlightened, but the last thing that many companies want is to provide a forum for their employees' complaints.
  • How would you Web-2.0-ize Cutter's web site?
    • JP: First thing, release the content. Remember the Cluetrain: "Markets are conversations." Stop calling it content. Make it accessible to all. Then allow ratings and recommendations.
    • Andrew: Baby steps. Slap a Google search on the site. Make the site as useful as possible
  • The kind of arguments put forward today against Web 2.0 are like the arguments that were put forward against email, the Internet, instant messaging, the Blackberry, the iPod.
  • Andrew tells a great story about JP and Eliot Spitzer, which I should really write up instead of just telling you how great it was.
  • Will our systems be connected?
    • Andrew: No, no, no, no. Technologists have been telling us for years that our systems would be connect by OO, web services, SOA, and now the semantic web. Computers are like old testament gods: all rules and no mercy. Quotes Norbert Wiener (American mathemetician, 1894-1964): "The world of the future will be an ever more demanding struggle against the limits of our intelligence, not a comfortable hammock in which we can lie down to be waited upon by our robot slaves."
    • Ed: Lots of experiments taking place in the Web 2.0 world. Only a few will survive. One of the best things about Web 2.0 is the APIs made available by companies like Google for mashups. Speaking of mashups: Yahoo! Pipes.
    • JP: Paying someone to move data that belongs to me is something that's in the past.
    • Andrew: Standard is the only one-word oxymoron in the English language.

Web 2.0 sites that the panel mentioned

Cutter Summit 2007: Stowe Boyd on "Web 2.0 A Social Revolution"

A by-the-bullets summary of Stowe Boyd's keynote: Web 2.0: A Social Revolution

Boyd Stowe's blog is /Message. Here's his blurb from the Cutter site:
Stowe Boyd is a Senior Consultant with Cutter Consortium's Business Intelligence and Business-IT Strategies Practices. He is an internationally recognized authority on business strategy and information technology, particularly regarding real-time, collaborative, process, and content management technologies. Over the past decade Mr. Boyd has consulted, written and spoken widely on the challenges confronting business management and the social impacts of disruptive technologies. He has served in prestigious advisory roles such as: Contributing Editor KMWorld; Research Fellow at the Accenture Institute for Strategic Change; a Research Fellow for the Market Intelligence Group; and he has served as editor and columnist for Darwin, Knowledge Management, Cutter Consortium, John Wiley & Sons, and Fawcette. He has appeared in numerous high-visibility conferences and symposia in North America and Europe, including Comdex, many Delphi conferences, Braintrust, Instant Messaging Planet, KMWorld, AIIM, BPR Europe, the International Workflow Conference, and dozens of others.

Mr. Boyd has a BS from the University of Massachusetts, Amherst, and a MS Computer Science from Boston University. He can be reached at consulting@cutter.com.

Bullets
  • One of W.C. Fields' leading ladies spotted him on a back lot one day as he was leafing through a Bible. She asked what he was doing. He replied, "Looking for a loophole."
  • Blogging is the most important thing Stowe has done in his life.
  • 70% of the vendors on the trade show floor at (recent Web 2.0 conference) were working on enterprise apps.
  • Shows us an old post article he'd written in 2003, "The Game Neverending: an IM Community" and discusses the movement of Ludicorp to Flickr.
  • The Web 2.0 landscape:
    • The Web 2.0 landscape as a collection of metaphors: "Web as Platform" "Social Web" "Open" "Bottom-up" "Simple, Focused Applications" "Open Source Technologies"
    • The Web 2.0 landscape as a collection of technologies: LAMP, RSS, XML, AJAX, Ruby on Rails etc, Social Media
    • The Web 2.0 landscape as a collection of icons:
  • Why is Web 2.0 not simply the next bubble? What's different this time?
    • The economics are different. (Lower cost.)
    • The technologies are different.
    • The players and their goals are different. (Their end game isn't an IPO. They expect to live off of the product or to be acquired.)
  • Freemium.
  • The tone in the newsroom has recently changed drastically to be more positive about blogs. The NY Times recently published its first article, ever, that didn't portray blogs as evil.
  • Blogging is big in France, Japan, South Korea. Not so big in Germany.
  • Flow apps. Example: Twitter. (He should have mentioned Yahoo! Pipes, I think.)
  • David Weinberger on Tags:
    Tags matter for social reasons. They allow the grassroots to create the way in which stuff is classified, instead of having to file things in pre-built categories. But the words we use to tag things depend on our intentions and our social context. Find people who tag items the same way as you do and you've now found a social group based not around shared interests but around shared ways of thinking and shared ways of speaking: Communities of tags.
    (Ed Yourdon tells me that Weinberger's new book just came out this morning.)
  • The self is "...at the still point of the turning world." (Here, Stowe is quoting the poem Burnt Norton, one of a T.S. Eliot's "Four Quartets.")
  • Son of Web 2.0 (which Stowe refuses to call Web 3.0) trends
    • Broadband becomes ubiquitous
    • More capable mobile devices
    • Browser no longer the sole window on the Web.
    • The rise of Traffic-and-Flow

Web 2.0 sites that Stowe mentioned
  • Stowe shows us Dopplr (which is still not fully public). He calls it the "ships that pass in the night" app.
  • Stowe uses Feed Crier as an RSS reader.
  • Blinksale for invoicing.
  • Twittr, which a fried calls "ambient intimacy."
  • Techmeme
  • Facebook
  • Stowe belongs to Change.org, where he recommended that people give up their cars. (Stowe doesn't have a car.)

Cutter Summit 2007: Innovation Panel

Panelists
Rob AustinLee DevinFernando DuránMehmood Kahn

My favorite points
  • Rob Austin suggests a parallel between innovative business projects and theatrical productions, noting that a theatrical production is an iterative, creative process that has a definite delivery time: opening night. I like that point, even though I now have Cole Porter's "Another Opening Another Show" running through my head.
  • "People confuse formality and discipline." - Jim Highsmith
  • "CIOs now understand the need to do things iteratively. Now they're fighting battles with the institutional surroundings." "Iterative budgets for an iterative process." - Rob Austin

Cutter Summit 2007: Rob Austin Keynote "Learning from Expert Innovators Around the World"

Here's my by-the-bullets recap. If you want a more considered discussion, go to Ed Yourdon's blog. (Ed is sitting next to me as I type this.) (Hi, Ed.)

  • VIPP designer trash cans were marketed as a fashion item. Cites article "Dansk skraldespand pa Louvre".
  • Companies either compete on cost ("Buy mine, it's just as good but cheaper.") or they compete on value differentiation ("Buy mine, it costs more but it's better.").
  • "Expert assembly by European craftsmen."
  • The action is on the revenue side of the income statement.
  • Wal-Mart's midlife crisis (which is the cover of this week's Business Week).
  • In the long run, can you compete on cost against new brands from China and India? Rob's answer: No.
  • China has more honor students than the U.S. has students.
  • Something the CIO of an insurance company executive said to Rob recently: "Chunk it, routinize it, digitize it, automate it and send it offsore."
  • IT needs a new trick.
  • Are the common principals, processes, and practices in use by acclaimed innovators across a range of fields?

Sunday, April 29, 2007

Cutter Summit 2007: Focus on Innovation

I'm at the Cutter Consortium's Summit 2007; the 11th of their annual summits.

This year's topic is "Focus on Innovation." More posts to follow.

Sunday, April 15, 2007

Quick-and-dirty Subversion on a Virtual Machine

(In progress.)

I've gotten busy and my series about Subversion on a LinkStation is going to have to be put on hold. But I really need a Subversion server in the mean time.

In a previous post I'd set up VMWare Server on a spare laptop. I'm going to use that to create a virtual machine (VM) that'll run Subversion.

How quick is this?

All right, it's not that quick. If I were really in a hurry, I'd do one of these things instead:
  • Get the free(!) Subversion Virtual Machine from Young Technologies.
  • Go to wush.net and sign up for one of their US$15/month "Professional" packages (1 SVN Repository and 2 GB disk space).

But setting up a VM-based Subversion server fits into my long-term plans to place Subversion on a LinkStation, especially if I make the VM very similar to a LinkStation running FreeLink.

How dirty is this?

A little dirty. When we're done with this quick-and-dirty setup there will be some some significant shortcomings. (I'll be addressing these shortcomings in my LinkStation project.)
  • We won't have a backup and recover plan in place.
  • We won't have an uninterruptible power supply, so a loss of power could mess everything up.
  • We'll be using the default HTTPS port of 443. We really ought to change that to some other port so that attackers can't easily find the port.
  • We'll use apt-get to install things via packages. To allow ourselves to quickly integrate any future security fixes we really should download the source code into a branched repository and build from our own customized branch of that source code.
  • Since we'll just plug it into our network the server will have access to the Internet. This will be handy when we were setting up the machine and we need stuff from, say, http://security.debian.org/debian-security/ . But we really don't want a server to have blanket Internet access, in case a bad guy manages to log in and wants to send or receive stuff. We really want to put the server on its own subnet and not bridge that subnet onto the Internet.
  • We run Samba on the machine so other machines on the network can find it. Don't even get me started on what a bad idea this is, security-wise.

Assumptions
  • You've got a VMWare Server on your network. (If you haven't, see my post "Quick-and-dirty VMWare Server".)
  • You want to run Subversion in its most flexible security mode; that is, using WebDAV.

Planning sheet.
Following along with your own setup? For any option where your setup varies from mine fill in the yellow section.
For...J.R. used...But I'll use...
Operating systemDebian "etch" 4.0 release 
Machine nameqad-svn 
Domain namehomelan 
Size of the first virtual hard drive (hda)8.0 GB 
Size of the second virtual hard drive (hdb)350 GB 
Base directory for Subversion settings and repositories/srv/svn 
root password(He's not telling.) 
Other user accountsvnadmin 
Other user account's password(He's not telling.) 


Download the ISO for installing Debian.
  • Find a Debian install ISO. (I want my virtual machine to match as closely as possible the FreeLink installation, which uses a variant of the Debian "Sarge" 3.1 release. At first I tried to install Sarge, but that proved to be difficult because [I think] the installer doesn't like the fact that the online portion of the install points to files that work for the latest release, Debian "Etch" 4.0. So I went with Etch instead and chose debian-40r0-i386-netinst.iso .) Find your CD-ROM image at http://www.debian.org/CD/

Create a virtual machine

It might take you a while to download that ISO, so you may as well create the virtual machine while you're waiting.
  1. We're going to do some tricks with virtual disks that can't be done via a remote VMWare Server Console session. So you're going to have to do one of these two things:
    1. Sit down at the server and log in without benefit of Remote Desktop, or
    2. Connect to the server with a Remote Desktop client using the -console option.
  2. On the server, run VMware Server Console and connect to localhost.
  3. File | New | Virtual Machine...
  4. Use these options:
    • Configuration type: Custom
    • Guest operating system: Linux
    • Version: Other Linux
    • Virtual machine name:qad-svn
    • Location: C:\Virtual Machines\qad-svn
    • Make this virtual machine private: Checked
    • Virtual machine account: Local system account
    • On host startup: Power on virtual machine
    • On host shutdown:Power off virtual machine
    • Number of processors: One
    • Memory: 128MB
    • Network connection: Use bridged networking
    • SCSI Adapters: BusLogic
    • Disk: Create a new virtual disk
    • Virtual Disk Type: IDE
    • Disk size (GB): 8.0
    • Allocate all disk space now: Unchecked
    • Disk file: hda.vmdk

Configure the virtual machine

Now we're going to need that ISO, so make sure it's been downloaded before continuing.
  1. Edit virtual machine settings
  2. Connect the CD-ROM to our Debian install ISO. (Use ISO Image: C:\Virtual Machines\ISOs\Debian\etch\debian-40r0-i386-netinst.iso .)
  3. Create a second hard disk that will store our Subversion settings and repositories.
    1. Click Add...
    2. Hardware type: Hard Disk
    3. Disk: Create a new virtual disk
    4. Virtual Disk type: IDE
    5. Disk size (GB): 350.0 GB. Yes, that's a lot, but we're going to use only as much space as the data needs and grow the virtual drive as it needs more. Be really sure you set the next option correctly!
    6. Allocate all disk space noew: Unchecked. That's the option that you wanted to set correctly.
    7. Disk file: hdb.vmdk
  4. We might need to copy things to a USB device some day so we may as well add a USB controller now.
    1. Click Add...
    2. Hardware type: USB Controller
  5. At this point your Virtual Machine Settings should look something like this:

Snapshot

Now would be a good time to take a snapshot of the VM. Remember, VMWare Server only allows for one snapshot at time, so a future snapshot will replace this one.

Install Debian
  1. Start the VM.
  2. Hit Enter when prompted. Debian installation will begin.
  3. Choose language options.
    • Hostname: Use your planning sheet. (J.R. used "qad-svn".)
    • Domain name: Use your planning sheet. (J.R. used "homelan".)
  4. Partioning disks
    • hda
      • Erase entire disk: IDE1 master (hda)
      • Partitioning scheme: All files in one partition
    • hdb
      • We're going to mount all of hdb as /srv/svn
      • On the "This is an overview of your currently..." screen, select IDE1 slave (hdb)
      • Create new empty partition table on this device? Yes
      • On the "This is an overview of your currently..." screen, select the FREE SPACE item just below IDE1 slave (hdb)
      • How to use this free space: Create a new partition
      • New partition size: max
      • Type for the new partition: Primary
      • Change the mount point from /home to /srv/svn
      • Done setting up the partition
    • Finish partitioning
      • Your partitions should look something like this:
      • Finish partitioning and write changes to disk
      • (Partitioning the disks and installing the packages took a long time. I walked the dog.)
  5. Set your time zone.
  6. Installation continues.
    • Enter the root password.
    • Create the user account. Use your planning sheet. (J.R. used "svnadmin".)
    • (Installing the base system also takes a while. Another dog walk.)
    • Use a network mirror? Yes.
    • At the "Choose software to install" screen uncheck all options. We just want to install a minimal system.
    • Install the GRUB boot loader to the master boot record? Yes
    • At the "Installation complete" dialog...


      ...hit Enter and wait out the reboot.

Snapshot

Happy with your setup so far? If you're unhappy, restore that previous snapshot and try again. Aren't VMs wonderful?

Otherwise, here's another good time to take a snapshot of the VM. Although Virtual Server supports snapshots of live systems, I like to cleanly shut down the VM before I take a snapshot. (To do this, log in as root and enter shutdown -h now ). This snapshot will replace the previous one.

After the reboot

  1. Log in as root.
  2. Update the apt package list. Enter:
    apt-get update
  3. Upgrade all currently installed programs. Enter:
    apt-get upgrade
    (I didn't have anything installed, but this is a good practice if you do and it doesn't do any harm.)

Install Samba

  1. How do the Windows machines on your resolve the machine name (in my case, "qad-svn") to an IP address? One quick-and-dirty way is to enable Samba on the machine. Enter:
    apt-get install samba
    Now test it by pinging from another machine:
    ping qad-svn

Install Apache2

  1. Enter:
    apt-get install apache2
  2. Test the installation by browsing to the machine's http server (http://qad-svn) from another machine.

Install Subversion

  1. Use apt-get to install Subversion:
    apt-get install subversion
  2. Install libapache2-svn:
    apt-get install libapache2-svn
  3. Restart apache:
    /etc/init.d/apache2 restart

Configure Apache2 and Subversion

  1. Create the repository structure:
    mkdir /srv/svn/repositories
    mkdir /srv/svn/apache2
  2. Allow the apache user to access these directories:
    chown www-data:www-data -R /srv/svn
    chmod 770 -R /srv/svn
  3. Edit /etc/apache2/mods-available/dav_svn.conf to look like this:
    ...
    <Location /svn>
    ...
    SVNParentPath /srv/svn/repositories
    ...
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /srv/svn/apache2/dav_svn.passwd
    Require valid-user
    ...
    </Location>
  4. Create a user:
    htpasswd2 -c /srv/svn/apache2/dav_svn.passwd tester
  5. Create an test project:
    su www-data
    mkdir empty
    mkdir empty/trunk
    mkdir empty/tags
    mkdir empty/branches
    svnadmin create /srv/svn/repositories/test_repository
    svn import empty file:///srv/svn/repositories/test_repository/test_project -m "initial import"
    rmdir empty/trunk
    rmdir empty/tags
    emptyrmdir empty/branches
    rmdir empty
    exit
  6. From another machine, make sure you can view the repository in a browser (http://qad-svn/svn/test_repository/)



In progress. Sources include:

Quick-and-dirty VMWare Server

For some of my upcoming projects I'll run VMWare Server on a spare Windows XP Pro laptop. Here are some quick-and-dirty notes on my quick-and-dirty setup of VMWare Server.

Assumptions:
  • You'll be installing two copies of VMWare Server: One on the server (in my case, that Windows XP Pro laptop) and one on your workstation so you can manage the server.
  • You've got a Windows account on the server that's an administrator.
  • The server and workstation are both on your network. (Make sure the workstation can ping the server and that the server can get to the Internet.)

Get your free serial numbers:
  1. Follow the links at http://www.vmware.com/download/server/ to register for two free serial numbers.
  2. Put the serial numbers in a safe place like a password vault.

Install VMWare Server on the server:
  1. Download the installer from http://www.vmware.com/download/server/
  2. Put the installer .exe somewhere where both the workstation and the server can get to it.
  3. On the server (not your workstation), run the installer, using one of the free serial numbers.

Allow remote access via VMWare Server Console:
  1. On the server (not your workstation) open the Windows Firewall control panel.
  2. On the Exceptions tab, click Add Program... and add VMWare Server Console.
  3. On the Exceptions tab, click Add Port... and add a port with the name VMWare Server Console, the port number 902 and the port type TCP.

Install VMWare Server on the workstation:
  1. On your workstation (not the server) run the installer using one of the free serial numbers.
  2. Assure that you can run VMWare Server Console on the workstation and connect to the server.

Enable Remote Desktop Connection (RDP) access because there are some things that VMWare Server Console can't do remotely and can only do with you're either running VMWare Server Console on the server without RDP or when you're running VMWare Server Console on the server through an RDP connection with the -console option.
  1. On the server, right-click on My Computer and choose Properties...
  2. On the Remote tab, check the Allow users to connect remotely to this computer option.
  3. Assure that the workstation can connect to the server using RDP.
  4. Create a shortcut on the workstation with the target of
    %windir%\system32\mstsc.exe -v:SERVERNAME -w:1024 -h:768 -console
    substituting the server's name for SERVERNAME. Name the shortcut something like SERVERNAME (console) 1024x768 Remote Desktop Connection

Why is this dirty?
  • For security's sake we really should create a user who's responsible for managing the VMWare server - - say, vm-admin - - that isn't an adminstrator.
  • We're using the default port of 902 for the VMWare Server Console. We really ought to change that to some other port so that attackers can't easily find the port.

Thursday, April 12, 2007

No CityLIGHTS for me



I won't be making it to the ITA's annual CityLIGHTS event tonight 'cause I'm stuck at Will Rogers World Airport in Oklahoma City. That's a shame, since I really wanted to attend and because I'd rented the tux and everything.

I asked Will Rogers what to do. He said, "Do the best you can, and don't take life too serious."

Sunday, April 8, 2007

Where'd I park?

Here's my tech geek trick for never worrying about where you parked your car. Everyone's got a camera in their cell phones, right? Get in the habit of snapping a pic of your car every time you park in a parking lot. Make sure you capture some landmarks in the shot.



I've been doing this for a couple of years now. 95% of the time I don't need to consult the pic, but it's good to know that the pix are there if I need them.

In underground or indoor parking garages I capture the sign for the level or section.



I've got a GPS navigation system in my car, so for street parking I just snap a shot of the screen.



There's a special rule for rental cars. First thing after I rent a car I snap a shot that shows me the car's make, model, color and license plate.



Then when I need to fill out that what-car-are-you-driving form at the hotel counter, I've got all the information with me. And speaking of hotels, I always take a pic that tells me what room number I'm staying in. Finding it on my phone beats rummaging through my pockets for the piece of paper they give you at the desk.

Surfing with J.R.

Saturday, April 7, 2007

Subversion on LinkStation #5 - Linux Security and Settings

(#5 in my series about Subversion on a LinkStation.)

I needed to make a few changes to the security and settings of my newly-FreeLink-ified LinkStation. Several good articles informed my decisions:
Borrowing heavily from those sources, here's what I did:
  1. Telneted in:
    C:\>telnet linkstation
    Connecting To linkstation...

    Debian GNU/Linux 3.1 %h
    root@LinkStation:/#
  2. Tested the Internet connection:
    root@LinkStation:/# ping -c 4 www.google.com
    PING www.l.google.com (64.233.167.99) 56(84) bytes of data.
    64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=1 ttl=237 time=18.3 ms
    64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=2 ttl=237 time=19.1 ms
    64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=3 ttl=237 time=15.2 ms
    64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=4 ttl=237 time=29.1 ms

    --- www.l.google.com ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3022ms
    rtt min/avg/max/mdev = 15.212/20.457/29.167/5.239 ms
    root@LinkStation:/#
  3. Changed the root password, using a password from GRC's Ultra High Security
    Password Generator
    . (Of course, I saved that password in a very safe place.)
    root@LinkStation:/# passwd root
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    root@LinkStation:/#
  4. Updated the apt package list, which took about 2 minutes to complete:
    root@LinkStation:/# apt-get update
    Get:1 http://security.debian.org stable/updates/main Packages [398kB]
    Get:2 http://security.debian.org stable/updates/main Release [113B]
    Get:3 http://mirrors.kernel.org stable/main Packages [4420kB]
    Get:4 http://mirrors.kernel.org stable/main Release [98B]
    Get:5 http://mirrors.kernel.org stable/main Sources [1323kB]
    Get:6 http://mirrors.kernel.org stable/main Release [97B]
    Fetched 6141kB in 1m1s (99.7kB/s)
    Reading Package Lists... Done
    root@LinkStation:/#
  5. Installed SSH:
    root@LinkStation:/# apt-get install ssh
    An installation prompt appeared, but I just waited and it answered "Yes" all by itself.
    Unpacking ssh (from .../ssh_1%3a3.8.1p1-8.sarge.6_powerpc.deb) ...
    Setting up ssh (3.8.1p1-8.sarge.6) ...
    Creating SSH2 RSA key; this may take some time ...
    Creating SSH2 DSA key; this may take some time ...
    Restarting OpenBSD Secure Shell server: sshd.

    root@LinkStation:/#
  6. Tested SSH with the PuTTY client on my Windows machine:
    login as: root
    Using keyboard-interactive authentication.
    Password:
    LinkStation:~#
    Once PuTTY was running, I closed the telnet session and did the rest of the work using PuTTY, 'cause it's better at ANSI.
  7. Changed the telnet root login so it will require a password. First — and this is the part that isn't covered in the README but is covered in that discussion of telnet and root at the LinkStationWiki — I rebooted:
    LinkStation:~# reboot

    Broadcast message from root (pts/1) (Sun Dec 14 23:41:08 2003):

    The system is going down for reboot NOW!
    LinkStation:~#
    I ran the vi editor:

    LinkStation:~# vi /etc/init.d/utelnetd
    and changed
    /sbin/utelnetd -l /bin/bash &
    to
    /sbin/utelnetd -l /bin/login &
    If you need to know how to use the vi editor, try Tobias von Petersdorff's "vi basics".

  8. Tested to make sure that telnet now requires a password. Since telnet won't let us log in as root any more I needed to create a temporary user. In PuTTY:



    And then in telnet:



    Then exit from telnet and, in PuTTY:

  9. Upgraded all currently installed programs:
    LinkStation:~# apt-get upgrade
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following packages will be upgraded:
    base-config bsdutils cpio exim4 exim4-base exim4-config exim4-daemon-light
    gzip info libc6 libgcc1 libgnutls11 libpcre3 libperl5.8 libssl0.9.7
    libtasn1-2 login man-db mount passwd perl-base ppp tar util-linux zlib1g
    25 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    Need to get 11.7MB of archives.
    After unpacking 295kB of additional disk space will be used.
    Do you want to continue? [Y/n] Y
    Get:1 http://mirrors.kernel.org stable/main bsdutils 1:2.12p-4sarge1 [66.0kB]
    Get:2 http://mirrors.kernel.org stable/main gzip 1.3.5-10sarge2 [76.9kB]
    Get:3 http://mirrors.kernel.org stable/main login 1:4.0.3-31sarge9 [584kB]
    Get:4 http://mirrors.kernel.org stable/main mount 2.12p-4sarge1 [147kB]
    Get:5 http://mirrors.kernel.org stable/main libperl5.8 5.8.4-8sarge5 [998B]
    Get:6 http://mirrors.kernel.org stable/main perl-base 5.8.4-8sarge5 [790kB]
    Get:7 http://mirrors.kernel.org stable/main tar 1.14-2.3 [507kB]
    Get:8 http://mirrors.kernel.org stable/main util-linux 2.12p-4sarge1 [406kB]
    Get:9 http://mirrors.kernel.org stable/main libc6 2.3.2.ds1-22sarge6 [4238kB]
    Get:10 http://mirrors.kernel.org stable/main libgcc1 1:3.4.3-13sarge1 [90.0kB]
    Get:11 http://mirrors.kernel.org stable/main exim4-config 4.50-8sarge2 [243kB]
    Get:12 http://mirrors.kernel.org stable/main exim4-base 4.50-8sarge2 [821kB]
    Get:13 http://mirrors.kernel.org stable/main passwd 1:4.0.3-31sarge9 [566kB]
    Get:14 http://mirrors.kernel.org stable/main zlib1g 1:1.2.2-4.sarge.2 [69.7kB]
    Get:15 http://mirrors.kernel.org stable/main cpio 2.5-1.3 [67.7kB]
    Get:16 http://mirrors.kernel.org stable/main libtasn1-2 0.2.10-3sarge1 [43.0kB]
    Get:17 http://mirrors.kernel.org stable/main libgnutls11 1.0.16-13.2sarge2 [300kB]
    Get:18 http://mirrors.kernel.org stable/main libpcre3 4.5-1.2sarge1 [110kB]
    Get:19 http://mirrors.kernel.org stable/main exim4-daemon-light 4.50-8sarge2 [387kB]
    Get:20 http://mirrors.kernel.org stable/main exim4 4.50-8sarge2 [1122B]
    Get:21 http://mirrors.kernel.org stable/main info 4.7-2.2sarge2 [190kB]
    Get:22 http://mirrors.kernel.org stable/main man-db 2.4.2-21sarge1 [602kB]
    Get:23 http://mirrors.kernel.org stable/main libssl0.9.7 0.9.7e-3sarge4 [779kB]
    Get:24 http://mirrors.kernel.org stable/main base-config 2.53.10.2 [307kB]
    Get:25 http://mirrors.kernel.org stable/main ppp 2.4.3-20050321+2sarge1 [351kB]
    Fetched 11.7MB in 2m7s (92.3kB/s)
    Preconfiguring packages ...


    Say "No" to "Should man and mandb be installed 'setuid man'?".
    tar: ./postinst: time stamp 2005-09-18 02:49:51 is 55557829 s in the future
    tar: ./prerm: time stamp 2005-09-18 02:49:51 is 55557829 s in the future
    tar: ./control: time stamp 2005-09-18 02:49:55 is 55557833 s in the future
    tar: .: time stamp 2005-09-18 02:49:55 is 55557833 s in the future
    (Reading database ... 7660 files and directories currently installed.)
    Preparing to replace bsdutils 1:2.12p-4 (using .../bsdutils_1%3a2.12p-4sarge1_powerpc.deb) ...
    Unpacking replacement bsdutils ...
    Setting up bsdutils (2.12p-4sarge1) ...

    tar: ./postinst: time stamp 2006-09-16 19:14:24 is 86980102 s in the future
    tar: ./preinst: time stamp 2006-09-16 19:14:24 is 86980102 s in the future
    tar: ./prerm: time stamp 2006-09-16 19:14:24 is 86980102 s in the future
    tar: ./md5sums: time stamp 2006-09-16 19:14:26 is 86980104 s in the future
    tar: ./control: time stamp 2006-09-16 19:14:25 is 86980103 s in the future
    tar: .: time stamp 2006-09-16 19:14:26 is 86980104 s in the future
    (Reading database ... 7660 files and directories currently installed.)
    Preparing to replace gzip 1.3.5-10 (using .../gzip_1.3.5-10sarge2_powerpc.deb) ...
    Unpacking replacement gzip ...
    Setting up gzip (1.3.5-10sarge2) ...

    tar: ./postinst: time stamp 2006-08-13 18:31:45 is 84039941 s in the future
    tar: ./preinst: time stamp 2006-08-13 18:31:45 is 84039941 s in the future
    tar: ./conffiles: time stamp 2006-08-13 18:31:45 is 84039941 s in the future
    tar: ./md5sums: time stamp 2006-08-13 18:31:47 is 84039943 s in the future
    tar: ./control: time stamp 2006-08-13 18:31:46 is 84039942 s in the future
    tar: .: time stamp 2006-08-13 18:31:47 is 84039943 s in the future
    (Reading database ... 7660 files and directories currently installed.)
    Preparing to replace login 1:4.0.3-31sarge5 (using .../login_1%3a4.0.3-31sarge9_powerpc.deb) ...
    Unpacking replacement login ...
    Setting up login (4.0.3-31sarge9) ...

    tar: ./postinst: time stamp 2005-09-18 02:49:45 is 55557818 s in the future
    tar: ./prerm: time stamp 2005-09-18 02:49:45 is 55557818 s in the future
    tar: ./control: time stamp 2005-09-18 02:49:49 is 55557822 s in the future
    tar: .: time stamp 2005-09-18 02:49:49 is 55557822 s in the future
    (Reading database ... 7660 files and directories currently installed.)
    Preparing to replace mount 2.12p-4 (using .../mount_2.12p-4sarge1_powerpc.deb) ...
    Unpacking replacement mount ...
    Setting up mount (2.12p-4sarge1) ...

    tar: ./postinst: time stamp 2006-08-04 17:42:07 is 83259360 s in the future
    tar: ./md5sums: time stamp 2006-08-04 17:42:07 is 83259360 s in the future
    tar: ./control: time stamp 2006-08-04 17:42:08 is 83259361 s in the future
    tar: .: time stamp 2006-08-04 17:42:08 is 83259361 s in the future
    (Reading database ... 7660 files and directories currently installed.)
    Preparing to replace libperl5.8 5.8.4-8 (using .../libperl5.8_5.8.4-8sarge5_powerpc.deb) ...
    Unpacking replacement libperl5.8 ...
    tar: ./shlibs: time stamp 2006-08-04 17:41:47 is 83259339 s in the future
    tar: ./md5sums: time stamp 2006-08-04 17:41:47 is 83259339 s in the future
    tar: ./control: time stamp 2006-08-04 17:41:49 is 83259341 s in the future
    tar: .: time stamp 2006-08-04 17:41:49 is 83259341 s in the future
    Preparing to replace perl-base 5.8.4-8 (using .../perl-base_5.8.4-8sarge5_powerpc.deb) ...
    Unpacking replacement perl-base ...
    Setting up perl-base (5.8.4-8sarge5) ...
    tar: ./postinst: time stamp 2006-11-30 21:58:23 is 93473533 s in the future
    tar: ./preinst: time stamp 2006-11-30 21:58:23 is 93473533 s in the future
    tar: ./prerm: time stamp 2006-11-30 21:58:23 is 93473533 s in the future
    tar: ./postrm: time stamp 2006-11-30 21:58:23 is 93473533 s in the future
    tar: ./conffiles: time stamp 2006-11-30 21:55:31 is 93473361 s in the future
    tar: ./md5sums: time stamp 2006-11-30 21:58:24 is 93473534 s in the future
    tar: ./control: time stamp 2006-11-30 21:58:24 is 93473534 s in the future
    tar: .: time stamp 2006-11-30 21:58:24 is 93473534 s in the future
    (Reading database ... 7660 files and directories currently installed.)
    Preparing to replace tar 1.14-2 (using .../tar_1.14-2.3_powerpc.deb) ...
    Unpacking replacement tar ...
    Setting up tar (1.14-2.3) ...

    tar: ./preinst: time stamp 2005-09-18 02:48:15 is 55557723 s in the future
    tar: ./postinst: time stamp 2005-09-18 02:48:15 is 55557723 s in the future
    tar: ./prerm: time stamp 2005-09-18 02:48:15 is 55557723 s in the future
    tar: ./postrm: time stamp 2005-09-18 02:48:15 is 55557723 s in the future
    tar: ./conffiles: time stamp 2005-09-18 02:48:15 is 55557723 s in the future
    tar: ./control: time stamp 2005-09-18 02:48:26 is 55557734 s in the future
    tar: .: time stamp 2005-09-18 02:48:26 is 55557734 s in the future
    (Reading database ... 7660 files and directories currently installed.)
    Preparing to replace util-linux 2.12p-4 (using .../util-linux_2.12p-4sarge1_powerpc.deb) ...
    Unpacking replacement util-linux ...
    Setting up util-linux (2.12p-4sarge1) ...

    tar: ./shlibs: time stamp 2007-03-05 17:17:12 is 101664656 s in the future
    tar: ./postinst: time stamp 2007-03-05 17:17:14 is 101664658 s in the future
    tar: ./preinst: time stamp 2007-03-05 17:17:14 is 101664658 s in the future
    tar: ./postrm: time stamp 2007-03-05 17:17:14 is 101664658 s in the future
    tar: ./md5sums: time stamp 2007-03-05 17:17:16 is 101664660 s in the future
    tar: ./control: time stamp 2007-03-05 17:17:15 is 101664659 s in the future
    tar: .: time stamp 2007-03-05 17:17:15 is 101664659 s in the future
    (Reading database ... 7660 files and directories currently installed.)
    Preparing to replace libc6 2.3.2.ds1-22 (using .../libc6_2.3.2.ds1-22sarge6_powerpc.deb) ...
    Unpacking replacement libc6 ...
    Setting up libc6 (2.3.2.ds1-22sarge6) ...
    Current default timezone: 'US/Eastern'.
    Local time is now: Mon Dec 15 01:06:24 EST 2003.
    Universal Time is now: Mon Dec 15 06:06:24 UTC 2003.
    Run 'tzconfig' if you wish to change it.

    tar: ./shlibs: time stamp 2006-08-10 13:57:18 is 83764252 s in the future
    tar: ./postinst: time stamp 2006-08-10 13:57:24 is 83764258 s in the future
    tar: ./control: time stamp 2006-08-10 13:57:24 is 83764258 s in the future
    tar: ./postrm: time stamp 2006-08-10 13:57:24 is 83764258 s in the future
    tar: ./md5sums: time stamp 2006-08-10 13:57:24 is 83764258 s in the future
    tar: .: time stamp 2006-08-10 13:57:24 is 83764258 s in the future
    (Reading database ... 7699 files and directories currently installed.)
    Preparing to replace libgcc1 1:3.4.3-13 (using .../libgcc1_1%3a3.4.3-13sarge1_powerpc.deb) ...
    Unpacking replacement libgcc1 ...
    Setting up libgcc1 (3.4.3-13sarge1) ...

    tar: ./config: time stamp 2006-04-11 08:33:28 is 73290422 s in the future
    tar: ./templates: time stamp 2006-04-11 08:33:37 is 73290431 s in the future
    tar: ./postinst: time stamp 2006-04-11 08:33:41 is 73290435 s in the future
    tar: ./postrm: time stamp 2006-04-11 08:33:41 is 73290435 s in the future
    tar: ./conffiles: time stamp 2006-04-11 08:33:41 is 73290435 s in the future
    tar: ./md5sums: time stamp 2006-04-11 08:33:42 is 73290436 s in the future
    tar: ./control: time stamp 2006-04-11 08:33:42 is 73290436 s in the future
    tar: .: time stamp 2006-04-11 08:33:42 is 73290436 s in the future
    (Reading database ... 7699 files and directories currently installed.)
    Preparing to replace exim4-config 4.50-8 (using .../exim4-config_4.50-8sarge2_all.deb) ...
    Unpacking replacement exim4-config ...
    ^Atar: ./config: time stamp 2006-04-11 16:55:14 is 73320523 s in the future
    tar: ./templates: time stamp 2006-04-11 16:55:19 is 73320528 s in the future
    tar: ./postinst: time stamp 2006-04-11 16:55:27 is 73320536 s in the future
    tar: ./prerm: time stamp 2006-04-11 16:55:27 is 73320536 s in the future
    tar: ./postrm: time stamp 2006-04-11 16:55:27 is 73320536 s in the future
    tar: ./conffiles: time stamp 2006-04-11 16:55:27 is 73320536 s in the future
    tar: ./md5sums: time stamp 2006-04-11 16:55:32 is 73320541 s in the future
    tar: ./control: time stamp 2006-04-11 16:55:30 is 73320539 s in the future
    tar: .: time stamp 2006-04-11 16:55:32 is 73320541 s in the future
    Preparing to replace exim4-base 4.50-8 (using .../exim4-base_4.50-8sarge2_powerpc.deb) ...
    Unpacking replacement exim4-base ...
    tar: ./config: time stamp 2006-08-13 18:31:39 is 84039903 s in the future
    tar: ./templates: time stamp 2006-08-13 18:31:44 is 84039908 s in the future
    tar: ./postinst: time stamp 2006-08-13 18:31:45 is 84039909 s in the future
    tar: ./preinst: time stamp 2006-08-13 18:31:45 is 84039909 s in the future
    tar: ./postrm: time stamp 2006-08-13 18:31:45 is 84039909 s in the future
    tar: ./conffiles: time stamp 2006-08-13 18:31:45 is 84039909 s in the future
    tar: ./md5sums: time stamp 2006-08-13 18:31:47 is 84039911 s in the future
    tar: ./control: time stamp 2006-08-13 18:31:46 is 84039910 s in the future
    tar: .: time stamp 2006-08-13 18:31:47 is 84039911 s in the future
    Preparing to replace passwd 1:4.0.3-31sarge5 (using .../passwd_1%3a4.0.3-31sarge9_powerpc.deb) ...
    Unpacking replacement passwd ...
    Setting up passwd (4.0.3-31sarge9) ...

    tar: ./postinst: time stamp 2005-07-14 17:13:49 is 49907225 s in the future
    tar: ./preinst: time stamp 2005-07-14 17:13:49 is 49907225 s in the future
    tar: ./shlibs: time stamp 2005-07-14 17:13:10 is 49907186 s in the future
    tar: ./md5sums: time stamp 2005-07-14 17:13:50 is 49907226 s in the future
    tar: ./control: time stamp 2005-07-14 17:13:51 is 49907227 s in the future
    tar: .: time stamp 2005-07-14 17:13:51 is 49907227 s in the future
    (Reading database ... 7699 files and directories currently installed.)
    Preparing to replace zlib1g 1:1.2.2-4 (using .../zlib1g_1%3a1.2.2-4.sarge.2_powerpc.deb) ...
    Unpacking replacement zlib1g ...
    Setting up zlib1g (1.2.2-4.sarge.2) ...

    tar: ./preinst: time stamp 2005-10-02 12:04:03 is 56800638 s in the future
    tar: ./postinst: time stamp 2005-10-02 12:04:03 is 56800638 s in the future
    tar: ./prerm: time stamp 2005-10-02 12:04:03 is 56800638 s in the future
    tar: ./control: time stamp 2005-10-02 12:04:09 is 56800644 s in the future
    tar: .: time stamp 2005-10-02 12:04:09 is 56800644 s in the future
    (Reading database ... 7699 files and directories currently installed.)
    Preparing to replace cpio 2.5-1.2 (using .../cpio_2.5-1.3_powerpc.deb) ...
    Unpacking replacement cpio ...
    tar: ./shlibs: time stamp 2006-02-11 16:28:47 is 68224922 s in the future
    tar: ./postinst: time stamp 2006-02-11 16:28:48 is 68224923 s in the future
    tar: ./postrm: time stamp 2006-02-11 16:28:48 is 68224923 s in the future
    tar: ./md5sums: time stamp 2006-02-11 16:29:08 is 68224943 s in the future
    tar: ./control: time stamp 2006-02-11 16:29:07 is 68224942 s in the future
    tar: .: time stamp 2006-02-11 16:29:08 is 68224943 s in the future
    Preparing to replace libtasn1-2 0.2.10-3 (using .../libtasn1-2_0.2.10-3sarge1_powerpc.deb) ...
    Unpacking replacement libtasn1-2 ...
    tar: ./shlibs: time stamp 2006-09-20 08:07:18 is 87285633 s in the future
    tar: ./postinst: time stamp 2006-09-20 08:13:41 is 87286016 s in the future
    tar: ./postrm: time stamp 2006-09-20 08:13:41 is 87286016 s in the future
    tar: ./md5sums: time stamp 2006-09-20 08:13:51 is 87286026 s in the future
    tar: ./control: time stamp 2006-09-20 08:13:51 is 87286026 s in the future
    tar: .: time stamp 2006-09-20 08:13:51 is 87286026 s in the future
    Preparing to replace libgnutls11 1.0.16-13.1 (using .../libgnutls11_1.0.16-13.2sarge2_powerpc.deb) ...
    Unpacking replacement libgnutls11 ...
    tar: ./shlibs: time stamp 2005-08-24 15:16:00 is 53442554 s in the future
    tar: ./postinst: time stamp 2005-08-24 15:16:00 is 53442554 s in the future
    tar: ./postrm: time stamp 2005-08-24 15:16:00 is 53442554 s in the future
    tar: ./md5sums: time stamp 2005-08-24 15:16:03 is 53442557 s in the future
    tar: ./control: time stamp 2005-08-24 15:16:02 is 53442556 s in the future
    tar: .: time stamp 2005-08-24 15:16:03 is 53442557 s in the future
    Preparing to replace libpcre3 4.5-1.2 (using .../libpcre3_4.5-1.2sarge1_powerpc.deb) ...
    Unpacking replacement libpcre3 ...
    tar: ./postinst: time stamp 2006-04-11 16:55:27 is 73320521 s in the future
    tar: ./prerm: time stamp 2006-04-11 16:55:27 is 73320521 s in the future
    tar: ./md5sums: time stamp 2006-04-11 16:55:32 is 73320526 s in the future
    tar: ./control: time stamp 2006-04-11 16:55:30 is 73320524 s in the future
    tar: .: time stamp 2006-04-11 16:55:32 is 73320526 s in the future
    Preparing to replace exim4-daemon-light 4.50-8 (using .../exim4-daemon-light_4.50-8sarge2_powerpc.deb) ...
    Stopping MTA: exim4.
    Unpacking replacement exim4-daemon-light ...
    tar: ./md5sums: time stamp 2006-04-11 08:33:42 is 73290415 s in the future
    tar: ./control: time stamp 2006-04-11 08:33:42 is 73290415 s in the future
    tar: .: time stamp 2006-04-11 08:33:42 is 73290415 s in the future
    Preparing to replace exim4 4.50-8 (using .../exim4_4.50-8sarge2_all.deb) ...
    Unpacking replacement exim4 ...
    tar: ./postinst: time stamp 2006-11-21 15:37:51 is 92673064 s in the future
    tar: ./prerm: time stamp 2006-11-21 15:37:51 is 92673064 s in the future
    tar: ./postrm: time stamp 2006-11-21 15:37:51 is 92673064 s in the future
    tar: ./md5sums: time stamp 2006-11-21 15:37:54 is 92673067 s in the future
    tar: ./control: time stamp 2006-11-21 15:37:54 is 92673067 s in the future
    tar: .: time stamp 2006-11-21 15:37:54 is 92673067 s in the future
    Preparing to replace info 4.7-2.2 (using .../info_4.7-2.2sarge2_powerpc.deb) ...
    Unpacking replacement info ...
    tar: ./config: time stamp 2006-11-09 12:15:59 is 91624151 s in the future
    tar: ./templates: time stamp 2006-11-09 12:16:05 is 91624157 s in the future
    tar: ./postinst: time stamp 2006-11-09 12:16:07 is 91624159 s in the future
    tar: ./preinst: time stamp 2006-11-09 12:16:07 is 91624159 s in the future
    tar: ./prerm: time stamp 2006-11-09 12:16:07 is 91624159 s in the future
    tar: ./postrm: time stamp 2006-11-09 12:16:07 is 91624159 s in the future
    tar: ./conffiles: time stamp 2006-11-09 12:16:07 is 91624159 s in the future
    tar: ./md5sums: time stamp 2006-11-09 12:16:09 is 91624161 s in the future
    tar: ./control: time stamp 2006-11-09 12:16:09 is 91624161 s in the future
    tar: .: time stamp 2006-11-09 12:16:09 is 91624161 s in the future
    Preparing to replace man-db 2.4.2-21 (using .../man-db_2.4.2-21sarge1_powerpc.deb) ...
    Unpacking replacement man-db ...
    tar: ./templates: time stamp 2006-09-30 06:41:32 is 88144483 s in the future
    tar: ./shlibs: time stamp 2006-09-30 06:41:57 is 88144508 s in the future
    tar: ./control: time stamp 2006-09-30 06:41:55 is 88144506 s in the future
    tar: ./postinst: time stamp 2006-09-30 06:41:57 is 88144508 s in the future
    tar: ./preinst: time stamp 2006-09-30 06:41:57 is 88144508 s in the future
    tar: ./prerm: time stamp 2006-09-30 06:41:57 is 88144508 s in the future
    tar: ./postrm: time stamp 2006-09-30 06:41:57 is 88144508 s in the future
    tar: ./md5sums: time stamp 2006-09-30 06:41:58 is 88144509 s in the future
    tar: .: time stamp 2006-09-30 06:41:58 is 88144509 s in the future
    Preparing to replace libssl0.9.7 0.9.7e-3 (using .../libssl0.9.7_0.9.7e-3sarge4_powerpc.deb) ...
    Unpacking replacement libssl0.9.7 ...
    tar: ./templates: time stamp 2006-06-11 14:25:41 is 78581931 s in the future
    tar: ./postinst: time stamp 2006-06-11 14:25:43 is 78581933 s in the future
    tar: ./postrm: time stamp 2006-06-11 14:25:43 is 78581933 s in the future
    tar: ./conffiles: time stamp 2006-06-11 14:25:43 is 78581933 s in the future
    tar: ./md5sums: time stamp 2006-06-11 14:25:44 is 78581934 s in the future
    tar: ./control: time stamp 2006-06-11 14:25:44 is 78581934 s in the future
    tar: .: time stamp 2006-06-11 14:25:44 is 78581934 s in the future
    Preparing to replace base-config 2.53.10 (using .../base-config_2.53.10.2_all.deb) ...
    Unpacking replacement base-config ...
    tar: ./md5sums: time stamp 2006-06-03 23:48:55 is 77924524 s in the future
    tar: ./postinst: time stamp 2006-06-03 23:49:12 is 77924541 s in the future
    tar: ./prerm: time stamp 2006-06-03 23:49:12 is 77924541 s in the future
    tar: ./postrm: time stamp 2006-06-03 23:49:12 is 77924541 s in the future
    tar: ./conffiles: time stamp 2006-06-03 23:49:12 is 77924541 s in the future
    tar: ./control: time stamp 2006-06-03 23:49:15 is 77924544 s in the future
    tar: .: time stamp 2006-06-03 23:49:15 is 77924544 s in the future
    Preparing to replace ppp 2.4.3-20050321+2 (using .../ppp_2.4.3-20050321+2sarge1_powerpc.deb) ...
    Unpacking replacement ppp ...
    Setting up libperl5.8 (5.8.4-8sarge5) ...

    Setting up exim4-config (4.50-8sarge2) ...

    Setting up exim4-base (4.50-8sarge2) ...

    Setting up cpio (2.5-1.3) ...

    Setting up libtasn1-2 (0.2.10-3sarge1) ...

    Setting up libgnutls11 (1.0.16-13.2sarge2) ...

    Setting up libpcre3 (4.5-1.2sarge1) ...

    Setting up exim4-daemon-light (4.50-8sarge2) ...
    Starting MTA: exim4.

    Setting up exim4 (4.50-8sarge2) ...
    Setting up info (4.7-2.2sarge2) ...

    Setting up man-db (2.4.2-21sarge1) ...

    Setting up libssl0.9.7 (0.9.7e-3sarge4) ...

    Setting up base-config (2.53.10.2) ...

    Setting up ppp (2.4.3-20050321+2sarge1) ...

    LinkStation:~#
  10. Correct the LinkStation time zone setting. I'm in the U.S. Central time zone.
    LinkStation:~# tzconfig
    Your current time zone is set to US/Eastern
    Do you want to change that? [n]: y

    Please enter the number of the geographic area in which you live:


    1) Africa 7) Australia

    2) America 8) Europe

    3) US time zones 9) Indian Ocean

    4) Canada time zones 10) Pacific Ocean

    5) Asia 11) Use System V style time zones

    6) Atlantic Ocean 12) None of the above


    Then you will be shown a list of cities which represent the time zone
    in which they are located. You should choose a city in your time zone.

    Number: 3

    Alaska Aleutian Arizona Central East-Indiana Eastern Hawaii Indiana-Starke
    Michigan Mountain Pacific Samoa

    Please enter the name of one of these cities or zones
    You just need to type enough letters to resolve ambiguities
    Press Enter to view all of them again
    Name: [] Central
    Your default time zone is set to 'US/Central'.
    Local time is now: Mon Dec 15 00:18:34 CST 2003.
    Universal Time is now: Mon Dec 15 06:18:34 UTC 2003.
    LinkStation:~#
    Installed NTP.
    LinkStation:~# apt-get install ntp ntp-simple ntpdate
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following extra packages will be installed:
    ntp-server perl perl-modules
    Suggested packages:
    ntp-doc libterm-readline-gnu-perl libterm-readline-perl-perl
    Recommended packages:
    perl-doc
    The following NEW packages will be installed:
    ntp ntp-server ntp-simple ntpdate perl perl-modules
    0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
    Need to get 6159kB of archives.
    After unpacking 23.7MB of additional disk space will be used.
    Do you want to continue? [Y/n] Y
    Get:1 http://mirrors.kernel.org stable/main perl-modules 5.8.4-8sarge5 [2179kB]
    Get:2 http://mirrors.kernel.org stable/main perl 5.8.4-8sarge5 [3509kB]
    Get:3 http://mirrors.kernel.org stable/main ntp 1:4.2.0a+stable-2sarge1 [266kB]
    Get:4 http://mirrors.kernel.org stable/main ntp-simple 1:4.2.0a+stable-2sarge1 [129kB]
    Get:5 http://mirrors.kernel.org stable/main ntp-server 1:4.2.0a+stable-2sarge1 [31.9kB]
    Get:6 http://mirrors.kernel.org stable/main ntpdate 1:4.2.0a+stable-2sarge1 [43.7kB]
    Fetched 6159kB in 56s (108kB/s)
    tar: ./conffiles: time stamp 2006-05-09 23:33:28 is 75766305 s in the future
    tar: ./md5sums: time stamp 2006-05-09 23:33:28 is 75766305 s in the future
    tar: ./control: time stamp 2006-05-09 23:33:29 is 75766306 s in the future
    tar: .: time stamp 2006-05-09 23:33:29 is 75766306 s in the future
    Selecting previously deselected package perl-modules.
    (Reading database ... 7699 files and directories currently installed.)
    Unpacking perl-modules (from .../perl-modules_5.8.4-8sarge5_all.deb) ...
    tar: ./postinst: time stamp 2006-08-04 16:42:12 is 83258425 s in the future
    tar: ./md5sums: time stamp 2006-08-04 16:42:12 is 83258425 s in the future
    tar: ./control: time stamp 2006-08-04 16:42:15 is 83258428 s in the future
    tar: .: time stamp 2006-08-04 16:42:15 is 83258428 s in the future
    Selecting previously deselected package perl.
    Unpacking perl (from .../perl_5.8.4-8sarge5_powerpc.deb) ...
    tar: ./postinst: time stamp 2005-08-26 17:10:45 is 53624934 s in the future
    tar: ./md5sums: time stamp 2005-08-26 17:10:50 is 53624939 s in the future
    tar: ./control: time stamp 2005-08-26 17:10:48 is 53624937 s in the future
    tar: .: time stamp 2005-08-26 17:10:50 is 53624939 s in the future
    Selecting previously deselected package ntp.
    Unpacking ntp (from .../ntp_1%3a4.2.0a+stable-2sarge1_powerpc.deb) ...
    tar: ./postinst: time stamp 2005-08-26 17:10:45 is 53624934 s in the future
    tar: ./postrm: time stamp 2005-08-26 17:10:45 is 53624934 s in the future
    tar: ./md5sums: time stamp 2005-08-26 17:10:50 is 53624939 s in the future
    tar: ./control: time stamp 2005-08-26 17:10:49 is 53624938 s in the future
    tar: .: time stamp 2005-08-26 17:10:50 is 53624939 s in the future
    Selecting previously deselected package ntp-simple.
    Unpacking ntp-simple (from .../ntp-simple_1%3a4.2.0a+stable-2sarge1_powerpc.deb) ...
    tar: ./postinst: time stamp 2005-08-26 17:10:45 is 53624934 s in the future
    tar: ./preinst: time stamp 2005-08-26 17:10:45 is 53624934 s in the future
    tar: ./prerm: time stamp 2005-08-26 17:10:45 is 53624934 s in the future
    tar: ./postrm: time stamp 2005-08-26 17:10:45 is 53624934 s in the future
    tar: ./conffiles: time stamp 2005-08-26 17:10:45 is 53624934 s in the future
    tar: ./md5sums: time stamp 2005-08-26 17:10:50 is 53624939 s in the future
    tar: ./control: time stamp 2005-08-26 17:10:48 is 53624937 s in the future
    tar: .: time stamp 2005-08-26 17:10:50 is 53624939 s in the future
    Selecting previously deselected package ntp-server.
    Unpacking ntp-server (from .../ntp-server_1%3a4.2.0a+stable-2sarge1_powerpc.deb) ...
    Removing any system startup links for /etc/init.d/ntp-simple ...
    Removing any system startup links for /etc/init.d/ntp-refclock ...
    Removing any system startup links for /etc/init.d/ntp ...
    ntpd: no process killed
    tar: ./postinst: time stamp 2005-08-26 17:10:45 is 53624933 s in the future
    tar: ./preinst: time stamp 2005-08-26 17:10:45 is 53624933 s in the future
    tar: ./prerm: time stamp 2005-08-26 17:10:45 is 53624933 s in the future
    tar: ./postrm: time stamp 2005-08-26 17:10:45 is 53624933 s in the future
    tar: ./conffiles: time stamp 2005-08-26 17:10:45 is 53624933 s in the future
    tar: ./md5sums: time stamp 2005-08-26 17:10:50 is 53624938 s in the future
    tar: ./control: time stamp 2005-08-26 17:10:50 is 53624938 s in the future
    tar: .: time stamp 2005-08-26 17:10:50 is 53624938 s in the future
    Selecting previously deselected package ntpdate.
    Unpacking ntpdate (from .../ntpdate_1%3a4.2.0a+stable-2sarge1_powerpc.deb) ...
    Setting up ntpdate (4.2.0a+stable-2sarge1) ...
    Running ntpdate to synchronize clock.

    Setting up perl-modules (5.8.4-8sarge5) ...
    Setting up ntp (4.2.0a+stable-2sarge1) ...

    Setting up ntp-server (4.2.0a+stable-2sarge1) ...
    Starting NTP server: ntpd.

    Setting up ntp-simple (4.2.0a+stable-2sarge1) ...

    Setting up perl (5.8.4-8sarge5) ...

    LinkStation:~#
    Tested to make sure the system knows the current time and date:
    LinkStation:~# date
    Sat Apr 7 22:31:30 CDT 2007
    LinkStation:~#
(This post is still in progress.)

(Note that, if we later limit the LinkStation's access to the Internet we'll need to provide an NTP server on the subnet. See http://linkstationwiki.net/index.php?title=Correct_the_system_time_and_setup_Network_Time_Protocol_%28NTP%29 .)

(Might want to include some of the packages from http://linkstationwiki.net/index.php?title=Category:Debian .)

Subversion on LinkStation #4 - Install Linux

(#4 in my series about Subversion on a LinkStation.)

Having indulged my paranoia by making sure I could restore the factory firmware if I needed to, it was time to install FreeLink on my LinkStation. The FreeLink firmware contains a build of Debian, a Linux distribution.

The steps here are a lot like the steps for restoring the factory firmware, except that you use the installer from http://downloads.linkstationwiki.net/LS1_PPC/Distributions/Freelink/ instead.
I downloaded freelink_powerpc-hdhlan-1.11.zip from that location, unzipped it and ran HD-HGLAN FWUpdate-english.exe. I got the same string of dialogs:









At this point I'd succesfully installed FreeLink (and with it, Debian) on my LinkStation.

About the web-based configuration utility and the machine name: Remember how I was previously able to browse to http://hd-hglan3be and see the factory-default web-based configuration utility? Well, at this point I couldn't do that any more. I hear you ask, "What happened to http://hd-hglan3be?" Two things. First, the FreeLink firmware has the machine name of "linkstation" instead of "HD-HGLAN3BE", so even if I wanted to browse a web server on the LinkStation I'd have to go to http://linkstation instead. But second, there is no web-based configuration utility in the FreeLink firmware. Don't say that the LinkStationWiki didn't warn you:
FreeLink is our effort to provide firmware which “frees” your LinkStation The FreeLink firmware is built upon the most recent official LinkStation firmware release. It replaces the stock LinkStation Linux build with the latest stable Debian build. Debian is one of the most popular Linux distributions. Debian is highly regarded for its simple interface and powerful package repository. The price for this is that you will lose the web based configuration tool shipped with the stock firmware - if you are familiar with Linux and your LinkStation, this should be no problem (otherwise you should consider this fact).

The FreeLink firmware does come with a telnet server, so I telneted into my LinkStation to make sure the installation was as successful as the installer said it was.
C:\>telnet linkstation
Connecting To linkstation...

Debian GNU/Linux 3.1 %h
root@LinkStation:/# exit
exit


Connection to host lost.

C:\>
Yep. Looked good. You'll note, though, that root was able to log in without a password. That's one of the things I deal with in the next post.

Next: Linux Security and Settings

Friday, April 6, 2007

Subversion on LinkStation #3 - Be able to recover from a firmware mistake

(#3 in my series about Subversion on a LinkStation.)

My last stop before replacing the LinkStation's factory-provided firmware with FreeLink was to make sure I could restore the factory-provided firmware in case I messed something up.

If you're following along with your own installation and you think I'm being too paranoid, feel free to skip right ahead to the "Install Linux" step. Just don't come crying to me when your firmware installation goes badly and you've bricked your LinkStation. (If you must go crying somewhere under those circumstances, try FAQ 3.7 at the LinkStationWiki FAQ: "I wish to start from scratch because my stuff is royally screwed. Where should I start?")

I know from looking at the summary page of the factory-default, web-based configuration utility that I've got version 1.42 of the factory firmware, so I navigated on over to http://www.buffalotech.com/support/downloads/ and downloaded the ZIP containing the appropriate version of the firmware (http://www.buffalotech.com/support/getfile/?HD_HGLAN_142.zip).

In that ZIP:



HD-HGLAN FWUpdate.exe is the Windows utility that sends bootcode.bin, firmimg.bin and image.datto the LinkStation via the network. linkstation_version.txt tells HD-HGLAN FWUpdate.exe the version number of the file set.

Important trick: HD-HGLAN FWUpdate.exe won't let you roll back to a previous version (say from 1.46 to 1.42) or reinstall the same version (1.42 when you already have 1.42) unless you fake it out by editing linkstation_version.txt and changing the version from 1.42 to 1.99. HD-HGLAN FWUpdate.exe will then allow the rollback. So if you see one of these...



...you need to edit linkstation_version.txt so it thinks this is version 1.99. (See FAQ 3.4 at LinkStationWiki's FAQs for more info.)

So, with those files downloaded and extracted (and with the aforementioned edit to linkstation_version.txt), I followed the instructions at http://linkstationwiki.net/index.php?title=The_LinkStation_firmware_flasher and was able to run HD-HGLAN FWUpdate.exe like so:








Next: Install Linux