기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

현재 ACPI 시스템 종료 시그날이 들어가면, 1회 짧게 들어간 경우 장치를 화면잠금 하고, 길게 들어간 경우 종료 동작을 선택하도록 팝업을 띄우도록 장치가 구성되어 있습니다.


소스를 갖고 있으나, 빌드를 위한 환경이 갖추어지지 않은 상태인데, 이 장치의 종료 동작은 어떠한 코드로 빌드 되어 있는지 어디의 설정을 확인하면 좋을지 알고 싶습니다.


수정하고 싶은 동작은, ACPI 시스템 종료 시그날이 들어가면 팝업 없이 곧장 시스템을 shutdown -h now 시키고 싶습니다.


C 코드라면 바이너리 생성이 필요하니 빌드가 필요할지 모르겠으나, 의외로 이런 부분은 시스템에 연관된 동작이라도 java나 XML등으로 구현되는 경우가 많던데, 7.1.1버젼에서 어떠한 구성으로 되어 있는지 알고 싶습니다. 조언좀 부탁드리겠습니다.


추가로, 이 시스템에는 alsa가 올라와 있는데, 출력이 S/PDIF 디지털 출력으로 되어 있어서 Passthrough로 처리를 하는지, 마스터 볼륨 조절시 볼륨 조절이 되지 않습니다. 아마도 Passthrough로 출력 음성 스트림을 일체의 레이어를 거치지 않고 곧장 내보내는것 같습니다. 이러한 시스템에 윈도우즈의 wasapi처럼 추가적 처리를 할 레이어를 올리는 것이 가능할까요? 현재는 볼륨조절을 하기 위해서는 시스템에 연결된 앰프의 gain을 조절하는 방법 밖에 없는듯 합니다.(시스템에 리눅스를 올려 보니 리눅스 alsa에서는 볼륨 조절이 되는듯 했으며, power amp등의 추가적인 SW 볼륨 조절 레이어를 가진 플레이어는 볼륨 조절이 되었습니다.)


아마도 후자는 추가적 빌드 없이는 설정파일/자바 소스 수정 등만으론 해결이 힘들지 않을까 싶네요.


감사합니다.


겟페우스

2017.06.08 22:38:42
*.153.72.75

전원 관련은 http://blog.kmckk.com/archives/3858349.html

이 글을 발견해서 소스를 보고 있습니다.


S/PDIF 볼륨 쪽은 아직 정보를 못찾았네요.

고도리

2017.06.10 16:15:19
*.15.241.70

질문을 제가 정확하게 이해했는지 잘 몰라서 간단하게 말씀드리면...


1. 안드로이드에서 volume조절은 하드웨어적인 조절은 단 한번만 이뤄집니다. 고정이라고 보시면 됩니다.

2. 부팅된 이후에는 전부 sw적으로 조절됩니다.


해서 하드웨어적인 볼륨을 조절하시려면 따로 방안을 마련하셔야 합니다.

ex> ndk를 쓰던지 audiopolicyService를 수정하시던지....등등...


쉽게 될 듯 한데 쉽게 안되는 부분이 안드로이드 오디오일겁니다. 가끔 화도 납니다...ㅠ.ㅠ

겟페우스

2017.06.10 17:59:42
*.153.72.75

아날로그 출력 쪽은 볼륨 조절이 가능한데 디지털 출력 시에만 조절이 되지 않습니다.


아마 별도의 SW 레이어를 거치지 않고 곧장 디지털 데이터를 출력 시켜 버리는것 같습니다.


결국, 안드로이드에 별도의 레이어를 두고, 디지털 데이터를 다른 포멧으로 한번 더 인코딩 해주도록 해야 문제가 해결 되지 않을까 하는 생각 입니다.(패스스루로 내보내 버리면, 조절이 안되는건 당연한듯 합니다.)

겟페우스

2017.06.12 08:41:24
*.131.11.254

