Home
Up

Latest news
Detecting hardware
Adding a hard disk
Network card installation
...MAC address
Apple Time Capsule
Sound card
Video card
Screen resolution
Keyboard
Printers
Scanners
Advanced Lights Out Manager
Misc commands
This article groups information regarding installation, configuration and troubleshooting of hardware on Solaris 10 or OpenSolaris. By default, information concerns both operating systems (though I might not have tried on both, sorry).
This information is specific to Solaris 10. I tried Solaris 10 u4, u5 and u6, for x86 64 bits.
This information is specific to OpenSolaris. I currently use 2008.11, on x86 64 bits.

Detecting hardware

To scan PCI devices, do scanpci (as root).

# /usr/X11/bin/scanpci -v
or
# prtconf -v -p
or 
# prtdiag

To list connected hardware

cfgadm -al

To get status of hardware

iostat -En

To detect new hardware

touch /reconfigure
To list USB devices (or removable devices):
$ rmformat -l

Adding a hard disk

When adding a new hard disks, the following tasks should be done:

  1. connect the hard disk and detect it (touch /reconfigure). It is detected when new entries in /dev/rdsk appear, such as c0t1d0*. This can also be confirmed by the format command, which displays all visible disks.
  2. make sure the disk is formatted using the format command: the message "disk formatted" should be displayed
  3. partition the hard disk as desired, using the format command. To list partitions, use the format command. The flag wm means "writable and mountable", wu "writable but unmountable", rm "read-only and mountable".
  4. label the disk once partitions are correct. Use the format command. Then, the prtvtoc command should display the correct layout of partitions.
  5. create a new file system, using newfs (newfs /dev/rdsk/c0t1d0s0). This creates a UFS file system.
  6. mount it ! (using mount) (mount /dev/dsk/c0t1d0s0 /backup)

Network card installation

My network card:

pci bus 0x0002 cardnum 0x00 function 0x00: vendor 0x11ab device 0x4364
 Marvell Technology Group Ltd.  Device unknown
 CardVendor 0x105b card 0x0e0a (Card unknown)
  STATUS    0x0010  COMMAND 0x0047
  CLASS     0x02 0x00 0x00  REVISION 0x20
  BIST      0x00  HEADER 0x00  LATENCY 0x00  CACHE 0x01
  BASE0     0x00000000fddfc004  addr 0x00000000fddfc000  MEM 64BIT
  BASE2     0x0000ee01  addr 0x0000ee00  I/O
  MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0x0a
  BYTE_0    0x00  BYTE_1  0x00  BYTE_2  0xf0  BYTE_3  0x01

Download the Solaris package (I tried version 8.19.2.3), gunzip it, untar. Finally, do pkgadd -d . YUKONXsolx. Then, configure the network.

/etc/rcS.d/S50yukonx
/kernel/drv/amd64/yukonx
/kernel/drv/yukonx.conf
/usr/sbin/yukonx_vlan_config
/usr/share/man/man7d/yukonx.7d
[ verifying class <none> ]
[ verifying class <master> ]
## Executing postinstall script.
add_drv yukonx
starting network interfaces ...
yukonx0 started

My Firewire card:

pci bus 0x0003 cardnum 0x06 function 0x00: vendor 0x104c device 0x8024
 Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link)
 CardVendor 0x105b card 0x0e0a (Foxconn International, Inc., Card unknown)
  STATUS    0x0210  COMMAND 0x0006
  CLASS     0x0c 0x00 0x10  REVISION 0x00
  BIST      0x00  HEADER 0x00  LATENCY 0x40  CACHE 0x01
  BASE0     0xfdbff000  addr 0xfdbff000  MEM
  BASE1     0xfdbf8000  addr 0xfdbf8000  MEM
  MAX_LAT   0x04  MIN_GNT 0x02  INT_PIN 0x01  INT_LINE 0x0a

MAC address

$ arp -a

Apple Time Capsule

Time Capsules are shared using Samba. To discover an existing time capsule, do:
$ smbclient --no-pass -L 192.168.0.13
Domain=[WORKGROUP] OS=[Apple Base Station] Server=[CIFS 4.32]

Sound card

My sound card:

pci bus 0x0000 cardnum 0x14 function 0x02: vendor 0x1002 device 0x4383
 ATI Technologies Inc SB600 Azalia
 CardVendor 0x105b card 0x0e0a (Foxconn International, Inc., Card unknown)
  STATUS    0x0410  COMMAND 0x0006
  CLASS     0x04 0x03 0x00  REVISION 0x00
  BIST      0x00  HEADER 0x00  LATENCY 0x40  CACHE 0x01
  BASE0     0x00000000fe024004  addr 0x00000000fe024000  MEM 64BIT
  MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0x0b
  BYTE_0    0x00  BYTE_1  0x00  BYTE_2  0x02  BYTE_3  0x00
On Solaris 10, I use the OSS driver oss-solaris-v4.1-rc2-i386.pkg. On OpenSolaris, the sound card is automatically recognized :-)

