Instalacja Debian 9 na serwerze DELL PowerEdge z PERC H740P

Konrad Kowalski
  • Konrad Kowalski
  • 21/06/2018
  • Debian
  • 0 komentarzy
DELL-EMC logo

Wraz z pojawieniem się 14 generacji serwerów PowerEdge, DELL wprowadził do sprzedaży nową wersję kontrolerów PERC H740P. W porównaniu do poprzedniej generacji H730, nowa seria została wyposażona w 8GB pamięci, co jest znaczącą zmianą w porównaniu do 2 GB spotykanych w starszych kontrolerach. Ze względu na fakt że nowe urządzenia zostały wprowadzone do sprzedaży dość niedawno, do pełnej obsługi w systemie Linux wymagana jest aktualna wersja jądra systemowego (4.11 lub nowsza). Kontroler PERC H740P, może być również obsługiwany w starszych systemach (w tym w Debianie 9 z domyślnym kernelem 4.9.0-6), jednakże wymaga to trochę dodatkowej pracy ze strony administratora.

Kompilacja sterowników dostarczonych przez firmę DELL

Oficjalny instalator systemy Debian 9 zawiera jądro systemowe w wersji 4.9.0-6, które nie zawiera odpowiedniej wersji sterownika megaraid_sas, obsługującej kontroler PERC H740P. Sterowniki można znaleźć na stronie wsparcia technicznego DELL. Niestety nie ma wersji dla Debiana. Należy pobrać paczkę do systemu SUSE Linux.

DELL PowerEdge 14 - PERC 740P (sterowniki Linux)

DELL PowerEdge 14 – PERC 740P (sterowniki Linux)

Na liście należy znaleźć SUSE Linux ES 12 SP3 for Dell PERC …

Następnie należy wyświetlić szczegółowe informacje dotyczące sterownika , gdzie można pobrać archiwum zwierające sterowniki UnifiedDriver_….

Przed użyciem sterowników w systemie docelowym należy jest wcześniej skompilować – WAŻNE !!! w systemie z dokładnie taką samą wersją jądra co system, na którym ma być obsługiwany kontroler PERC H740P. Kompilacji można dokonać np. na maszynie wirtualnej.

W przykładzie sterowniki będą kompilowane dla systemu Debian 9.4 / w systemie Debian 9.4 z kernelem 4.9.0-6-amd64

cat /etc/debian_version
9.4
uname -a
Linux di 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux                                                                                                    

Przed rozpoczęciem kompilacji sterowników należy doinstalować kilka dodatkowych paczek, umożliwiające zbudowanie sterownika.

apt-get install linux-headers-$(uname -r) build-essential rpm2cpio

Po pobraniu sterowników ze strony DELL’a należy je rozpakować.

tar -xvf UnifiedDriver_7.703.06.00_SLES12SP3.tar.gz
UnifiedDriver_7.703.06.00_SLES12SP3/
UnifiedDriver_7.703.06.00_SLES12SP3/lsi-megaraid_sas-07.703.06.00-6.1.src.rpm
UnifiedDriver_7.703.06.00_SLES12SP3/lsi-megaraid_sas-kmp-default-07.703.06.00_sl                                                                                                             es12-sp3-1.x86_64.rpm
UnifiedDriver_7.703.06.00_SLES12SP3/megaraid_sas-07.703.06.00-1-sles12-sp3.x86_6                                                                                                             4.iso.gz

Źródła sterownika znajdują się w pakiecie rpm – UnifiedDriver_7.703.06.00_SLES12SP3/lsi-megaraid_sas-07.703.06.00-6.1.src.rpm
Aby wypakować archiwum ze źródłami z paczki rpm należy użyć następującego polecenia

rpm2cpio lsi-megaraid_sas-07.703.06.00-6.1.src.rpm | cpio -idmv
lsi-megaraid_sas.spec
megaraid_sas-07.703.06.00.tar.bz2
216 bloków

W kolejnym kroku należy rozpakować archiwum poleceniem

tar -jxvf megaraid_sas-07.703.06.00.tar.bz2
megaraid_sas-07.703.06.00/
megaraid_sas-07.703.06.00/megaraid_sas_fp.c
megaraid_sas-07.703.06.00/megaraid_sas_base.c
megaraid_sas-07.703.06.00/compile.sh
megaraid_sas-07.703.06.00/megaraid_sas_fusion.h
megaraid_sas-07.703.06.00/dkms.conf
megaraid_sas-07.703.06.00/Makefile.standalone
megaraid_sas-07.703.06.00/megaraid_sas_fusion.c
megaraid_sas-07.703.06.00/Makefile
megaraid_sas-07.703.06.00/megaraid_sas.h

W następnym kroku należy przejść do katalogu z plikami wypakowanymi z archiwum