죄송합니다, 확인 결과 리눅스에서 볼륨 조절이 되는 것은 alsa가 아닌, pulseaudio 레이어 덕이었습니다. alsa만 올리면 리눅스에서도 볼륨조절이 되지 않는 것을 확인 하였습니다.


추가 : 인터넷을 뒤지다 보니 이러한 링크를 발견 하였습니다.

https://community.nxp.com/thread/340441


아직 소스의 문맥을 보지 못하고 저 부분만 본 것이라 장담은 못하겠으나, 삭제한 1행 (((device == AUDIO_DEVICE_OUT_AUX_DIGITAL) && (mDeviceIsHdmidongle == false)) || 의 조건이 맞는 경우 반드시 max or mute로 조절 하도록 설계 되어 있는듯 합니다.


제 시스템이 어떠한 이유로AudioPolicyManagerBase.cpp의 저 함수에서 1이 return 되는지를 찾아 내어 조건문을 수정 하면 문제를 해결 하는데에 도움이 되지 않을까 하는 생각이 듭니다. 


제 소스의 해당 부분은 조금 다르군요.

    // if volume is not 0 (not muted), force media volume to max on digital output

    if (stream == AudioSystem::MUSIC &&

        index != mStreams[stream].mIndexMin &&

        (device == AUDIO_DEVICE_OUT_AUX_DIGITAL ||

         device == AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET)) {

        return 1.0;

    }

List of Articles
번호 제목 글쓴이 날짜 조회 수
6328 리눅스 스크립트 질문입니다. [3] 하하호호하하 2017-11-07 90
6327 nxp4330 개발보드를 아직도 구매할수 있나요? [1] biokk 2017-10-30 100
6326 안드로이드 시스템 프로퍼티값을 디바이스 드라이버에서 읽을수 있나요? [1] 하하호호하하 2017-09-27 109
6325 libtool 로 라이브러리를 만드는데, [undefined reference] 에러가 뜨네요.. [3] 김민욱 2017-09-05 145
6324 시절이 하도 수상해서, 문의 드립니다... [6] 김민욱 2017-08-16 264
6323 usb장치를 사용하는데 libusb VS kernel driver 속도에 차이가 있을까요? [5] biokk 2017-07-31 154
6322 하나의 프로그램에서 , 녹음과 음악 play를 동시에 하기. [3] 김민욱 2017-07-12 149
6321 [4K영상받기] [3] 밥줘잉 2017-07-11 170
6320 opencl 사용가능한 soc 를 찾고 있습니다. [3] 행인1 2017-07-10 234
6319 ALSA-UTILS를 cross-compile 하려고 하는데요.자꾸 에러가 나요. [2] 김민욱 2017-07-07 89
6318 android bluedroid 에서 sco over hci 가 안되죠? [3] 쾌도난마 2017-07-01 112
6317 2개 이상의 사운드 출력장치를 가진 시스템의 출력 우선도 설정 [1] 겟페우스 2017-06-26 91
6316 nfs 서버 구축 질문 [4] 김민욱 2017-06-09 102
6315 안드로이드 서비스 개발시 알아야 할 것들이 궁금합니다 [8] 김석원입니다. 2017-06-09 157
» ACPI Shutdown Signal이 들어갈때의 동작을 변경하고 싶습니다. + 사운드 관련 [4] 겟페우스 2017-06-08 77
6313 USB GPS를 재부팅 후에도 자동으로 동작하게 하려고 합니다. [3] 겟페우스 2017-06-02 104
6312 input device에 할당된 버튼키를 제거하고 터미널에서 키보드로 대신하려고 ... [1] 김민욱 2017-05-24 71
6311 ppc405ep serial 질문 [3] marmar 2017-04-13 189
6310 usb device 구조 질문 [2] ydgoo9 2017-04-12 180
6309 aesop 6410 보드 전원 [2] 이레이어시스템 2017-04-06 159

사용자 로그인