2011-06-13 2 views
1

OS X 용 IOKit CFPlugin 드라이버를 만들고 있습니다. 들어오는 네트워크 데이터가 MIDI 데이터로 변환 될 것입니다. 내장 된 공항 이외의 다른 하드웨어는 포함되어 있지 않습니다. Windows 컴퓨터 및 펌웨어의 드라이버에 대한 경험이 있지만 Mac에서이 작업을 수행하는 첫 번째 방법입니다. 지금까지는 잘 진행되고 있지만, Apple 문서에서는 안전상의 이유로 드라이버를 개발 컴퓨터에로드해서는 안됩니다. "IOKit Mac 드라이버를 개발하려면 두 대의 컴퓨터가 필요합니까?

저는 Mac이 하나뿐입니다. 정말 두 개의 Mac, Apple이 필요하지 않습니다. 이 경고를 심각하게 받아 들여야합니까? 내가 알아야 할 것이 있습니까?

감사합니다. Tom Jeffries

답변

2

VM 내부에서 OS X을 테스트 베드로 실행하는 것도 고려해 볼 수 있습니다. 별도의 부팅 볼륨을 갖는 것이 훨씬 더 편리 할 것입니다.

+1

그것이 작동하는 방법은 다른 두통입니다. 답변 해주셔서 감사합니다. – TomJeffries

2

경고는 다소 불리한 말로 표현됩니다. 드라이버를 사용하여 시스템을 임의로 배치 할 수 있으므로 별도의 부팅 볼륨 (파티션)을 사용하여 드라이버를 시험해 보는 것이 좋습니다. (VM, 대체 부팅 디스크 등을 통해) 메인 시스템과 격리되어 있지 않은 모든 OS에서 커널 개발을하고 있다면, 당신은 미쳤습니다!

더 큰 문제는 커널 디버깅을 할 수 없다는 것입니다. 그 유일한 옵션은 원격 OS X 시스템에서 GDB를 사용하기 때문입니다. 이를 위해 running OS X in virtualization을 고려할 수 있습니다.

+0

고마워요, 다른 Mac을 위해 웅대 한 것이나 더 많은 것을 튀기는 것보다 훨씬 좋은 옵션처럼 보입니다. – TomJeffries

1

fubar kext 설치를 복구 할 수있는 방법 : 부팅 가능한 외장 드라이브 또는 신속하게 복원 할 수있는 방법이 필요합니다. 이는 Apple에서 개발중인 커널 확장을 실행하는 것에 대한 Apple의 경고의 주된 이유입니다. 생산 기계.

Nicholas는 gdb (커널 공간에서 유일한 방법)를 사용하여 디버깅하려면 두 대의 기계가 필요합니다. 나는 Coxy이 제안한 것처럼 VM을 사용 해본 적이 없다. : 그러나 가상 머신에서 kext를 실행하고 실제 호스트 컴퓨터를 gdb로 실행한다고 가정하면 실행 가능하다.

커널에서 추적 및 디버깅에 대한 나의 선호하는 방법은 kprintf()이다 파이어 와이어로 연결 (파이어 와이어 kprintf 일명 (남성 fwkpfv)). 이것을 위해서는 firewire 포트가있는 두 대의 기계가 필요합니다.

마침내 오래된 컴퓨터 음악가 인 나 자신이 왜 네트워크 신디사이저 (또는 트랜스포머)를 네트워크 스택 레벨로 프로그래밍하고 싶은지 궁금합니다. 내 생각 엔 사용자 영역에서 작업하는 것이 훨씬 만족스러운 경험이 될 것입니다 (부동 소수점 연산을 사용할 수있는 곳) ...

몇 가지 힌트 또는 팁이 필요하면 언제든지 문의하십시오.

| ADC Kernel Programming Guide

커널 프로그래밍에서

K <은 모든 가능한 경우 가 피해야하는 검은 예술이다. 다행히 커널 프로그래밍은 보통 입니다. 대부분 사용자 공간에 소프트웨어를 작성할 수 있습니다. 대부분의 장치 드라이버 (예 : FireWire 및 USB)는 코드가 아닌 응용 프로그램으로 쓸 수 있습니다.커널의 주소가 인 경우, 하위 레벨의 드라이버는 이어야하지만이 범주에 해당하는 드라이버를 작성하는 경우 인 경우이 문서 이 유용 할 수 있습니다.

+0

의견에 감사드립니다. VM을 사용하여 설정했지만 여전히 알아야 할 사항이 많이 있습니다. 근본적으로 우리는 iPhone을 사용하여 MIDI 데이터를 통해 Mac의 응용 프로그램과 통신하므로 네트워크 드라이버를 사용합니다. 나는 블루투스를 사용할 수 있다고 생각했지만, 그것은 한계를 벗어난 것으로 판명되었다. – TomJeffries

관련 문제