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

현재 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.09 07:38:42
*.153.72.75

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

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


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

고도리

2017.06.11 01:15:19
*.15.241.70

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


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

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


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

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


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

겟페우스

2017.06.11 02:59:42
*.153.72.75

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


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


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

겟페우스

2017.06.12 17: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
번호 제목 글쓴이 날짜 조회 수sort
6328 네비바 삭제 질문드립니다. 하하호호하하 2015-03-17 233
6327 ppc405ep serial 질문 [3] marmar 2017-04-13 235
6326 kernel testing & debugging, J-Link [2] *김종원 2015-05-20 237
6325 커널컴파일 하면 모듈이 어디에 들어가게 되나요? [1] DavidKim 2015-07-04 238
6324 임베디드 보드 커널에 UDP 통신 설정이 따로 있는가요? [2] pedor11 2016-10-13 240
6323 리눅스 디버깅 메세지 [1] 하하호호하하 2015-05-14 240
6322 USB2Serial와 /dev/ttyUXB관련 문의드립니다. [1] 어떤이의꿈 2015-03-12 240
6321 멀티코어 환경에서 리눅스 IRQ 프로세싱 관련 질문드립니다. [2] Supsupi 2015-03-06 241
6320 HDMI 출력관련 문의 [3] 김민욱 2016-11-14 243
6319 리눅스 yaffs2 포팅 방법 [2] sinwho 2015-08-18 246
6318 arndale-octa board에 ubuntu포팅에 관해 질문드립니다. [4] 감기귤 2015-12-31 246
6317 브릿지보드 Rx에 라우터 기능추가OK! but 브릿지Tx보드 접속문제? [2] 2016-10-12 246
6316 Uboot에서 nandecc hw,sw에 대해서 [1] sinwho 2016-01-27 253
6315 2개 이상의 사운드 출력장치를 가진 시스템의 출력 우선도 설정 [1] 겟페우스 2017-06-27 253
6314 6410 Sleep Mode 질문 [1] 깜성 2015-12-18 254
6313 크로스 컴파일러 질문입니다. [2] vain 2015-12-30 254
6312 램디스크 늘린 용량을 적용하려면요 file [1] DavidKim 2016-10-18 254
6311 wi-fi 동글 질문드립니다. [4] 하하호호하하 2016-12-07 254
6310 초보 앱 개발자 BLE(안드로이드13 과 미만에서의 수신차이) 관련 문... 블랙 2023-09-20 255
6309 질문만 가끔 드려서 죄송합니다만... [2] 김증일 2018-12-19 255

사용자 로그인