PowerFlex: Kompilace ovladače PowerFlex SDC na vyžádání

Summary: Tento článek znalostní databáze popisuje, jak povolit kompilaci ovladače PowerFlex SDC na vyžádání v systémech Linux.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Tato funkce je určena pro přizpůsobení změnám binárního rozhraní aplikace (ABI) v linuxovém jádře, které mohou způsobit selhání načtení ovladače SDC, předkompilovaného pro jiné jádro.

Historicky instalační balíček SDC pro Linux (RPM/DEB) obsahoval několik modulů jádra SDC pro různá jádra dané distribuce Linuxu. Uživatelé, kteří instalují na distribuci, jako je Ubuntu, která vydává časté aktualizace jádra, mají možnost nastavit službu SDC pro připojení ke vzdálenému úložišti ovladačů SDC společnosti Dell a pokusit se z něj stáhnout SDC.

S novou funkcí mohou uživatelé zkompilovat perfektní shodu ovladače SDC pro své běžící jádro, aniž by se spoléhali na dostupnost odpovídajícího SDC v úložišti ovladače.

Poznámka: Funkce samoobslužné kompilace je podporována pouze v systémech Linux, ve kterých je podporován SDC. Podrobnosti naleznete v matici podpory PowerFlex.

Cílová skupina: Uživatelé, kteří často aktualizují svá jádra z bezpečnostních důvodů a kteří používají specializovaná vlastní jádra, mohou mít z této funkce prospěch.

 

Požadavky
Aby byla kompilace úspěšná, musí být v hostiteli služby SDC nainstalovány následující balíčky:

  • Nejnovější verze kompilátoru GNU C (GCC), GCC
  • GNU make(1).
  • Vývojový balíček jádra pro běžící jádro. Tento balíček je běžně dostupný pod následujícími názvy:
    • kernel-devel pro distribuce používající správce balíčků RPM. (Red Hat, SUSE atd.)
    • linux-headers pro distribuce používající správce balíčků Debian (Debian, Ubuntu atd.)

Automatická kompilace
na vyžádáníAby byla možná automatická kompilace ovladače SDC na vyžádání, měl by hostitel splňovat všechny požadavky uvedené výše v části Předpoklady . Při spuštění ovladače SDC se služba SDC pokusí zkompilovat ovladač SDC, pokud jsou splněny všechny následující podmínky:

  • SDC, které odpovídá běžícímu jádru, není v mezipaměti ovladače k dispozici.
    Podrobnosti o mezipaměti ovladačů naleznete v části Cache ovladačů níže.

  • Soubor s názvem /etc/emc/scaleio/scini_sync/.build_scini existuje.
    Obsah souboru se ignoruje. Uživatelé by jej však měli ponechat prázdný pro případná budoucí vylepšení.
    Soubor lze vytvořit spuštěním touch(1) .

Ruční sestavení
SDC, měl by hostitel kompilace splňovat všechny požadavky uvedené výše v části Požadavky .
Chcete-li ručně zkompilovat ovladač SDC, postupujte takto:

  1. Zkopírujte balíček kompilace z jeho adresáře v mezipaměti ovladače do dočasného adresáře. Umístění balíčku závisí na verzi PowerFlex a distribuci Linuxu.
    Například balíček pro PowerFlex 3.6.3 SDC pro distribuce založené na systému Red Hat Enterprise Linux 9 je: /bin/emc/scaleio/scini_sync/driver_cache/RHEL9/3.6.3000.128/Dell-PowerFlex-scini_builder-3.6.3000.128.x86_64.tgz
    Podrobnosti o mezipaměti ovladačů naleznete v části Cache ovladačů níže.

  2. Přejděte do dočasného adresáře a extrahujte balíček kompilace.
    Příklad:

    tar xzf Dell-PowerFlex-scini_builder-3.6.3000.128.x86_64.tgz
  3. Spusťte build_driver.sh skript, který se nachází na nejvyšší úrovni extrahovaného obsahu. Skript se bez argumentů pokusí zkompilovat ovladač pro spuštěné jádro.
    Chcete-li kompilovat pro jiné jádro, zadejte cestu k adresářům s hlavičkami tohoto jádra pomocí "-o" a "-s" argumenty příkazového řádku.
    Další informace o vyvolání spusťte příkaz:

    build_driver.sh -h
  4. Výstup kompilačního procesu se vytiskne na standardní výstup.
    Po úspěšné kompilaci lze výsledný soubor ovladače SDC, scini.ko, nalézt na adrese ./ini/scini.ko.

  5. Zkopírujte soubor ovladače z hostitele kompilace do cílového hostitele SDC do adresáře odpovídajícího verzi cílového jádra ve stejném umístění jako balíček kompilace v mezipaměti ovladače.
    Například u ovladače podporovaného pro jádro verze 5.14.0-362.24.1.el9_3.x86_64 je cílová cesta k souboru ovladače následující: /bin/emc/scaleio/scini_sync/driver_cache/RHEL9/3.6.3000.128/5.14.0-362.24.1.el9_3.x86_64/scini.ko.

 

