68user's page 掲示板

Prev< No. 1827〜1847> Next  [最新発言に戻る] [過去ログ一覧]
No. 1827 # rosegarden 2001/03/16 (金) 01:50:02
>>1826 taka
> 指摘して頂いたとおり、LINTを見ると関係ありそうなものはいかの
> 通りでした。
>
> # snd: Voxware sound support code
> # sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum
> # sbxvi: SoundBlaster 16

4.2-RELEASE でサウンドを利用する場合 2 通りの方法があります。
(1) pcm ドライバを使う
(2) snd ドライバを使う

4.2-RELEASE までなら、snd ドライバが使えます。
で、taka さんが関係ありそうとおっしゃっている opl ドライバは
snd ドライバを使う際に使います。
これは pcm ドライバとは一緒に使えません。
(忘れたのですが、指定しても片方が無効になるのだと思いました。)

pcm ドライバを使うのなら前の私の書き込みのように
sbc ドライバか gusc ドライバあたりを有効にします。

一方, snd ドライバを使うのなら、taka さんの場合なら、
おそらく snd, sb, sbxvi, sbmidi, opl あたりを有効にするのだと
思います。sbxvi あたり存在しないというメッセージが出るかも知れませんが、
そのへんは試行錯誤でやってみてください。
どうしても opl がよさそう、あるいは、簡単そうというのなら、
snd ドライバを有効にして pcm ドライバは使いません。

余談ですが、snd ドライバを使う方法は「FreeBSD 徹底入門」あたりに
書かれている方法ですが、このドライバ自体かなり古いので、
現在では起動時に warning が出ます。
この warning が出ても害はないので心配はいりません。
ところが、snd ドライバは今年に入ってからなくなったと思うので、
4.3-RELEASE からは snd ドライバは使えません。

No. 1828 # taka 2001/03/18 (日) 01:19:57
>>1827 rosegarden

親切に説明して頂きありがとうございます。

>4.2-RELEASE でサウンドを利用する場合 2 通りの方法があります。
>(1) pcm ドライバを使う
>(2) snd ドライバを使う

早速、上記(1)の方法でカーネルの再構築を行ってみました。
以前の書き込みを参考にして

# For non-pnp sound cards with no bridge drivers only:
device pcm0 at isa? irq 10 drq 1 flags 0x0
#
# For PnP/PCI sound cards
device pcm

を追加し、sbcドライバ、guscドライバを交互に有効にしてみました。

dmesgの関係ありそうなログは前と変わらず、下記の通りでした。
pcm0: <Yamaha DS-1 (YMF740?)> irq 9 at device 10.0 on pci0
pcm0: unable to map register space

% cat /dev/sndstat
cat: /dev/sndstat: Device not configured

どちらのドライバを用いても認識していないみたいでした。

---
ところで、話は変わるのですがやはり初心者にはFreeBSDは敷居が高いものな
のでしょうか?Linuxなどは書籍などが豊富で分かりやすく書かれたものが多
い印象を受けます。一方、FreeBSDは書籍も少なく、またある程度の知識を
もっていないと私の場合のようにすぐつまづくように感じました。

No. 1829 # rosegarden 2001/03/19 (月) 06:41:08
>>1828 taka
> mesgの関係ありそうなログは前と変わらず、下記の通りでした。
> pcm0: <Yamaha DS-1 (YMF740?)> irq 9 at device 10.0 on pci0
> pcm0: unable to map register space
うーん、4.2-RELEASE だとまだ pcm ドライバが完全じゃないからかな?
いま出張中で、-current のソースしかてもとに無いし、
cvsweb で時間をかけて調べられる状態でもないので、
はっきりしたことは言えませんが、
ds1.c:
          $FreeBSD: src/sys/dev/sound/pci/ds1.c,v 1.21 2000/12/25 01:42:13 cg Exp $
となっていますので、snd ドライバを使うしかないのかも知れません。
上の 2000/12/25 という日付は 4.2-RELEASE が出た後の日付ですから。

あと変だなと思う点は port アドレスが認識されていない点です。
>pcm0: <Yamaha DS-1E (YMF744)> port 0xfc8c-0xfc8f,0xfcc0-0xfcff \
>mem 0xfedf8000-0xfedfffff irq 9 at device 9.0 on pci0
ちゃんと認識されている場合、こんな感じになると思うのですが。

私の知っている範囲で言えば、サウンドドライバの設定には問題無いので、
他の設定、例えば PnP BIOS とかノートパソコンなら PCCARD
の設定なんかの問題も考えられるように思います。

No. 1830 # taka 2001/03/20 (火) 01:14:00
>>1829 rosegarden

