Tag Archives: hardware

HP MicroServer G7 RAC and Linux

How to flash a new firmware and how to set the network remotely without rebooting.

Download the new firmware (version 1.4 as writing) from the HP website

The flashing utility SOCFLASH is available on the Aspeed website (direct link). The utility is available also for Linux both 32 and 64 bit.

Flash the new RAC firmware

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ ./socflash.sh all.1.4.bin old.1.3.bin
ASPEED SOC Flash Utility v.1.09.04
Find ASPEED Device 1a03:2000 on 3:0.0
Relacate IO Base: e800
MMIO Virtual Address: 3e18000
Static Memory Controller Information:
CS0 Flash Type is SPI
CS1 Flash Type is NOR
CS2 Flash Type is SPI
Boot CS is 2
Option Information:
CS: 2
Flash Type: SPI
[Warning] Don\'t AC OFF or Reboot System During BMC Firmware Update!!
[SOCFLASH] Flash ID : 180101
Find Flash Chip #1: SpansionS25FL128 SE64KB
Backup Flash Chip O.K.
Check Flash Chip #1 at: 440000

Setup IPMI in the OS

1
2
$ modprobe ipmi_si type=kcs ports=0xca2
$ echo "ipmi_si type=kcs ports=0xca2" > /etc/modprobe.d/ipmi.conf

Change the network settings

1
2
3
4
5
6
7
8
9
10
$ ipmitool shell
ipmitool> lan set 1 ipsrc static
ipmitool> lan set 1 ipaddr 172.16.12.238
Setting LAN IP Address to 172.16.12.238
ipmitool> lan set 1 netmask 255.255.255.0
Setting LAN Subnet Mask to 255.255.255.0
ipmitool> lan set 1 defgw ipaddr 172.16.12.10
Setting LAN Default Gateway IP to 172.16.12.10
ipmitool> mc reset warm
Sent warm reset command to MC

HP MicroServer + RAC on Fedora 18

After upgrading my HP MicroServer with Remote Access Card from Fedora 17 to Fedora 18 (kernel-3.8.3-203.fc18) the RAC KVM console (remote and VGA) stopped to work with ‘out-of-range’ signal after:

[ 4.072580] [drm] Initialized drm 1.1.0 20060810
[ 4.104362] [drm] AST 1100 detected
[ 4.104500] [drm] dram 816000000 1 16 04000000
[ 4.104785] [TTM] Zone kernel: Available graphics memory: 2024944 kiB
[ 4.104913] [TTM] Initializing pool allocator
[ 4.105035] [TTM] Initializing DMA pool allocator
[ 10.522147] [sched_delayed] sched: RT throttling activated

The MicroServer RAC has an AST1100 video controller that currently doesn’t work very well with the Linux KMS (Kernel Mode Setting).

HP RAC KVM out of sync

 

So, to fix this issue you need to disable the KMS for the ast module:

  • Edit /etc/sysconfig/grub and at the end of the GRUB_CMDLINE_LINUX line add “ast.modeset=0 nomodeset
    GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=latarcyrheb-sun16 rd.luks=0 KEYTABLE=it LANG=en_US.UTF-8 ast.modeset=0 nomodeset quiet"
  • Update the grub2 configuration
    grub2-mkconfig -o /boot/grub2/grub.cfg

OPTIONAL

  • Create /etc/modprobe.d/ast.conf with
    options ast modeset=0
  • Update the initramfs with dracut
    dracut --force

The bug has been reported at RedHat Bugzilla bug #926064.

References:
modinfo ast:

filename:       /lib/modules/3.8.3-203.fc18.x86_64/kernel/drivers/gpu/drm/ast/ast.ko
license:        GPL and additional rights
description:    AST
author:         Dave Airlie
alias:          pci:v00001A03d00002010sv*sd*bc03sc*i*
alias:          pci:v00001A03d00002000sv*sd*bc03sc*i*
depends:        drm,drm_kms_helper,ttm,i2c-core,i2c-algo-bit
intree:         Y
vermagic:       3.8.3-203.fc18.x86_64 SMP mod_unload
parm:           modeset:Disable/Enable modesetting (int)

APCUPSD bug USB

Attenzione! Il post non è più aggiornato poiché il bug è stato risolto nella release 3.4.10 di apcupsd.

3.14.10 -- 13 September 2011         (Maintenance Release)
 
BUG FIXES
 
  * Fix missing status and spurrious incorrect status on newer BackUPS CS
    models using USB interface.
  [...]

APCUPSD è un comodissimo software per chi possiede un UPS della APC.
Esso permette di monitorare lo stato dell’UPS, inviare alert e email in caso di blackout, avviare lo spegnimento dei server collegati a seguito di un blackout prolungato, ecc…

Dall’ultima versione, la 3.14.8, è stato introdotto un bug che si viene a verificare nel caso di utilizzo del software in abbinamento ad un UPS APC BackUp CS collegato tramite USB: ogni qualvolta che il demone effettua il polling dell’unità viene generato un errore di controllo nel subsystem USB

[...]
USB disconnect, address 6
usb 3-2: ctrl urb status -62 received
[...]

causando tra l’altro la disconnessione e riconnessione della periferica HID (viene vista dal kernel come una HID). Continue reading

Dove sono le viti?

L’HP MicroServer offre un totale di 4 bay da 3.5″ per hardisk LFF e 1 bay per unità da 5.25″ (unità ottiche o a nastro). Normalmente solo un cassettino degli HDD è popolato, gli altri tre sono vuoti.

Qual’ora si volesse aggiungere ulteriori dischi HP fornisce tutti gli strumenti e i materiali necessari al montaggio. Dietro allo sportellino frontale infatti si trovano due set di viti (per 3.5″ e per 5.25″) e la brugola adatta all’utilizzo con le viti fornite (serve anche per poter smontare la mainboard ndr.).

