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

현재 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 페도라코어에 스크래치박스 인스톨후 부팅문제....[완료] [2] 조준동 2006-05-02 1333
6327 autologin은 어떻게 만드는건가요... <==완료 [4] 이홍석 2006-05-02 1142
6326 yaffs 질문 <= 완료 [6] 안정섭 2006-05-02 1400
6325 tiny-x올린상태에서 gtk올리지 않고 프로그램 띄울수 있나요? [1] 오태한 2006-05-02 994
6324 dev/fb/0 에러... <== 완료 [10] 이홍석 2006-05-02 1406
6323 root file system 구축의 개략적 순서및 필수 패키지(?) [3] 조준동 2006-05-04 1423
6322 배포된 DVD에 있는 슬랙웨어의 password가 어떤거죠? ==> 완... [2] 서성민 2006-05-04 963
6321 모듈 삽입 질문 드립니다. [1] 안정섭 2006-05-04 903
6320 보드를 이용한 방화벽에 대해 질문드립니다.<--완료 [2] 이상화 2006-05-04 944
6319 자료실에 현철님이 올려주신 rootfs 부팅에러...[완료] [13] 이홍석 2006-05-04 1497
6318 NAND boot 에 관하여....<= 완료 [1] 박현진 2006-05-04 1242
6317 아래글 최종 에러 메세지 다시한번 올립니다.. [완료] [3] 이홍석 2006-05-04 1454
6316 플레시 플레이어를 돌리려구 하는데여...<==완료 [1] 윤현승 2006-05-05 1297
6315 요즘 yaffs <= 요질문이 자주 올라오네요..^^ [완료] [2] 이홍석 2006-05-05 1181
6314 NOR MTD 질문입니다.. [완료] [5] 이홍석 2006-05-06 3312
6313 에고.. 다시한번 nor mtd관련 질문 드립니다.. [완료] [4] 이홍석 2006-05-06 1160
6312 mkyaffsimage 질문입니다...[완료] [4] 이홍석 2006-05-07 2624
6311 insmod 에러 질문드립니다. <= 완료 [6] 안정섭 2006-05-08 1055
6310 gplflash 질문입니다 <==완료 [2] 윤현승 2006-05-09 918
6309 battery 연결시 동작문제...[완료] [3] 이홍석 2006-05-09 1043

사용자 로그인