プロが教えるわが家の防犯対策術!

Vine Linux で、PROMISE FastTrak SX4100を使用したくてPROMISEのダウンロードサイト
http://firstweb.promise.com/support/download/dow …
でドライバを探したのですが、Vine Linux用は見つからず、ソースのみありました。
それをインストールしてみようと方法を調べたのですが、ソースファイルの中に「configure」ファイルがありませんでした。
「Makefile」はあったのでmakeとしてみたのですがかなりの量のエラーがでてだめでした。
このような場合、どのようにすればよいのでしょうか?

よろしくお願いします。

A 回答 (13件中1~10件)

展開した中にインストール方法が書かれたテキストファイルがありませんでしたか。

この回答への補足

回答ありがとうございます。ファイルはありました。

make clean
For kernel 2.4, just type:
make
For kernel 2.6, type:
make DRIVER_SRC_DIR=`pwd`

と書かれており、カーネルは3.4.69-1vl6なのですが、とりあえず両方とも試しましたがすごい量のエラーがでてだめでした。

補足日時:2014/04/09 16:26
    • good
    • 0

>「Makefile」はあったのでmakeとしてみたのですがかなりの量のエラーがでてだめでした。


>このような場合、どのようにすればよいのでしょうか?

エラーメッセージからエラーの原因を調べて対応してください。
以外の回答のしようがないのですが、どうしましょう?

貴方のPCに侵入できるハッカーの登場を待つか、エラーメッセージのいくつかを掲示するか、どちらにします?

・カーネルソースのヘッダがない。
=>/usr/src/linux/にカーネルソースが無いと…たぶん失敗する。必要ならシンボリックリンクで対処するか、make実行時に環境変数で指定してください。(指定する環境変数名はMakefileでも覗いてください)
・必要なライブラリがない。
=>エラーメッセージ確認してください。
・そもそもコンパイラなどがそろっていない。
=>インストールしてください。少なくともmakeは入っているようですが…。

などなどなど……。

この回答への補足

下記のようなエラーが倍以上出ます。
とりあえず/usr/src/linux/の中は空だったのですが、/usr/src/linux-3.4/に似たようなファイルがありましたので良いのですが、
/lib/modules/3.4.69-1vl6/build//.config
のエラーがさっぱりわかりません。
.configを検索しても
/var/gdm/.config
/home/***/.config
/root/.config
しか見つかりませんでした・・・ここはどう変更すればよいのでしょうか?