Dal manuale:

Il post è dedicato a Michele

Lettore SD HP Mini 110

L’HP Mini 110-3100 monta un lettore di schede SD costruito da Realtek. Esso viene visto in linux come

01:00.1 Class ff00: Realtek Semiconductor Co., Ltd. Device 5288 (rev 01)

tuttavia allo stato attuale non è ancora disponibile, all’interno del kernel Linux, il driver che ne possa garantire il funzionamento.
Realtek fornisce sul proprio sito i sorgenti (GPL) per poter compilare il modulo e utilizzare così il reader. Tali driver sono in stato di “staging” per l’inclusione (essendo appunto GPL) direttamente upstream nel kernel ufficiale. L’inclusione è in corso e non è immediata, gli sviluppatori stanno integrando il codice del modulo riscrivendone alcune parti; infatti il driver Realtek, pur funzionando alla perfezione, è molto esoso di interrupt, causando tra le altre un uso di energia superiore: la cosa, non trascurabile su di un net/notebook è facilmente evidenziabile grazie all’ottimo tool Intel powertop.

Per compilare il modulo è necessario scaricare i sorgenti dal sito Realtek (sono 77kb) e disporre di gcc, degli header e dei sorgenti del kernel; con Fedora è sufficiente eseguire

yum install -y gcc kernel-headers kernel-devel

quindi scompattare il tar bz2

tar xjvf rts_pstor.tar.bz2

ed infine compilare ed installare il modulo

cd rts_pstor
make
make install
depmod

Al successivo riavvio il modulo sarà caricato automaticamente e il lettore SD funzionerà senza problemi.
Se si volesse disattivare il caricamento automatico è sufficiente creare il file /etc/modprobe.d/blacklist-rts.conf inserendo la riga

blacklist rts_pstor

In questo modo, qualora si volesse utilizzare il lettore, si dovrà prima eseguire da terminale il comando

modprobe rts_pstor

Western Digital aggressive head parking

Ho da qualche giorno acquistato due Western Digital Caviar Green da 2TB (modello EARS) da montare in un MicroServer (non mio, io ho due Seagate Barracuda LP).
Ho subito notato che non è possibile tramite hdparm gestire l’APM (advanced power management) e che il disco effettua spessissimo il parcheggio delle testine.
Il controllo con smartctl ha subito evidenziato un notevole aumento del valore load_cycle_count. Se il contatore raggiunge valori molto alti viene meno l’affidabilità del disco (sono garantiti 300.000 cicli, ma meno sono e meglio è).

Cercando con google ho scoperto che tali dischi hanno impostato a livello di firmware un timeout per il parcheggio di soli 8 secondi! Non mi è stato possibile effettuare l’override delle impostazioni con hdparm: se il parametro -B255 da errore (vedi sopra) il parametro -S240 (che imposta il timeout a 20 minuti) non sortisce effetti.

Ho scoperto che anche l’unità dell’HP Mini (sempre un WD, ma un Scorpio Blu) è soggetta allo stesso problema (qui addirittura ogni 4 secondi!): in questo caso mi ero accorto del comportamento troppo aggressivo del firmware, ma ero riuscito ad arginare il problema disabilitando l’APM con

hdparm -B255 /dev/sda

Sempre grazie a google ho trovato la soluzione definitiva sia per i Green che per lo Scorpio: si tratta dell’utility WDidle 3.1 che ufficialmente è per altri modelli sempre WD, ma che almeno con i miei esemplari funziona a meraviglia. Continue reading

MicroServer GPT support

Con mia piacevole sorpresa ho scoperto che l’HP MicroServer, pur non avendo EFI, supporta il boot da dischi partizionati con struttura GPT invece che MBR. Con Fedora 14 è stato sufficiente preparare i dischi formattati con gdisk; anaconda, l’installer, li riconosce correttamente; è quindi possibile utilizzare il disco.

I vantaggi di GPT sono molti, a partire dall’assenza di problemi di allineamento (soprattutto con dischi a settori di 4k) passando per il supporto a più di 4 partizioni primarie.

Riferimenti

https://wiki.archlinux.org/index.php/Advanced_Format

Disks hot-swap

Sebbene ufficialmente l’HP ProLiant Microserver non supporti l’hotswap dei dischi è possibile con un kernel Linux recente eseguire la sostituzione (o la sola rimozione) di un’unità; ecco come:

Per prima cosa è ovviamente necessario smontare l’unità tramite il comando di base umount; supponendo che il disco da disconnettere sia sdc il comando è

sync && umount /dev/sdc

A questo punto è necessario mandare offline l’unità da rimuovere; è possibile farlo attraverso l’interfaccia kernel in /sys con il comando

echo 1 > /sys/block/sdc/device/delete

Una volta eseguito il comando l’unità verà rimossa dal subsystem scsi (sata) e spenta; il disco effettuerà lo spin-down.

E’ ora possibile rimuovere l’unità, operazione che sul MicroServer risulta molto semplice e rapida.

Per l’inserimento di una nuova unità è sufficiente connetterla al sistema. Linux provvederà in modo autonomo al riconoscimento del disco e alla connessione dello stesso al subsystem scsi. Sarà possibile ora montare l’unità od effettuare altre operazioni sul disco (partizionamento, etc.); se non si è sicuri del device associato alla nuova unità collegata è possibile controllare gli ultimi messaggi del kernel attraverso il comando dmesg.

Questa tecnica risulta estremamente comoda in caso di fault di un’unità disco parte di una catena RAID di mirroring.

UPDATE 29/03/2011

Per poter effetture tali operazioni di hot-swap il controller deve essere settato in modalità “AHCI”. L’opzione è modificabile, dove supportata, attraverso il BIOS.