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 층이 있는가? 나는 플러그 - 인 할 때 일종의 장치로 등록한다고 가정합니다.
글쎄, 커널 공간에서 액세스 할 수 있다고 생각합니다. 어딘가에서 직접 매핑하거나 I2C (또는 SM) 버스에서 액세스 할 수 있습니다. 커널 모듈을 제어 할 수 있다면 어셈블리를 추적하여 쓰는 위치를 찾으십시오. – problemPotato