cat: /lib/modules/3.4.69-1vl6/build//.config: そのようなファイルやディレクトリはありません
cat: /lib/modules/3.4.69-1vl6/build//include/linux/version.h: そのようなファイルやディレクトリはありません
cat: /lib/modules/3.4.69-1vl6/build//.config: そのようなファイルやディレクトリはありません
省略
grep: /lib/modules/3.4.69-1vl6/build/include/linux/version.h: そのようなファイルやディレクトリはありません
/bin/sh: 0 行: [: -lt: 単項演算子が予期されます
grep: /lib/modules/3.4.69-1vl6/build/include/linux/version.h: そのようなファイルやディレクトリはありません
kernel version:
make CFLAG="-O2 -fomit-frame-pointer -D__KERNEL__ -DMODULE -D__linux__ -Wall -Wstrict-prototypes -fno-strict-aliasing -fno-common -Wno-unused -pipe -D_X8632B -D_32BPLATFORM -I/lib/modules/3.4.69-1vl6/build/include -I/lib/modules/3.4.69-1vl6/build/include/scsi -I/lib/modules/3.4.69-1vl6/build/drivers/scsi -march=i386 -mpreferred-stack-boundary=4 " -C linux
make[1]: Entering directory `/home/jun/SX4100/partial/linux'
gcc -O2 -fomit-frame-pointer -D__KERNEL__ -DMODULE -D__linux__ -Wall -Wstrict-prototypes -fno-strict-aliasing -fno-common -Wno-unused -pipe -D_X8632B -D_32BPLATFORM -I/lib/modules/3.4.69-1vl6/build/include -I/lib/modules/3.4.69-1vl6/build/include/scsi -I/lib/modules/3.4.69-1vl6/build/drivers/scsi -march=i386 -mpreferred-stack-boundary=4 -D_LINUXDRIVER -I../ -I../linux -c osd_main.c
osd_main.c:333 から include されたファイル中:
osd_inc.h:6:24: error: linux/init.h: そのようなファイルやディレクトリはありません
osd_inc.h:9:24: error: asm/string.h: そのようなファイルやディレクトリはありません
osd_inc.h:16:26: error: linux/ioport.h: そのようなファイルやディレクトリはありません
osd_inc.h:17:25: error: linux/delay.h: そのようなファイルやディレクトリはありません
省略
osd_inc.h:50:23: error: scsi_host.h: そのようなファイルやディレクトリはありません
osd_inc.h:51:25: error: scsi_device.h: そのようなファイルやディレクトリはありません
In file included from osd_inc.h:79,
from osd_main.c:333:
osd_ioctl.h:118: 警告: ‘struct file’ declared inside parameter list
osd_ioctl.h:118: 警告: ‘struct inode’ declared inside parameter list
In file included from osd_inc.h:80,
from osd_main.c:333:
osd_inter.h:72: error: expected specifier-qualifier-list before ‘wait_queue_head_t’
osd_inter.h:98: error: expected specifier-qualifier-list before ‘dma_addr_t’
In file included from osd_inc.h:81,
省略
osd_main.c: In function ‘wrap_outl’:
osd_main.c:445: 警告: implicit declaration of function ‘outl’
osd_main.c: In function ‘init_req_pool’:
osd_main.c:456: error: ‘struct _OSD_COMP_EXTENSION’ has no member named ‘ReqHeadPool’
省略
osd_main.c:499: error: ‘struct _REQ_HEAD’ has no member named ‘next’
osd_main.c:502: error: ‘struct _OSD_COMP_EXTENSION’ has no member named ‘res_lock’
osd_main.c:502: error: ‘struct _OSD_COMP_EXTENSION’ has no member named ‘resflags’
osd_main.c: トップレベル:
osd_main.c:540: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fasttrak_intr’
osd_main.c:617: error: expected declaration specifiers or ‘...’ before ‘off_t’
osd_main.c: In function ‘fasttrak_proc_info’:
osd_main.c:635: 警告: implicit declaration of function ‘sprintf’
osd_main.c:635: 警告: incompatible implicit declaration of built-in function ‘sprintf’
osd_main.c:641: error: ‘offset’ undeclared (first use in this function)
osd_main.c:641: error: (Each undeclared identifier is reported only once
osd_main.c:641: error: for each function it appears in.)
osd_main.c: In function ‘fasttrak_abort’:
osd_main.c:662: error: ‘SUCCESS’ undeclared (first use in this function)
osd_main.c: In function ‘fasttrak_reset’:
osd_main.c:674: error: ‘SUCCESS’ undeclared (first use in this function)
osd_main.c: In function ‘EndRequest’:
osd_main.c:710: error: 不完全型のポインタへの間接参照
省略
make[1]: *** [osd_main.o] Error 1
make[1]: Leaving directory `/home/jun/SX4100/partial/linux'
make: *** [linux/ft.o] Error 2

補足日時:2014/04/09 20:19
    • good
    • 0

PROMISE FastTrak SX4100は、PDC20621コントローラを使っているようです。



PROMISEのサイトに在るドライバソースやバイナリは、Kernel2.4か、2.6に向けられた、かなり前のモノです。
コンパイルが失敗するのは、そのへんの理由だと思われます。

製品名、コントローラ名で検索をかけてみたところ、製品名での検索では、直接のドライバにつながる話が古いものばかりなのが気になり、「もしかして」と思い、お尋ねします。

お使いのvineが、現行の6.2.xであるとしての話(kernel3.x.x)ですが、カーネルモジュールsata_sx4が、存在していませんか?

現在、vineを使っていないので、詳細はつかめませんが、この投稿をしている、debian(jessie)/sparky3.3では、/lib/modules/3.12-1-amd64/kernel/drivers/ataの中に有ります。

存在する場合は、定義方法など、使い方の問題になってきますが。

この回答への補足

回答ありがとうございます。
カーネルのバージョンは、3.4.69-1vl6 です。

> 定義方法など、使い方の問題になってきますが。

/lib/modules/3.4.69-1vl6/kernel/drivers/ata/sata_sx4.ko
というファイルならありましたが、その場合どのようにすれば良いのでしょうか?

よろしくお願いします。

補足日時:2014/04/09 21:04
    • good
    • 0

modprobe sata_sx4



だったかと。
詳細は man modprobe で調べてください。

>ドライバをソースからインストールする方法について

については入手されたドライバの対応しているカーネルのバージョンとお使いのVine Linuxのカーネルのバージョンが大きく異なっていてほぼ移植作業になってしまいますからlinuxのドライバの作りなどある程度知らないとコンパイルできるまでには行きません。

この回答への補足

回答ありがとうございます。
modprobe sata_sx4
を実行するとlsmodでロードされたことが確認できましたが、fdisk -l をやってもやはりドライブは表示されません。
その後何かするのでしょうか?

補足日時:2014/04/09 23:21
    • good
    • 0

件のカードがすでに刺さっていて、



"マザーボードのBIOS"設定で、scsiなどのカードのBIOSからの立ち上げが可能な状態に設定されていて、

なおかつ、"カード側"biosでのraid定義が済んでいる
(マザーボードのBIOSが、カードに繋がったドライブを、ストレージとして認識できる状態になった)
ならば、モジュールはすでに読み込まれ、
raidが単一ボリュームとして検出されている可能性が有ります。

カード、マザーボードの設定がまだなら、設定作業を行った後、起動後にlsmodで確認してみましょう。

この回答への補足

回答ありがとうございます。
> "マザーボードのBIOS"設定で、scsiなどのカードのBIOSからの立ち上げが可能な状態に設定されていて、
の設定がわかりませんが、それ以降の設定は済んでいます。(起動中の設定でraidの設定は済ませraid認識もできています。)
しかし、起動して fdisk -l で確認すると表示されません。

あと、検索していてlspciというコマンドを見つけ試したのですが・・・
00:08.0 RAID bus controller: Promise Technology, Inc. PDC20378 (FastTrak 378/SATA 378) (rev 02)
00:0d.0 RAID bus controller: Promise Technology, Inc. PDC20621 [FastTrak SX4100] (rev 01)
00:0e.0 SCSI storage controller: Marvell Technology Group Ltd. MV88SX6081 8-port SATA II PCI-X Controller (rev 09)
00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)
0
とFastTrak SX4100が表示され、これはもしかしてドライバは読み込んでいるということでしょうか?・・・似たもの(カード)が競合してドライブが表示されないということもあるのでしょうか?

