| 次のページ >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Ubuntu 11.04でのTomcat 6.0のインストール(help.ubuntu.comのドキュメント日本語訳)

もともとは tomcat6-user 周辺のことを調べていて help.ubuntu.com のドキュメントにたどり着いたのですが、せっかくなのでページごと訳してみました。 素人翻訳なのでおかしな部分があるかもしれません。 訳の正確さについては無保証です。

波括弧{}の中は訳注や推測・憶測も混じった補足などです。

原文: https://help.ubuntu.com/11.04/serverguide/C/tomcat.html

Apache Tomcat

Apache Tomcat は、 Javaサーブレットと JSP によるウェブアプリケーションを提供するコンテナです。

Ubuntu の Tomcat 6.0 パッケージは2つの異なる実行方法をサポートしています。 クラシックな方法でインストールした場合は 「システムにつき一つのインスタンス」という形になり、 unprivileged な{rootとは別の、という程度の意味?}ユーザー tomcat6 {の権限}で{OSの}起動時に起動されます。 一方、自身のユーザー権限でプライベートなインスタンスをデプロイすることもでき、 この場合は自分で起動・停止しなければなりません。 この2番目の方法は、複数のユーザがそれぞれ自身の Tomcat インスタンスでテストを行う必要がある開発サーバのコンテキストで特に有用です。

システムワイドなインストール

Tomcat サーバをインストールするには、 端末のプロンプトで次のコマンドを入力します:

sudo apt-get install tomcat6 

これにより、Tomcatサーバと、デフォルトの ROOT ウェブアプリ (デフォルトで最低限の "It works" を表示するもの)がインストールされます。

設定

設定ファイルは /etc/tomcat6 にあります。 共通の設定がほんの少しだけここに記述されるでしょう。 詳細については Tomcat 6.0 ドキュメンテーション を参照してください。

デフォルトポートの変更

デフォルトでは、 Tomcat 6.0 は HTTPコネクタ 8080、 AJPコネクタ 8009 で動作します。 システムの他のサーバとの競合を避けるため、 これらのデフォルトポートは変更しておくとよいでしょう。 その場合、 /etc/tomcat6/server.xml の次の部分を修正します。

    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
    ...
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 

使用する JVM を変更する

デフォルトでは、Tomcat はなるべく OpenJDK-6 を使い、 {それがだめなら}次に Sun の JVM を試し、 {それがだめなら}他の JVM を試します。 複数の JVM がインストールされている場合、どのJVMを使うべきかを /etc/default/tomcat6 内の JAVA_HOME で指定します:

JAVA_HOME=/usr/lib/jvm/java-6-sun 

ユーザとロールを宣言する

サーブレットコンテナ内でユーザ名、パスワード、ロール(グループ)を定義できます。 Tomcat 6.0 では、これを /etc/tomcat6/tomcat-users.xml で設定します:

    <role rolename="admin"/>
    <user username="tomcat" password="s3cret" roles="admin"/> 

Tomcat の標準ウェブアプリを使う

Tomcat は ドキュメンテーション・管理・デモ用のウェブアプリと一緒にリリースされています。

Tomcat ドキュメンテーション

tomcat6-docs パッケージは Tomcat 6.0 のドキュメンテーションを含んでおり、 ウェブアプリとしてパッケージされています。 デフォルトでは http://yourserver:8080/docs にアクセスすることで閲覧できます。 次のコマンドでインストールできます:

sudo apt-get install tomcat6-docs 

管理者用ウェブアプリ

tomcat6-admin は2つのウェブアプリを含んでいます。 ウェブインターフェースを使って Tomcat サーバを管理できます。 次のコマンドでインストールできます:

sudo apt-get install tomcat6-admin 

1つ目は manager ウェブアプリです。 http://yourserver:8080/manager/html からアクセスできます。 主に、サーバの状態把握とウェブアプリの再起動に使われます。

注意: デフォルトでは、manager アプリケーションへのアクセスはブロックされています。 ロールが "manager" であるユーザをあらかじめ /etc/tomcat6/tomcat-users.xml で定義しておく必要があります。

