센서 드라이버 설치
이 항목에서는 개발 보드의 보조 시스템 설명 테이블(SSDT)을 업데이트한 후 개발 보드에 센서 드라이버를 설치하는 방법을 보여 줍니다.
이 항목에서는 Sharks Cove 개발 보드와 ADXL345 가속도계를 사례 연구로 사용하여 개발 보드에 센서 드라이버를 설치하는 프로세스를 설명합니다. 따라서 이 항목에 제시된 작업을 수행하려면 먼저 Sharks Cove에 운영 체제를 설치해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 Windows 10 위한 키트 및 도구 다운로드를 참조하고 지침에 따라 Windows 10 설치합니다.
Sharks Cove에 운영 체제 설치를 완료한 후 센서 드라이버 빌드를 참조하여 Microsoft Visual Studio 드라이버를 빌드하는 방법을 알아보세요. 그런 다음 계속하려면 여기로 돌아갑니다.
가속도계는 I2C 버스를 통해 상어 코브에 부착됩니다. I2C 버스에 연결된 주변 장치는 ACPI(고급 구성 및 전원 인터페이스)를 통해 열거됩니다. 따라서 가속도계의 샘플 드라이버는 플러그 앤 플레이 대신 ACPI를 지원하도록 개발되었습니다.
Sharks Cove의 ACPI 드라이버가 I2C 버스의 새로운 장치(가속도계)를 인식하도록 하려면 Sharks Cove의 SSDT에 가속도계에 대한 정보를 추가해야 합니다. 이 표에서는 가속도계와 같은 연결된 주변 장치를 포함하여 하드웨어 플랫폼의 디바이스에 대한 하드웨어 리소스 및 인터럽트 요구 사항을 설명합니다.
시작하기 전에
아래에 설명된 작업을 수행하기 전에 다음 이미지와 같이 Sharks Cove가 설정되어 있는지 확인하세요.

