去年の秋、Karim Yaghmourの本「Embedded Android」の助けを借りて、私はAndroidの構築プロセスについて十分に学びました。十分な検索と検索の最後に、起動時.img
にLinuxファイルをインストールする小さなCM-10.1 ROMを作成するのに十分な* nixコマンドと十分なBashスクリプトを学びました。
最近、Windowsを一括インストールした後、私のラップトップが機能しなくなったため、この小さなROMが適切なコンピューティングパフォーマンスを提供する唯一のソースになりました。
歴史はさておき、私はnvlc
およびstagefright
。stagefright
「基本」Androidアプリなので、うまくいくのは驚くべきことではありません。
次のコマンドを使用します。
stagefright -ao test.mp3
ssh
私のデバイスが接続されている間に曲を始めて聞くことができます。私は通常、CMを使用してsu
glibcを実行するために端末エミュレータを使用します。sshd
su -c '/bin/su'
service ssh start
それから私はssh
私のものから始めます。古代タワー型、キーボードと大画面。ssh
glibcベースのサーバーに入っているので、ssh
PAMのunix2モジュールを使用しておよび/etc/passwd
経由で認証します/etc/shadow
。以前のように構成できていいですね。
しかし、そこから始めたいと言うとうまくいきませんnvlc
。まあ、思ったほど良くないですねstagefright
。nvlc
これまでに行った作業の結果は次のとおりです。
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
私は間違っていると思います;)再起動すると問題が解決することを願っています。