T1000 - it's Linux time
Ubuntu finally releases Ubuntu 6.06 LTS for SPARC.
So a working netboot image for my T1000 is available, just about 2 months after I got mine.
I just went through the setup, an here she goes:
[ 0.000000] PROMLIB: Sun IEEE Boot Prom 'OBP 4.20.0 2005/12/15 16:49'
[ 0.000000] PROMLIB: Root node compatible: sun4v
[ 0.000000] Linux version 2.6.15-25-sparc64-smp (buildd@vivies) (gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)) #1 SMP Wed Jun 14 11:47:38 UTC 2006
[ 0.000000] ARCH: SUN4V
Great!
So far everything works fine. At the moment I'm building a crosstoolchain for performance testing.
Stay tuned.
Fluffy keyboard
Today a new keyboard from Bloomberg arrived at work.

It's an iteresting design. Heavy as hell, cables that seem to be made for welding puposes, touchpad, fingerprint sensor, speaker, microphone.
Next time they will add the 24" TFT ;)
Ubuntu 6.06 will support Sun Fire T1000
Now it's official. According to http://www.sun.com/smi/Press/sunflash/2006-05/sunflash.20060530.1.xml Ubuntu 6.06 for SPARC will support
T1000 and T2000 servers.
So there's still hope.
Question is: will my test period be long enough to enjoy this?
Performance results
I did some performance testing today. I compared our build server (P4 1core, 3 GHz, 2GB RAM, linux), against our T1000 (6 cores, 8GB RAM, Solaris 10).
I compared two testcases:
1. A cross compile to ARM architecture of the linux kernel. For that I used a custom built arm-linux-gcc 3.4.5.
2. A cross compile to ARM architecture of one of our applications. For that I used a custom built arm-elf-gcc 4.1.0.
I did no optimizing except for passing "-j 32" to make on the T1000.

