街中で見かけて「グッときた人」の思い出

TurboLinux10DesktopでMatrox社製のVGAボードを認識させたいです。
(VGAボード:http://www.jmgs.jp/products/corporate/product/ep …

Linux用のドライバのリリースノートには、
 以下のパッケージをインストールしなければならない。
  - GCC compiler version 3.2 or later (up to 4.0).
  - Glibc 2.3.2 or later.
  - Binutils 2.13 or later.
  - Make 3.77 or later.
とありました。
TurboLinux10に入っているパッケージのバージョンの見方がわからないのですが、
検索して見つけた下記URLには、
http://ascii24.com/news/i/soft/article/2003/10/0 …
 TurboLinux10Dの主要コンポーネントは、
  Kernel 2.6.0、glibc 2.3.2、XFree86 4.3.0、rpm 4.2、gcc 3.3.1、KDE3.1.3、GNOME 2.4
と書かれており、
GCCとGlibcは条件を満たしていると認識したのですが、問題ないでしょうか。
残る必要なパッケージ「Binutils 2.13」と「Make 3.77」は、
TurboLinuxのFTPサーバー
ftp://ftp.nuie.nagoya-u.ac.jp/pub/Linux/TurboLin …
から、
binutils-2.14.90.0.4-3.i586.rpm
make-3.80-1.i586.rpm
を見つけたのでダウンロードしました。

これを、rpm -i binutils-2.14.90.0.4-3.i586.rpmでインストールしたのですが、
下記のエラーメッセージが出て失敗しました。
「libc.so.6(GLIBC_2.0)」が必要だ、とのことですが、
これはどこから探してくればよいのでしょうか。
検索するとかなりの件数ヒットするのですが、
入ってみると違うパッケージ名に見えるのでどれを使えばよいのか判断がつきません。
(例えばココ:http://rpmfind.net/linux/rpm2html/search.php?que …
「libc.so.6.rpm」というファイルではないのでしょうか。

なお、GUI(KED)上のメニューにある「Turboアップデート」でパッケージをインストールしようともしたのですが、
巧くいきませんでした。
読込先に今回ダウンロードしてきたrpmパッケージを置いたディレクトリを指定し、
「スキャンする」を実行したのですが、以降ずっとマウスポインタが時計マークになったままでした。


▼rpmインストール時に出たメッセージ---------------------------------------------------
rpmdb: read: 0x404b9c08, 4096: 入力/出力エラーで
エラー: db4 error(5) from dbcursor->c_get: 入力/出力エラーで
エラー: error(5) getting "libc.so.6(GLIBC_2.0)" records from Providename index
rpmdb: read: 0x404bbd18, 4096: 入力/出力エラーで
エラー: db4 error(5) from dbcursor->c_get: 入力/出力エラーで
エラー: error(5) getting "libc.so.6(GLIBC_2.1.3)" records from Providename index
rpmdb: read: 0x404bde28, 4096: 入力/出力エラーで
エラー: db4 error(5) from dbcursor->c_get: 入力/出力エラーで
エラー: error(5) getting "libc.so.6(GLIBC_2.3)" records from Providename index
rpmdb: read: 0x404bff38, 4096: 入力/出力エラーで
エラー: db4 error(5) from dbcursor->c_get: 入力/出力エラーで
エラー: error(5) getting "libdl.so.2(GLIBC_2.0)" records from Providename index
rpmdb: read: 0x404bff38, 4096: 入力/出力エラーで
エラー: db4 error(5) from dbcursor->c_get: 入力/出力エラーで
エラー: error(5) getting "libdl.so.2(GLIBC_2.1)" records from Providename index
エラー: Failed dependencies:
libc.so.6(GLIBC_2.0) is needed by binutils-2.14.90.0.4-3
libc.so.6(GLIBC_2.1.3) is needed by binutils-2.14.90.0.4-3
libc.so.6(GLIBC_2.3) is needed by binutils-2.14.90.0.4-3
libdl.so.2(GLIBC_2.0) is needed by binutils-2.14.90.0.4-3
libdl.so.2(GLIBC_2.1) is needed by binutils-2.14.90.0.4-3
▲ここまで----------------------------------------------------------------------------


▼以前指南頂いたスレ
http://oshiete1.goo.ne.jp/qa3578303.html

A 回答 (4件)

> /home/user/.bash_profileも/root/.bash_profileも、


> /sbinへのPATHらしき記述はありませんでしたので、
> 両方とも追記しました。
bashが読み込むファイルは.bash_profileだけではありません。
詳しくは man bash してみてください。

> .configファイルを用意しただけではダメなのでしょうか?
"make oldconfig" は実行しましたか?

カーネルのモジュール(ドライバ等)を組み込む場合は、
通常ならば再構築までしなくても大丈夫だと思うのですが、
最低限、make config, make xconfig, make menuconfig, make oldconfig 等のコマンド実行までしないと、
カーネルのソースツリーをうまく参照することが出来ないことが多いようです。
# 再構築が必要な場合は、現在のカーネルの<Loadable Module>が有効になってない場合です。

いまさらですが、
ドライバを利用できない場合は、
VESAモードを利用すると動く場合があります。

参考URL:http://www.turbolinux.co.jp/products/server/10s/ …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

make gconfigとmake xconfigは実行しようとしたのですが、
エラーが出て止まってしまいました。
(これらはパラメータの設定をするコマンドで、どれか1つ実行すればよいのですよね?)
その後、make oldconfigを実行し、成功したように見えたので、
make V=0以降を実行しました。
そのまま30分もかけてOSをダメにしちゃったわけですが…。

VESAについて、「XFree86でサポートされていないビデオカード」とありますが、
Matrox提供のドライバのメモには、動作する環境として
「XFree86 4.3.0 or X.org 6.7.0」と書かれているのでXFree86で動きそうには思います。
XFree86 -configureコマンドでXF86Config.newを作ってもらった時は、
Section "Device"
 Driver "vesa"
EndSection
と書かれていましたが、
これがVESAモードを使っている、ってこと…ではないですよね。

XFree86 -configureコマンドで作ってもらったXF86Configで1画面だけなら高い解像度で表示されています。
書き忘れてましたが(申し訳ありません)、目的はこのボードで4画面表示させることでした。
1画面だけならドライバを入れなくてもrunlevel5で起動しました。
流石に2画面以上の利用はドライバが必須みたいなので(Matroxの他のVGAボードもそうでした)、
なんとかドライバを入れようとしてました。

何にせよ、またTurboのインストールからです。
色々助言していただき、ありがとうございました。

お礼日時:2007/12/26 09:17

bcoffeeさんが的確なアドバイスされてるので余計かもしれませんが。


Turbolinuxに限りませんが、ディストリビューション毎に独自のやりかた
(もしくは専用ツール)がある場合があります。

Turbolinuxに関することなら、まずはTurbo社のFAQから調べるべきでしょう。
http://www.turbolinux.co.jp/support/document/kno …
カーネルの再構築手順 の (2)を行えばいいのではないですかね。

# ./SetupKernelSource.sh i386

最後の i386 はあなたのPCアーキテクチャにあわせる。i586 かもしれない。

参考URL:http://www.turbolinux.co.jp/support/document.html

この回答への補足

回答ありがとうございます。

確かに「./SetupKernelSource.sh i386」は行っておりませんでした。
/usr/src/linux-2.6.0/configusの中を見るとi586しか無いので、たぶんi586だと思われます。
試してみます。
(再度インストールし直してからですけど)

先日、以下URLを見ながらRedhat9のカーネル再構築を実行しました。
http://www.atmarkit.co.jp/flinux/rensai/linuxtip …
ここでは、
/usr/src/linux/Makefile の中の一文を修正することで別名のbzImage?を作成するため、
最終的にGRUBで「元のカーネル」と「再構築後のカーネル」を選択できるようになりました。
再構築後のカーネルが起動できなくても、
GRUBで元のカーネルを選択すれば問題なかったわけです。
(単語の意味が間違ってたら申し訳ないです)

挙げていただいたFAQの手順で実行した場合、
前述したように起動時に「今作ったもの」と「今までのもの」を選択できるようになるのでしょうか。
特にイメージに名前を指定してはいないように見えます。
見たところでは最後にliloに設定しているようですが、
この手順で実行すると自動的にliloで起動するようになるのでしょうか(現在GRUBで起動)。
liloでも、「今作ったもの」と「今までのもの」の選択ができれば問題は無いのですが、
(liloは見たことが無いですけど)
このFAQの手順の後「今までのもの」に「今作ったもの」が上書きされるカタチで完了してしまうと、
またインストールからスタートするハメになりそうです…。

bcoffeeさんに挙げていただいたURLの手順でも、
「make install でgrub の設定も自動的にやってくれる」とあるのですが、
自動的に上書きしてくれるのか、
自動的に「今作ったもの」を追記してくれるのかがわかりません。
こちらでは同じmake installというコマンドでGRUBに設定が書き込まれているようですね。

また再インストールとなろうとも、試してみるしかないのでしょうか。

補足日時:2007/12/27 11:50
    • good
    • 0
この回答へのお礼

申し訳ありません。
http://mcn.oops.jp/linux/topic1.5/kernel_rebuild …に、
grubにするかliloにするか、
Makefileを修正して別イメージを作成する、
について書いてありました。

実行してみます。

お礼日時:2007/12/27 13:23

>「パスを通す」という操作がイマイチわからないのですが(たしか以前質問したような…)、


> 検索して見つけた
> ホームディレクトリの.bash_profileに
> PATH=$PATH:/sbin
> export PATH
> と書き込む。
>をやってみたのですが操作としては正しいのでしょうか。

実行パスの追加のやり方はあっています。
ですが、/home/user/.bash_profile に追加したということですか?
"su -"でrootになるか、直接rootでログインすると
/sbinがパスに入っていないでしょうか?

> Makefile:385: .config: そのようなファイルやディレクトリはありません
>
> The present kernel configuration has modules disabled.
> Type 'make config' and enable loadable module support.
> Then build a kernel with module support enabled.

一度もカーネルを再構築していないので、
/usr/src/linux/.config ファイルがないのではないでしょうか?

/proc/config.gz ファイルが存在すれば、
# zcat /proc/config.gz > /usr/src/linux/.config
# make oldconfig
とすれば良いと思います。

ない場合は、どこかにデフォルトのconfigファイルがあると思うので、
探してみてください。

TurboLinuxは使っていないので正確には解らないのですが、
http://mcn.oops.jp/linux/topic1.5/kernel_rebuild …
をみるかぎり、
# cp /usr/src/linux/arch/i386/defconfig /usr/src/linux/.config
# make oldconfig
とかすると使えそうな気はします。
(これはソース付属のデフォルトコンフィグファイルで、現在の設定とは違うような気がします)

参考URL:http://mcn.oops.jp/linux/topic1.5/kernel_rebuild …

この回答への補足

回答ありがとうございます。

>/home/user/.bash_profile に追加したということですか?
>"su -"でrootになるか、直接rootでログインすると
>/sbinがパスに入っていないでしょうか?

/home/user/.bash_profileも/root/.bash_profileも、
/sbinへのPATHらしき記述はありませんでしたので、
両方とも追記しました。
(でも/sbinの中にある一部のコマンドは/sbin無しで使えたような気がします)
なにかまずかったでしょうか。



>一度もカーネルを再構築していないので、
>/usr/src/linux/.config ファイルがないのではないでしょうか?

無いです。
偶然先ほど下記URLを見ていたので、これを元に.configを作成しました。
cd /usr/src/linux-2.6.0
cp ./configs/kernel-2.6.0-test5_2-i586.config .config
http://www.atmarkit.co.jp/flinux/rensai/linuxtip …

.configファイルを用意しただけではダメなのでしょうか?
このファイルが何の役目を担っているのかわからないのですが、
この状態で再度ドライバのインストールを試したところ、
今までエラーが出ていた、
Compiling mtx.ko ...
の部分で戻ってこなくなってしまいました。
この時点で処理が止まり、
エラーが出たり、ログが作られたりすらしなくなってしまいました。

やはりKernel再構築まで完了しなくてはいけないのかと、
挙げていただいたサイトと「Fedora Core 2でカーネルを再構築するには」に従って実行したところ、
どこかでミスったらしく、また(苦笑)起動しなくなってしまいました…。

grub.confの方に追記されず、今までのKernelに上書きされてしまったみたいです。

行う内容としては、
.configuファイルを/usr/src/linux-2.6.0の中に配置するだけでOKだったのでしょうか?
やはりそれを元に(という表現であっているのか疑問ですが)再構築後に実行せねばならないのでしょうか?

補足日時:2007/12/25 20:57
    • good
    • 0

TurboLinuxのFTPサーバにあるものは


既にデフォルトでインストール済みのパッケージではないのでしょうか?

以下のコマンドで確認出来ると思います。
gcc --version (gcc)
ldconfig --version (glibc)
ar --version (binutils)
make --version (make)

それから、前回の質問の
> Installation package v1.4.5
> ./install.sh: ldconfig: command not found
は、/sbinにパスが通ってないのではないでしょうか?
一般ユーザでログイン後、su で root になると起こりやすいです。

この回答への補足

回答ありがとうございます。

提示していただいたコマンドでバージョンを確認してみたところ、
どうやら入れようとしていたバージョンが入っているようです。
Matrox社の指定する環境になってはいるみたいです。

「パスを通す」という操作がイマイチわからないのですが(たしか以前質問したような…)、
検索して見つけた
 ホームディレクトリの.bash_profileに
 PATH=$PATH:/sbin
 export PATH
 と書き込む。
をやってみたのですが操作としては正しいのでしょうか。
上記を記述後にドライバを実行してみたところ、
「./install.sh: ldconfig: command not found」は消えました、ありがとうございます。
しかしそれ以降のメッセージは変わらず残りました。

メッセージの最後に、
There has been an error compiling the kernel module.
A log file has been created in the file /tmp/make.log
とありますので、その内容を付記します。
(MtxCpu.oやMtxCs.oを作るgccから始まる部分はエラーを出していないようなので+行数が多いので割愛しました)
/home/user/はホームディレクトリです。
/home/user/vga/はドライバをインストールしようとしているディレクトリです。

指定された環境で実行して出るエラーは何が原因なんでしょうか。

▼make.log----------------------------------------------------------------------------------------------------
Using kernel headers in /lib/modules/2.6.0-test5_2/build/include for kernel version 2.6.x
making all in /parhelia...
make[1]: Entering directory `/home/user/vga/matroxdriver-x86_32-1.4.5/kernel/src/parhelia'
make[1]: `all' に対して行うべき事はありません。
make[1]: Leaving directory `/home/user/vga/matroxdriver-x86_32-1.4.5/kernel/src/parhelia'
making all in /mtxvxd...
make[1]: Entering directory `/home/user/vga/matroxdriver-x86_32-1.4.5/kernel/src/mtxvxd'

MtxMem.c: 関数 `memFileAlloc' 内:
MtxMem.c:79: 警告: 引数 2 個の `ClientMemAlloc' を渡しますにより、キャストなしでポインタから整数を作りました

ld -r MtxCpu.o MtxCs.o MtxIo.o MtxMem.o MtxPci.o MtxMap.o MtxDbg.o -o mtxvxd.o
make[1]: Leaving directory `/home/user/vga/matroxdriver-x86_32-1.4.5/kernel/src/mtxvxd'
make -C /lib/modules/2.6.0-test5_2/build M=/home/user/vga/matroxdriver-x86_32-1.4.5/kernel/src modules
make[1]: Entering directory `/usr/src/linux-2.6.0'
Makefile:385: .config: そのようなファイルやディレクトリはありません

The present kernel configuration has modules disabled.
Type 'make config' and enable loadable module support.
Then build a kernel with module support enabled.

make[1]: *** [modules] エラー 1
make[1]: Leaving directory `/usr/src/linux-2.6.0'
make: *** [default] エラー 2

補足日時:2007/12/25 10:16
    • good
    • 0

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


おすすめ情報