Linux OSSエミュレーション

ITの最近の流行は、現代のコンピューターの大部分のデバイスが「ソフトウェア」になったという事実につながっています。 プロセッサへの追加の負荷に加えて、これは代替システムのユーザーにとって多くの問題を引き起こします。

私の以前のコンピューターには、VIA VT8237ベースの統合サウンドカードが搭載されたマザーボードがありました。 VT8237は完全なハードウェアソリューションであり、Windows / FreeBSD / Linuxでのサウンドの再生に問題はありませんでした。

アップグレード後、ビルトインカードはRealtek ALC883に変更されましたが、ハードウェアミキシングはありませんでした。 これにより、複数のalsaアプリケーションを使用したり、alsaとossエミュレーションを同時に操作したりするときに、さまざまな問題が発生しました。

カットの下でこれらの問題を解決する方法

ALSAでの複数のストリームのミキシングはプログラムで実装され、デフォルトのデバイス(alsa:default)のみを使用する場合は問題ありません。 しかし、エミュレーションではOSSは悪いです。 LinuxにOSSを実装するには、いくつかのオプションがあります。

カーネルでALSAを使ってalsa-ossとOSSを試しました。 最初の解決策は、OSSインターフェースの実装が不完全なためにバグが多いことがあります(/ dev / dspへの呼び出しをインターセプトすることが常に可能とは限りません)。 また、少なくとも1つのalsaアプリケーションが実行されている場合(トレイ内のミキサーなど)、カーネル内のALSAを介したOSSはエラーを返します(サウンドカードは「ソフトウェア」であり、複数のストリームを混合できません)。 ALSAを使用するすべてをアンロードしてからアップロードすることは可能ですが、便利ではありません。

比較的最近、ニュースレターの1つでOSSプロキシについて言及しました。 OSSプロキシ-CUSEを介したOSS実装。 CUSEは、charデバイスのLinux実装です。

OSSプロキシは、CUSEを介してキャラクターデバイス/ dev / dsp、/ dev / adspおよび/ dev / mixerを作成するサービスで構成されます。 次に、これらのデバイスへの呼び出しは、バックエンドが理解できる形式で送信されます(現在はpulseaudioとalsaを介した出力があります)。

Debian Squeeze用パッケージをコンパイルしました。 このパッケージが適さない人は、ソースコードを含むパッケージから再構築できます。

OSSプロキシを介してエミュレーションを使用した夜は、次の状況でのパフォーマンスを示しました。

私の意見では、OSSプロキシは、ソフトウェアサウンドカードでOSSをエミュレートするための最適なソリューションです。

UPD :lintianコメントが修正された新しいビルド1.3.2-2をコンパイルしました。 新しいバージョンをインストールする前に、古いバージョンを削除することをお勧めします。

sudo dpkg -P osspまたはsudo aptitude purge ossp

Source: https://habr.com/ru/post/J136121/


All Articles