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이 적절한 컴퓨팅 성능을 제공하는 유일한 소스가 되었습니다.

역사는 제쳐두고, 저는 nvlcstagefright. stagefright"기본" 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작동하지 않을 것입니다. 글쎄요, 생각만큼 좋지는 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 관련이며 대부분은 음소거, 꺼짐 또는 0이며 그 용도가 무엇인지 모르겠습니다. 누군가가 자신이 하고 있는 일을 알고 이를 작동하게 만든다면 매우 강력할 수 있다고 생각합니다.

나는 이것을 실행했습니다 :alsactl init

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

그리고 그 어느 것도 stagefright더 이상 작동하지 않는 것 같습니다. 그냥 돌아옵니다. segfault제 잘못인 것 같아요 ;) 재부팅하면 문제가 해결되길 바랍니다.

관련 정보