度々すいません。

>ds1.c:
> $FreeBSD: src/sys/dev/sound/pci/ds1.c,v 1.21 2000/12/25 01:42:13 cg Exp $

確認して見たところ
ds1.c :
        $FreeBSD: src/sys/dev/sound/pci/ds1.c,v 1.8.2.4 2000/10/05 05:12:31 cg Exp $

となっていて、随分古いような気がしました。

そこで、良く分からないのですが単純に「ds1.c」だけ currentから最新のものをダ
ウンロードしてカーネルを再構築するという方法でよろしいのでしょうか?
いろいろ関連するソースもあると思うので、単純にそのようにしてよいものか
分かりませんが

No. 1831 # sakachan 2001/03/20 (火) 11:30:26
いつもこのページを参照させていただいております。
今回初めて書きこませていただきます。

Linux上のTrueColorのディスプレイで実験データ表示用の
カラー等高線の図を書くXプログラミングの必要に迫られました。
当初は等高値に値するRGBの各256値を配列に入れて、
XlibのXCreateImage()を使って画面表示すればOKと思っておりました。
しかし、どうやらXウインドウにRGBAフォーマットで渡さなければうまく
表示出来ないようで、単色の色をRGB値で設定してもアルファー値の設定
方法がわからないために「砂あらし」画面の様な画面しか表示されません。
(白、黒などはRGB=各0256、アルファー=0,256とすれば表示できる)
設定を変えて何とかしても良いのでしょうが、RGBAについて理解して
おきたいために、RGBAでの表示にこだわりたいと思います。

何らかのX11上のライブラリ、もしくはRGBA規格についてご存じのお方
ご教授お願いいたします。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 1832 # rosegarden 2001/03/20 (火) 19:58:40
>>1830 taka
> そこで、良く分からないのですが単純に「ds1.c」だけ currentから最新のものをダ
> ウンロードしてカーネルを再構築するという方法でよろしいのでしょうか?
> いろいろ関連するソースもあると思うので、単純にそのようにしてよいものか
> 分かりませんが
いま自宅に戻ったので、ソースを見比べてみたのですが、だいぶ変わっていますね。
このソースの感じをみると ds1.c の入れ換えだけでは無理だと思います。
4.2-RELEASE 相当のソースと最新のソースを比べると激しく変化しています。
結局、カーネルのソース全体を入れ換えねばならず、そうすると今度は
全部の基本コマンドと /etc 以下のファイルの入れ換えが必要になってきます。

あと数日で 4.3-RELEASE が出るので、新しくしたい場合にはそれを
待った方が良いです。急ぐのなら、4.3-BETA というのが
ftp://current.jp.FreeBSD.org/pub/FreeBSD/snapshots/i386/4-LATEST/
にあります。マシンが 2 台あるのなら、片方にこのファイルをダウンロードして
目標とするマシンにインストールすることも可能です。これは
かなり 4.3-RELEASE に近い物になるはずです。

しかしながら、初心者の方にこれを使うことはお勧めできません。もっと厄介な
問題を抱える可能性があります。

話を原点に戻しましょう。

サウンドを使うという場合には次のことをまず考慮した方が良いと思います。

(1) snd ドライバの使用。
(2) PnP が有効になっているか
(3) ノートパソコンだと PCCARD 関係の設定。PCCARD のドライバが
        使う irq とサウンド関係はバッティングしがちです。
(4) PnP を止めて、Legacy モードでマシンを起動するようにして、
        Windows (同じマシンに入っていれば) の
        デバイスドライバのところをみて irq とか iomem などを
        メモして、それをカーネルの設定ファイルに指定して再構築します。

(3) までやってだめなら、FreeBSD-users-jp というメーリングリスト
があるのでそれに参加して質問してみた方が私なんかを相手にするよりも良いかも
しれません。メーリングリストの購読の案内は
http://www.jp.freebsd.org/ml.html#FreeBSD-users-jp
にあります。その際には、カーネルの設定ファイル全部と dmesg の出力
「全部」を添付してください。理想的なのは /boot/loader.conf に

kernel_options="-v"

というのをいれて再起動し dmesg をとってください。より詳細な情報が
dmesg でみられます。みる人がみれば、普通の dmesg よりも
アドバイスしやすいはずです。

どうも、サウンドの設定には問題がないようなので、
他のものと衝突しているような気がします。この場合に重要なのは
ノートパソコンで PCCARD を使っているかどうかです。
あとは普通に質問を書けば良いかと思います。検索をしましたが、YMF740 の
報告は見当たらず、資料さえ全部添付すれば、
そのまま質問をしても怒られるようなことはないと思います。

