" sony(으)로 태그된 글들"

[Sony PHA-1] Windows8.1 드라이버 오류 문제

3월 18, 2014   //   alexken작성   //   기술  //  2 Comments

헤드폰 앰프로는 그람슬리 솔로가 있고, 이준화 교수님이 만들어주신 앰프도 있으면서 Sony PHA-2가 나오면서 20만원 초반으로 떨어진 PHA-1을 계륵인지 알면서 낼름 구매해버림.

주로 Macbook air나 iPhone에 연결해서 들어서 몰랐는데, Windows8.1에 연결하면 디바이스 드라이버 오류가 난다고 해서 해보니 정말 재현되었고, 그래서 해결책을 찾아 봤음.

소니 공식 Q&A

소니 Q&A 사이트의 해결 방법을 간략히 정리

0. 뭔가를 느끼고 있는 “Sony Device”를 선택하고 오른쪽 마우스 클릭
1. “드라이버 소프트웨어 업데이트” 선택
2. “컴퓨터에서 드라이버 소프트웨어 찾아보기” 선택
3. “컴퓨터의 장치 드라이버 목록에서 직접 선택” 선택
4. “호환 가능한 하드웨어 표시” 선택 해제
5. “제조업체” 에서 (표준 USB 호스트 컨트롤러) 선택
6. “모델”에서 “USB Composite Device” 선택
7. 끝.

Sony Bravia TV의 웹 EPG 만들기 (두번째)
XMLHttpRequest로 SOAP 메시지 보내기

4월 28, 2013   //   alexken작성   //   기술  //  No Comments

이전글에 이어서,

이전 방식(Ruby + Server)의 단점은 집에 웹서버를 운영해야 한다는 점이다.
NAS도 어엿한 웹서버이므로 크게 문제될 것은 없지만, 그냥 단말기에서 동작하도록, 즉 HTML측에서 동작하도록 javascript를 이용해 XMLHttpRequest로 soap메시지를 전달하도록 전부 재 작성하였다.

단순 웹페이지라, 브라우저만 있는 기기라면, 스마트폰/태블릿/PC 어디서나, iOS/Android/WP7.5/Windows/MacOSX 무관하게 동작할 것이나, 현재 하늘이 핸드폰인 Lumia 710(WP7.5)의 IE에서만 동작하지 않았고, 나머지 기기에서는 완벽 동작한다.
사용하기 정말 편하며, 만들어 놓고 아주 뿌듯해 하고 있다.

그럼 본문

ircc Command 목록을 조회하는 코드는 다음과 같다.
중요한 점은 “X-CERS-DEVICE-ID”라는 헤더에 TV에 페어링을 통해 등록된 Mac주소를 함께 전송해야 한다. 없으면 403을 반환한다.

var tv_ip = 'XXX.XXX.XXX.XXX';
var client_mac_addr = 'XX-XX-XX-XX-XX-XX';

function getRemoteCommandList(){
  var xhr = new XMLHttpRequest();
  xhr.open('GET', 'http://' + tv_ip + '/cers/api/getRemoteCommandList',true);
  xhr.setRequestHeader("X-CERS-DEVICE-ID", 'MediaRemote:' + client_mac_addr);
  xhr.onreadystatechange=function() {
    if(xhr.status == 200){
      if (xhr.readyState==4) {
        alert(xhr.responseText);
      }
    }else{
      alert(xhr.status);
    }
  }
  xhr.send(null);
}

getRemoteCommandList를 호출하면 TV는 아래와 같은 xml 형태로 리모콘 값에 해당하는 값의 Base64로 인코딩된 값을 반환한다.
전체 커맨드 목록은 이 글 맨 아래에 정리하였다.

< ?xml version="1.0"?>
<remotecommandlist>
 <command name="Confirm" type="ircc" value="AAAAAQAAAAEAAABlAw==" />
 <command name="Up" type="ircc" value="AAAAAQAAAAEAAAB0Aw==" />
 <command name="Down" type="ircc" value="AAAAAQAAAAEAAAB1Aw==" />
  ...
 <command name="OneTouchRecStop" type="ircc" value="AAAAAgAAABoAAABjAw==" />
 <command name="MuteOn" type="url" value="http://_:80/cers/command/MuteOn"/>
 <command name="MuteOff" type="url" value="http://_:80/cers/command/MuteOff"/>    
</remotecommandlist>