2つ目は host-manager ウェブアプリで、 デフォルトでは http://yourserver:8080/host-manager/html からアクセスできます。 このウェブアプリを使うことで仮想ホストを動的に生成することができます。

注意: デフォルトでは、 host-manager アプリへのアクセスはブロックされています。 ロールが "admin" であるユーザをあらかじめ /etc/tomcat6/tomcat-users.xml で定義しておく必要があります。

セキュリティ上の理由から、 ユーザ tomcat6 はデフォルトでは /etc/tomcat6 への書き込みができません。 これらの管理者用ウェブアプリ(アプリケーションのデプロイ、仮想ホスト生成) で使われるいくつかの機能では、 このディレクトリへの書き込みが必要となります。 それらの機能を使いたければ、 tomcat6 グループのユーザに必要な権限を与えるために次のコマンドを実行してください:

    sudo chgrp -R tomcat6 /etc/tomcat6
    sudo chmod -R g+w /etc/tomcat6 

Tomcat サンプル・アプリケーション

tomcat6-examples パッケージは、 サーブレットと JSP 機能をテストないしデモするために使える 2つのウェブアプリを含み、 デフォルトでは http://yourserver:8080/examples からアクセスできます。 次のコマンドでインストールできます:

sudo apt-get install tomcat6-examples 

プライベートなインスタンスを使う

Tomcat は開発とテストにおいてヘビーに使われますが、 そのとき、単一のシステムワイドなインスタンスでは、 複数のユーザの要求を満たすことができません。 Ubuntu の Tomcat 6.0 パッケージには、 あなた自身のユーザ指向なインスタンスのデプロイを助けるツールが付属しています。

注意: 異なる TCP ポートを割り当てていれば、 システムワイドなインスタンスとプライベートなインスタンスを同時に動作させることができます。

プライベートインスタンスのサポートをインストール

次のコマンドを実行すると、 プライベート・インスタンスの使用に必要なものがインストールできます:

sudo apt-get install tomcat6-user 

プライベート・インスタンスの生成

プライベート・インスタンス用のディレクトリを作成するには、次のコマンドを実行します:

tomcat6-instance-create my-instance 

このコマンドにより my-instance ディレクトリが新たに作成され、 その中に必要なサブディレクトリとスクリプトが配置されます。 たとえば、共通ライブラリはサブディレクトリ lib/ に置き、 あなたのウェブアプリをサブディレクトリ webapps/ にデプロイします。 デフォルトではデプロイされているウェブアプリはありません。

プライベート・インスタンスの設定

プライベート・インスタンスのための Tomcat のクラシックな設定ファイルが、 サブディレクトリ conf/ 内にあることに気付くでしょう。 たとえば、実行中の他のインスタンスとの競合を避けるためにプライベート・インスタンスで使うポートを変更したい場合、 conf/server.xml を編集する必要があります。

プライベート・インスタンスの起動・停止

プライベート・インスタンスを起動するには、 次のコマンドを実行します (プライベート・インスタンスが my-instance に置かれていることを仮定):

my-instance/bin/startup.sh 

注意: 何かエラーが出たら、サブディレクトリ logs/ をチェックしましょう。 java.net.BindException: Address already in use<null>:8080 というエラーが出ていたら、使おうとしていたポートがすでに使用されていますので、ポート指定を変更しなければいけません。

プライベート・インスタンスを停止するには、 次のコマンドを実行します (プライベート・インスタンスが my-instance に置かれている場合):

my-instance/bin/shutdown.sh 

参考資料

Creative Commons License
This work by Ubuntu documentation team (original English text) and sonota (Japanese translation) is licensed under a Creative Commons Attribution ShareAlike 3.0 Unported License.
Based on a work at help.ubuntu.com.

メモ

might want to

複数インスタンスの使用については 「CATALINA_BASE インスタンス 複数」で検索する。

Java の切り替えは sudo update-alternatives --config java で。

