====== dt-blob.bin 직접 고치기 ======
GPIO의 디폴트 상태를 결정하는 파일이 /boot/dt-blob.bin입니다. 이 파일 내용을 바꾸면 최초상태를 Off로 할 수 있습니다.
* 혹시 모르니까 기존''/boot/dt-blob.bin'' 파일을 백업하세요.
cp /boot/dt-blob.bin dt-blob-backup.bin
{{ :comfilepi:gpio_init:dtd1.png?nolink |}}
* 우선 텍스트형태로 만들어야 바꿀 수 있습니다. bin파일을 아래 명령어로 텍스트파일인 dts로 만드세요.
sudo dtc -I dtb -O dts -o dt-blob.dts /boot/dt-blob.bin
{{ :comfilepi:gpio_init:dtd12.png?nolink |}}
- 텍스트 에디터 (보조 프로그램에 있음)를 사용해서 ''dt-blob.dts''을 오픈하세요.
{{ :comfilepi:gpio_init:dtd123.png?nolink |}}
\\
{{ :comfilepi:gpio_init:dtd1234.png?nolink |}}
\\
* 중간즈음에 오면 pins_cm3라는 부분이 있습니다.
{{ :comfilepi:gpio_init:dtd12343.png?nolink |}}
* ''pins_cm3 { pin_config { ...'' 안쪽에 아래 소스를 카피해서 넣으세요. (VNC를 사용해서 PC에서 작업하시면 편합니다. Ctrl+c로 카피해서 ctrl+v로 넣으세요.)
pin@p17 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO17
pin@p18 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO18
pin@p19 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO19
pin@p20 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO20
pin@p21 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO21
pin@p22 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO22
pin@p23 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO23
pin@p24 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO24
pin@p25 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO25
pin@p26 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO26
pin@p27 { function = "output"; termination = "no_pulling"; polarity = "active_low"; startup_state = "active"; }; // GPIO27
{{ :comfilepi:gpio_init:dtd1234311.png?nolink |}}
* 다른이름으로 저장하기 누른뒤 dt-blob2.dts라는 이름으로 저장하세요.
- dts를 다시 bin으로 바꾸어야 합니다.
sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob2.dts
* 다시 껏다 켜보세요. CPIO의 출력포트의 최초상태가 Off인 것을 확인할 수 있습니다.
[[comfilepi:index|ComfilePi (컴파일 파이)]]