마지막 줄에 type이 “ircc”가 아닌 “url”인 MuteOn과 MuteOff가 있는데, 이 url 유형의 command는 soap으로 보내지 않고, 해당 url에 GET만 수행해도 동작하며, 요청 기기의 MAC주소도 확인하지 않는다.
즉 코딩할 필요 없이 웹브라우저에서 해당주소를 입력하고 Enter만 쳐도 동작한다는 얘기다.
특이점은 command는 MuteOn과 MuteOff가 있지만 MuteOff는 동작하지 않고, MuteOn만 토글 형태로 동작한다.
물리적인 리모콘 버튼에서도 [조용히] 하나만 있기 때문에 일맥상통한다.

[조용히]/[조용히 해제]에 해당하는 코드는 아래와 같다.
getRemoteCommandList함수와의 차이점은 커스텀 헤더인 “X-CERS-DEVICE-ID”는 필요치 않다.

function muteOnOff(){          
  var xhr = new XMLHttpRequest();
  xhr.open('GET', 'http://' + tv_ip + '/cers/command/MuteOn',false);
  xhr.send(null);
}

위에서 작성한 getRemoteCommandList()를 통해서 얻은 ircc code를 가지고 직접 리모콘 키를 누르는 것과 동일한 효과를 내는 함수는 다음과 같다. sendIrccCommand에 ircc 코드를 보낼때 마다 리모콘 키 하나를 누르는 행위와 일치한다.

function sendIrccCommand(ircc){
  var body =
    '< ?xml version="1.0"?>'+
    '<s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" '+
    ' s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">'+
    '  <s:body>'+
    '    <u:x_sendircc xmlns:u="urn:schemas-sony-com:service:IRCC:1">'+
    '      <ircccode>' + ircc + '</ircccode>'+
    '    </u:x_sendircc>'+
    '  </s:body>'+
    '</s:envelope>';
  var xhr = new XMLHttpRequest();
  xhr.open('POST', 'http://' + tv_ip + '/IRCC',false);
  xhr.setRequestHeader('X-CERS-DEVICE-ID', 'MediaRemote:' + client_mac_addr);
  xhr.setRequestHeader('SOAPAction',     
                        '"urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"');
  xhr.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');
  xhr.send(body);
}

하지만 SBS를 튜닝하기 위해서는 디지털인 경우에 ‘6’, ‘.’, ‘1’과 같이 연속으로 3개의 키를 입력해야 한다.
sendIrccCommand를 좀더 추상화한 setChannel은 아래와 같고, 입력은 ‘6.1’, ‘10.1’ 과 같은 키 시퀀스에 해당하는 문자열을 입력으로 받는다.

function setChannel(ch){

  var num = [
            "AAAAAQAAAAEAAAAJAw==", //0
            "AAAAAQAAAAEAAAAAAw==", //1
            "AAAAAQAAAAEAAAABAw==", //2
            "AAAAAQAAAAEAAAACAw==", //3
            "AAAAAQAAAAEAAAADAw==", //4
            "AAAAAQAAAAEAAAAEAw==", //5
            "AAAAAQAAAAEAAAAFAw==", //6
            "AAAAAQAAAAEAAAAGAw==", //7
            "AAAAAQAAAAEAAAAHAw==", //8
            "AAAAAQAAAAEAAAAIAw=="  //9
  ];
  var dot = "AAAAAgAAAJcAAAAdAw=="  //.

  var c = ch.split("");
  for( var i in c ){
    switch(c[i]){
      case '.' :
        sendIrccCommand( dot );
        break;
      default:
        sendIrccCommand( num[ch[i]] );
        break;
    }
  }
}

더 보기 >>

Sony Bravia TV의 웹 EPG 만들기 (첫번째)
Ruby+Server 버전

4월 27, 2013   //   alexken작성   //   기술  //  3 Comments

집에 TV는 2년전 구입한 nx720이라는 Sony사 제품이다.
스마트폰에서 제어할 수 있도록 Media Remote라는 앱을 iOS용과 Android용으로 제공하고 있다.

그런데 Android용으로 TV SideView라는 새로운 앱을 제공하기 시작했다.
Media Remote가 리모콘의 단순 대체라면, TV SideView는 음성 컨트롤, EPG를 통한 채널 선택, 저장된 미디어 재생(PVR 모델의 경우)와 같은 새로운 UX를 제공하고, 이중에서 EPG를 통한 채널선택은 TV 사용에 있어 가장 자연스런 UX인거 같다.