lsmodでは、sata_sx4 は表示されませんでしたので、下記の回答者様の教え通り、modprobe sata_sx4 を実行してみると表示されました・・・が、やはり fdisk -l では、ドライブは表示されません。

どうすればよいのでしょうか?

補足日時:2014/04/09 23:31
    • good
    • 0

マザーボードの起動ドライブ設定の確認をして、SCSI等、外部の機器を第一に参照するように設定してから再起動し、起動時オプション(f8キー等)で、マザーに繋がっているドライブではなく、raidカードを参照させます。



(あるいは、設定変更・セーブした時点で再起動すれば、そのままカード側biosが起動するかも知れません。)

raidカード側のbiosが立ち上がったら、その設定を行ってください。
FT SX4100 (tm) BIOS Version****
と表示され、つながっているドライブの一覧が出ます。

>lspci
カードは認識されています。
が、もし、これが、お使いの機械のそれ(結果出力)だとすると、raidだけで、いろいろ繋がりすぎているような気もします。

depmod -aで、つながっている機器のモジュールに対し、依存性を確認させ、更新します。

もしかすると、デバイスのエイリアス名の指定も必要になるかも知れません。

普通の機器ではこの辺までですが、起動ドライブに指定するなどで、起動に関わってくるようならば、mkinitramfsで、起動イメージを更新することになります。

