PowerFlex: PowerFlex SDC -ajurin kääntäminen tarvittaessa
Summary: Tässä tietoon perustuvassa artikkelissa kuvataan, miten PowerFlex SDC -ohjaimen kääntäminen otetaan käyttöön Linux-järjestelmissä.
Instructions
Tämä ominaisuus on tarkoitettu mukautumaan Linux-ytimen Application Binary Interface (ABI) -muutoksiin, jotka voivat aiheuttaa eri ytimelle esikäännetyn SDC-ajurin latauksen epäonnistumisen.
Historiallisesti SDC-asennuspaketti Linuxille (RPM/DEB) sisälsi useita SDC-ydinmoduuleja kyseisen Linux-jakelun eri ytimiä varten. Käyttäjille, jotka asentavat jakeluihin, kuten Ubuntu, joka julkaisee usein ytimen päivityksiä, on ollut mahdollisuus määrittää SDC-palvelu muodostamaan yhteys Dellin SDC-ajurien etävarastoon ja yrittämään SDC: n lataamista siitä.
Uuden ominaisuuden avulla käyttäjät voivat kääntää täydellisen vastaavuuden SDC-ohjaimesta käynnissä olevalle ytimelleen luottamatta vastaavan SDC: n saatavuuteen ohjainvarastossa.
Kohderyhmä: Käyttäjät, jotka päivittävät ytimiään usein turvallisuussyistä ja jotka käyttävät erikoistuneita mukautettuja ytimiä, voivat hyötyä ominaisuudesta.
Edellytykset
Jotta kääntäminen onnistuu, seuraavat paketit on asennettava SDC-palvelun isäntään:
- GNU C -kääntäjän (GCC), GCC: n uusin versio
- GNU-merkki(1).
- Käynnissä olevan ytimen kehityspaketti. Tämä paketti on yleisesti saatavana seuraavilla nimillä:
- kernel-devel jakeluille, jotka käyttävät RPM-paketinhallintaa. (Red Hat, SUSE jne.)
- linux-headers jakeluille käyttäen Debian-paketinhallintaa (Debian, Ubuntu, jne.)
Automaattinen tietojen kääntäminen
tarpeen mukaanSDC-ohjaimen automaattinen ja tarvepohjainen kääntäminen edellyttää, että isäntä täyttää kaikki edellä Edellytykset-osassa luetellut edellytykset. Kun SDC-ohjain avataan, SDC-palvelu yrittää kääntää SDC-ohjaimen, jos kaikki seuraavat ehdot täyttyvät:
-
Käynnissä olevaa ydintä vastaava SDC ei ole käytettävissä ajurin välimuistissa.
Lisätietoja ohjainvälimuistista on alla olevassa Kuljettajan välimuisti -kohdassa. -
Tiedosto nimeltä
/etc/emc/scaleio/scini_sync/.build_sciniOlemassa.
Tiedoston sisältö ohitetaan. Käyttäjien tulee kuitenkin pitää se tyhjänä mahdollisia tulevia parannuksia varten.
Tiedosto voidaan luoda suorittamallatouch(1)komento.
Manuaalinen kokoaminen
SDC-ohjain, käännösisännän on täytettävä kaikki edellä olevassa Edellytykset-osassa luetellut edellytykset.
Voit kääntää SDC-ohjaimen manuaalisesti seuraavasti:
-
Kopioi käännöspaketti ohjaimen välimuistissa olevasta hakemistosta väliaikaiseen hakemistoon. Paketin sijainti riippuu PowerFlex-versiosta ja Linux-jakelusta.
Esimerkiksi PowerFlex 3.6.3 SDC:n paketti Red Hat Enterprise Linux 9 -pohjaisille jakeluille on seuraava:/bin/emc/scaleio/scini_sync/driver_cache/RHEL9/3.6.3000.128/Dell-PowerFlex-scini_builder-3.6.3000.128.x86_64.tgz
Lisätietoja ohjainvälimuistista on alla olevassa Kuljettajan välimuisti -kohdassa. -
Siirry väliaikaiseen hakemistoon ja pura käännöspaketti.
Esimerkki:tar xzf Dell-PowerFlex-scini_builder-3.6.3000.128.x86_64.tgz
-
Suorita
build_driver.shkomentosarja, joka sijaitsee puretun sisällön ylimmällä tasolla. Ilman argumentteja komentosarja yrittää kääntää käynnissä olevan ytimen ajurin.
Jos haluat kääntää toiselle ytimelle, anna kyseisen ytimen otsikkohakemistojen polku "-o" ja "-s" komentoriviargumentit.
Lisätietoja kutsusta saat suorittamalla komennonbuild_driver.sh -h
-
Käännösprosessin tulos tulostetaan vakiotulosteeksi.
Onnistuneen kääntämisen jälkeen tuloksena syntyvä SDC-ohjaintiedosto, scini.ko, löytyy osoitteesta./ini/scini.ko. -
Kopioi ajuritiedosto kääntämisen isännästä SDC-kohdeisäntään hakemistoon, joka vastaa ytimen kohdeversiota ja joka on ohjainvälimuistissa samassa sijainnissa kuin käännöspaketti.
Esimerkiksi ytimen versiolle 5.14.0-362.24.1.el9_3.x86_64 yhteensopivan ajurin kohdepolku on/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
Ajurin välimuisti
SDC-ohjain, joka on käännetty onnistuneesti tietylle ytimelle, kopioidaan ohjaimen välimuistin asianmukaiseen hakemistoon, eikä sen kääntämistä käynnistetä uudelleen.
Kuljettajan välimuistin sijainti on /bin/emc/scaleio/scini_sync/drive_cache.
Kokoa loki
Kun automaattinen on demand -kääntäminen on käytössä, kaikki käännöslokit liitetään /bin/emc/scaleio/scini_sync/driver_build.log.
Onnistunut kokoaminen päättyy seuraavanlaisiin viesteihin:
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.
SDC init-säiliö
SDC init -säilö on esimääritetty käyttämään ominaisuutta. Se sisältää gcc: n ja tekee paketteja sekä /etc/emc/scaleio/scini_sync/.build_scini Tiedosto on läsnä. Jotta kääntäminen onnistuisi, isäntäytimen ytimen otsikkohakemisto on kuitenkin yhdistettävä säilöön, jotta /usr/src. Jos esimerkiksi haluat suorittaa säilön manuaalisesti dockerilla, lisää oikean kernel-devel-paketin asentamisen jälkeen isäntään -v/usr/src:/usr/src komentoriville, jotta ytimen otsikkohakemisto on käännösskriptin käytettävissä.
Rajoitus
Voi olla tilanne, jossa isännän Linux-jakelussa saatavilla oleva GCC-kääntäjä ei ole tarpeeksi kehittynyt kääntämään SDC:tä jotakin ydintä vastaan. Tämän tilanteen pitäisi olla harvinainen, koska siihen liittyy todennäköisesti mukautettu ydin eikä kyseiselle jakelulle yhteinen. Tässä tapauksessa käyttäjän on asennettava kehittyneempi GCC ei-standardista pakettivarastosta, ja kyseisen GCC: n sijainti on määritettävä $PATH. SDC-palveluun ei ole automaattista tapaa tarjota vaihtoehtoista GCC-polkua.
Versiot
3.6.3 tai uudempi
4.5.2 tai uudempi
Video-ohjeet