그런데, 국가가 [일본/미국]인 경우에는 EPG를 보여주고 해당 채널을 선택할 수 있는 반면, 국가를 [한국]으로 설정해면 EPG 기능이 비활성화 되는 것에 광분하여 자체적으로 만들게 되었다.

조사해본 결과

Sony TV의 경우 IRCC라는 웹서비스를 제공한다.
리모콘 키의 IR 신호에 해당하는 ircc 코드를 HTTP 프로토콜로 SOAP 메시지로 전달하면 리모콘 키를 누른 것과 동일하게 동작한다.
IRCC의 경우에 범용적으로 표준화된 것은 아니고, Sony가 개발한 Sony의 Bravia 브랜드를 사용하는 TV, Blue-lay, PVR 기기에서만 활용되는, 그다지 범용적인 기술 표준은 아니었다.

적당히 EPG 정보를 대충 가져와 그냥 html로 알아서 아래와 같이 변환 후 화면을 터치하면, 해당 프로그램의 채널로 TV가 튜닝하도록 하였다.

ircc command를 soap으로 전송하는 가장 손쉬운 방법은 ruby cers_remote 라이브러리를 이용하면 되고, 웹 서버측 php에서 ruby를 통해 TV로 soap 메시지를 보내게 된다.

ircc가 동작 제한 조건으로

  • ircc의 soap 메시지 header에 TV에 기 등록된 기기의 MAC주소를 보낼 것
  • ircc 전송측과 TV가 동일 네트워크에 있을 것

이 중 MAC 주소는 기존에 Media Remote를 설치해서 TV와 패어링된 스마트폰/태블릿의 MAC 주소여야 하고,송신측이 TV와 동일 네트워크에 있어야 하려면, 웹버서를 집내에서 운영해야 한다.

#!/usr/bin/env ruby

require "cers_device"
tv_ip = "XXX.XXX.XXX.XXX"
paired_device_mac = "XX-XX-XX-XX-XX-XX"

command =
"1"=>"AAAAAQAAAAEAAAAAAw==",
"2"=>"AAAAAQAAAAEAAAABAw==",
"3"=>"AAAAAQAAAAEAAAACAw==",
"4"=>"AAAAAQAAAAEAAAADAw==",
"5"=>"AAAAAQAAAAEAAAAEAw==",
"6"=>"AAAAAQAAAAEAAAAFAw==",
"7"=>"AAAAAQAAAAEAAAAGAw==",
"8"=>"AAAAAQAAAAEAAAAHAw==",
"9"=>"AAAAAQAAAAEAAAAIAw==",
"0"=>"AAAAAQAAAAEAAAAJAw==",
"."=>"AAAAAgAAAJcAAAAdAw=="
}

device = CersDevice.new(tv_ip,paired_device_mac)

if __FILE__ == $0
  ARGV[0].split(//).each{|x|
    device.send_ircc(command[x])
    sleep 1
  }
end

위 파일을 setch 라고 저장하였다면 터미널에서

$setch 11.1

로 채널전환 가능하며, 이를 서버측에서 불러주면됨

VaioUX + MacOSX + Wiimocon = ???

8월 8, 2007   //   alexken작성   //   기술  //  No Comments

VaioUX + MacOSX + Wiimocon의 조합이야 말로 궁극의 조합이다.

다시 풀어서 MacOSX가 깔린 포터블한 미니 컴퓨터
게다가 Wiimocon으로 컨트롤… 이라

이걸로 키노트 한번 하면 정말 작살이겠다…

돈주고 산 Remote Buddy 란 프로그램이 정말 아깝지 않다.
Wiimocon으로 컨트롤 하는것이 Apple Remocon보다 더 좋은 점은
적외선이 아니라 블루투스 이기 때문에 꼭 컴터를 향해서 조작할 필요가 없다.

Remote Buddy가 Wiimocon의 모션 센서 기능까지 구현한다거나,
마우스 포인팅까지 되게 한다면 이건 너무 바라는 걸까??

MacOSX on Vaio UX27LN

7월 19, 2007   //   alexken작성   //   기술  //  3 Comments