ちなみに、10.04(LTS)のドキュメントと比較してみましたが、変更点は何もありませんでした。

参考(外部リンク)

関連書籍

Tomcatハンドブック 第2版
Tomcatハンドブック 第2版Jason Brittain Ian F. Darwin 村上 雅章

オライリージャパン 2008-11-21
売り上げランキング : 189524


Amazonで詳しく見る
by G-Tools
Jakarta Tomcatエキスパートガイド―Webアプリケーションのための環境構築
Jakarta Tomcatエキスパートガイド―Webアプリケーションのための環境構築アミツト・バコレ 中川 和夫 Ja-Jakarta

ソフトバンククリエイティブ 2003-08
売り上げランキング : 208319


Amazonで詳しく見る
by G-Tools
Tomcat実践アプリケーションサーバ構築―Servlet、JSPを使いこなす
Tomcat実践アプリケーションサーバ構築―Servlet、JSPを使いこなす糸魚川 茂夫

アイクリエイティブ 2001-12
売り上げランキング : 709491


Amazonで詳しく見る
by G-Tools
スポンサーサイト
テーマ:Linux - ジャンル:コンピュータ

whileループで動き続けるプログラムをログアウト時に終了させる(Ubuntu 10.10)

注)いろいろよく分かってない人が書いてます。


1 環境

  • Ubuntu Linux 10.10 Desktop
  • GNOME 2.32.0
  • GNU bash, version 4.1.5(1)-release (i686-pc-linux-gnu)
  • Ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]

2 期待する動作

whileループなどで動作し続けるプログラムをログイン時に自動的に実行し、 ログアウト時に自動的に終了するようにしたい。

3 詳細

サンプルとしてこのような Rubyスクリプト ~/test.rb を用意した。


while true
  puts Time.now
  sleep 60
end

ログイン時に自動実行させるため ~/.profile に次の行を追加した。


ruby ~/test.rb &

  • グラフィカルログインで GNOMEセッション開始 (要するに普通にログイン)。
  • test.rb (pid=1772)が動いていることを確認。
  • デスクトップ画面右上のボタンでログアウト。
  • さっきと同じようにログイン。

この時点で ps ax | grep ruby すると、前回のログイン時に実行されたものと 今のログイン時に実行されたものが両方表示される。

 1772 ?        S      0:00 ruby /home/testuser/test.rb
 2165 ?        S      0:00 ruby /home/testuser/test.rb

前回ログイン時に実行したものは前回のログアウト時に終了してほしい。


ちなみに pstree で確認すると以下のようになっている(余計な部分は省略してある)。

前回のログイン時に実行された test.rb :

init
  ├─ruby /home/testuser/test.rb

今回のログイン時に実行された test.rb :

init
  ├─gdm-binary
  │   ├─gdm-simple-slav --display-id /org/gnome/DisplayManager/Display1
  │   │   ├─gdm-session-wor
  │   │   │   ├─gnome-session
  │   │   │   │   ├─ruby /home/testuser/test.rb

参考:

3.1 SIGHUP は送信されているか?

可能性としては 2つ考えられる。

  1. ログアウト時に SIGHUP が送信されていない
  2. ログアウト時に SIGHUP が送信されているが、何らかの理由でプロセスが終了しない

これを切り分けるため、 test.rb で trap を設定した。

 
log = open(File.expand_path("~/test.log"), "a")
 
log.puts "#{Time.now} ** start **"
log.flush
 
# HUP 以外のシグナルも一応見張ってみる
%w(HUP TERM INT QUIT).each {|sig|
  Signal.trap(sig) {
    log.puts "%s - pid:%d sig:%s" % [Time.now, Process.pid, sig]
    log.flush
    exit
  }
}
 
loop do
  puts Time.now
  sleep 60
end

一旦 test.rb を すべて終了させて

  • 上と同じように ログイン
  • 実行されているのを確認
  • ログアウト・再ログイン