pkgadd -d oss-solaris-v4.1-rc2-i386.pkg
[...]
## Installing part 1 of 1.
/etc/oss/devices.list
/etc/oss <implied directory>
/etc/oss/version.dat
/kernel/drv/amd64/oss_hdaudio
/usr/bin/osstest
/usr/bin/ossxmix
/usr/include/oss/oss_userdev_exports.h
/usr/include/oss <implied directory>
/usr/include/sys/soundcard.h
/usr/man/man1/ossinfo.1
/usr/man/man7d/oss_hdaudio.7d
/usr/sbin/ossdetect
/usr/sbin/ossdevlinks
/usr/sbin/osslic
/usr/sbin/ossupdate
/usr/sbin/savemixer
/usr/sbin/soundoff
/usr/sbin/soundon
/usr/sbin/vmixctl
## Executing postinstall script.
Setting up Open Sound System....please wait
unloaded osscommon
can't unload the module: Device busy
add_drv -m '* 0666 root sys' osscore
add_drv -m '* 0666 root sys' -i '"pci1002,4383"' oss_hdaudio
devfsadm: driver failed to attach: oss_hdaudio
Warning: Driver (oss_hdaudio) successfully added to system but failed to attach
add_drv -m '* 0666 root sys' -i '"usbif,class1"' oss_usb
devfsadm: driver failed to attach: oss_usb
Warning: Driver (oss_usb) successfully added to system but failed to attach
add_drv -m '* 0666 root sys' oss_sadasupport
devfsadm: driver failed to attach: oss_sadasupport
Warning: Driver (oss_sadasupport) successfully added to system but failed to attach

Then reboot, and try /usr/bin/osstest and see which devices works correctly.

Sound subsystem and version: OSS 4.2 (b 2005/201108060332) (0x00040100)
Platform: SunOS/i86pc 5.11 snv_111b

*** Scanning sound adapter #-1 ***
/dev/oss/oss_hdaudio0/pcm0 (audio engine 0): HD Audio play front
- Performing audio playback test... 
  left OK  OK  OK  
/dev/oss/oss_hdaudio0/pcm1 (audio engine 1): HD Audio play rear
- Performing audio playback test... 
  
Then, rename /dev/dsp:

ln -sf /dev/oss/oss_hdaudio0/pcm4 /dev/dsp

See Tips and tricks of OSS for more details.

To disable the system beep: xset -b

To set volume: if you have Gnome: gnome-volume-control

On OpenSolaris, I experienced after a while some warning messages when booting (the OSS driver was complaining about undefined symbols). To solve this issue,
  • backup /etc/oss/installed_drivers
  • remove the line with ossusb in that file (it's old and obsolete and one reason for the errors -- see this forum
  • remove the oss driver:
    pfexec rem_drv oss_usb
    
    If you do modinfo, you should not see oss_usb any longer.
  • then, restart the oss driver:
    chmod u+x /etc/init.d/oss
    pfexec ./oss stop
    pfexec ./oss start
    
To get some information on what's installed concerning OSS sound drivers:
$ ossinfo
Version info: OSS 4.2 (b 2006/201202040133) (0x00040100) 
Platform: SunOS/i86pc 5.11 snv_111b (boureautic)

Number of audio devices:        8
Number of audio engines:        12
Number of MIDI devices:         0
Number of mixer devices:        1

Device objects
 0: osscore0 OSS common devices
 1: oss_hdaudio0 ATI HD Audio interrupts=855 (1871)
    HD Audio controller ATI HD Audio
    Vendor ID    0x10024383
    Subvendor ID 0x105b0e0a
     Codec  3: ALC888 (0x10ec0888/0x105b0e0a)
 2: oss_sadasupport SADA compatibility layer

Video card

OpenSolaris
For the ATI card:
  • remove any xorg.conf you may have (unless specific settings), the default settings are fine for this card
  • remove NVidia drivers if any (pkgrm NVDAgraphicsr NVDAgraphics)
  • reboot -- -r
For the NVidia card (I have a Nvidia PCI Express N9400GT 512M DDR2)
  • get Solaris drivers from NVidia's site (NVDAgraphicsr and NVDAgraphics) and install them
  • configure X for Nvidia: nvidia-xsettings
  • reboot -- -r
NVidia provides helpful documentation to install its drivers on Solaris.

Screen resolution

Solaris:

Show acceptable screen configurations (SPARC ONLY):

ffbconfig -prconf

Try a given resolution (SPARC ONLY):

ffbconfig -res xxyyz try

If ffbconfig fails to set the correct resolution (bug), use eeprom:

eeprom ouput-device=r1024x768x60

To set 24 bit mode:

ffbconfig -deflinear true

Keyboard

To change the keyboard layout, do:
# svccfg
svc:> select keymap:default
svc:/system/keymap:default> setprop keymap/layout = German
svc:/system/keymap:default> exit
# svcadm refresh keymap:default 

Printers

On OpenIndiana: Canon Pixma MP160 is automatically recognized (at hot plug) by CUPS using driver: Canon PIXMA MP160 - CUPS+Gutenprint v5.2.4.

I still can't get Canon Pixma MP230 to work on OpenIndiana though.

Scanners

On OpenIndiana: My scanner is found, but I can't manage to scan :(
$ sane-find-scanner
found USB scanner (vendor=0x04a9 [Canon], product=0x1714 [MP160]) at libusb:/dev/usb:4a9.1714/0
$ scanimage -L
device `pixma:04A91714_75413F' is a CANON Canon PIXMA MP160 multi-function peripheral

Advanced Lights Out Manager

Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.

Sun(tm) Advanced Lights Out Manager 1.6.6

Please login: USERNAME
Please Enter password: **************

astra_> poweron
SC Alert: Host System has Reset

astra_> console

Misc commands

Getting the location of the CD or DVD burner:
cdrecord -scanbus
scsibus5:
        5,0,0   500) 'HL-DT-ST' 'DVD-RW_GSA-H41N ' 'RA00' Removable CD-ROM
Ejecting a CD: eject
Boot prompt: stop-A at any moment to get there
boot -m verbose -> to understand what's happening
boot cdrom -> to boot on CD-ROM !