기본 SSDT 검색 및 검토
이 섹션에서는 ASL(ACPI 원본 언어) 컴파일러를 사용하여 Sharks Cove에 대한 팩터리 기본 SSDT를 검색한 다음 검토하는 방법을 보여 줍니다. 기본 SSDT를 업데이트된 SSDT로 바꾸는 방법도 알아봅니다.
개발 컴퓨터에서 다음 위치로 이동하여 ASL 컴파일러를 복사합니다. c:\Program Files (x86)\Windows Kits\10\Tools\x86\ACPIVerify
Asl.exe 파일을 복사하고 플래시 드라이브에 저장합니다.
Sharks Cove의 루트 디렉터리에 도구 폴더를 만듭니다. 그런 다음, Flash Drive를 Sharks Cove의 USB 허브에 연결하고 Asl.exe 파일을 Tools 폴더에 복사 합니다 .
관리자 권한으로 명령 프롬프트 창을 열고 다음 명령을 입력합니다. cd\toolsdirAsl.exe 파일이 디렉터리에 나열되어 있는지 확인합니다.
asl /tab=ssdt 명령을 입력하여 ASL 컴파일러를 호출하고 ASL 파일을 만듭니다.
dir ssdt.asl 명령을 입력하여 ASL 파일이 성공적으로 만들어졌는지 확인합니다.
다음 명령을 입력하여 메모장 ASL 파일을 엽니다. 메모장 ssdt.asl ASL 파일을 검토하고 가속도계 또는 I2C 버스에 대한 참조가 없음을 확인합니다.
메모장을 닫습니다. 그런 다음 명령 프롬프트 창에 다음 명령을 입력하여 ssdt.asl 파일의 이름을 바꿉니다. ren ssdt.asl ssdt-old.asl 그런 다음 dir 명령을 사용하여 파일이 ssdt-old.asl로 나열되었는지 확인합니다.
기본 SSDT 업데이트
다음 작업을 수행하여 SSDT를 업데이트하고 로드하여 팩터리 기본 버전을 바꿉니다. 업데이트된 SSDT는 배터리 지원 RAM이라는 메모리의 약에 저장됩니다. 따라서 Sharks Cove와 함께 제공된 버튼 셀(배터리)이 소켓에 연결되어 있는지 확인합니다.
업데이트된 다음 SSDT를 복사하여 새 메모장 인스턴스에 붙여넣습니다.
// CreatorID=INTL CreatorRev=20.14.805 // FileLength=177 FileChkSum=0x88 DefinitionBlock("SSDT.AML", "SSDT", 0x01, "Intel_", "ADebTabl", 0x00001000) { Scope() { Name(DPTR, 0x3bf2d000) Name(EPTR, 0x3bf3d000) Name(CPTR, 0x3bf2d010) Mutex(MMUT, 0x0) Method(MDBG, 0x1, Serialized) { Store(Acquire(MMUT, 0x3e8), Local0) If(LEqual(Local0, Zero)) { OperationRegion(ABLK, SystemMemory, CPTR, 0x10) Field(ABLK, ByteAcc, NoLock, Preserve) { AAAA, 128 } Store(Arg0, AAAA) Add(CPTR, 0x10, CPTR) If(LNot(LLess(CPTR, EPTR))) { Add(DPTR, 0x10, CPTR) } Release(MMUT) } Return(Local0) } } Scope(_SB_) { Device(SPBA) { Name(_HID, "ADXL345Acc") Name(_UID, 1) Method(_CRS, 0x0, NotSerialized) { Name(RBUF, ResourceTemplate() { I2CSerialBus(0x53, ControllerInitiated, 400000, AddressingMode7Bit, "\\_SB.I2C3", 0, ResourceConsumer) GpioInt(Edge, ActiveHigh, Exclusive, PullDown, 0, "\\_SB.GPO2") {0x17} }) Return(RBUF) } Method(_DSM, 0x4, NotSerialized) { If(LEqual(Arg0, Buffer(0x10) { 0x1e, 0x54, 0x81, 0x76, 0x27, 0x88, 0x39, 0x42, 0x8d, 0x9d, 0x36, 0xbe, 0x7f, 0xe1, 0x25, 0x42 })) { If(LEqual(Arg2, Zero)) { Return(Buffer(One) { 0x03 }) } If(LEqual(Arg2, One)) { Return(Buffer(0x4) { 0x00, 0x01, 0x02, 0x03 }) } } Else { Return(Buffer(One) { 0x00 }) } } // Method(_DSM ...) } // Device(SPBA) } // Scope(_SB_) }메모장 FileSave> As를 선택합니다. 그런 다음 , 파일 형식 드롭다운 상자를 선택하고 모든 파일을 선택합니다.
파일 이름 상자에 ssdt.asl을 입력한 다음 저장을 선택하고 메모장 닫습니다.
명령 프롬프트 창에서 dir 명령을 사용하여 ssdt-old.asl로 나열된 기본 파일과 ssdt.asl로 나열된 새 파일을 볼 수 있는지 확인합니다.
ssdt.asl 파일을 Sharks Cove가 이해할 수 있는 형식으로 컴파일합니다. asl ssdt.asl 명령을 입력합니다.
dir ssdt.aml 명령을 입력하여 3단계에서 컴파일된 파일이 성공적으로 만들어졌는지 확인합니다. 도구 디렉터리에 나열된 ssdt.aml 파일이 표시됩니다.
asl /loadtable ssdt.aml 명령을 입력하여 컴파일된 파일을 배터리 지원 RAM에 로드합니다.
테스트 서명 켜기
샘플 센서 드라이버를 설치하기 전에 테스트 서명을 켜야 합니다. 테스트 서명을 켜려면 다음 작업을 수행합니다. 디바이스 관리자를 통해 센서 드라이버를 설치하려면 다음 단계를 수행합니다.
명령 프롬프트 창에서 다음 명령을 입력하여 테스트 서명이 이미 켜져 있는지 확인합니다.
bcdedit /enum다음과 유사한 목록이 표시되면 테스트 서명에 대한 항목을 표시하고 해당 값이 설정된
yes다음 5단계로 건너뜁니다.

