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

현재 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
6368 flow control에 관해서 여쭤 보고자 합니다. 열심히 2015-06-17 113
6367 android uenvt에 내용을 추가 했는데요 맞는 방법인가요? [1] pedor11 2015-05-20 121
6366 input device에 할당된 버튼키를 제거하고 터미널에서 키보드로 대... [1] 김민욱 2017-05-25 122
6365 camera HAL시 퍼미션을 얻을 수 있는가요? [2] 조신 2015-11-18 147
6364 압력센서 신호처리 관련하여 문의드립니다. [3] kernel_study 2016-11-03 148
6363 [apt pkg server 관련] [2] 밥줘잉 2016-10-20 150
6362 nfs 서버 구축 질문 [4] 김민욱 2017-06-10 164
» ACPI Shutdown Signal이 들어갈때의 동작을 변경하고 싶습니다. +... [4] 겟페우스 2017-06-08 165
6360 SoM GPIO 제어 문의 [1] 단순최고 2021-01-25 168
6359 USB GPS를 재부팅 후에도 자동으로 동작하게 하려고 합니다. [3] 겟페우스 2017-06-03 172
6358 touch screen관련 여쭤봅니다. [1] 열심히 2015-07-25 173
6357 virtualbox에 안드로이드가 잘 안도네요 [1] 더미원 2017-03-20 180
6356 2440 보드의 address 신호와 소스상의 주소를 어떻게 이해 하고 있... [2] DavidKim 2015-07-29 181
6355 i.mx6q에서 libvpu.so 라이브러리를 사용하여 link시에 undefined ... [1] 이동희 2019-08-09 182
6354 udev 를 이용하여 /dev 사용권한을 변경할수 있나요? [1] pedor11 2015-11-18 185
6353 키이벤트 관련 질문드립니다. [3] 하하호호하하 2015-10-06 188
6352 Alto 4330 보드에서 sdcard의 리눅스 커널로 부팅하는 방법 [2] 포도씨 2016-11-18 192
6351 밑의 LCD 포팅 질문드렸었는데 추가 질문이 있습니다. [2] ImYeol 2015-08-13 193
6350 check_usb_vfs("/dev/bus/usb") 에러 [1] 생생맥주 2015-01-25 200
6349 smsc9220 질문 file [2] *김종원 2015-07-24 203

사용자 로그인