それで駄目なら、ソースの問題ということになります。
ファイルの入れ換えは本当に最後の手段です。

No. 1833 # rosegarden 2001/03/20 (火) 20:08:23
>>1832 rosegarden
> マシンが 2 台あるのなら、片方にこのファイルをダウンロードして
> 目標とするマシンにインストールすることも可能です。これは
> かなり 4.3-RELEASE に近い物になるはずです。
補足です。サイズは X 抜きで、200MB 弱です。通常のアナログ回線での
ダウンロードだと 17 時間程みてください。専用線なら、30 分程度で
すむ場合もあります。ISDN なら 14 時間程度ですむかも知れません。

インストールフロッピィのイメージだけダウンロードして ftp でインストール
という手段もありますが、これはもう絶望的に時間がかかります。
やるのなら、別マシンにダウンロードしてから、そのマシンから ftp インストール
というのが実際的です。

どちらにしても、初心者の方がするのはきつすぎます。

ともかく、入れ換えを検討する前に出来ることはあると思いますから、
考えてください。

No. 1834 # taka 2001/03/21 (水) 02:38:17
>>1832 rosegarden
毎回の早い返答ありがとうございます。

>サウンドを使うという場合には次のことをまず考慮した方が良いと思います。

>(1) snd ドライバの使用。
「4.3-RELESEからsndドライバは使用されない」とおっしゃっていたので
将来性を考えて(?)pcmドライバのみ試してみました。

>(2) PnP が有効になっているか
BIOSセットアップでプラグ&プレイが有効になっていることを確認しました。

>(3) ノートパソコンだと PCCARD 関係の設定。PCCARD のドライバが
> 使う irq とサウンド関係はバッティングしがちです。
デスクトップで、またPCCARDもないのでこれは関係ないかも(?)

>(4) PnP を止めて、Legacy モードでマシンを起動するようにして、
> Windows (同じマシンに入っていれば) の
> デバイスドライバのところをみて irq とか iomem などを
> メモして、それをカーネルの設定ファイルに指定して再構築します。


ハードウェア関係の設定(irq,iomemなど)は、自分の勉強不足のせいもあって
よくわからないのが現状です。これから、ハード関係の勉強をして最低限の
ことは覚えて行こうと思います。とりあえず、マシンも1台しかないので
雑誌などに4.3-RELEASEが添付されたときにOSを再インストールしてみようと
思います。

初心者の私に丁寧に解説して頂いてどうもありがとうございました。

No. 1835 # 68user 2001/03/21 (水) 07:07:23
>>1831 sakachan
> 何らかのX11上のライブラリ、もしくはRGBA規格についてご存じのお方
> ご教授お願いいたします。
少なくとも X11R6.3 では RGBA には対応していないような気がします。
# 根拠は cd /usr/X11R6/include; grep -i rgba *,*/*。

gtk+、Qt、OpenGL あたりにそれらしき関数があったので それを使うか、
あるいはアルファ値を自前で計算することになると思います。

No. 1836 # ふくし 2001/03/21 (水) 15:37:35
たまに出てきてアホな質問で住みません。
Perl で質問です。

(1)

$path = '/usr/local/nantoka/us/us/file';

の /us/ を /jp/ に変えようと思ったら、

$path = s|/us/|/jp/|g;

ではうまくいきません。

$path =~ s|/us/|/jp/| while $path =~ m|/us/|;

ではうまくいったのですが、こんなんでいいんでしょうか。

(2)

コマンドラインの mkdir -p で中間的なディレクトリをイッキに
作ってくれますが、Perl の mkdir では作ってくれません。
いまは `` でコマンドを呼んでいますが、これもしょうがないでしょうか。

No. 1837 # 68user 2001/03/21 (水) 17:06:50
>>1836 ふくし
> $path = s|/us/|/jp/|g;
> ではうまくいきません。
= じゃなくて =~ という話でしょうか。

> コマンドラインの mkdir -p で中間的なディレクトリをイッキに
> 作ってくれますが、Perl の mkdir では作ってくれません。
perl5 の標準モジュール File::Path にある mkpath がご希望の
ものでしょう。使い方は perldoc File::Path をご覧下さい。

No. 1838 # ふくし 2001/03/21 (水) 18:31:49
>= じゃなくて =~ という話でしょうか。
あっすいません、これは掲示板の書き違いです。
正しく動かないスクリプトはちゃんと =~ と書いています。

../us/us/.. の場合、先頭の /us/ を置換したら続きの us/ から
処理するので s///g ではいかない、という話のようです。

File::Path はありがとうございました!

