AndroidにはGlibcスタックがありますが、nvlcを使用してオーディオを設定する方法は? ALSA(Debian)で可能ですか?

AndroidにはGlibcスタックがありますが、nvlcを使用してオーディオを設定する方法は? ALSA(Debian)で可能ですか?

去年の秋、Karim Yaghmourの本「Embedded Android」の助けを借りて、私はAndroidの構築プロセスについて十分に学びました。十分な検索と検索の最後に、起動時.imgにLinuxファイルをインストールする小さなCM-10.1 ROMを作成するのに十分な* nixコマンドと十分なBashスクリプトを学びました。

最近、Windowsを一括インストールした後、私のラップトップが機能しなくなったため、この小さなROMが適切なコンピューティングパフォーマンスを提供する唯一のソースになりました。

歴史はさておき、私はnvlcおよびstagefrightstagefright「基本」Androidアプリなので、うまくいくのは驚くべきことではありません。

次のコマンドを使用します。

stagefright -ao test.mp3

ssh私のデバイスが接続されている間に曲を始めて聞くことができます。私は通常、CMを使用してsuglibcを実行するために端末エミュレータを使用します。sshd

su -c '/bin/su'
service ssh start

それから私はssh私のものから始めます。古代タワー型、キーボードと大画面。sshglibcベースのサーバーに入っているので、sshPAMのunix2モジュールを使用しておよび/etc/passwd経由で認証します/etc/shadow。以前のように構成できていいですね。

しかし、そこから始めたいと言うとうまくいきませんnvlc。まあ、思ったほど良くないですねstagefrightnvlc

これまでに行った作業の結果は次のとおりです。

root@Flubber:/sdcard/Music$ lspci
pcilib: Cannot open /proc/bus/pci
lspci: Cannot find any working access method.

root@Flubber:/etc/init.d# aplay --list-devices
**** List of PLAYBACK Hardware Devices ****
card 0: msm8960sndcard [msm8960-snd-card], device 0: MultiMedia1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 1: MultiMedia2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 2: CS-Voice (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 3: VoIP (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 4: LPA (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 5: SLIMBUS_0 Hostless (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 6: INT_FM Hostless (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 7: AFE-PROXY RX msm-stub-rx-7 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 9: COMPR (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 10: AUXPCM Hostless (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 11: HDMI_RX_HOSTLESS (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 12: VoLTE (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 13: Voice2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 14: MultiMedia5 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 15: (Internal BT-SCO Playback) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 17: (Internal FM Playback) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 19: (HDMI Playback) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 20: (AFE Playback) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 22: (AUX PCM Playback) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 24: (Voice Farend Playback) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: msm8960sndcard [msm8960-snd-card], device 27: (Primary I2S Playback) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

root@Flubber:/etc/init.d# ./alsa-utils start 0
[ ok ] Setting up ALSA card 0...done.

brainard@Flubber:/sdcard/Music$ cvlc SlipKnoT\ -\ Spit\ It\ Out\ \[DUBSTEP\ REMIX\ by\ Elysium\]\ \*with\ musicvideo\*\ \[HD\ \].mp3 
VLC media player 2.0.3 Twoflower (revision 2.0.2-93-g77aa89e)
[0x92c0c8] inhibit interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0x92c0c8] main interface error: no suitable interface module
[0x8b4b80] main interface error: no suitable interface module
[0x8943e8] main libvlc error: interface "globalhotkeys,none" initialization failed
[0x8b4b80] dummy interface: using the dummy interface module...
shm_open() failed: Permission denied
[0x8b5448] pulse audio output error: PulseAudio server connection failure: Connection refused
shm_open() failed: Permission denied
[0x8b5448] alsa audio output error: cannot open ALSA device "default": Invalid argument
[0x8b5448] main audio output error: Audio output failed
[0x8b5448] main audio output error: The audio device "default" could not be used:
Invalid argument.
[0x8b5448] oss audio output error: cannot open audio device (/dev/dsp)
[0x8b5448] main audio output error: no suitable audio output module
[0x8b7f80] main decoder error: failed to create audio output
[0x9200b0] main input error: ES_OUT_SET_(GROUP_)PCR  is called too late (pts_delay increased to 300 ms)
[0x9200b0] main input error: ES_OUT_RESET_PCR called
^C

alsa-utilsご覧のとおり、AndroidはオーディオのGIDなので、pulseaudio私のユーザーをオーディオグルー​​プにインストールして割り当てました。GID 1005

これが設定の問題なのか、ドライバの問題なのか、それとも別の問題なのかよく分かりません。以前はオーディオを設定する必要はなく、常にLinuxで動作していました。

Androidデバイスにあるので動作することを期待していませんでしたが、ネットワークアクセスやSDカードへの書き込みなどの他の操作は機能します。 Android の権限を取得するには、グループを作成してユーザーを追加する必要があります。

  • 私ができることはありますか?
  • Androidではオーディオが違うように動作しますか?

私はAndroidが時々Tiny-alsaを使用し、HALを使用できることを理解していますが、この時点では少し理解するのは難しいです。

良い情報源は何ですか?

私はこれに多くの時間を費やしたくありませんでした。


修正する

私が経験しているいくつかのエラーを検索している間、偶然にGentooフォーラムに実際にtmpfsをインストールする必要があるというスレッドを見つけました/run/shm

/etc/fstabだからGentooフォーラムのスレッドに従って私のファイルに入れました。

none    /dev/shm        tmpfs   nodev,nosuid,noexec     0       0

次に実行しますsudo mount /dev/shm。それから私は次のことをしました。

brainard@Flubber:/sdcard/Music$ aplay -vv Track_1.wav 
**aplay: main:682: audio open error: Invalid argument**

そして出力を得ます: no failure to open shared memory

さらに/proc/asound:

brainard@Flubber:/proc/asound$ ls
card0  cards  devices  hwdep  msm8960sndcard  pcm  timers  version

brainard@Flubber:/proc/asound$ cat version 
Advanced Linux Sound Architecture Driver Version 1.0.25.

さらにspeaker-test:

brainard@Flubber:/proc/asound/card0$ speaker-test -Ddefault:0 -twav
speaker-test 1.0.25

Playback device is default:0
Stream parameters are 48000Hz, S16_LE, 1 channels
WAV file(s)
Playback open error: -22,Invalid argument

これが誰かが私を助けるのに役立つことを願っています。より多くの情報が必要な場合は、お気軽にお問い合わせください。喜んでお手伝いします。

アップデート2

開いてみると、alsamixerこのカードに関連する300個以上の様々な「アイテム」(400個以上、300個で数えるのを止めました)を発見しました。そのうちのいくつかはHDMI関連、他のいくつかはVoIP関連、いくつかのVoLTE関連、ほとんどはミュート、オフ、またはゼロであり、その用途が何であるかわかりません。誰かが自分がしていることを知ってこれを働かせると、とても強力になると思います。

私はこれを実行しました:alsactl init

root@Flubber:/etc/init.d# alsactl init
Found hardware: "msm8960-snd-car" "" "" "" ""
Hardware is initialized using a generic method

そして、どちらもstagefrightもう機能しないようです。ただ戻ってきます。segfault私は間違っていると思います;)再起動すると問題が解決することを願っています。

ベストアンサー1

おすすめ記事