Check out my first novel, midnight's simulacra!

Linux on Dells

From dankwiki
Revision as of 10:56, 15 September 2011 by Dank (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Dell has made impressive and extensive strides, in my opinion, regarding support for Linux on their various server and laptop products (I don't know much about Dell workstations). The Dell Linux Engineering Web is a good starting point for information.

Userspace Tools

OpenManage

Dell's OpenManage software can be used to access all manner of functionality. I get my Debian packages from ftp://ftp.sara.nl/pub/outgoing/dell/. FIXME

libsmbios

The System Management BIOS (SMBIOS) (specified by the Distributed Management Task Force) grew out of the DMIBIOS (so named due to interactions with the Desktop Management Interface (DMI) (also a DMTF initiative). The primary userland tools to interact with SMBIOS are those provided in conjunction with libsmbios, a Dell-led open source product with its development mailing list found here. Debian users ought install the libsmbios-bin package; developers will want the documentation. These tools use the dcdbas and dell_rbu kernel modules, available as part of the mainline kernel.

ipmitool

IPMItool can be used (together with appropriate kernel modules, see below) to operate the wealth of sensor and management functionality built into most Dell servers. Examples from a Dell R900:

[wopr](0) $ sudo ipmitool chassis status
System Power         : on
Power Overload       : false
Power Interlock      : inactive
Main Power Fault     : false
Power Control Fault  : false
Power Restore Policy : always-off
Last Power Event     : 
Chassis Intrusion    : inactive
Front-Panel Lockout  : inactive
Drive Fault          : false
Cooling/Fan Fault    : false
Sleep Button Disable : not allowed
Diag Button Disable  : allowed
Reset Button Disable : not allowed
Power Button Disable : allowed
Sleep Button Disabled: false
Diag Button Disabled : true
Reset Button Disabled: false
Power Button Disabled: true
[wopr](0) $ 

Interesting diagnostic subcommands include chassis status, sdr, lan print, sel, sensor, and fru.

Kernel Modules

  • dcdbas - Dell System Management Base. Necessary to use a majority of the libsmbios tools, as well as Dell's OpenManage software. Its kernel documentation can be found here.
  • dell_rbu (requires firmware_class) - Dell Remote BIOS Update (RBU). Necessary to use the dellBiosUpdate tool for BIOS upgrades directly from kernelspace (and thus protected mode).
  • ipmi_si, ipmi_devintf (require ipmi_msghandler) - IPMI modules necessary for ipmitool.

BIOS Upgrades

Upgrading Dell BIOSes is easily accomplished on Linux. FIXME Once you have the SystemID, acquire the appropriate BIOS code from the Dell BIOS repository. The dellBiosUpdate tool is used with this file; use -f to specify the new BIOS file, -u to specify a BIOS upgrade, and (in my experience) the --force_mono option to make things actually work; there's almost certainly something at work here unknown to me. Here's an example:

[wopr](0) $ sudo getSystemId
Libsmbios:    0.13.13
System ID:    0x01F0
Service Tag:  4HNKYF1
Express Service Code: 9774663229
Product Name: PowerEdge R900
BIOS Version: 1.1.3
Vendor:       Dell Inc.
Is Dell:      1
[wopr](0) $ sudo dellBiosUpdate --force_mono -u -f 0x01f0_version_1.1.6/bios.hdr 
Supported RBU type for this system: (MONOLITHIC, PACKET)
Using RBU v2 driver. Initializing Driver. 
Setting RBU type in v2 driver to: MONOLITHIC (FORCED) 
Prep driver for data load.
Writing RBU data (4096bytes/dot): .....................................................
Notify driver data is finished.
Activate CMOS bit to notify BIOS that update is ready on next boot.
Update staged sucessfully. BIOS update will occur on next reboot.
[wopr](0) $ sudo shutdown -r 0
[wopr](0) $ sudo getSystemId 
Libsmbios:    0.13.13
System ID:    0x01F0
Service Tag:  4HNKYF1
Express Service Code: 9774663229
Product Name: PowerEdge R900
BIOS Version: 1.1.6
Vendor:       Dell Inc.
Is Dell:      1
[wopr](0) $ 

Without the --force_mono option, all updates I've performed have seemed to work, but failed to 'take'; you are advised to use getSystemId to verify the new BIOS version upon restart.

Monitoring Disks

  • Use omreport to discover and interrogate storage; smartctl and smartd, the typical Linux SMART tools, don't generally work with the PERC controllers.
  • omreport storage controller generates controller/backplane output:
[wopr](0) $ omreport storage controller
 Controller  PERC 6/i Integrated (Embedded)

Controllers
ID                                : 0
Status                            : Ok
Name                              : PERC 6/i Integrated
Slot ID                           : Embedded
State                             : Ready
Firmware Version                  : 6.0.2-0002
Minimum Required Firmware Version : Not Applicable
Driver Version                    : 00.00.03.20-rc1 
Minimum Required Driver Version   : Not Applicable
Number of Connectors              : 2
Rebuild Rate                      : 30%
BGI Rate                          : 30%
Check Consistency Rate            : 30%
Reconstruct Rate                  : 30%
Alarm State                       : Not Applicable
Cluster Mode                      : Not Applicable
SCSI Initiator ID                 : Not Applicable
Cache Memory Size                 : 256 MB
Patrol Read Mode                  : Auto
Patrol Read State                 : Stopped
Patrol Read Rate                  : 30%
Patrol Read Iterations            : 26

[wopr](0) $ 
  • omreport storage pdisk generates physical disk info:
[wopr](255) $ omreport storage pdisk controller=0
List of Physical Disks on Controller PERC 6/i Integrated (Embedded)

Controller PERC 6/i Integrated (Embedded)
ID                        : 0:0:0
Status                    : Ok
Name                      : Physical Disk 0:0:0
State                     : Online
Failure Predicted         : No
Progress                  : Not Applicable
Type                      : SAS
Capacity                  : 278.88 GB (299439751168 bytes)
Used RAID Disk Space      : 278.88 GB (299439751168 bytes)
Available RAID Disk Space : 0.00 GB (0 bytes)
Hot Spare                 : No
Vendor ID                 : DELL    
Product ID                : HUS153030VLS300 
Revision                  : A280
Serial No.                : J8WBX7NC            
Negotiated Speed          : Not Available
Capable Speed             : Not Available
Manufacture Day           : 05
Manufacture Week          : 11
Manufacture Year          : 2008
SAS Address               : 5000CCA0054E067D
....
[wopr](0) $ 
  • Finally, omreport storage vdisk reports on logical volumes:
[wopr](0) $ omreport storage vdisk
List of Virtual Disks in the System

Controller PERC 6/i Integrated (Embedded)
ID                  : 0
Status              : Ok
Name                : Virtual Disk 0
State               : Ready
Progress            : Not Applicable
Layout              : RAID-5
Size                : 1,115.50 GB (1197759004672 bytes)
Device Name         : /dev/sda
Type                : SAS
Read Policy         : No Read Ahead
Write Policy        : Write Back
Cache Policy        : Not Applicable
Stripe Element Size : 64 KB
Disk Cache Policy   : Disabled

[wopr](0) $ 
  • Other interesting commands include omreport storage enclosure

Hardware Compability / Issues

Dell PowerEdge R900

  • Dell's R900 page
  • 4U server, 2 or 4 quad-core Xeons, 4-64G 667MHz RAM
  • Most recent tested BIOS: 0x01F0-1.1.6
  • Broadcom NICs (eg: NetXtreme II BCM5708, PCIID 14e4:164c) require non-free firmware (firmware-bnx2 package in Debian)
  • PERC 6/i LSI Logic MegaRAID SAS 1078 SAS controller doesn't seem usable with eg mptctl or smartctl
  • Use kernel modules ioatdma

Dell PowerEdge 1950

  • Dell's 1950 III page
  • 1U server, 1 dual-or-quad-core Xeon, 1-8G 667MHz RAM
  • Most recent tested BIOS: 0x01B3-2.3.1
  • Broadcom NICs (eg: NetXtreme II BCM5708, PCIID 14e4:164c) require non-free firmware (firmware-bnx2 package in Debian)
  • Use kernel modules ioatdma, i5000_edac

Dell ATG D630

  • Dell's ATG D630 page
  • Ruggedized laptop, 1 dual-core Core 2 Duo, .5-6G 533-667MHz RAM
  • Most recent tested BIOS: 0x0159-A12
  • Use kernel modules ahci (be sure to enable AHCI mode in the BIOS SATA configuration)

Dell e6510

  • Sensor monitoring through coretemp and i8k

See Also

  • Linux kernel dell_rbu documentation
  • Gentoo Wiki HOWTO -- Dell BIOS Upgrades
  • Dell Wiki page on firmware updates