No. 1839 # 68user 2001/03/21 (水) 19:58:36
>>1838 ふくし
> ../us/us/.. の場合、先頭の /us/ を置換したら続きの us/ から
> 処理するので s///g ではいかない、という話のようです
であれば、man perlre に
    \G … Match only where previous m//g left off (works only with /g)
とありますので、
    $path =~ s|\G/us/|/jp/|g;
ではどうでしょうか。

>>1836 ふくし
> $path =~ s|/us/|/jp/| while $path =~ m|/us/|;
でもいいのですが、定番の書き方としては、
    1 while ($path =~ s|/us/|/jp/|);
というのがありますね。

No. 1840 # 68user 2001/03/21 (水) 20:02:09
>>1839 68user
> $path =~ s|\G/us/|/jp/|g;
> ではどうでしょうか。
ありゃ、全然ダメだ。というか、意味が全く逆ですね。
こういうときに使う perl の regexp ってなかったっけなぁ。

No. 1841 # ふくし 2001/03/21 (水) 20:46:28
にゃるほど、1 while でがんばります。(ヘンな日本語)
ありがとうございました。

もいっこズにのって質問。
stat や split をリストに代入して1番目と5番めと7番目を
使いたい、とかいうとき、ぼくは他のを $dummy というので
受けていますが、たまに -w で、1回しか使ってないけど
書き間違えてませんかと言われます。
これを言われないような /dev/nul みたいな変数ってないんでしょうか。

No. 1842 # rosegarden 2001/03/21 (水) 23:22:14
>>1834 taka
> >(1) snd ドライバの使用。
> 「4.3-RELESEからsndドライバは使用されない」とおっしゃっていたので
> 将来性を考えて(?)pcmドライバのみ試してみました。
ええ、出来ればその方が良いのですが、しかし、鳴らないものを使っても
いまの taka さんの needs にはあわないだろうということで、
snd ドライバをお勧めしたのです。

しかし、最初は設定ファイルのレベルだと思ったので、
お節介をしたのですが、
まったく役に立たず、時間ばかりとってしまいました。
申し訳ありませんです。

No. 1843 # 68user 2001/03/21 (水) 23:30:56
>>1841 ふくし
    ($dummy, $dummy, $dummy, $num1, $num2) = (0,1,2,3,4,5);
と、一度に複数回 $dummy を使えば
    used only once: possible typo
の warning は抑止できます。あと、
    ($num1, $num2, $num3) = (split(/ /))[1,5,7];
という手もありますが、可読性が低下しますね。

本質的には 「1番目と5番めと7番目を使いたい」という
使い方をせずに
    $foo = $o->getFoo;
    $bar = $o->getBar;
    $baz = $o->getBaz;
などと書くように努めるべきだと思いますが、全ての場面で
それができるわけでもなく、悩ましい限りです。

No. 1844 # ふじ [URL] 2001/03/22 (木) 02:40:55
はじめまして。

いきなりですが、
>これを言われないような /dev/nul みたいな変数ってないんでしょうか。
(undef, undef, undef, $num1, $num2)=(0,1,2,3,4);

こんなのでどうですか?

No. 1845 # rosegarden 2001/03/22 (木) 03:37:21
>>1841 ふくし
>>1843 68user
>>1844 ふじ
つぎのようにすれば文句をいわれませんでした。

#!/usr/bin/perl -w

my ($login, $pass, $uid, $gid) = getpwnam('root');

print "$login:(password):$uid:$gid\n";
exit;

my をとったものと、較べてください。
ちなみに動作環境は perl 5.00503 ないしは perl 5.6.0 です。

No. 1846 # rosegarden 2001/03/22 (木) 06:15:44
>>1845 rosegarden
この他にも

#!/usr/bin/perl -w

use vars qw($login $pass $uid $gid);

($login, $pass, $uid, $gid) = getpwnam('root');

print "$login:(password):$uid:$gid\n";
exit;

などと、use vars で宣言しておけば文句を言われないようです。
詳しくは、perldoc vars してみてください。

No. 1847 # ふくし 2001/03/22 (木) 10:09:46
にゃるほど、

ふじさん>
リスト要素にすれば undef を左辺に持っていけるんですね。
undef = 3; だと怒られますけどね。(当たり前)
これは言いたいことを強烈に表現できているような気がします。

rosegarden さん>
my や use vars を使った方法もいいですね。
この問題がよく出てくるのはファイルの stat を受けるときなんですが、
こういう意味のある変数のときは変数名をつけておいて使わない
(そのうち使うかもしれないので)
というのが便利なので、使わせていただきます。

みなさんどうもありがとうございました。勉強になるー

Prev< No. 1827〜1847> Next  [最新発言に戻る] [過去ログ一覧]