この回答への補足

回答ありがとうございます。
起動後にlspciを実行して既に表示されるということは、sata_sx4を読み込まなくても良いということでしょうか?
lsmod | grep sata としたら下記が表示されました。
sata_via
sata_mv
sata_promise
sata_promiseあたりがそうなのでしょうか?

>raidだけで、いろいろ繋がりすぎているような気もします。
おっしゃる通りなのですが、VIAとPromiseのもう一個の方は元からマザーについている、SATAx各2個のraidでVIAの方はBIOSで無効にできなくて、Promiseの方はIDE?として使用中なのです

depmod -a を実行しましたが、何も表示されませんでした。

・・・困りました

補足日時:2014/04/10 22:38
    • good
    • 0

>を実行するとlsmodでロードされたことが確認できましたが、fdisk -l をやってもやはりドライブは表示されません。



何の前置きもなく平然と「fdisk -l をやってもやはりドライブは表示されません。」といわれていますけど、質問は「ドライバをソースからインストール方法」だったのではないのですか?
質問が追加もしくは変わってますけど。

私はてっきりドライバの導入までの話だと思ってたのですが。

>あと、検索していてlspciというコマンドを見つけ試したのですが・・・

探し出して試すのはいいことですけど、それが何をするものかも調べましょうよ・・・
man lspci で何をするコマンドなのかわかりますよね?

sata_sx4のソース見てみましたけど、これLinuxではただのSATAカードとしてしか扱えないような・・・(MODULE_DESCRIPTIONに"Promise SATA low-level driver"て書いてあるのを読んだだけ)

この回答への補足

> 何の前置きもなく平然と「fdisk -l・・・
申し訳ありません。最初の質問時に省いてしまいました。この質問をしたのは、PC起動時にraid設定してHDDをカードが認識しているにもかかわらず、Linux起動後はOS上でfdisk -lをしてもハードディスクが表示されないので、カードのドライバがないのが原因と思い込み質問した次第です。
ですが、lspciコマンドでカード自体は認識していると知って「認識=ドライバ読み込み済み」と思ったわけです。おっしゃられる通りここで質問が変わってしまいました。
そして、現在も検索していてsata_sx4について調べていたら、違うraidカードについてでしたが、sata_sx4は、ハードウェアraidには対応していないとの書き込みがありました。Promiseのリンク先の詳細ページはエラーで見れませんでしたが、おっしゃられているのはこのことでしょうか?
・・・つまり質問が戻りましたが、結局ドライバをソースから入れるしかないという事でしょうか?・・・しかし、このソースもほかの方がおっしゃられている通り、古いカーネル用なのですが、平気なのでしょうか?

補足日時:2014/04/10 13:04
    • good
    • 0
この回答へのお礼

申し訳ありません、ソースからについては前回の回答に書かれていましたね。
確かに厳しそうです・・・困りました・・・
ありがとうございました。

お礼日時:2014/04/10 13:16

https://ata.wiki.kernel.org/index.php/Sata_sx4
このURLに、sata_sx4の詳細が説明されています。

インターフェイスは認識されています。
あとは設定です。

kernel.orgのatawikiの情報から、このドライバの制限事項として、利用できる設定は、全体をひとかたまりのディスクとして扱う、JBOD一択になります。

RAIDが必要な場合、その上で、ソフトウェアRAIDを組むことになります。

参考URL:https://ata.wiki.kernel.org/index.php/Sata_sx4

この回答への補足

回答ありがとうございます。
>全体をひとかたまりのディスクとして扱う、JBOD一択になります。
なるほど、そうですか、折角買ったRAIDカードが・・・

