この記事は、サポートされていないLinuxカーネル用にMACCカーネルドライバを再ビルドする方法について説明しています。
重要:このセルフサポートツールは、
RHEL8 および
Oracle 7 UEKR5 システム
には使用できません。
サポートされているカーネルの一覧は、
KB91985 - Linux kernel support for Application and Change Control 6.x を参照してください。
KB に記載されていないカーネルに MACC をインストールする必要がある場合は、次のいずれかの作業を行うことができます:
- テストベッド上でターゲットカーネル用のビルドファイルを作成し、そのビルドを他の実稼働環境エンドポイントに手動で配布する。
- サポートを通じてUnsupported Kernel Request を提出する。
期待される新カーネルのサポートガイドラインと入手方法
- MACCはカーネルサポートの標準リリースチャンネルに従っており、新しいカーネルのサポートには最大で60日かかることがあります。その間、新しいカーネルの Kernel Compatibility Checker (KCC) を使って、80-90%のケースでゼロ日目に自動的にサポートされるようにします。
- サポートされているオペレーティングシステムの標準チャンネルにリストされていないカーネルをリクエストした場合、MACCはそのカーネルを全くサポートしていない可能性が高いと理解されます。
- 非標準のカーネルについて:サポートされていないカーネルのリクエストと一緒に、必要なカーネルソースファイルをビジネス的な正当性とサポートされるシステムの総数とともに提出していただければ、期待される結果が非標準カーネルのリリースチャンネルに限定されていても、サポートを検討することができるかもしれません。
どのような導入シナリオが考えられますか?
Linux オペレーティング システムでのインストール ワークフローは、ターゲット カーネルがサポートされているかどうかによって異なります。KB91985 を参照し、必要なカーネルバージョンに対してサポートが既に提供されているかどうかを確認してください。
ターゲットカーネルがサポートされている場合のインストール方法を教えてください。
質問
|
回答
|
以前のリリースから何か変わりましたか?
|
ターゲットカーネルがサポートされている場合、そのカーネルに直接インストールされます。
|
前提条件を満たしている必要がありますか?
|
いいえ。
|
どのようにインストールしますか?
|
インストールガイドの「Linuxプラットフォームへのインストール」セクションに記載されている手順を実行します。
|
ターゲットカーネルがサポートされていない場合、どのようにインストールすればよいですか?
ターゲット用のカーネルモジュールを作成する機能は、6.3.0-714(2019年7月)リリースのMACCで更新されました。テストベッド上で必要なビルドを作成し、同じカーネルを実行している本番エンドポイントにカーネルモジュールを手動でデプロイすることができます。
サポートされていないカーネルのカーネルモジュールパッケージをローカルで作成する場合:
- インストールパッケージに含まれるビルドツール : build_target.sh を実行します。
このスクリプトは、必要なすべての依存関係をダウンロードし、サポートしたいカーネルバージョンに対してMACCカーネルモジュールのソースを再コンパイルしようとします。新しいカーネルモジュールパッケージが正常にビルドされたら、マスターインストーラースクリプトを再度実行します。
- マスターインストーラースクリプト、mapkg_install.sh を再度実行します。このステップでは、新しいカーネルモジュールパッケージと、現在のMACCバージョンでサポートされているこれらのパッケージをインストールします。
注: 新しいカーネル用のMACCドライバパッケージは一度だけビルドされ、その後エンドポイント間で配布されます。カーネルサポートが行われるシステムまたはテストベッドは、Linuxディストリビューションリポジトリから開発パッケージをインストールすることが許可されていなければなりません。この方法では,カーネルモジュールの完全リコンパイルが必要なためです。
新しいカーネルモジュールのビルド
現在のカーネルがサポートされていない場合、ターゲットシステムでマスターインストーラを実行すると、以下のようなエラーが出て失敗します。現在のカーネルとは、インストールを実行するシステムで動作しているカーネルのことです。
# ./mapkg_install.sh
Installing build solidifier-kmod-6.3.0-724.LSES12.x86_64.rpm...
Could not find built-in support for kernel 4.4.73-5-default.
Run ‘./build_target.sh’ to configure your system for rebuilding the kernel module including support for kernel 4.4.73-5-default.
メッセージにあるように、現在のカーネルは MACC パッケージに含まれていません。現在のカーネルのサポートを含むカーネルモジュールの再コンパイルで、この問題を解決することができます。
build_target.sh スクリプトを実行します:
# sh ./build_target.sh
このスクリプト:
- カーネルモジュールのコンパイルを実行するための開発ツールをダウンロード
- カーネル開発パッケージとコードソースファイルをダウンロード(現在実行中のカーネル)
- 再コンパイル用にMACCドライバソースを準備する
- 新しいカーネルをサポートするMACCドライバをリビルドする
- 新しくコンパイルされたカーネルモジュール資産を含むrpm/deb ファイルの作成
他のエンドポイントへの再配布
今のところ、自己サポートされたカーネルモジュールの配布は自動化されていません。新しく作成されたカーネルモジュール rpm/debを含む結果のMACCフォルダは、手動で圧縮して企業のエンドポイントに再配布する必要があります。企業のエンドポイントでは、インストールを実行するためにマスターインストーラースクリプトを実行する必要があります。最新バージョンのMACCがインストールされ、それが新しいカーネルのセルフサポートを提供する場合、まず現在のバージョンをアンインストールする必要があります。同じバージョンの上に再インストールすることはサポートされていません。
定期的にカーネルサポートを追加し、新しいカーネルリリースのビルトインサポートを提供し続けています。最終的には、関係するカーネルバージョンを含むより新しいMACC Linuxバージョンに、通常の方法でアップデートすることができます。
例:
サポートされていないカーネルのビルド方法:
- 実行したいカーネルがあるVMにログオンする。
- マニュアルインストーラのZIPファイルを新システムにダウンロードする。
SOLIDCOR641-135_LNX.zip
- ダウンロードしたマニュアルインストーラのZIPファイルを展開または解凍します:
sudo unzip SOLIDCOR641-135_LNX.zip
- build_target.sh および mapkg_install.sh のパーミッションを変更します:
- sudo chmod 700 build_target.sh
- sudo chmod 700 mapkg_install.sh
- ターゲットでビルドを実行します:
sudo ./build_target.sh
- ビルドが成功したら、/usr/local/mcafee/Solidcore/dks からファイルを取得します:
- solidifier-ksrc-6.4.1-135.tgz
- solidifier-kmod-6.4.1-135.LEL7.x86_64.rpm
- solidifier-kmod-6.4.1-135.LEL7.3.10.0-1062.9.1.el7.x86_64.x86_64.rpm
- ビルドに失敗した場合は、手動で kernel src をダウンロードして /usr/src にコピーし、 buid_target.sh を再実行します。
- build_target スクリプトが完了したら、再実行します。
sudo mapkg_install.sh
インストールを確認する
- Centos7: を新規にインストールします。
ベースカーネルを使用してみてください: Kernel – 3.10.0-327.el7.x86_64 ("uname -r" をログオン後に実行し確認します)
- 最初のセクションでインストールを作成したカーネルをインストールします:
例: sudo yum install kernel-3.10.0-1062.9.1.el7
- 再起動し、先ほどインストールしたカーネルを選択します。
- マニュアルインストーラのzipを新システムにダウンロードします:
SOLIDCOR641-135_LNX.zip
- ダウンロードしたマニュアルインストーラのZIPファイルを解凍または展開します。
sudo unzip SOLIDCOR641-135_LNX.zip
- 作業システムから3つのパッケージを解凍したインストーラフォルダにコピーします:
- solidifier-kmod-6.4.1-135.LEL7.3.10.0-1062.9.1.el7.x86_64.x86_64.rpm
- solidifier-kmod-6.4.1-135.LEL7.x86_64.rpm
- solidifier-ksrc-6.4.1-135.tgz
- パーミッション変更のために mapkg_install.sh実行します:
sudo chmod 700 mapkg_install.sh
- rootユーザーでインストーラを実行します:
sudo ./mapkg_install.sh
- ステータスを確認します:
sadmin status
カーネルサポートプロセストラブルシューティング
新しいカーネルのセルフサポートは、カーネルモジュールのコンパイルと、動作するための正確な依存関係のセットを含んでいます。コンパイルに失敗した場合は、テクニカルサポートに連絡してください。 build_target.sh ツールを実行し、 コンパイル出力を収集し、テクニカルサポートと共有します。コマンドを実行します:
# sudo sh ./build_target.sh 2>&1 | tee build_target.log
次のいずれかの問題が発生した場合は、推奨されるコマンドを実行し、ターゲットプロセスの再構築を試みてください:
- Red Hat システムでは、必要な依存関係 optional-rpms および sources-rpms をインストールするために、より多くのリポジトリを有効にすることが必要になる場合があります。
例: RHEL 7 サーバーでは、sources-rpms および optional-rpms リポジトリを有効にすることができます:
# subscription-manager repos --enable rhel-7-server-optional-rpms
# subscription-manager repos --enable rhel-7-server-sources-rpms
- Red Hat 6 システムには rpm ビルドツールがない可能性があります。これらはコマンドを実行して手動でインストールすることができます:
# sudo yum install rpm-build
- YUM ベースのシステムには、デフォルトで yumdownloader ユーティリティがない場合があります。このユーティリティは、必要なパッケージをダウンロードするために必要です。コマンドを実行することによってインストールすることができます:
# sudo yum install yum-utils
BTTツールのカーネルソースをダウンロードするには
LEL6:
- kernel-devel パッケージをインストールします:
# yum -y install kernel-devel-`uname -r`
- Builtターゲットツールを再度実行します。
UEK6:
- カーネルソース の rpm をダウンロード、インストールします:
# cd ~/
# yumdownloader --source kernel-uek-`uname -r`
または、 手動でダウンロードします:
# KERNEL_VERSION=`uname -r | awk 'BEGIN{FS=OFS="."}{$NF=""; NF--; print}'`
# rpm -i kernel-uek-"$KERNEL_VERSION".src.rpm 2>&1 | grep -v exist
- Builtターゲットツールを再度実行します。
LEL7:
- カーネルソース の rpm をダウンロード、インストールします:
# cd ~/
# yumdownloader --source kernel-`uname -r`
または、 手動でダウンロードします:
# KERNEL_VERSION=`uname -r | awk 'BEGIN{FS=OFS="."}{$NF=""; NF--; print}'`
# rpm -i kernel-"$KERNEL_VERSION".src.rpm 2>&1 | grep -v exist
- Builtターゲットツールを再度実行します。
UEK7:
- カーネルソース の rpm をダウンロード、インストールします:
# cd ~/
# yumdownloader --source kernel-uek-`uname -r`
または、 手動でダウンロードします:
# KERNEL_VERSION=`uname -r | awk 'BEGIN{FS=OFS="."}{$NF=""; NF--; print}'`
# rpm -i kernel-uek-"$KERNEL_VERSION".src.rpm 2>&1 | grep -v exist
- Builtターゲットツールを再度実行します。
LEL8:
- カーネルソース の rpm をダウンロード、インストールします:
# mkdir -p /tmp/mcafee (if /tmp/mcafee already exists delete the /tmp/mcafee dir)
# cd /tmp/mcafee
# cd ~/
# yumdownloader --source kernel-`uname -r`
または、 手動でダウンロードします:
# KERNEL_VERSION=`uname -r | awk 'BEGIN{FS=OFS="."}{$NF=""; NF--; print}'`
# rpm -i kernel-"$KERNEL_VERSION".src.rpm 2>&1 | grep -v exist
- Builtターゲットツールを再度実行します。
デプロイに失敗したり、サービスが起動しない場合は、
KB87443 を参照し確認してください。