Tuesday Aug 25, 2009

Experiencing Linux on SPARC: LDOM@Gentoo revisited

The first (small) success!

Last time I worked on this I was left with close to nothing: neither debian nor the gentoo install CDs could boot (precisely: they did boot but couldn't mount the install image) Same problem on a native SPARC Niagara2 system (T5240). Only an old UltraSPARC-T1box was able to get further than booting a then useless CD, I could track it down to a squashfs mount issue and opened bug 279472 against gentoo install. After it has been resolved (it was caused by an incompatibility between squahfs and the kernel...) install-sparc64-minimal-20090817.iso does and the install works passed booting of the CD:

root@batoka-labor,linux-boot>ldm start gentoo
LDom gentoo started
root@batoka-labor,linux-boot>telnet 0 5000
Trying 0.0.0.0...
Connected to 0.
Escape character is '\^]'.

Connecting to console "gentoo" in group "gentoo" ....
Press ~? for control options ..


T5440, No Keyboard
Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
OpenBoot 4.30.0, 4096 MB memory available, Serial #83541553.
Ethernet address 0:14:4f:fa:be:31, Host ID: 84fabe31.



{0} ok
{0} ok boot cdrom
Boot device: /virtual-devices@100/channel-devices@200/disk@1  File and args:
SILO Version 1.4.14
\\

----------------------------------------------------
Welcome to the Gentoo/Linux SPARC64 weekly InstallCD
----------------------------------------------------

boot: gentoo cdroot=/dev/vdiskb1
Allocated 64 Megs of memory at 0x40000000 for kernel
Loaded kernel version 2.6.28
Loading initial ramdisk (1847651 bytes at 0x6800000 phys, 0x40C00000 virt)...
\\

...a lot of Linux kernel humble-mumble omitted....

>> Activating mdev
>> Making tmpfs for /newroot
>> Looking for the cdrom
>> Attempting to mount media:- /dev/vdiskb1
>> Media found on /dev/vdiskb1
>> Determining root device...
>> Determining looptype ...
>> Mounting squashfs filesystem
>> Copying read-write image contents to tmpfs
>> No cdupdate.sh script found, skipping...
>> Booting (initramfs)..
INIT: version 2.86 booting

Gentoo Linux; http://www.gentoo.org/
 Copyright 1999-2007 Gentoo Foundation; Distributed under the GPLv2

 \* Mounting proc at /proc ...                                             [ ok ] \* Mounting sysfs at /sys ...                                             [ ok ] \* Mounting /dev ...                                                      [ ok ] \* Starting udevd ...                                                     [ ok ] \* Populating /dev with existing devices through uevents ...              [ ok ] \* Waiting for uevents to be processed ...                                [ !! ] \* Mounting devpts at /dev/pts ...                                        [ ok ] \* Mounting local filesystems ...                                         [ ok ] \* Mounting USB device filesystem (usbfs) ...                             [ ok ] \* Activating (possible) swap ...                                         [ ok ] \* Setting system clock using the hardware clock [UTC] ...                [ ok ] \* Configuring kernel parameters ...                                      [ ok ] \* Updating environment ...                                               [ ok ] \* Cleaning /var/lock, /var/run ...                                       [ ok ] \* Updating inittab ...                                                   [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* Setting hostname to livecd ...                                         [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* Starting lo
 \*   Bringing up lo
 \*     127.0.0.1/8
                                                                          [ ok ] \*   Adding routes
 \*     127.0.0.0/8 ...                                                    [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* Initializing random number generator ...                               [ ok ]INIT: Entering runlevel: 3
 \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* Starting syslog-ng ...                                                 [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* Hardware detection started ...
 \* Detected 8 active T2 (Niagara2) CPU(s) of 8 total
                                                                          [ ok ] \* Unpacking firmware ...tar: ./ql2400_fw.bin.4.02.02-MID: time stamp 2009-08-17 16:32:14 is 294342652.02588504 s in the future
tar: ./ql2100_fw.bin.1.19.38-TP: time stamp 2009-08-17 16:32:14 is 294342652.020644702 s in the future
tar: ./ql2400_fw.bin.4.00.26-IP: time stamp 2009-08-17 16:32:14 is 294342652.002011365 s in the future
tar: ./whiteheat_loader.fw: time stamp 2009-08-17 18:18:59 is 294349057.001625306 s in the future
tar: ./edgeport/boot2.fw: time stamp 2009-08-17 18:18:59 is 294349057.001033736 s in the future
tar: ./edgeport/boot.fw: time stamp 2009-08-17 18:18:59 is 294349057.000764341 s in the future
tar: ./edgeport/down2.fw: time stamp 2009-08-17 18:18:59 is 294349056.999340397 s in the future
tar: ./edgeport/down3.bin: time stamp 2009-08-17 18:18:59 is 294349056.998421595 s in the future
tar: ./edgeport/down.fw: time stamp 2009-08-17 18:18:59 is 294349056.997250881 s in the future
tar: ./edgeport: time stamp 2009-08-17 18:18:59 is 294349056.997046251 s in the future
tar: ./ql2400_fw.bin.4.00.27-IP: time stamp 2009-08-17 16:32:14 is 294342651.978127465 s in the future
tar: ./ql2400_fw.bin.4.00.22-IP: time stamp 2009-08-17 16:32:14 is 294342651.619182933 s in the future
tar: ./emi26/loader.fw: time stamp 2009-08-17 18:18:59 is 294349056.618648762 s in the future
tar: ./emi26/firmware.fw: time stamp 2009-08-17 18:18:59 is 294349056.61824269 s in the future
tar: ./emi26/bitstream.fw: time stamp 2009-08-17 18:18:59 is 294349056.608059889 s in the future
tar: ./emi26: time stamp 2009-08-17 18:18:59 is 294349056.607868344 s in the future
tar: ./ql2322_fw.bin.3.03.18: time stamp 2009-08-17 16:32:14 is 294342651.596939813 s in the future
tar: ./ql2322_fw.bin.3.03.20-IPX: time stamp 2009-08-17 16:32:14 is 294342651.585373532 s in the future
tar: ./keyspan_pda/xircom_pgs.fw: time stamp 2009-08-17 18:18:59 is 294349056.585084344 s in the future
tar: ./keyspan_pda/keyspan_pda.fw: time stamp 2009-08-17 18:18:59 is 294349056.584870918 s in the future
tar: ./keyspan_pda: time stamp 2009-08-17 18:18:59 is 294349056.584716098 s in the future
tar: ./whiteheat.fw: time stamp 2009-08-17 18:18:59 is 294349056.582405129 s in the future
tar: ./ql6312_fw.bin.3.03.18: time stamp 2009-08-17 16:32:15 is 294342652.572845455 s in the future
tar: ./ql2100_fw.bin.1.17.38: time stamp 2009-08-17 16:32:14 is 294342651.566923053 s in the future
tar: ./emi62/loader.fw: time stamp 2009-08-17 18:18:59 is 294349056.566665534 s in the future
tar: ./emi62/spdif.fw: time stamp 2009-08-17 18:18:59 is 294349056.564197985 s in the future
tar: ./emi62/midi.fw: time stamp 2009-08-17 18:18:59 is 294349056.561709436 s in the future
tar: ./emi62/bitstream.fw: time stamp 2009-08-17 18:18:59 is 294349056.551455273 s in the future
tar: ./emi62: time stamp 2009-08-17 18:18:59 is 294349056.551267465 s in the future
tar: ./ql2400_fw.bin.4.00.16: time stamp 2009-08-17 16:32:14 is 294342651.206974394 s in the future
tar: ./ql2400_fw.bin.4.00.18-IP: time stamp 2009-08-17 16:32:14 is 294342651.189752357 s in the future
tar: ./sun/cassini.bin: time stamp 2009-08-17 18:18:59 is 294349056.189298893 s in the future
tar: ./sun: time stamp 2009-08-17 18:18:59 is 294349056.189123841 s in the future
tar: ./ti_5052.fw: time stamp 2009-08-17 18:18:59 is 294349056.187469867 s in the future
tar: ./ql2300_fw.bin.3.03.20-IPX: time stamp 2009-08-17 16:32:14 is 294342651.176112833 s in the future
tar: ./ql2300_fw.bin.3.03.18: time stamp 2009-08-17 16:32:14 is 294342651.166202945 s in the future
tar: ./ql2500_fw.bin.4.02.02-MID: time stamp 2009-08-17 16:32:14 is 294342651.146737233 s in the future
tar: ./ti_3410.fw: time stamp 2009-08-17 18:18:59 is 294349056.145086666 s in the future
tar: ./ql2200_fw.bin.2.02.08-TP: time stamp 2009-08-17 16:32:14 is 294342650.990960402 s in the future
tar: ./kaweth/new_code_fix.bin: time stamp 2009-08-17 18:18:59 is 294349055.990153646 s in the future
tar: ./kaweth/trigger_code.bin: time stamp 2009-08-17 18:18:59 is 294349055.989936921 s in the future
tar: ./kaweth/trigger_code_fix.bin: time stamp 2009-08-17 18:18:59 is 294349055.989728222 s in the future
tar: ./kaweth/new_code.bin: time stamp 2009-08-17 18:18:59 is 294349055.989515785 s in the future
tar: ./kaweth: time stamp 2009-08-17 18:18:59 is 294349055.989361296 s in the future
tar: ./ql2500_fw.bin.4.02.02: time stamp 2009-08-17 16:32:14 is 294342650.974604057 s in the future
tar: ./ql2400_fw.bin.4.00.23-IP: time stamp 2009-08-17 16:32:14 is 294342650.958950448 s in the future
tar: .: time stamp 2009-08-17 18:18:59 is 294349055.958335788 s in the future
                                                 [ ok ]
l\* Not Loading APM Bios support ...
 \* Not Loading ACPI support ...
 \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* Network device eth0 detected, DHCP broadcasting for IP ...
 \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* Starting portmap ...                                                   [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* ERROR:  cannot start nfsmount as rpc.statd could not start
 \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
 \* Caching service dependencies ...                                       [ ok ] \* Auto-scrambling root password for security ...                         [ ok ] \* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
 \* has a modification time in the future!
F\* Caching service dependencies ...                                       [ ok ] \* Starting local ...                                                     [ ok ]
Welcome to the Gentoo Linux Minimal Installation CD!

The root password on this system has been auto-scrambled for security.

If any ethernet adapters were detected at boot, they should be auto-configured
if DHCP is available on your network.  Type "net-setup eth0" to specify eth0 IP
address settings by hand.

Check /etc/kernels/kernel-config-\* for kernel configuration(s).
The latest version of the Handbook is always available from the Gentoo web
site by typing "links http://www.gentoo.org/doc/en/handbook/handbook.xml".

To start an ssh server on this system, type "/etc/init.d/sshd start".  If you
need to log in remotely as root, type "passwd root" to reset root's password
to a known value.

Please report any bugs you find to http://bugs.gentoo.org. Be sure to include
detailed information about how to reproduce the bug you are reporting.
Thank you for using Gentoo Linux!

livecd ~ #

Ladies and Gentlemen: Gentoo install environment is up and running.

Next I'll follow the gentoo docs to the letter and install to the local (virtual) disk.

Wednesday Jul 29, 2009

Experiencing Linux on SPARC: LDOM@Gentoo

On it goes, I'll begin with gentoo, latest Minimal CD I could put my hands on (install-sparc64-minimal-20090727.iso). After binding/starting the LDOM one boots it nearly as usual:

root@batoka-labor,linux-boot>telnet 0 5000
Trying 0.0.0.0...
Connected to 0.
Escape character is '\^]'.

Connecting to console "gentoo" in group "gentoo" ....
Press ~? for control options ..

{0} ok boot cdrom
Boot device: /virtual-devices@100/channel-devices@200/disk@1  File and args:
SILO Version 1.4.14
\\

----------------------------------------------------
Welcome to the Gentoo/Linux SPARC64 weekly InstallCD
----------------------------------------------------

boot: gentoo cdroot=/dev/vdiskb1

It took me half a day to find out about the "cdroot" option and its usage. It became necessary because the gentoo kernel only checks "normal" CDROM drive locations.

After a lot of Linux kernel boot messages, it runs in an error:

>> Making tmpfs for /newroot
>> Looking for the cdrom
>> Attempting to mount media:- /dev/vdiskb1
>> Media found on /dev/vdiskb1
>> Determining root device...
>> Determining looptype ...
>> Mounting squashfs filesystem
mount: mounting /dev/loop0 on /newroot/mnt/livecd failed: Invalid argument
!! Failed to $1; failing back to the shell...

The kernel has only little more to say:

# dmesg|tail
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
fuse init (API version 7.10)
Intel(R) PRO/1000 Network Driver - version 7.3.21-k3-NAPI
Copyright (c) 1999-2006 Intel Corporation.
EXT4-fs: Update your userspace programs to mount using ext4
EXT4-fs: ext4dev backwards compatibility will go away by 2.6.31
ISO 9660 Extensions: Microsoft Joliet Level 3
ISO 9660 Extensions: RRIP_1991A
SQUASHFS: Mounting a different endian SQUASHFS filesystem on loop0
#

Trying the mount command from the command line fails too. Next try: same setup but use 2008.0 Gentoo minimal CD image:

>> Making tmpfs for /newroot
>> Looking for the cdrom
!! Media not found
>> No bootable medium found. Waiting for new devices...
>> Looking for the cdrom
!! Media not found
!! Could not find CD to boot, something else needed!
>> Determining root device...
!! Could not find the root block device in .
   Please specify another value or: press Enter for the same, type "shell" for a shell, or "q" to skip...
root block device() :: shell
To leave and try again just press <Ctrl>+D


BusyBox v1.7.4 (2008-06-12 10:01:44 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/ash: can't access tty; job control turned off

Well, again no luck. This time the failure has any easy explanation: Looks like this CD image does not a vdisk driver in it, the  "/dev" directory does not list any vdisk devices...

I'll go check with Dr. Google once more, although seemingly no one has tried before.

 

Experiencing Linux on SPARC: The beginning...

Since Linux is an ongoing hype, and since I found some spare time I decided to explore an unknown land (at least to me): How can one install a whole Linux system on recent SPARC gear? And, to not reinvent the wheel, the platform shall be a Logical Domain.

The first research targeted the available distributions. The Linux Kernel itself does have LDOMs support since 2.6.2x (IIRC it was 2.6.23), but the Kernel by itself is of little to no use at all. (The support for the sun4v architecture has been in 2.6 for a longer time, but besides the sun4v support one has to have support for the vnet and vdisk drivers.) Ubuntu had dropped support for sun4v/SPARC systems, my employer does not maintain it's own distribution or extend the support of existing (commercial) distros, so the most important distributions (SuSE and Redhat) were no choice.

This left me with free distros, namely

  • Gentoo, which is a little freaky because one usually recomiles everything. But this recompilation makes it very "portable" and should provide optimal performance.
  • Debian, which is well known in Linux land for being able to run virtually everything that is based on silicon and is easy to administer in daily operation

(I will not explore LFS which is even too freaky for me. Well, maybe I'll try that later too...)

Testing ground was a Niagara 2 based system in Sun-internal lab, right now it's actually a T5440 hosting my playground LDOMs  (thanks to the simplicity of moving LDOMs around the actual system
doesn't matter much)

The only virtual services I used were: 

root@batoka-labor,linux-boot>ldm add-vsw net-dev=nxge0 primary-nxge0 primary
root@batoka-labor,linux-boot>ldm add-vds primary-vds primary

Both LDOMs had a straightforward setup (one core, 4G memory, virtual disk backed up by a ZFS volume):

root@batoka-labor,linux-boot>ldm create gentoo
root@batoka-labor,linux-boot>ldm set-vcpu 8 gentoo
root@batoka-labor,linux-boot>ldm set-mem 4G gentoo
root@batoka-labor,linux-boot>ldm add-vnet main primary-nxge0 gentoo
root@batoka-labor,linux-boot>ldm add-vdsdev /dev/zvol/rdsk/rpool/gentoo-root gentoo-root@primary-vds
root@batoka-labor,linux-boot>ldm add-vdisk rootdisk gentoo-root@primary gentoo

I switched back and forth between the different boot CDs by simply changing the physical device backing up the virtual device cdrom:

root@batoka-labor,linux-boot>ldm add-vdsdev /root/linux-boot/install-sparc64-minimal-20090713.iso gentoo-cd-20090713@primary-vds
root@batoka-labor,linux-boot>ldm add-vdisk cdrom gentoo-cd-20090713@primary gentoo

 (The debian guest had the same configuration)

About

Before Sun was acquired by Oracle I was about 12 yrs in pre-sales covering SPARC and Solaris. Today I work in a field role in Oracle Microelectronics and focus on SPARC performance, including working and presenting at customer sites all over EMEA

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today