release qla2xxx driver
(cherry picked from commit 348439a5cdaad7d0b4513f6fa9e72a7d8c72d741)
This commit is contained in:
parent
da6d08dc55
commit
5c89c2ee6e
6
99-qla2xxx.rules
Normal file
6
99-qla2xxx.rules
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#
|
||||||
|
# RULES FILE: located in /etc/udev/rules.d/
|
||||||
|
#
|
||||||
|
|
||||||
|
# qla2xxx driver
|
||||||
|
SUBSYSTEM=="pci", ENV{DRIVER}=="qla2xxx", ACTION=="change", RUN+="/lib/udev/qla2xxx_udev.sh"
|
||||||
55
README.en.md
55
README.en.md
@ -1,36 +1,31 @@
|
|||||||
# qla2xxx
|
# marvelldriver
|
||||||
|
|
||||||
#### Description
|
## Introduction
|
||||||
provide Marvell QLogic FC HBA adapter qla2xxx driver for openEuler LTS version.
|
provide Marvell QLogic FC HBA adapter driver for openEuler LTS version.
|
||||||
|
|
||||||
#### Software Architecture
|
## Driver info
|
||||||
Software architecture description
|
QLogic driver package for openEuler system.
|
||||||
|
|
||||||
#### Installation
|
FC HBA driver is from [Marvell/QLogic webisite](https://www.marvell.com/support/downloads.html)
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### Instructions
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### Contribution
|
|
||||||
|
|
||||||
1. Fork the repository
|
|
||||||
2. Create Feat_xxx branch
|
|
||||||
3. Commit your code
|
|
||||||
4. Create Pull Request
|
|
||||||
|
|
||||||
|
|
||||||
#### Gitee Feature
|
|
||||||
|
|
||||||
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
|
|
||||||
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
|
### FC HBA driver
|
||||||
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
|
> qla2xxx-x.y.z.
|
||||||
4. The most valuable open source project [GVP](https://gitee.com/gvp)
|
|
||||||
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
|
|
||||||
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### QLogic FC HBA driver
|
||||||
|
|
||||||
|
1. This repository is for building qla2xxx KMOD RPM package.
|
||||||
|
2. this qla2xxx driver supports openEuler 20.03 LTS SP3 and openEuler 22.03 LTS version.
|
||||||
|
3. this qla2xxx driver supports ARM64 and X64 platform.
|
||||||
|
4. this qla2xxx driver supports Kunpeng and Phytium CPU platform.
|
||||||
|
|
||||||
|
|||||||
49
README.md
49
README.md
@ -1,37 +1,28 @@
|
|||||||
# qla2xxx
|
# marvelldriver
|
||||||
|
|
||||||
#### 介绍
|
## 介绍
|
||||||
provide Marvell QLogic FC HBA adapter qla2xxx driver for openEuler LTS version.
|
provide Marvell QLogic FC HBA adapter driver for openEuler LTS version.
|
||||||
|
|
||||||
#### 软件架构
|
Ethernet NIC driver and SAS/SATA driver will provide in other repository.
|
||||||
软件架构说明
|
|
||||||
|
## 软件架构
|
||||||
|
QLogic driver package for openEuler system.
|
||||||
|
|
||||||
|
FC HBA driver is from [Marvell/QLogic webisite](https://www.marvell.com/support/downloads.html)
|
||||||
|
|
||||||
|
|
||||||
#### 安装教程
|
|
||||||
|
|
||||||
1. xxxx
|
### FC HBA driver
|
||||||
2. xxxx
|
> qla2xxx-x.y.z
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 使用说明
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 参与贡献
|
|
||||||
|
|
||||||
1. Fork 本仓库
|
|
||||||
2. 新建 Feat_xxx 分支
|
|
||||||
3. 提交代码
|
|
||||||
4. 新建 Pull Request
|
|
||||||
|
|
||||||
|
|
||||||
#### 特技
|
|
||||||
|
|
||||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
|
||||||
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
|
## 安装教程
|
||||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
|
|
||||||
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
|
### QLogic FC HBA driver
|
||||||
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
|
||||||
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
1. 本仓库用于生成openEuler 版本的KMOD 驱动RPM 安装包。
|
||||||
|
2. 支持 openEuler 20.03 LTS SP3 及 openEuler 22.03 LTS 版本。
|
||||||
|
3. 支持 ARM64 及 X64 平台。
|
||||||
|
4. 支持国产CPU。
|
||||||
1
dracut.qla2xxx.conf
Normal file
1
dracut.qla2xxx.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
add_drivers+=" tcm_qla2xxx qla2xxx "
|
||||||
327
kmodtool-nvme.8.x.sh
Normal file
327
kmodtool-nvme.8.x.sh
Normal file
@ -0,0 +1,327 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# kmodtool - Helper script for building kernel module RPMs
|
||||||
|
# An original version appeared in Fedora. This version is
|
||||||
|
# generally called only by the %kernel_module_package RPM macro
|
||||||
|
# during the process of building Driver Update Packages (which
|
||||||
|
# are also known as "kmods" in the Fedora community).
|
||||||
|
#
|
||||||
|
# Copyright (c) 2003-2010 Ville Skyttä <ville.skytta@iki.fi>,
|
||||||
|
# Thorsten Leemhuis <fedora@leemhuis.info>
|
||||||
|
# Jon Masters <jcm@redhat.com>
|
||||||
|
# Copyright (c) 2012-2013 Jiri Benc <jbenc@redhat.com>
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
# a copy of this software and associated documentation files (the
|
||||||
|
# "Software"), to deal in the Software without restriction, including
|
||||||
|
# without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
# permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
# the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be
|
||||||
|
# included in all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
# Changelog:
|
||||||
|
#
|
||||||
|
# 2010/07/28 - Add fixes for filelists in line with LF standard
|
||||||
|
# - Remove now defunct "framepointer" kernel variant
|
||||||
|
# - Change version to "rhel6-rh2" as a consequence.
|
||||||
|
#
|
||||||
|
# 2010/01/10 - Simplified for RHEL6. We are working on upstream
|
||||||
|
# moving to a newer format and in any case do not
|
||||||
|
# need to retain support for really old systems.
|
||||||
|
|
||||||
|
shopt -s extglob
|
||||||
|
|
||||||
|
myprog="kmodtool"
|
||||||
|
myver="0.10.10_kmp2"
|
||||||
|
knownvariants=@(debug|kdump)
|
||||||
|
kmod_name=
|
||||||
|
kver=
|
||||||
|
verrel=
|
||||||
|
variant=
|
||||||
|
|
||||||
|
get_kernel_release ()
|
||||||
|
{
|
||||||
|
if [[ -z $1 ]]; then
|
||||||
|
uname -r
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
local arch=$(arch)
|
||||||
|
local verrel=${1%.$arch}
|
||||||
|
local verprefix=${verrel%.*}
|
||||||
|
local versuffix=${verrel#$verprefix}
|
||||||
|
verrel=$(ls -Ud /usr/src/kernels/$verprefix*$versuffix.$arch | sort -V | tail -n 1)
|
||||||
|
verrel=${verrel##*/}
|
||||||
|
[[ -z $verrel ]] && verrel=$1.$arch
|
||||||
|
echo "$verrel"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_verrel ()
|
||||||
|
{
|
||||||
|
verrel=$(get_kernel_release "$1")
|
||||||
|
verrel=${verrel/%.$knownvariants/}
|
||||||
|
}
|
||||||
|
|
||||||
|
print_verrel ()
|
||||||
|
{
|
||||||
|
get_verrel $@
|
||||||
|
echo "${verrel}"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_verrel_for_deps ()
|
||||||
|
{
|
||||||
|
verrel_dep=${1:-$(uname -r)}
|
||||||
|
verrel_dep=${verrel_dep/%.$knownvariants/}
|
||||||
|
}
|
||||||
|
|
||||||
|
get_variant ()
|
||||||
|
{
|
||||||
|
get_verrel $@
|
||||||
|
variant=$(get_kernel_release "$1")
|
||||||
|
variant=${variant/#$verrel?(.)/}
|
||||||
|
variant=${variant:-'""'}
|
||||||
|
}
|
||||||
|
|
||||||
|
print_variant ()
|
||||||
|
{
|
||||||
|
get_variant $@
|
||||||
|
echo "${variant}"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_filelist() {
|
||||||
|
local IFS=$'\n'
|
||||||
|
filelist=($(cat))
|
||||||
|
|
||||||
|
if [ ${#filelist[@]} -gt 0 ];
|
||||||
|
then
|
||||||
|
for ((n = 0; n < ${#filelist[@]}; n++));
|
||||||
|
do
|
||||||
|
line="${filelist[n]}"
|
||||||
|
line=$(echo "$line" \
|
||||||
|
| sed -e "s/%verrel/$verrel/g" \
|
||||||
|
| sed -e "s/%variant/$variant/g" \
|
||||||
|
| sed -e "s/%dashvariant/$dashvariant/g" \
|
||||||
|
| sed -e "s/%dotvariant/$dotvariant/g" \
|
||||||
|
| sed -e "s/\.%1/$dotvariant/g" \
|
||||||
|
| sed -e "s/\-%1/$dotvariant/g" \
|
||||||
|
| sed -e "s/%2/$verrel/g")
|
||||||
|
echo "$line"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "%defattr(644,root,root,755)"
|
||||||
|
echo "/lib/modules/${verrel}${dotvariant}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
get_rpmtemplate ()
|
||||||
|
{
|
||||||
|
local variant="${1}"
|
||||||
|
local dashvariant="${variant:+-${variant}}"
|
||||||
|
local dotvariant="${variant:+.${variant}}"
|
||||||
|
|
||||||
|
echo "%package -n kmod-${kmod_name}${dashvariant}"
|
||||||
|
|
||||||
|
if [ -z "$kmod_provides_summary" ]; then
|
||||||
|
echo "Summary: ${kmod_name} kernel module(s)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$kmod_provides_group" ]; then
|
||||||
|
echo "Group: System Environment/Kernel"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$kmod_version" ]; then
|
||||||
|
echo "Version: %{kmod_version}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$kmod_release" ]; then
|
||||||
|
echo "Release: %{kmod_release}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Turn of the internal dep generator so we will use the kmod scripts.
|
||||||
|
echo "%global _use_internal_dependency_generator 0"
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
Provides: kernel-modules >= ${verrel_dep}${dotvariant}
|
||||||
|
Provides: ${kmod_name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||||
|
Requires(post): /usr/sbin/depmod
|
||||||
|
Requires(postun): /usr/sbin/depmod
|
||||||
|
Obsoletes: kmod-hpqlgc-%{driver_name}
|
||||||
|
Obsoletes: kmod-%{driver_name}
|
||||||
|
Conflicts: kmod-hpqlgc-%{driver_name}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if [ "yes" != "$nobuildreqs" ]
|
||||||
|
then
|
||||||
|
echo "BuildRequires: kernel${dashvariant}-devel"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "" != "$override_preamble" ]
|
||||||
|
then
|
||||||
|
cat "$override_preamble"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
%description -n kmod-${kmod_name}${dashvariant}
|
||||||
|
This package provides the ${kmod_name} kernel modules built for
|
||||||
|
the Linux kernel ${verrel}${dotvariant} for the %{_target_cpu}
|
||||||
|
family of processors.
|
||||||
|
|
||||||
|
Public key available at http://ldriver.qlogic.com/RPM-public-key/
|
||||||
|
SRPMS available at http://ldriver.qlogic.com/driver-srpms/
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
## The following are not part of this script directly, they are scripts ##
|
||||||
|
## that will be executed by RPM during various stages of package processing ##
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
%post -n kmod-${kmod_name}${dashvariant}
|
||||||
|
if [ -e "/boot/System.map-${verrel}${dotvariant}" ]; then
|
||||||
|
/usr/sbin/depmod -aeF "/boot/System.map-${verrel}${dotvariant}" "${verrel}${dotvariant}" > /dev/null || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
modules=( \$(find /lib/modules/${verrel}${dotvariant}/extra/${kmod_name} | grep '\.ko$') )
|
||||||
|
if [ -x "/sbin/weak-modules" ]; then
|
||||||
|
printf '%s\n' "\${modules[@]}" \
|
||||||
|
| /sbin/weak-modules --add-modules
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e /boot/initramfs-`uname -r`.img.ql.bkup ]; then
|
||||||
|
cp -p /boot/initramfs-`uname -r`.img /boot/initramfs-`uname -r`.img.ql.bkup
|
||||||
|
fi
|
||||||
|
|
||||||
|
dracut -f
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
%preun -n kmod-${kmod_name}${dashvariant}
|
||||||
|
rpm -ql kmod-${kmod_name}${dashvariant}-%{kmod_version}-%{kmod_release}.$(arch) | grep '\.ko$' > /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
%postun -n kmod-${kmod_name}${dashvariant}
|
||||||
|
if [ -e "/boot/System.map-${verrel}${dotvariant}" ]; then
|
||||||
|
/usr/sbin/depmod -aeF "/boot/System.map-${verrel}${dotvariant}" "${verrel}${dotvariant}" > /dev/null || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
modules=( \$(cat /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules) )
|
||||||
|
rm /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules
|
||||||
|
if [ -x "/sbin/weak-modules" ]; then
|
||||||
|
printf '%s\n' "\${modules[@]}" \
|
||||||
|
| /sbin/weak-modules --remove-modules
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "%files -n kmod-${kmod_name}${dashvariant}"
|
||||||
|
|
||||||
|
if [ "" == "$override_filelist" ];
|
||||||
|
then
|
||||||
|
echo "%defattr(644,root,root,755)"
|
||||||
|
echo "/lib/modules/${verrel}${dotvariant}"
|
||||||
|
echo "%config /etc/depmod.d/${kmod_module}.conf"
|
||||||
|
echo "/etc/dracut.conf.d/qla2xxx.conf"
|
||||||
|
echo "/etc/depmod.d/qla2xxx.conf"
|
||||||
|
else
|
||||||
|
cat "$override_filelist" | get_filelist
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
print_rpmtemplate ()
|
||||||
|
{
|
||||||
|
kmod_name="${1}"
|
||||||
|
kmod_module=`echo $kmod_name | cut -d"-" -f2`
|
||||||
|
shift
|
||||||
|
kver="${1}"
|
||||||
|
get_verrel "${1}"
|
||||||
|
get_verrel_for_deps "${1}"
|
||||||
|
[[ -z $kver ]] && kver=$verrel
|
||||||
|
shift
|
||||||
|
if [ -z "${kmod_name}" ] ; then
|
||||||
|
echo "Please provide the kmodule-name as first parameter." >&2
|
||||||
|
exit 2
|
||||||
|
elif [ -z "${kver}" ] ; then
|
||||||
|
echo "Please provide the kver as second parameter." >&2
|
||||||
|
exit 2
|
||||||
|
elif [ -z "${verrel}" ] ; then
|
||||||
|
echo "Couldn't find out the verrel." >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
for variant in "$@" ; do
|
||||||
|
if [ "default" == "$variant" ];
|
||||||
|
then
|
||||||
|
get_rpmtemplate ""
|
||||||
|
else
|
||||||
|
get_rpmtemplate "${variant}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
usage ()
|
||||||
|
{
|
||||||
|
cat <<EOF
|
||||||
|
You called: ${invocation}
|
||||||
|
|
||||||
|
Usage: ${myprog} <command> <option>+
|
||||||
|
Commands:
|
||||||
|
verrel <uname>
|
||||||
|
- Get "base" version-release.
|
||||||
|
variant <uname>
|
||||||
|
- Get variant from uname.
|
||||||
|
rpmtemplate <mainpgkname> <uname> <variants>
|
||||||
|
- Return a template for use in a source RPM
|
||||||
|
version
|
||||||
|
- Output version number and exit.
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
invocation="$(basename ${0}) $@"
|
||||||
|
while [ "${1}" ] ; do
|
||||||
|
case "${1}" in
|
||||||
|
verrel)
|
||||||
|
shift
|
||||||
|
print_verrel $@
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
variant)
|
||||||
|
shift
|
||||||
|
print_variant $@
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
rpmtemplate)
|
||||||
|
shift
|
||||||
|
print_rpmtemplate "$@"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
version)
|
||||||
|
echo "${myprog} ${myver}"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Error: Unknown option '${1}'." >&2
|
||||||
|
usage >&2
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# mode: sh
|
||||||
|
# sh-indentation: 2
|
||||||
|
# indent-tabs-mode: nil
|
||||||
|
# End:
|
||||||
|
# ex: ts=2 sw=2 et
|
||||||
BIN
qla2xxx-src-v10.02.08.00.a7-k.tar.gz
Normal file
BIN
qla2xxx-src-v10.02.08.00.a7-k.tar.gz
Normal file
Binary file not shown.
125
qla2xxx.spec
Normal file
125
qla2xxx.spec
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
%define dvendor qlgc
|
||||||
|
%define vendor %{dvendor}
|
||||||
|
%define driver_name qla2xxx
|
||||||
|
%define dist_version 10.02.08.00.a7-k
|
||||||
|
%define dist_str openEuler
|
||||||
|
%define version 10.02.08.00.a7
|
||||||
|
%define release 1
|
||||||
|
%define BUILD_KERNEL_SPEC %( if [ -z "${BUILD_KERNEL}" ]; then BUILD_KERNEL=` rpm -q kernel-devel |sed 's/.*devel-//g' `; fi; echo "${BUILD_KERNEL}" | cut -d "-" -f -2 )
|
||||||
|
|
||||||
|
%define mod_sign_files /home/sign
|
||||||
|
%define module_key %{mod_sign_files}/qlgc_module_signing_key-202x.priv
|
||||||
|
%define module_cer %{mod_sign_files}/qlgc_module-202x.der
|
||||||
|
|
||||||
|
%define gpginfo "RPM public key available at http://ldriver.qlogic.com/RPM-public-key/ and Module public key available at http://ldriver.qlogic.com/Module-public-key/"
|
||||||
|
|
||||||
|
Name: %{vendor}-%{driver_name}
|
||||||
|
Version: %{version}
|
||||||
|
Release: %{release}
|
||||||
|
Summary: QLogic qlaxxx FC Driver Update Program package
|
||||||
|
Group: System/Kernel
|
||||||
|
License: GPLv2
|
||||||
|
Vendor: QLogic Corp.
|
||||||
|
Packager: QLogic Corp.
|
||||||
|
|
||||||
|
URL: http://www.qlogic.com
|
||||||
|
|
||||||
|
Source0: qla2xxx-src-v10.02.08.00.a7-k.tar.gz
|
||||||
|
Source1: kmodtool-nvme.8.x.sh
|
||||||
|
Source2: dracut.qla2xxx.conf
|
||||||
|
Source3: 99-qla2xxx.rules
|
||||||
|
Source4: qla2xxx_udev.sh
|
||||||
|
|
||||||
|
|
||||||
|
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-src-%{dist_version}-%{release}-XXXXXX)
|
||||||
|
BuildRequires: kernel-rpm-macros
|
||||||
|
BuildRequires: kernel-devel
|
||||||
|
|
||||||
|
BuildRequires: hostname
|
||||||
|
BuildRequires: procps-ng
|
||||||
|
BuildRequires: systemd-udev
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%global debug_package %{nil}
|
||||||
|
|
||||||
|
%description
|
||||||
|
OE Driver Update package for QLogic FC Adapter.
|
||||||
|
Public key available at http://ldriver.qlogic.com/RPM-public-key/
|
||||||
|
SRPMS available at http://ldriver.qlogic.com/driver-srpms/
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -n %{driver_name}-%{dist_version}
|
||||||
|
set -- *
|
||||||
|
mkdir source
|
||||||
|
mv "$@" source/
|
||||||
|
mkdir obj
|
||||||
|
echo "override %{driver_name} * weak-updates/%{dvendor}-%{driver_name}" > %{driver_name}.conf
|
||||||
|
|
||||||
|
%build
|
||||||
|
for flavor in 'default'; do
|
||||||
|
rm -rf obj/$flavor
|
||||||
|
cp -r source obj/$flavor
|
||||||
|
cd obj/$flavor
|
||||||
|
make -C /lib/modules/` rpm -q kernel-devel |sed 's/.*devel-//g' `/build M=`pwd` modules
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
%install
|
||||||
|
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
|
||||||
|
export INSTALL_MOD_DIR=extra/%{name}
|
||||||
|
for flavor in %flavors_to_build ; do
|
||||||
|
if [ -f %{module_key} ] && [ -f %{module_cer} ]; then
|
||||||
|
/usr/src/kernels/` rpm -q kernel-devel |sed 's/.*devel-//g' `/scripts/sign-file sha256 %{module_key} %{module_cer} $PWD/obj/$flavor/%{driver_name}.ko
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
dest_dir=${RPM_BUILD_ROOT}/lib/modules/` rpm -q kernel-devel |sed 's/.*devel-//g' `/extra/%{name}/
|
||||||
|
|
||||||
|
mkdir -p $dest_dir
|
||||||
|
|
||||||
|
install -m 444 obj/default/qla2xxx.ko $dest_dir
|
||||||
|
|
||||||
|
|
||||||
|
# Cleanup unnecessary kernel-generated module dependency files.
|
||||||
|
find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \;
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/depmod.d/
|
||||||
|
%{__install} %{driver_name}.conf $RPM_BUILD_ROOT%{_sysconfdir}/depmod.d/
|
||||||
|
mkdir -p $RPM_BUILD_ROOT/etc/dracut.conf.d
|
||||||
|
%{__install} -m 755 %{S:2} $RPM_BUILD_ROOT/etc/dracut.conf.d/qla2xxx.conf
|
||||||
|
mkdir -p $RPM_BUILD_ROOT/etc/udev/rules.d/
|
||||||
|
%{__install} -m 644 %{S:3} $RPM_BUILD_ROOT/etc/udev/rules.d/
|
||||||
|
|
||||||
|
mkdir -p $RPM_BUILD_ROOT/lib/udev
|
||||||
|
%{__install} -m 744 %{S:4} $RPM_BUILD_ROOT/lib/udev/
|
||||||
|
#systemctl enable qla2xxx-nvmefc-boot-connection.service
|
||||||
|
|
||||||
|
# which udevadm 1>/dev/null 2>&1
|
||||||
|
# if [ $? -eq 0 ]; then
|
||||||
|
# udevadm control -R
|
||||||
|
# else
|
||||||
|
# udevcontrol reload_rules
|
||||||
|
# fi
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(644,root,root,755)
|
||||||
|
/lib/modules/
|
||||||
|
/etc/depmod.d/qla2xxx.conf
|
||||||
|
/etc/dracut.conf.d/qla2xxx.conf
|
||||||
|
/etc/udev/rules.d/99-qla2xxx.rules
|
||||||
|
/lib/udev/qla2xxx_udev.sh
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Sep 27 2022 QLogic Corp <support@qlogic.com> - 10.02.08.00.a7-1
|
||||||
|
- package init
|
||||||
|
- DESC: 10.02.08.00.a7-k XL 09/27/2022. Fisrt version for OE community.
|
||||||
|
|
||||||
|
|
||||||
4
qla2xxx.yaml
Normal file
4
qla2xxx.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
version_control: Marvell
|
||||||
|
src_repo: Marvell official website
|
||||||
|
tag_prefix: ^v
|
||||||
|
seperator: .
|
||||||
57
qla2xxx_udev.sh
Normal file
57
qla2xxx_udev.sh
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
#
|
||||||
|
# ACTION FILE: located in /lib/udev/
|
||||||
|
#
|
||||||
|
|
||||||
|
err() {
|
||||||
|
echo "$@" >&2
|
||||||
|
if [ -x /bin/logger ]; then
|
||||||
|
/bin/logger -t "${0##*/}[$$]" "$@"
|
||||||
|
elif [ -x /usr/bin/logger ]; then
|
||||||
|
/usr//bin/logger -t "${0##*/}[$$]" "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
SYSFS=/sys
|
||||||
|
HOST=${FW_DUMP}
|
||||||
|
QFWD=${SYSFS}/class/fc_host/host${HOST}/device/fw_dump
|
||||||
|
DFILE_PATH=/opt/QLogic_Corporation/FW_Dumps
|
||||||
|
DFILE=${DFILE_PATH}/qla2xxx_fw_dump_${HOST}_`eval date +%Y%m%d_%H%M%S`.txt
|
||||||
|
MDFILE=${DFILE_PATH}/qla2xxx_mpi_fw_dump_${HOST}_`eval date +%Y%m%d_%H%M%S`.txt
|
||||||
|
|
||||||
|
# Verify fw_dump binary-attribute file
|
||||||
|
if ! test -f ${QFWD} ; then
|
||||||
|
err "qla2xxx: no firmware dump file at host $HOST!!!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Go with dump
|
||||||
|
mkdir -p ${DFILE_PATH}
|
||||||
|
|
||||||
|
|
||||||
|
# MPI dump
|
||||||
|
echo 9 > ${QFWD}
|
||||||
|
cat ${QFWD} > ${MDFILE}
|
||||||
|
echo 8 > ${QFWD}
|
||||||
|
if ! test -s "${MDFILE}" ; then
|
||||||
|
rm ${MDFILE}
|
||||||
|
else
|
||||||
|
gzip ${MDFILE}
|
||||||
|
err "qla2xxx: MPI firmware dump saved to file ${MDFILE}.gz."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# FW dump
|
||||||
|
echo 1 > ${QFWD}
|
||||||
|
cat ${QFWD} > ${DFILE}
|
||||||
|
echo 0 > ${QFWD}
|
||||||
|
if ! test -s "${DFILE}" ; then
|
||||||
|
err "qla2xxx: no firmware dump file at host ${HOST}!!!"
|
||||||
|
rm ${DFILE}
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
gzip ${DFILE}
|
||||||
|
err "qla2xxx: firmware dump saved to file ${DFILE}.gz."
|
||||||
|
exit 0
|
||||||
Loading…
x
Reference in New Issue
Block a user