Results are interesting. Probably the T1000 cannot use it's full force because lots of io has to be done. Performance for our application is worse because at the end of the compile process there is a long linking phase that can run only on one core.
That is a good starting point. I hope there are some screws to tune this. Maybe linux would perform better on the T1000, Colm MacCárthaighs blog
suggests this. But linux still does not work, at least not on my T1000. Still no news from Dave Miller or Fabbione on this.
Cross build environment up and running
We want to use the T1000 as a build server which produces binaries for the ARM processor platform. So the main application we need is a cross platform gcc.
Finally I succeeded in building an arm-elf-gcc-4.1.0. In order to do that I had to install lots of packages from
Sunfreeware.com. They have the main gnu applications built for Solaris 10. Some things I had to build on my own, e.g. the binutils. But after all it worked.
Another obstacle on the way was
cmake which is the buildsystem we use.
Also the tools for
ecos, our embedded operating system had to be built. But now it is all up and running.
"make -j 24" looks quite impressive:
load averages: 1.27, 1.10, 1.04 13:38:56
113 processes: 87 sleeping, 3 running, 23 on cpu
CPU states: 62.6% idle, 31.2% user, 6.2% kernel, 0.0% iowait, 0.0% swap
Memory: 8184M real, 6393M free, 406M swap in use, 7985M swap free
PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
7667 de 1 20 0 21M 18M cpu/16 0:01 0.30% cc1plus
7665 de 1 30 0 21M 17M cpu/17 0:01 0.30% cc1plus
7680 de 1 20 0 21M 18M cpu/1 0:01 0.29% cc1plus
7673 de 1 30 0 21M 17M cpu/6 0:01 0.29% cc1plus
7677 de 1 30 0 21M 17M cpu/20 0:01 0.29% cc1plus
7686 de 1 30 0 21M 18M cpu/18 0:01 0.29% cc1plus
7689 de 1 30 0 21M 17M cpu/10 0:01 0.29% cc1plus
7692 de 1 30 0 21M 17M cpu/8 0:01 0.29% cc1plus
7688 de 1 30 0 21M 17M cpu/22 0:01 0.29% cc1plus
7690 de 1 30 0 21M 17M cpu/0 0:01 0.29% cc1plus
7694 de 1 30 0 21M 17M cpu/9 0:01 0.29% cc1plus
7685 de 1 30 0 19M 14M cpu/21 0:01 0.29% cc1plus
7684 de 1 30 0 17M 14M cpu/15 0:01 0.29% cc1plus
7696 de 1 30 0 21M 17M cpu/19 0:01 0.29% cc1plus
7705 de 1 20 0 15M 13M cpu/13 0:01 0.28% cc1plus
It's fun watching how all this little compile processes are balanced to different threads. In the end performance is only about 20% better than on our 3.0 GHz Pentium IV, but there are lot of ideas for tuning. More detailed benchmarks will follow later on.
At the moment I'm using Dan Kegels crosstool for building a arm-linux-gcc-3.4.5. When it's finished I will start cross compiling the linux kernel for ARM.
I guess that will be fun ;)
Solaris fixed
I
found that the runtime library configuration is stored in /var/ld/ld.config and /var/ld/64/ld.config. So I had a look in /mnt/var. Damn. Empty.
So var is mounted separately. But from where. Using linux /etc/fstab would show. But in Solaris? Consulting google showed me that /etc/vfstab is the place.
# cat /etc/vfstab
...
/dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /var ufs 1 no logging
....So I mounted /dev/dsk/c0t0d0s5.
# mount -F ufs /dev/dsk/c0t0d0s5 /mnt
# cat /mnt/ld/ld.config
XX/usr/local/libBingo! So remove ld.config.
# rm /mnt/ld/ld.config
# umount mnt
# halt
Now Solaris boots fine again.
Last weekend - City of Trier
Last weekend my wife and me visited our friend Kirsten in Trier.
Saturday in the morning we had some excellent brunch which Kirsten had prepared for us. Then we went to town and did some sightseeing.
My wife Ramona (left) and Kirsten (right).
Sorry for the poor quality, but the pictures were taken with the cam in my cellphone.Trier is a beautiful city with lots of sights: the cathedral, the church of our lady, porta nigra, the basilica, st. gangolf , palace garden, the Karl-Marx-House to name only few of them. Kirsten is an excellent guide and we had lots of fun wandering through the ancient streets. Weather was fine, we enjoyed the sun while temperatures were about 12°C.
Strange sculpture in a church (pardon me - I forgot the name). The latin text says that death treats sceptre and spade equal. Which is true - for sure.In the evening we visited the beautiful restaurant "Weinstube zum Domstein" which is close to the cathedral. Very nice atmosphere, execellent wine and tasty snacks. We fell to bed, totally exhausted by this formidable day.
Sunday morning Kirsten had to leave us because she works as a waitress in a restaurant. So we visited the Mosel and left Trier later on. We enjoyed this weekend very much. It was for sure not the last time we visited Trier.
Jumpstarting Solaris with a linux server
Rolf Kersten, Product Marketing Manager for Volume Servers and Workstations from Sun Germany, read about my fauxpas with Solaris and contacted me. That is what I call excellent support. Getting support without even starting a support request - cool.
He told me that booting Solaris via network is possible. That is exactly what I am looking for in order to heal my fried Solaris installation on the T1000. So he sent me the complete "Solaris Enteprise System" DVD set (7 DVDs containing Solaris10 and all kinds of tools). For free. Very nice. He also pointed me to someone who succesfully used linux as a solaris jumpstart server.
If you have already setup everything to boot linux via network only few has to be done. You have to install bootparamd, and setup a file called /etc/bootparams.
For me this bootparams did the trick (with [t1000] the hostname of your t1000 and [server] the hostname of your linux machine):
[t1000] root=[server]:/tftpboot/jumpstart/install/Solaris_10/Tools/Boot rootopts=:rsize=8192,wsize=8192
Certainly Solaris has to be installed in your /tftpboot/jumpstart dir.
mkdir -p /tftpboot/jumpstart/install
mkdir /tftpboot/jumpstart/config
ln -s /bin/tar /bin/bar
ln -s /bin/sed /usr/bin/sed
ln -s /usr/bin/gdb /usr/bin/adbThen add a little script /bin/mach (and don't forget to "chmod a+x" it):
#!/bin/bash
uname -mFinally go to "Solaris_8/Tools" on the Solaris 10 DVD and start "./setup_install_server /home/jumpstart/install".
Now nfs export has to be prepared, so edit /etc/exports and add
/tftpboot/jumpstart 192.168.150.0/255.255.255.0(rw,no_root_squash,sync)Then restart nfs "/etc/init.d/nfs-user-server restart" (nfs-kernel-server did not work for me).
On OpenBoot prompt enter "boot net" and you should see the following:
Boot device: /pci@7c0/pci@0/network@4 File and args:
100 Mbps FDX Link up
Requesting Internet Address for 0:14:4f:21:d8:b4
100 Mbps FDX Link up
SunOS Release 5.10 Version Generic_118822-25 64-bit
Copyright 1983-2005 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Configuring devices.
Using RPC Bootparams for network configuration information.
Attempting to configure interface bge3...
Skipped interface bge3
Attempting to configure interface bge2...
Skipped interface bge2
Attempting to configure interface bge1...
Skipped interface bge1
Attempting to configure interface bge0...
Configured interface bge0
ERROR: bpgetfile unable to access network install information
# -So we have a Solaris prompt now. Time to mount the T1000 hd.
mkdir mnt
mount -F ufs /dev/dsk/c0t0d0s0 /mnt
ls mntFine. But how to fix the crle desaster? Don't know yet. Stay tuned.