cd megaraid_sas-07.703.06.00

a następnie rozpocząć kompilację

./compile.sh

Najważniejszym plikiem wynikowym jest plik megaraid_sas.ko

ls -la | grep *.ko
-rw-r--r-- 1 root root 2228352 cze 22 12:53 megaraid_sas.ko
-rw-r--r-- 1 root root     475 cze 22 12:53 .megaraid_sas.ko.cmd

Należy go skopiować na pendrive lub zamontować jako napęd wirtualny w iDRAC.

Instalacja systemu Debian 9 na serwerze DELL PowerEdge z kontrolerm PERC H740P

Do instalacji Debiana zostanie wykorzystany oficjalny instalator (zawiera on kernel w wersji 4.9.0-6-amd64 czyli taki sam na jakim skompilowany został sterownik w poprzedniej części artykułu).

Instalacja powinna przebiegać normalnie do momentu konfiguracji sieci.
DELL PERC H740P - Instalacja systemu Debian 9

W tym momencie należy przełączyć się na inna konsolę instalatora wydając kombinację klawiszy Ctrl-Alt-F2
DELL PERC H740P - Instalacja systemu Debian 9 - iDRAC

W nowej konsoli należy zamontować wcześniej przygotowany pendrive zawierający sterowniki, a następnie przekopiować go w ścieżkę widoczną przez instalator.

mount -t vfat /dev/sda1 /mnt/
cp /mnt/megaraid_sas.ko /lib/modules/$(uname -r)/kernel/drivers/scsi/megaraid/

Po przekopiowaniu sterownika należy go załadować a następnie odmontować pendrive

modprobe megaraid_sas
umount /mnt

W kolejnym kroku można powrócić do instalacji systemu wydając kombinację klawiszy Ctrl-Alt-F1

DELL PERC H740P - Instalacja systemu Debian 9 - iDRAC

Instalator powinien być już w stanie wykryć oraz obsłużyć kontroler PERC H740P.
DELL PERC H740P - wykryty przez instalator systemu Debian 9

Instalację należy kontynuować do momentu pojawienia się prośby o zresetowanie serwera.
DELL PERC H740P - instalacja w systemie Debian 9

W tym momencie należy ponownie przełączyć się na inną konsolę instalatora wydając kombinację klawiszy Ctrl-Alt-F2. W nowej konsoli należy przekopiować aktualnie używany przez instalator sterownik do systemu, który jest właśnie instalowany.

/lib/modules/4.9.0-6-amd64/kernel/drivers/scsi/megaraid/megaraid_sas.ko /target/lib/modules/4.9.0-6-amd64/kernel/drivers/scsi/megaraid/megaraid_sas.ko

W następnym kroku można podmontować dodatkowe systemy plików

mount -o bind /sys/ /target/sys/
mount -o bind /dev/ /target/dev/
mount -o bind /dev/pts /target/dev/pts
mount -t proc /proc /target/proc/

Następnie należy użyć polecenia

chroot /target/ /bin/bash

Wywołanie polecenia chroot spowodowało, że zostaliśmy przeniesieni do nowo instalowanego systemu.
W pierwszej kolejności należy dodać sterownik megaraid_sas do modułów, które mają znaleźć w initrd.

echo megaraid_sas >> /etc/initramfs-tools/modules

a następnie uaktualnić initrd

update-initramfs -u

Od tej chwili system Debian 9 powinien poprawnie obsługiwać kontroler PERC H740P, a my możemy wrócić do okna instalatora Ctrl-Alt-F1 i zakończyć instalację.

UWAGA: Należy pamiętać, że po każdej aktualizacji jądra systemu należy ponownie skompilować sterownik megaraid_sas a następnie skopiować do ścieżki: /lib/modules/$(uname -r)/kernel/drivers/scsi/megaraid/

Instalacja jądra systemu z repozytorium Backports

Aby uniknąć konieczności kompilacji sterowników po każdej aktualizacji jądra systemu, można skorzystać z repozytorium Debian Backports, które zawiera bardziej aktualny kernel, obsługujący natywnie kontroler PERC H740P.

W tym celu będąc w systemie (przed powrotem z chroot’a) należy zmodyfikować plik

/etc/apt/sources.list

Dodać repozytorium backports

deb http://deb.debian.org/debian stretch-backports main contrib non-free

Zaktualizować listę pakietów

apt-get update

A następnie zainstalować nowy kernel

apt-get install -t stretch-backports linux-image-amd64

Po powrocie do instalatora oraz restarcie serwera system powinien bezproblemowo współpracować z kontrolerem PERC H740P. Nowe jądra systemu posiadają zaktualizowany sterownik, dzięki czemu nie trzeba go kompilować przy każdej aktualizacji.

Dodaj komentarz