Additional Information

Cache
ovladačeOvladač SDC úspěšně zkompilovaný pro konkrétní jádro bude zkopírován do příslušného adresáře mezipaměti ovladače a jeho kompilace nebude znovu spuštěna.
Umístění mezipaměti ovladače je /bin/emc/scaleio/scini_sync/drive_cache.

Protokol
sestaveníPokud je povolena automatická kompilace na vyžádání, jsou všechny protokoly kompilace připojeny k /bin/emc/scaleio/scini_sync/driver_build.log.
Úspěšná kompilace končí zprávami podobnými následujícím:

make: Entering directory '/usr/src/linux-headers-5.15.0-30-generic'
"Following additional compilation's conditions are defined:" 
BLK_MQ_HEADER 
BLK_DEV_MAX_SEGMENTS 
SOCKET_HAS_NET_IN_CREATE 
BIO_BI_BDEV 
BIO_BI_STATUS 
BLK_QUEUE_FLAG_FUNCS 
BLK_INITIALIZE_RMQ_FN 
WAIT_QUEUE_ENTRY_T 
HAS_SCSI_REQUEST 
HAS_SCSI_REQ 
HAS_SCSI_CMND 
HAS_SCSI_IOCTL 
HAS_SCSI_IOCTL_WITH_GENDISK 
HAS_QUEUE_FLAG_DISCARD 
HAS_DISK_LIVE_IN_GENHD 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_main.o 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_mos.o 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_net.o 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_ioctl.o 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_blk_io.o 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_blk_dev.o 
  LD [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.o 
"Following additional compilation's conditions are defined:" 
BLK_MQ_HEADER 
BLK_DEV_MAX_SEGMENTS 
SOCKET_HAS_NET_IN_CREATE 
BIO_BI_BDEV 
BIO_BI_STATUS 
BLK_QUEUE_FLAG_FUNCS 
BLK_INITIALIZE_RMQ_FN 
WAIT_QUEUE_ENTRY_T 
HAS_SCSI_REQUEST 
HAS_SCSI_REQ 
HAS_SCSI_CMND 
HAS_SCSI_IOCTL 
HAS_SCSI_IOCTL_WITH_GENDISK 
HAS_QUEUE_FLAG_DISCARD 
HAS_DISK_LIVE_IN_GENHD 
  MODPOST /tmp/PowerFlex_driver_build_hpoM6l/ini/Module.symvers 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.mod.o 
  LD [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.ko 
  BTF [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.ko 
Skipping BTF generation for /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.ko due to unavailability of vmlinux 
make: Leaving directory '/usr/src/linux-headers-5.15.0-30-generic' 
02-Apr-2024 11:46:48 INFO: Success.

Inicializační kontejner
SDCInicializační kontejner SDC je pro použití této funkce předem nakonfigurovaný. Zahrnuje gcc a vytváří balíčky a /etc/emc/scaleio/scini_sync/.build_scini soubor je k dispozici. Aby však kompilace proběhla úspěšně, musí být adresář hlavičky jádra hostitelského jádra namapován na kontejner, aby bylo možné /usr/src. Chcete-li například spustit kontejner ručně pomocí dockeru, po instalaci správného balíčku kernel-devel na hostitele přidejte -v/usr/src:/usr/src do příkazového řádku, aby byl adresář kernel headers dostupný pro kompilační skript.

Omezení
Může nastat situace, kdy kompilátor GCC, který je k dispozici v distribuci Linuxu hostitele, není dostatečně pokročilý na to, aby zkompiloval SDC proti nějakému jádru. Tato situace by měla být vzácná, protože se pravděpodobně bude jednat o vlastní jádro a ne o jádro společné pro tuto distribuci. V tomto případě musí uživatel nainstalovat pokročilejší GCC z nestandardního repozitáře balíčků a umístění tohoto GCC bude muset být zadáno v $PATH. Neexistuje žádný automatický způsob, jak poskytnout alternativní cestu GCC ke službě SDC.

Verze
3.6.3 nebo vyšší
4.5.2 nebo vyšší

Video instrukce

 

Affected Products

PowerFlex rack, PowerFlex Appliance, PowerFlex Software

Products

PowerFlex custom node
Article Properties
Article Number: 000224134
Article Type: How To
Last Modified: 18 Sep 2024
Version:  6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.