この状態では 2つのプロセスが動いており、 test.log を見ても SIGHUP , SIGINT などを受け取った形跡はない。

一方、手動で kill -HUP {PID} した場合は test.log にそのことを示すログが残り、 プロセスが終了する。

したがって、 SIGHUPtest.rb に送信されていない ( test.rbSIGHUP を受け取っていない) と考えられる。

3.2 明示的に SIGHUP を送信する

なぜログアウト時に SIGHUP が送信されないのか、という点については 難しい話になるようなので深追いしなかった(帰ってこれなさそうでした……)。

OSまかせ(?)にせず、 ログアウト時に明示的に SIGHUP を送信する方法で進めることにした。


まず ~/.bash_logout を利用することを考えたが、 GNOMEパネルのログアウトボタンを押してログアウトした場合、 ~/.bash_logout は呼ばれない。

ちなみに、bash の manpage には次のように書いてあった。

When a login shell exits, bash reads and executes commands from the file ~/.bash_logout, if it exists.

「ログインシェルが終了するとき」とあるので、 「ログアウトするときに呼ばれる」という認識だと正確ではないのかも。


他に何か方法はないかと調べてみたところ /etc/gdm/PostSession/Default を使えばよいと分かった。

参考: How to run a script during Gnome log out - Unix and Linux - Stack Exchange

exit 0; の行の前に次のように書く

 
TARGET_USER=testuser

echo "executing /etc/gdm/PostSession/Default" >> /home/${TARGET_USER}/test.log # 確認用
 
if [ ${USERNAME} = "${TARGET_USER}" ];then
  su ${TARGET_USER} -c /home/${TARGET_USER}/.gdm_postsession
fi

# ↓これだけでもいいかも?
# if [ -e /home/${USERNAME}/.gdm_postsession ] ; then
#   su ${USERNAME} -c /home/${USERNAME}/.gdm_postsession
# fi

呼び出される ~/.gdm_postsession の内容:

 
echo "executing ~/.gdm_postsession" >> ~/test.log # 確認用

chmod u+x ~/.gdm_postsession で実行権限を与えておく。

※ この .gdm_postsession というファイル名はこのように決められているわけではなく、 自分で考えて付けたもの


上と同様にログイン・再ログインしてログを見ると、ログアウト時に /etc/gdm/PostSession/Default~/.gdm_postsession が呼ばれていることが確認できた。

あとは .gdm_postsession で 終了させたいプロセスに SIGHUP を送ればいいはず。

送信するには対象となるプロセスの一覧をどこかから得なければならないため、 ~/test.rb の最初の方に次の行を追加し、 自身の PID を ~/.my_hup_list に追記することにした。 このファイル名も自分で決めたもの。


open(File.expand_path("~/.my_hup_list"), "a") {|f| f.puts Process.pid }

ちなみに、他の Rubyスクリプトも同じように(ログインしている間だけ)動作させたいなら、 この 1行だけ別ファイル append_to_hup_list.rb に抜き出して、 メインのスクリプトの方では


require "append_to_hup_list"

とだけ書くようにすると良いかも。


~/.gdm_postsession の方では、 ~/.my_hup_list にリストアップされている PID に SIGHUP を送り ~/.my_hup_list を空にする


kill -HUP `cat ~/.my_hup_list`
echo -n "" > ~/.my_hup_list

ここまでやってようやく期待通りの動作になった。

~/.my_hup_list は 1行ごとに PID が並んでいるだけのプレインテキストなので、 Ruby 以外のプログラムからでも簡単に利用できる。

4 まとめ

  • プログラムの側で自身の PID を ~/.my_hup_list に追記
  • gdm セッション終了時に /etc/gdm/PostSession/Default が呼ばれる
  • そこから ~/.gdm_postsession が呼ばれるようにする
  • ~/.gdm_postsession~/.my_hup_list の PID を参照し SIGHUP を送る

5 備考

やりたいことができるようにはなったが、 煩雑なので tcsh の組み込みコマンド hup のようなものが使えるならそうしたい。

参考: Manpage of TCSH

