Using NetBSD on MobilePro 770

(some applications I used with screenshots)

picture of MobilePro 780 running netbsd

Mobile Pro 770/780 has a very nice form factor that is not too big to carry all the time, while still provide a touch typable keyboard and a screen wide enough to display most websites. As a system admin, I like to carry it around as my SSH client and X term. But those functions are not available from the original HPC CE 2.11 OS, and third party applications are limited too. So I dicided to give NetBSD a try, the hpcmips port of NetBSD 2.1 has been pretty solid. at first I installed directly from the sets available from netbsd.org using a 512M CF card. I Figure I will probably have to compile some stuff on this, so I did full installation with compile tools, which took about 60 percent of the CF card.

building kernel and sets

Then I recompiled the kernel using this conf file, rebuild the release sets using this mk.conf. Basicly disable all the functions that is not likely to be used on the portable platform, for example YP and UUCP and SENDMAIL etc.I didn't compile the kernel and the release sets on the Mobile Pro itself, that would take too long. Instead, I didn't cross build using my desktop PC running Netbsd 3.1. On which the kernel build only takes about half an hour, while the sets takes about a half day.

ssh and X11 forwarding

Now I have a full function UNIX box right in my palm, SSH and Xhpc works great right out of the box. I use ssh at work to connect to any server manages, then forward X sessions down to the MobilePro, that allows me to securely manage my servers anywhere I go. Here is the simple command I use for ssh and X forwarding:

ssh -X username@remote.host

Once connected, you should find that the DISPLAY environment variable has been set to something like LOCALHOST:10.0 So in order for the MobilePro's X server to actually accept connections, I just added a line to the X0.hosts file that simply reads localhost. Now it was ready to launch all those fancy X apps and have them displayed in the palm of my hand...

netbsd packages

After making sure that NetBSD is fully functional on the Mobile Pro, I dicided to add some new functions to the little machine using pkgsrc, whice provided thousands of apps. But packages can not be cross built, so I have to do the compiling on the Mobile Pro itself. That requires some prepare job. First the 512M CF card is not big enough to hold all the pkgsrc files, not to mention all the distribution tar balls, obj files. So I turned on NFS server on my desktop NetBSD box, unpack pkgsrc.tar.gz there and shared it by adding the following two lines in /etc/exports.

/usr/pkgsrc -maproot=root: bsd770
/usr/obj -maproot=root: bsd770
Then the 32M internal RAM is not going to be enough for any serious compiling, so I created a swap file on my NFS server under /usr/obj "dd if=/dev/zero of=/usr/obj/770swap bs=4k count=32k" and turned it on with "swapctl -a /usr/obj/770swap" on my Mobile Pro.

With all the preparation done, I compiled the following packages

  • rxvt-2.7.10
  • colorls-2.2
  • wm2-4.0
  • glib-1.2.10
  • gtk+-1.2.10
  • jpeg-6b
  • png-1.2.12
  • dillo-0.8.5
  • browsing with dillo

    Dillo is the best fit browser for this little NetBSD box, it's small and fast, and gtk+-1.2 with glib-1.2 is all the librarys required. following is a screen capture.

    Dillo on Mobile Pro 770

    mailing with sylpheed

    For e-mails I have to compile an older version of sylpheed, version 1.0.6 is the last one that is gtk1 based. This one is not part of the pkgsrc, so I just downloaded the source tarball, compiled and installed under /usr/local.

    sylpheed message list on Mobile Pro 770

    sylpheed message body on Mobile Pro 770

    dwm the dynamic window manager

    You probably noticed that the few screen captures all running in full screen mode, there is no window borders, no title bar, and not start bar either. That is bacause I used dwm the dynamic window manager. Dwm is small and fast, seeks for simplicity and efficiency, which is just what I needed for my Mobile Pro. I actually modified a few lines of the dwm source code so that I have most the apps running in full screen mode, wasting no screen real estate for fancy stuff. And use key combinations to launch applications and switch between windows. Following are the key combos I used:

  • ALT-Tab: go to the next window
  • ALT-Esc: go to the previous window
  • ALT-m: maximize a window
  • ALT-space: float a window
  • ALT-T: open terminal windows with rxvt
  • ALT-S: open sylpheed
  • ALT-W: open dillo
  • additional info

    After all my apps are compiled, I did a minimal install to one of my 128M CF card, with only base, etc, xbase, xetc, xserver, xfonts, plus all the packages and apps I compiled, the whole NetBSD system used just a little less than 100M. Pretty cool, isn't it. One additional note, with CF card as the primary disk, you do not want to have frequent write to the disk, so disable swap, use as little syslog as possible here is my rc.conf file

    #       $NetBSD: rc.conf,v 1.96 2000/10/14 17:01:29 wiz Exp $
    #
    # see rc.conf(5) for more information.
    #
    # Use program=YES to enable program, NO to disable it. program_flags are
    # passed to the program on the command line.
    #
    
    # Load the defaults in from /etc/defaults/rc.conf (if it's readable).
    # These can be overridden below.
    #
    if [ -r /etc/defaults/rc.conf ]; then
            . /etc/defaults/rc.conf
    fi
    
    # If this is not set to YES, the system will drop into single-user mode.
    #
    rc_configured=YES
    
    # Add local overrides below
    #
    ifconfig_ne0="inet 10.10.10.16 netmask 0xffffff00"
    hostname=bsd780
    inetd=no
    cron=no
    savecore=no
    sendmail=no
    quota=no
    update_motd=no
    no_swap=yes
    sshd=yes
    bsd780: {2}