2014-01-16 6 views
3

MagSafe 2에서 프로그래밍 방식으로 LED를 변경하고 싶습니다. 감지 핀 신호를 처리하고 신호가 실제로 알려져있는 회로 보드가 있습니다. 문제는 실제로 OS X을 통해 해당 신호를 보내는 것입니다.MagSafe 2의 LED 제어 (감지 핀에 임의의 데이터 전송)

MagSafe 해킹에 대한 유일한 문서는 Ken Shirriff의 블로그 게시물 (Ken Shirriff http://www.righto.com/2013/06/teardown-and-exploration-of-magsafe.html)입니다. 켄 흥미로운 발견

신호들은 (단지 완전 함을 위해)은 다음과 같다 :

void writeDS2413(int n) { 
    uint8_t buf[3]; 
    net.reset(); 
    net.skip(); 
    buf[0] = 0x5a; // PIO access write 
    buf[1] = 0xfc | (n&3); // data in lower two bits 
    buf[2] = ~buf[1]; // inverted 
    net.write_bytes(buf, 3, true /* power on */); 
} 

// ... 
writeDS2413(3); // off 
writeDS2413(1); // orange 
writeDS2413(2); //green 
writeDS2413(0); //yellow 

하기 MagSafe으로 낮은 수준의 통신을 허용하는 OS의 X 층이 있는가? 나는 플러그 - 인 할 때 일종의 장치로 등록한다고 가정합니다.

+0

글쎄, 커널 공간에서 액세스 할 수 있다고 생각합니다. 어딘가에서 직접 매핑하거나 I2C (또는 SM) 버스에서 액세스 할 수 있습니다. 커널 모듈을 제어 할 수 있다면 어셈블리를 추적하여 쓰는 위치를 찾으십시오. – problemPotato

답변

0

내 생각에 맥의 SMC 칩에 연결하면 배터리 관련 모든 것을 처리 할 수있다. https://github.com/gcsgithub/smc_util을 보면 SMC 키 목록을 읽는 데 도움이된다. sudo 사용). 키를 찾으면 (수행하는 경우) https://github.com/fmorrow/smcwrapper을 사용하면 LED 상태를보다 쉽게 ​​설정하는 데 도움이됩니다.

업데이트 : 내 생각에 이것은 SMC 펌웨어에 의해 내부적으로 제어된다는 것입니다. 충전 = 주황색, 전체 = 녹색, 그게 전부입니다. 하지만 맥북 앞에서 LED를 제어하는 ​​방법을 발견하기 전에 그렇게 생각 했으므로 .... (애플과 관련해서는) 특히 그러지 말고 포기하지 마십시오.

+0

흥미를 자아냅니다. 고마워, 그것을 확인합니다! –

0

If OS X가 아닌 리눅스의 특정 맛이었습니다. /sys/bus/w1/devices을 통해 모든 1-Wire 소자에 액세스 할 수있는 방법이 있었을 것입니다. "1-Wire Raspberry Pi Tutorial"에 대한 Google 검색을 수행하면 무리를 찾을 수 있습니다. 리눅스에서 1-Wire 소자와 인터페이스하는 방법을 설명하는 Raspberry Pi 1- Wire Digital Thermometer Sensor과 같은 것들이다.
"OS X가 sysfs를 사용하지 않는 불행한 사실에 관한 자세한 내용은
Where is /sys/bus/usb/devices on Mac OS X? : 질문을 참조 -

그러나, 당신이 직면하게 될 다음 문제는 Mac OS X에는 /sys/bus 없다는 것입니다 "

그러나 Mac OS X에서 /sys/bus에 액세스하거나 1-Wire 버스 (때로는 철자가있는 1Wire)에 액세스하는 것과 관련된 유사한 문제를 파헤 치면 올바른 방향으로 나아갈 수 있습니다.

1-Wire 이중 채널 어드레싱 스위치는 언급 한대로 in the MagSafe power connector 스위치를 제어하는 ​​것이 매우 간단해야합니다. 1-Wire 버스에 액세스하는 방법을 찾아야 만합니다. 나는 @Perceval FARAMAZ의 대답에 언급 된 바와 같이 SMC 컨트롤러와 커널 메모리 또는 인터페이스를 해킹하려고하기 전에이를 추구 할 것을 제안합니다.

더 이상의 진전이있을 경우 답변이나 질문에 대한 업데이트를 게시하십시오.