테스트 서명을 켜야 하는 경우 bcdedit /set testsigning on 명령을 입력합니다.
이 연습에서 1단계를 반복하여 테스트 서명 시스템 변수의 값이 이제 Windows 부팅 로더 목록에서 '예'로 설정되어 있는지 확인합니다.
상어 코브를 다시 시작합니다. 보드가 다시 시작되면 약 2초 동안 볼륨 업 단추를 길게 눌러 UEFI(시스템 설정) 창을 입력합니다.
UEFI 창에서 DeviceManagerSystem>SetupBoot>를 선택하고 UEFI 보안 부팅이 사용 안 함으로> 설정되어< 있는지 확인합니다.
변경 내용을 저장하고 UEFI 창을 종료합니다.
센서 드라이버 설치
Sharks Cove 보드에 드라이버를 설치하는 네 가지 주요 방법이 있습니다.
- 네트워크 원본에서 Sharks Cove로 직접 드라이버를 다운로드합니다.
- Sharks Cove가 프로비전된 클라이언트로 연결된 호스트 컴퓨터에서 센서 드라이버를 개발합니다. 그런 다음 호스트 컴퓨터에서 Sharks Cove로 드라이버를 배포합니다.
- 드라이버 패키지를 플래시 드라이브에 복사하고 플래시 드라이브를 Sharks Cove에 연결합니다. 그런 다음 명령 프롬프트 창에서 devcon 명령을 사용하여 드라이버를 수동으로 설치합니다.
- 드라이버 패키지를 플래시 드라이브에 복사하고 플래시 드라이브를 Sharks Cove에 연결합니다. 그런 다음 디바이스 관리자를 통해 드라이버를 수동으로 설치합니다.
간단히 하기 위해 앞의 목록에서 마지막 메서드를 사용합니다. 디바이스 관리자를 통해 센서 드라이버를 수동으로 설치하려면 다음 단계를 수행합니다.
센서 드라이버를 설치하기 전에 센서를 Sharks Cove에 연결해야 합니다. SparkFun에서 ADXL345 가속도계 브레이크아웃 보드를 수정하여 샘플 센서 드라이버로 작업하는 방법에 대한 자세한 내용은 센서 테스트 보드 준비를 참조하세요. 그리고 센서 브레이크아웃 보드를 Sharks Cove에 연결하는 방법에 대한 자세한 내용은 센서를 Sharks Cove 보드에 커넥트 참조하세요.
ADXL345 가속도계가 Sharks Cove J1C1 커넥터에 연결되어 있는지 확인한 다음, Sharks Cove에 전원을 공급합니다.
센서 드라이버가 있는 플래시 드라이브를 Sharks Cove에 연결된 전원 USB 허브에 연결합니다. 예를 들어 센서 드라이버 빌드의 단계에 따라 빌드한 드라이버를 저장한 플래시 드라이브일 수 있습니다.
디바이스 관리자를 열고 다른 디바이스 노드에서 노란색 뱅 기호가 있는 "알 수 없는 디바이스"를 찾습니다(다음 스크린샷 참조).

노란색 뱅(알 수 없는 디바이스로 나열됨)으로 디바이스를 선택하고 길게 누르거나 마우스 오른쪽 단추로 클릭하고 드라이버 소프트웨어 업데이트를 선택하고 드라이버 소프트웨어에 대한 내 컴퓨터 찾아보기를 선택합니다.
플래시 드라이브에서 ADXL345 드라이버로 이동한 다음, 다음을 선택합니다. 화면 프롬프트에 따라 센서 드라이버를 설치합니다.
샘플 센서 드라이버가 성공적으로 설치되면 Device Manager 는 다음 스크린샷과 같이 센서를 표시합니다.

Visual Studio 사용하여 클라이언트 컴퓨터(예: Sharks Cove)에 드라이버를 배포하는 방법에 대한 자세한 내용은 테스트 컴퓨터에 드라이버 배포를 참조하세요.
샘플 센서 드라이버를 성공적으로 설치한 후 센서를 테스트하는 방법에 대한 자세한 내용은 범용 센서 드라이버 테스트를 참조하세요.