4.5’의 엄청난 휴대성에, Viata가 기본 탑재된 나쁘지 않은 성능의 피씨sony-vaio-ux.jpg
UX 사용자로서, UMPC로 분류하면 좀 섭하다.
미니피씨라고 불러다오.
이전에 외국글에서 UX에 MacOSX를 설치했던글을 보았다.
Vista가 다소 무거운거 같아 XP로 갈아타려던 차, 재미삼아 MacOSX를 깔면 어떤 용도의 물건이 될까 호기심에 설치해 보았다. 2~3일 써 볼 계획이었다. 내겐 첨으로 깔아본 해킨토시인 셈이다.

근데, 이거 물건이다.
2~3일 써보려다가, macbookpro를 재끼고, 주 개발 피씨로 자리 잡아 버렸다.(mbp는 leopard깔고서 이것저것 시험중…)

Apple에서 Newton이후 PDA 비스므리한 제품군을 작정하고 안만들고 있는데, 그에대한 개인적인 항거이다. macbookpro에 tablet기능이 없는 관계로 Ink란 놈을 몰랐는데, MacOS의 Ink, Vista의 날으는 입력기만큼이나 훌륭하다.(문제가 있다면 한글 필기 입력 안된다는거…푸헐)

Apple은 10인치 이하의 tablet 제품을 출시하라.

http://www.micropctalk.com/forums/showthread.php?t=2140

사전 준비

10.4.8 JaS AMD-Intel-SSE2-SSE3 이미지를 구한다.(어디서 구하는지는 난 모름.)
BIOS에서 LCD Stretch를 켜준다.(1024*600 해상도 지원을 위해서 추가작업 하기 싫다면…)

인스톨

별 특별한 사항 없이 그냥 잘 인스톨 된다.
단 선택항목을 sev7en 처럼 선택해준다.

추가로 잡아 줄 드라이버

■비디오는 그냥 잡힌다. 1024*600 모드로

■블루투스도 아주 잘 잡힌다.
인스톨후 바로 마우스(애플 무선 마우스) 키보드(씽크아웃사이드) 등록 후 바로 사용이 가능하다.

■UBS2.0, Realtek Audio, Power Mgmt

VaioUX Drivers for MacOSX

드라이버 설치법은 전부 pkg를 설치하고, 재시작 버튼을 절대 누르지 말고,
첨부된 S&R Permissions tool로 권한복구후 재부팅해준다.

■유선 네트워크

sudo vi  /System/Library/Extensions/IONetworkingFamily.kext
/Contents/PlugIns/AppleYukon.kext/Contents/Info.plist

에서 IOPCIPrimaryMatch 항목을 다음과 같이 수정
11AB가 제조사ID(Sony) 4351이 제품ID(VaioUX)이다.
마찬가지로 권한복구후 재부팅

<key>IOPCIPrimaryMatch</key>
<string>0x435111AB</string>

■무선 네트워크
정신건강상 사용할 생각을 접자.

현재 문제점

  • 잠자기 들어가면 깨어날 줄 모른다.(해킨토시는 원래 그렇다나???)
  • 에어포트 사용 불가(요거 좀 아쉽다.)
  • 스피커로 소리가 안나온다.(이어폰으로는 가능)
  • 터치패널도 자동인식되어 사용가능하지만, 얼라인이 불가능하다.
  • 지문인식, 전/후 카메라, 특수버튼 – 애시당초 잡을 생각도 안했다.

12월 23일 천문인 마을에서 II

2월 7, 2007   //   alexken작성   //   인생, 천문, 하늘이  //  No Comments

12월 23일 천문인 마을에서 I 이란 글을 쓴지가 언제인데 이제서야 II를 쓴다.

천문인 마을 부근을 Sony hc3로 찍었는데, hdcam이다 보니, 테입에서 끄집어 내서 편집할 엄두가 안난다.
하드로 불러오면 한시간이 50G가 넘고, h.264 1080 60i로 인코딩 했다가는 컴터 몇일 앓아 누을 것이다.

앞으로는 어찌 할까나????

편집 보드도 천차 만별인디…


제목에 걸맞지 않게 hc3얘기만 했다.

12월 23일 많은 추억이 있다.
중앙대 코스모스 팀들이 송년회를 가져서 덕분에 울진 꽃게와 맞나는 술을 많이 얻어 마셨다는것과,
니콘에 계시는 채윤석씨가 하늘이 사진도 찍어주고,
그냥 찍어본 장미가 기대외로 맘에 들게 나왔다는거 등등등….

나다의 동일 글
천문인 마을의 동일 글

블로그 카테고리

천체사진 갤러리