または、Bash の機能を使って shopt huponexit とする方法もあるようだが、 これだとグローバルな設定を変えることになり 影響範囲が把握できなかったので今回は使わないことにした。


GNOME の画面右上のログアウトボタンを押したときに起こることを 単に「ログアウト」と呼んでしまっていいのか、 それとも「gdmセッションの終了」のように呼ぶのがいいのか、 結局よく分からなかった。 それとログインシェルとの関係とかも詳しく調べてすっきりさせたいところ……。


2013-01-14 追記:
最近のUbuntuなど、LightDM を使っている場合は /etc/gdm/PostSession/Default の代わりに /etc/lightdm/lightdm.conf で指定します。
参考: [SOLVED] LightDM login and logout scripts - Ubuntu Forums

参考(外部リンク)

Linux で freedb(freedbtest.dyndns.org) に日本語データを送信する

環境: Ubunbu Linux 9.04


いくつか試してみたところ、結局 wine + CDex.exe の組み合わせが無難という結論に至った。 日本語が文字化けしたが、wine の設定を変更するとうまく表示された。

CDex の設定については freedbtest.dyndns.org に説明がある。


Grip は HTTP ではなくメールを送る方式のようで、裏で sendmail が動く。 freedbtest.dyndns.org はメールには対応していないようなので、これは使えない。

Audex が使えるという情報 (Audex - いくやの斬鉄日記 2009-03-08) もあるが、自分の環境では "Submit Info" ボタンがグレーアウトして送信できなかった。

ついでにリッピング

abcde - A Better CD Encoder [ver 2.3.99]
を使う。

HP mini 1000 + Ubuntu 9.04: タッチパッドのタップによるクリックを無効化 / 横スクロールを有効化

gnome-mouse-properties を実行


「タッチパッド」タブを選択し
「タッチパッド上でのマウスクリックを有効にする」のチェックを外す
「横方向スクロールを有効にする」にチェックを入れる

縦方向スクロールと同様にタッチパッド下部を使った横スクロールができるようになった。

Ubuntu Studio + Sound Blaster SX / .asoundrc

20101101 追記: その後いろいろあって結局 EDIROL UA-1EX に落ち着きました。 この追記を書いている時点では Ubuntu Linux 9.04 で使っています。 UA-1EX は現在 Amazon では「現在お取り扱いできません」となっていますが、 類似製品として UA-1G というのがあるようなので紹介しておきます。
EDIROL USB Audio Interface UA-1GEDIROL USB Audio Interface UA-1G

エディロール 2009-04-17
売り上げランキング : 79
おすすめ平均

Amazonで詳しく見る
by G-Tools

環境: Ubuntu Studio 8.04 / CREATIVE Sound Blaster Digital Music SX

card0 はオンボードのもの。 card1 が SX。

$ cat /proc/asound/version 
Advanced Linux Sound Architecture Driver Version 1.0.16.
Compiled on Nov  6 2008 for kernel 2.6.24-21-rt (SMP).
$ cat /proc/asound/devices 
  0: [ 0]   : control
  1:        : sequencer
  6: [ 0- 2]: hardware dependent
 16: [ 0- 0]: digital audio playback
 24: [ 0- 0]: digital audio capture
 28: [ 0- 4]: digital audio capture
 32: [ 1]   : control
 33:        : timer
 48: [ 1- 0]: digital audio playback
 49: [ 1- 1]: digital audio playback
 56: [ 1- 0]: digital audio capture
$ cat /proc/asound/cards
 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0x903a0000 irq 23
 1 [SX             ]: USB-Audio - Sound Blaster Digital Music SX
                      Creative Technology Ltd. Sound Blaster Digital Music SX at usb-0000:00:1a.1-2, 
$ cat /proc/asound/modules
 0 snd_hda_intel
 1 snd_usb_audio
$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: Intel [HDA Intel], デバイス 0: ALC883 Analog [ALC883 Analog]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 1: SX [Sound Blaster Digital Music SX], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 0/1
  サブデバイス #0: subdevice #0
