Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
megaraid_sas linux driver, out-of-tree module source
License
npf/megaraid_sas
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Out-of-tree megaraid_sas driver version 7.x.y.z for GNU/Linux Debian Stretch and Jessie
As of Feb. 12th 2018, the megacli_sas driver version available in Debian Stretch (Linux 4.9) does not support Dell’s H740p raid controller. Neither do Jessie’s (Linux 3.16) and Jessie-backports’ (Linux 4.9) ones.
Dell and Broadcom however provide out-of-tree version of megaraid_sas for some distributions but not Debian.
This repository provides packages ready to be consumed by dkms on Debian systems, as well as binary modules packages for the usual kernel versions.
The driver files (sources) stored in this repository (directory dell and broadcom) can be retrieved again using the fetch.sh script (not needed for building/installing).
WARNING: getting the driver sources requires accepting the terms of distribution of the vendors (distribution agreement). Using the fetch script or the sources or the deb packages (dkms sources or binary drivers) included in this repository requires that you accepted beforehand the vendors conditions. This script is just a helper, provided with no warranty but the trust you can get by reading the scripts before using them and rebuilding everything yourself.
First choose the broadcom or the dell version of driver
$ cd broadcom_07.XXX.XX.XX or cd dell_07.XXX.XX.XX
To install the driver from sources:
$ dkms add ./dkms.conf $ dkms build megaraid_sas/07.XXX.XX.XX $ dkms install megaraid_sas/07.XXX.XX.XX
To build the binary driver deb package:
$ dkms mkbmdeb megaraid_sas/07.XXX.XX.XX
To build the dkms deb package:
$ ../dkms mkdeb megaraid_sas/07.XXX.XX.XX
(Needs to use the dkms script provided in this repository to fix a bug with the mkdeb command, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=832558)
Generated deb files are stored in /var/lib/dkms/megaraid_sas/07.XXX.XX.XX.XX/deb . Files in the deb directory of this repository were copied from there after build.
Getting the packages with apt:
The following line can be added to a Debian sources.list file, in order to provide the generated deb packages stored in this repository:
deb [trusted=yes] https://github.com/npf/megaraid_sas/raw/master/deb /
Using the driver in the Debian installer:
One can use a preseed file in order to have the last drivers provided here used in the Debian installer, making use of the d-i partman/early_command directive.
Such a preseed file is provided in this repository, and can be used as follows:
- when in the Debian installer boot menu, press ESC ;
- then type: install preseed/url=https://github.com/npf/megaraid_sas/raw/master/preseed.cfg .
Partman should see the disks. If not, check in the console ( Alt-F2 ) if the modules is indeed loaded ( lsmod , dmesg ). Check for a kernel version mismatch with regard to the files provided here.
One could also setup a PXE netinstall embedding the preseed command to automate everything.
Watch for updates in the linux-stable branches at kernel.org. Current status:
Version 07.702.06.00-rc1 in linux-stable 4.14 but version 06.811.02.00-rc1 in linux-stable 4.9 and linux-stable-rc 4.9
About
megaraid_sas linux driver, out-of-tree module source
LSI MegaRAID SAS 8208XLP в Debian
Достался мне контроллер LSI 8208XLP. А вместе с ним — задача заставить эту чудо-железку работать под Linux. Никаких встроенных RAID-функций от него не требовалось, достаточно было просто увидеть подключённые к нему диски. Далее в дело вступил бы горячо любимый мной mdadm или чуть менее любимый lvm. Казалось бы, чего проще? Поткнул контроллер, подключил диски — и вперёд. Железка довольно старая, Debian уже не первый год существует, и уж наверное имеет в комплекте нужный драйвер.
Ну, почти.
Проблемы
Начнём с того, что 8208XLP — это софт-рейд. То есть массив средствами имеющегося на нём BIOS собирается, но работать может только после установки драйверов. Однако, в отличие от того же softraid в чипсетах intel, где объёдинённые в массив диски без драйвера отображаются как обычные, в данном случае диски не отображаются вообще. То есть использовать его как «просто ещё 8 SATA-портов» просто так не получится. Даже для того, чтобы увидеть одиночный подключённый диск, без драйвера никак.
И тут возникает проблема №2: на официальном сайте LSI драйвера есть под Windows-системы, под Red Hat 4, 5 и SLES с 9 по 11. Более того, пакет с драйверами использует DKMS, и согласно приложенной инструкции не ставится. Вероятно, помимо бинарников собвственно DKMS, драйвера и исходников текущего ядра для сборки требуется ещё и исходник драйвера. Утверждать это не буду — это предположение основывается на копании в древних ветках различных форумах и сообщениях об ошибках при установке. В инструкции про это ни слова, переписка на эту тему с саппортом LSI всё ещё в процессе.
Что было сделано, но не помогло
Коротко опишу пройденный путь:
Попытка «просто поставить Debian» и увидеть диски, как я уже говорил, провалилась. Установщик дисков не видит, после установки системы на отдельный носитель они, разумеется, волшебным образом появляться отказались.
ls -la /dev/sd* выводил ожидаемый системный хард и более ничего.
Попытка поставить CentOS 6.5 — та же история. Плюс к этому — драйвер с сайта не поставился.
Попытка заставить эту (уже проклинаемую) железку работать на SLES11 SP3 также провалилась. Загрузчик драйвер на флешке не увидел, без него дисков установщик не видит, после установки на отдельный хард — дисков нет, драйвер не ставится, та же история с DKMS и исходниками.
Единственный успешный момент — попытка установки CentOS 5.4. Её установщик скушал драйвер с флешки (megasr-13.15.1218.2009-1-rhel50-u4-all.img) и диски нашёл. Однако оставаться на столь древнем ядре желания особого не было. Одно порадовало — проблема технически решаема, устройство рабочее, решил копать дальше.
Что в итоге помогло
В процессе раскопок не раз встречал упоминание о волшебно собранном megasr драйвере под Debian, но годы, прошедшие с момента обсуждения, ссылка успела умереть, и в том репозитории ничего подобного мне найти уже не удалось.
В процессе наткнулся на вот этот любопытный коммент в багтрекере hwraid: hwraid.le-vert.net/ticket/4#no2
Получается, что аналогичная карта (8208ELP) работает под драйвером mptsas, который есть в Debian. Осталось понять две вещи — «как это дело заставить работать» и «какой PCI ID у моего контроллера»?
Ответ на первый вопрос был найден в комментах вот тут: weeclemans.livejournal.com/12086.html?thread=310
Фактически достаточно добавить mptsas в /etc/modules и строку вида
echo "0x1000 0x. " >/sys/bus/pci/drivers/mptsas/new_id
в /etc/rc.local
Устанавливать ОС на диски, подключённые к этому контроллеру, я не планировал изначально, так что если они определятся уже после запуска системы — этот вариант меня вполне устроит.
Теперь осталось только найти PCI ID для моей карты. К сожалению, lspci такой информации не выдал, поэтому нужные значения были взяты отсюда: mirror.szepe.net/siv/pcidevs.txt
Для 8208XLP подошёл вариант 0x1000 0x0055.
После перезагрузки диски, подключённые к контроллеру, корректно определились, даже их SMART доступен.