linux:fedora:driver_rebuild_after_kernel_updated

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
linux:fedora:driver_rebuild_after_kernel_updated [2024/02/04 13:35] – 削除 - 外部編集 (Unknown date) 非ログインユーザーlinux:fedora:driver_rebuild_after_kernel_updated [2024/02/04 13:35] (現在) – ↷ linux:fedora_driver_rebuild_after_kernel_updated から linux:fedora:driver_rebuild_after_kernel_updated へページの移動と名称変更しました。 ともやん
行 1: 行 1:
 +====== カーネルアップデート後の RocketRAID 1740 ドライバ リビルドメモ ======
 + [[http://www.highpoint-tech.com/USA_new/cs-series_rr1700.htm|RocketRAID 1700 Family Series の Download]]より [[http://www.highpoint-tech.com/BIOS_Driver/rr1740/Linux/rr174x-linux-src-v2.4-091009-1434.tar.gz|Open Source driver v2.4]] をダウンロードして解凍する。\\
 +\\
  
 +参考文献:\\
 +[[https://help.ubuntu.com/community/RocketRaid|RocketRaid - Community Ubuntu Documentation]]
 +===== インストール用のシェルスクリプト修正 =====
 +注意: 以下は Open Source driver v2.2-090407-1348 に関する情報です。\\
 +\\
 + インストール用のシェルスクリプトは、RocketRAID 1740, 2310 兼用のものとして作成されているようであるが、修正漏れが存在している。\\
 + これを修正せずに make install を行うと、initrd に sata_mv が含まれてしまうため、新しいカーネルでブートすると sata_mv がロードされてしまい、RAID Array が認識できないというトラブルに見舞われる。\\
 + RocketRAID 1740 上に Linux をインストールしている場合は、起動の途中で RAID Array を認識できないため、結果としてブートできない状況となる。\\
 +\\
 +インストール用のシェルスクリプトの以下の部分を修正する。(34行目と同じになるように修正)\\
 +\\
 +rr174x-linux-src-v2.2/osm/linux/install.sh:\\
 +[修正前]
 +<code bash>
 +54: if [ "${TARGETNAME}" = "hptmv" -o "${TARGETNAME}" = "hptmv6" ] ; then
 +</code>
 +[修正後]
 +<code bash>
 +54: if [ "${TARGETNAME}" = "hptmv" -o "${TARGETNAME}" = "hptmv6" -o  
 +    "${TARGETNAME}" = "rr174x" -o "${TARGETNAME}" = "rr2310_00" ] ; then
 +</code>
 +
 +===== ドライバのリビルドとインストール =====
 +ビルドディレクトリに移動する。\\
 +<code>
 +# cd rr174x-linux-src-v2.2/product/rr1740pm/linux/
 +</code>
 + make install コマンドに KERNELDIR オプションを指定して実行する。\\
 + ※ KERNELDIR には新しいカーネルのソースディレクトリを指定する。
 +<code>
 +# make install KERNELDIR=/usr/src/kernels/2.6.29.6-213.fc11.x86_64
 +make[1]: ディレクトリ `/usr/src/kernels/2.6.29.6-213.fc11.x86_64' に入ります
 +  CC [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/os_linux.o
 +  CC [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/osm_linux.o
 +  CC [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/div64.o
 +  CC [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/hptinfo.o
 +  CC [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/config.o
 +  LD [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/rr174x.o
 +  Building modules, stage 2.
 +  MODPOST 1 modules
 +WARNING: could not find /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/
 +.him_rr1740pm.o.cmd for /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/
 +him_rr1740pm.o
 +  CC      /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/rr174x.mod.o
 +  LD [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/rr174x.ko
 +make[1]: ディレクトリ `/usr/src/kernels/2.6.29.6-213.fc11.x86_64' から出ます
 +You made a module for 2.6.29.6-213.fc11.x86_64 which does not match current kernel.
 +The driver will be installed for kernel 2.6.29.6-213.fc11.x86_64.
 +Deleting previous installed driver module rr174x...
 +Install the new driver module...
 +Removing conflicted driver module...
 +Updating module dependencies...Done.
 +Checking for initrd images to be updated...
 +Backup /boot/initrd-2.6.29.6-213.fc11.x86_64.img to /boot/initrd-2.6.29.6-213.fc11.
 +x86_64.img.rr174x.
 +</code>
 +上記のように無事終了したら、リブートを行い新しいカーネルで起動することを確認する。
 +
 +===== Kernel 2.6.29 -> 2.6.30 へ移行時のビルドエラー修正 =====
 + 以下の内容について私は如何なる保証もしない。修正する場合は自己の責任において利用すること。\\
 + 因みに以下の修正で動作することは確認済みである。\\
 +
 +  - osm_linux.h:144: error: conflicting types for ‘irqreturn_t’ を修正する。\\ 142~149行目<code c>
 +
 +#ifndef IRQ_HANDLED
 +typedef void irqreturn_t;
 +#define IRQ_NONE
 +#define IRQ_HANDLED
 +#define IRQ_RETVAL(x)
 +#endif
 +
 +</code>修正後: <code c>
 +/* comment out by tomoyan
 +#ifndef IRQ_HANDLED
 +typedef void irqreturn_t;
 +#define IRQ_NONE
 +#define IRQ_HANDLED
 +#define IRQ_RETVAL(x)
 +#endif
 +*/
 +</code>
 +  - osm_linux.c:676: error: ‘SUGGEST_ABORT’ undeclared (first use in this function) を修正する。\\ 676行目<code c>
 + SCpnt->result = ((DRIVER_INVALID|SUGGEST_ABORT)<<24) | (DID_ABORT<<16);
 +</code>修正後: <code c>
 + SCpnt->result = DRIVER_INVALID << 24 | DID_ABORT << 16;
 +</code>
 +  - osm_linux.c:1293: error: ‘SUGGEST_ABORT’ undeclared (first use in this function) を修正する。\\ 1293行目<code c>
 + SCpnt->result = ((DRIVER_INVALID|SUGGEST_ABORT)<<24) | (DID_ABORT<<16);
 +</code>修正後: <code c>
 + SCpnt->result = DRIVER_INVALID << 24 | DID_ABORT << 16;
 +</code>
 +  - osm_linux.c:1402: error: ‘SUGGEST_ABORT’ undeclared (first use in this function) を修正する。\\ 1402行目<code c>
 + SCpnt->result = ((DRIVER_INVALID|SUGGEST_ABORT)<<24) | (DID_ABORT<<16);
 +</code>修正後: <code c>
 + SCpnt->result = DRIVER_INVALID << 24 | DID_ABORT << 16;
 +</code>
 +  - 無事ビルドが通ることを確認する。\\ <code>
 +# make install KERNELDIR=/usr/src/kernels/2.6.30.8-64.fc11.x86_64
 +make[1]: ディレクトリ `/usr/src/kernels/2.6.30.8-64.fc11.x86_64' に入ります
 +  CC [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/os_linux.o
 +  CC [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/osm_linux.o
 +  CC [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/div64.o
 +  CC [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/hptinfo.o
 +  CC [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/config.o
 +  LD [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/rr174x.o
 +  Building modules, stage 2.
 +  MODPOST 1 modules
 +WARNING: could not find /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/.him_rr1740pm.o.cmd for 
 +/root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/him_rr1740pm.o
 +  LD [M]  /root/rr174x-linux-src-v2.2/product/rr1740pm/linux/.build/rr174x.ko
 +make[1]: ディレクトリ `/usr/src/kernels/2.6.30.8-64.fc11.x86_64' から出ます
 +You made a module for 2.6.30.8-64.fc11.x86_64 which does not match current kernel.
 +The driver will be installed for kernel 2.6.30.8-64.fc11.x86_64.
 +Deleting previous installed driver module rr174x...
 +Install the new driver module...
 +Removing conflicted driver module...
 +Updating module dependencies...Done.
 +Checking for initrd images to be updated...
 +</code>
 +参考文献:\\
 + [[http://www.linuxhq.com/kernel/v2.6/30-rc2/drivers/scsi/hptiop.c|Linux Headquarters - Kernel v2.6.30-rc2 /drivers/scsi/hptiop.c Patch]]\\
 + linux/irqreturn.h\\
 + scsi/scsi.h\\
 + [[http://www.linux.or.jp/JF/JFdocs/SCSI-Programming-HOWTO-21.html|The Linux SCSI programming HOWTO: エラー処理]]\\