カード 1: SX [Sound Blaster Digital Music SX], デバイス 1: USB Audio [USB Audio #1]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
$ cat /proc/asound/card1/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 5513
buffer_size: 22050
$ cat /proc/asound/card1/stream0 
Creative Technology Ltd. Sound Blaster Digital Music SX at usb-0000:00:1a.1-2,  : USB Audio

Playback:
  Status: Running
    Interface = 1
    Altset = 1
    URBs = 8 [ 8 8 8 8 8 8 8 8 ]
    Packet Size = 180
    Momentary freq = 44100 Hz (0x2c.199a)
  Interface 1
    Altset 1
    Format: 0x2
    Channels: 2
    Endpoint: 1 OUT (ADAPTIVE)
    Rates: 44100
  Interface 1
    Altset 2
    Format: 0x20
    Channels: 2
    Endpoint: 1 OUT (ADAPTIVE)
    Rates: 44100
  Interface 1
    Altset 3
    Format: 0x2
    Channels: 2
    Endpoint: 1 OUT (ADAPTIVE)
    Rates: 48000
  Interface 1
    Altset 4
    Format: 0x20
    Channels: 2
    Endpoint: 1 OUT (ADAPTIVE)
    Rates: 48000
  Interface 1
    Altset 5
    Format: 0x2
    Channels: 2
    Endpoint: 1 OUT (ADAPTIVE)
    Rates: 96000
  Interface 1
    Altset 6
    Format: 0x20
    Channels: 2
    Endpoint: 1 OUT (ADAPTIVE)
    Rates: 96000
  Interface 1
    Altset 9
    Format: 0x20
    Channels: 2
    Endpoint: 1 OUT (ADAPTIVE)
    Rates: 48000
  Interface 1
    Altset 10
    Format: 0x20
    Channels: 2
    Endpoint: 1 OUT (ADAPTIVE)
    Rates: 96000

Capture:
  Status: Stop
  Interface 2
    Altset 1
    Format: 0x2
    Channels: 2
    Endpoint: 2 IN (ASYNC)
    Rates: 32000
  Interface 2
    Altset 2
    Format: 0x20
    Channels: 2
    Endpoint: 2 IN (ASYNC)
    Rates: 32000
  Interface 2
    Altset 3
    Format: 0x2
    Channels: 2
    Endpoint: 2 IN (ASYNC)
    Rates: 44100
  Interface 2
    Altset 4
    Format: 0x20
    Channels: 2
    Endpoint: 2 IN (ASYNC)
    Rates: 44100
  Interface 2
    Altset 5
    Format: 0x2
    Channels: 2
    Endpoint: 2 IN (ASYNC)
    Rates: 48000
  Interface 2
    Altset 6
    Format: 0x20
    Channels: 2
    Endpoint: 2 IN (ASYNC)
    Rates: 48000
  Interface 2
    Altset 7
    Format: 0x2
    Channels: 2
    Endpoint: 2 IN (ASYNC)
    Rates: 96000
  Interface 2
    Altset 8
    Format: 0x20
    Channels: 2
    Endpoint: 2 IN (ASYNC)
    Rates: 96000

特に何も設定しないままだと、再生時に音が割れたようになる。

435 :login:Penguin:2007/11/27(火) 14:03:55 ID:Uc7MAQ1R
まるでスレチかもしれないけど一応。以前SoundBlasterSXを買った。何故か音がガラガラになった。
サンプリング周波数の簡勁らしくなんとか設定を変えて鳴るようになった。
が。。この製品無音の状態でボリュームを最大に上げるとノイズがのってくる。電源を付属のアダプターにしても
USBから取っても同じ。
ある日偶然電気屋さんでローランドのUA-4FXを見た。なんかデザインがプロがスタジオで使っている機器と
そっくりっぽい。デザインがあまりにも私をそそったので買ってしまった・・・・
で、使用した結果巷で言われているUBS外付けユニットとは音がいいという事を初めて納得した。
うん、確かにこれならPCIの内蔵よりかは良いかもしれない。ボリューム0の状態からしてもう違うのよ。。。。
まあ個体差があるからねえ。。。あ、あとSXは負荷が掛かるとノイズがのった。

以前クリエイティブのSoundBlasterのProシリーズってのがあって(今もあるのかなw)それのPCIのボードを
使った事がある(2万円位かな)。コンセプトが違うから比較するのは間違いだけど、SXはそれの足元にも
及ばない。UA-4FXはそれと同じくらい。でも原音に忠実なのはProのPCIカードかなw
ただUA-4FXの音の感じ(暖かい)とノイズが少ない事が今はとても気に入っている。

191 :login:Penguin[sage]:2007/01/30(火) 21:56:47 ID:QG/gA/fT
SOUND BLASTER Digital Music SXなんてのを買ってきたのはいいけど、なんか音がバリバリです。。
WINDOWSに繋いだらうっは、音が良い。なんかこの音の良さは素晴らしい。
ちょっと自分にはLinuxでは難しいなあ。。GNOMEのサウンドって所はUSBオーディオになっているんだけど
ALSAMIXSERが起動しない。No Such Deviceって怒られる。
しかし今までの音とは大違いなのでなんかまたWINDOWSに走ってしまいそう。
192 :login:Penguin[sage]:2007/01/31(水) 01:52:35 ID:nto+v7R1
>>191
もしかして: mplayer -srate 48000 filename
193 :login:Penguin[sage]:2007/01/31(水) 01:59:46 ID:2Gl2jzeJ
コマンドラインからmplayerなんかで
mplayer -af resample=48000 ファイル名
なんかで再生してみたらどうかね?

「音がバリバリ」というのが、「折り返しひずみバリバリ」のたぐいだったら解決するかもしれん
194 :login:Penguin[sage]:2007/01/31(水) 02:22:38 ID:h3+3utgl
>>192-193
即レスどうもです。試してみます。
195 :login:Penguin[sage]:2007/01/31(水) 02:47:40 ID:h3+3utgl
うわあああああ、原理が解からないけど鳴った。大変澄んだ音色で^^
>>192  >>193 ありがとうございます。
音がまともになったです。ALSAのミキサーのボリュームはヘッドホン1っていうのが効きます。
非情に嬉しいです。
でも、mplayerでそうやって再生する以外ないのでしょうか^^;;;
196 :login:Penguin[sage]:2007/01/31(水) 11:41:52 ID:gLb74hjk
>>195
たぶん問題はesound。サンプリングレート変換がまずい。
昔ちょうど同じような現象があったので、適当にパッチしたやつを
http://2sen.dip.jp:81/cgi-bin/upgun/up1/source/up3259.zip
にあげておく。

SRPM形式なので、リビルドしてからインストールする必要がある。
リビルドの方法は
http://www.atmarkit.co.jp/flinux/special/mkrpm/mkrpm01.html
のあたりに。RPM系のディストリでなかったらスマン

これやってもアップデートでesoundが更新されると戻ってしまうので
esoundの代替となるやつがあればそっちいれるのがいいかもしれん
197 :login:Penguin[sage]:2007/01/31(水) 11:43:50 ID:gLb74hjk
↑インストールしたら、一回ログアウトしてログインしなおす
198 :login:Penguin[sage]:2007/01/31(水) 13:20:10 ID:T8FgXNYl
USB-AUDIO + ALSA OSS emu で44KHzって
だめなん?
199 :login:Penguin[sage]:2007/01/31(水) 18:54:29 ID:5G/iBK8c
>>196
丁寧にありがとうございます^^
DEB系のディストリなので一度SRPMを解凍して中に入っているパッチの64系以外の物を当ててからmakeしました。
残念な事に上手く再生できないです。ALSA、ESS、OSSのどれを選んでもひずみが出てしまいます。
う~んあとはALSA、ESS、OSSのどれかにサンプリング周波数固定の設定とかの方法があればいいのですが。
今は.mplayerのconfigファイルにsrate = "48000"を書き込んで使っている状態です。試しに96000を設定したら
一応動くのですがなんか音がぼやけた感じになるので48000に戻しました。
うう、でも音楽はAudaciousで聞きたい(ToT)
200 :login:Penguin[sage]:2007/01/31(水) 23:17:18 ID:/0F9juPj
>>139
~/.asoundrcに
-----
pcm.!default {
type plug slave {
pcm "hw:0,0" #適宜変更
pcm dmix
rate 48000
}
}
-----
と書いて、出力デバイスを"hw:0,0"でなく"dmix"にするといいかもしれん
(直線補完だが)
あとは>>198とか
201 :login:Penguin[sage]:2007/02/01(木) 07:23:38 ID:0hqUFGQP
おおおおおお\(@O@)/   鳴った!
>>200 さんありがとう。鳴りました。すごいです。
いや、なんとかLINUXで使えるようになったです。一時は買って失敗だったかと思いました。
WINDOWSのドライバーだとサンプリングは48kと96kしか選べないので44kだと不具合が出るのでしょうか?
WIN2kのデフォルトのデバイス設定は48kの24ビットという変わった設定でした。
試しで上のrateを96kに設定したらエラーが出ましたww
そういえばソフトやGNOMEなどの設定で出力デバイスがdmixが選べないです。今はhw:0,0(USB Audio)を
選んでます。
教えていただきました皆さん、ありがとうございました^^
何しろSOUND BLASTER Digital Music SXの情報がググってもほとんどなくて、本当に助かりました。
たまに又ここに見にきます。WINではポンつけのUSBですが、プラグ&プレイが進んできたとはいえLinuxでは
まだまだ難しいデバイスですね。
202 :201[sage]:2007/02/04(日) 16:40:47 ID:DeDFR7bm
その後ALSAのサイトとかを見ていてdmixはデフォルトで48kサンプリングという事を知りました。 最終的に
pcm.!default {
type plug slave {
pcm dmix
format S32_LE
}
}
という記述にて動くことが解かりました。hw:0,0という記述を入れるとformat S32_LEを入れるとエラーになります。
上の記事で私が書いた「dmixが選べないです。今はhw:0,0(USB Audio)」というのは間違いで、上の状態で
選べる物がUSB Audio、hw0;0、hw1,0と3個出てきます。USB Audio以外は正常に鳴りません。
よって>>200さんの言っている
>と書いて、出力デバイスを"hw:0,0"でなく"dmix"にするといいかもしれん
というのが正解みたいです。おそらく3個の中のUSB Audioというのがdmixなのでしょうね^^
今まで調整してもあまり効果のなかったプレイヤーのイコライザーの一番下の周波数の調整が耳に聞こえる
ようになりよかったです。欲をいうと今使っているのがAudaciousなんですがこのプレイヤーだとイコライザー
の最低が60hzなんですがもう少し下の調整が効くプレイヤーが欲しくなりました。

いまいち .asoundrc の書式の要領がつかめいないが、とりあえず以下のようにしたらまともな音が出た。 ただし、左右のバランスがおかしい(左の音量が非常に小さい)。 ミキサーの設定を疑い alsamixer -c 1 としたところ
alsamixer: function snd_mixer_load failed: Invalid argument
というエラーが出て疲れたので今日はここまで。

# aplay と Firefox上の Flash、どちらでも
#(左右のバランスがおかしいのを除けば)ちゃんと音が出る。
#ただし、dmix 不使用なので同時には再生できない。

pcm.!default {
  type rate
  slave {
    pcm "hw:1,0"
    rate 48000
  }
}

pcm.pulse {
  type pulse
  type plug slave{
    pcm "hw:1,0"
    channels 2
    rate 48000
  }
}

ctl.pulse {
  type pulse
  slave {
    pcm "hw:1,0"
    channels 2
    rate 48000
  }
}

関連記事



** ホームに戻る

| 次のページ >>
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。