で、JBODを試してみようと思ったのですが、説明書にはスペースキーで選択するとなっているのですが、RAIDの 0,1,5,10を繰り返すだけで JBOD が出てきません。他に設定ヶ所は無いようなのですが・・・JBODで認識できるかも現在は試せない状況です・・・何ででしょう・・・

補足日時:2014/04/10 22:50
    • good
    • 0

>そして、現在も検索していてsata_sx4について調べていたら、違うraidカードについてでしたが、sata_sx4は、ハードウェアraidには対応していないとの書き込みがありました。

Promiseのリンク先の詳細ページはエラーで見れませんでしたが、おっしゃられているのはこのことでしょうか?

lspciはPCIに挿してあるデバイスを調べて表示するだけです。
ドライバのあるなしは関係ありません。
(具体的にいえばPCIデバイスにベンダーIDとデバイスIDを教えてもらって自前のデータベースを調べてるだけ)
これがわかっていれば
「とFastTrak SX4100が表示され、これはもしかしてドライバは読み込んでいるということでしょうか?」という事にはならないでしょ?

>・・・つまり質問が戻りましたが、結局ドライバをソースから入れるしかないという事でしょうか?・・・しかし、このソースもほかの方がおっしゃられている通り、古いカーネル用なのですが、平気なのでしょうか?

Promise提供のソースを見てみましたけど肝心な部分のオブジェクトファイルでの提供なので移植は無理ですね。
    • good
    • 0

>起動後にlspciを実行して既に表示されるということは、sata_sx4を読み込まなくても良いということでしょうか?



lspciは、システムに対し、「そこ(pci)に何が見えますか?」と、聞いているに過ぎません。
ここで、きちんと「~~が見えます」という返事が返って来ないと、「このドライバを(持っている中から)探しなさい:modprobe」等、後の指示が出来ません。
この時点で、「製品かコントローラの名前」で返ってくる事は重要です。
少なくとも、「オープンソースドライバの開発側に、製品の存在は認知されている。」ことになりますから。

sata_promise

https://wiki.debian.org/DeviceDatabase/PCI
Promise社製品の製品は、数多く出されていますが、適用すべきドライバの数はそれほど種類がある訳では有りません。
同じドライバを用いる製品が多く存在しています。

ただ、このSX4100と、SX4-Mについては、挙動が特殊な様子なので、sata_sx4と言う、専用ドライバが必要になったのでしょう。

>元からマザーについている
参考まで、ご利用のマザーをお教え願います。


こちらがHDDのコンパチビリティリストです。
http://firstweb.promise.com/upload/Support/Compa …

これによれば、同じコントローラを使った、SX4-Mでも、特定のキュー方式をサポートしていない旨、書かれています。

こちらがマニュアルです。
http://firstweb.promise.com/upload/Support/Manua …

22ページからの、LD(論理ドライブ)の設定の項目のところをご覧ください。
不明瞭な部分については、対訳しますので、場所を指定してください。

参考URL:http://firstweb.promise.com/upload/Support/Manua …

この回答への補足

modprobe sata_sx4
を、実行した後はそれ以外に何もしなくても、通常なら「fdisk -l」を実行すればドライブは表示されるようになるのでしょうか?

>参考まで、ご利用のマザーをお教え願います。
A8V Deluxe です。

>こちらがHDDのコンパチビリティリストです。
このリストに載っていないHDDは使用できないということでしょうか?!

>こちらがマニュアルです。
マニュアルはすでに入手していてそれを見て各種設定はしたました。前回も書きましたが、14ページの3のスペースキーでRAIDレベルを選択のところで、スペースキーを押していってもJBODにならないのです。仕方ないのでRAID0でHDD4台とか1台にしてみたりとか色々試したのですが・・・

・・・他メーカーのRAIDカードでも有名ではないLINUXの場合は、ドライバが無くてSATAカードとしてのものになってしまうのでしょうか?

補足日時:2014/04/11 20:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!