jetson nano, xavier safe shutdown button 안전 종료 버튼 만들기 (1)
updated 2024.7.7 아래 것이 더 나아서 업데이트 합니다. 기존 글은 종료 버튼이 아니라, 다른 용도로 활용할 수 있습니다.
https://makejarvis.tistory.com/171
----------------------------------------------------------------------------------------------------
Xavier에 버튼을 달아서, 시스템 종료를 매번 shutdown 명령어를 사용하는 것이 아닌, 버튼을 누르면 안전하게 종료하게 하려고 한다.
gpio 핀을 사용하려고 하니, 정상적으로 작동되지 않아서, 아래의 방법으로 해본다.
# sudo /opt/nvidia/jetson-io/jetson-io.py
실행을 하면, 아래의 메뉴 선택하는 화면이 나온다. 첫번째는 jetson의 40핀 헤더에 대한 설정을 하는 메뉴인데, "Configure Jetson 40Pin Header" 메뉴, 이것을 선택하였다. 화면에 출력되는 내용이 좀 길게 나오니, 터미널 사이즈를 아래로 길게 만들어둬야지 깔끔하게 표시가 된다.
=================== Jetson Expansion Header Tool ===================
| |
| |
| Select one of the following: |
| |
| Configure Jetson 40pin Header |
| Configure Jetson AGX CSI Connector |
| Configure Jetson M.2 Key E Slot |
| Exit |
| |
아래에 출력된 것을 보면, 23번 핀이 unused 상태로 보인다. 23번 핀을 이용하려는데..... unused상태로 표시되어 있다.
=================== Jetson Expansion Header Tool ===================
| |
| |
| 3.3V ( 1) .. ( 2) 5V |
| i2c9 ( 3) .. ( 4) 5V |
| i2c9 ( 5) .. ( 6) GND |
| unused ( 7) .. ( 8) uarta |
| GND ( 9) .. ( 10) uarta |
| unused ( 11) .. ( 12) unused |
| unused ( 13) .. ( 14) GND |
| unused ( 15) .. ( 16) unused |
| 3.3V ( 17) .. ( 18) unused |
| unused ( 19) .. ( 20) GND |
| unused ( 21) .. ( 22) NA |
| unused ( 23) .. ( 24) unused |
| GND ( 25) .. ( 26) unused |
| i2c2 ( 27) .. ( 28) i2c2 |
| unused ( 29) .. ( 30) GND |
| unused ( 31) .. ( 32) unused |
| unused ( 33) .. ( 34) GND |
| unused ( 35) .. ( 36) unused |
| unused ( 37) .. ( 38) unused |
| GND ( 39) .. ( 40) unused |
| |
| |
| Jetson 40pin Header: |
| |
| Configure for compatible hardware |
| Configure header pins manually |
| Back |
| |
수동으로 핀에 대한 설정하는 메뉴(Configure header pins manually)를 선택한다. 아래와 같이 출력된 화면에서 spi1을 선택(스페이스바 또는 엔터를 누르면 선택된다)한다.
=================== Jetson Expansion Header Tool ===================
| |
| |
| Select desired functions (for pins): |
| |
| [ ] can0 (29,31) |
| [ ] can1 (33,37) |
| [ ] dmic3 (16,32) |
| [ ] dmic5 (16,32) |
| [ ] extperiph4_clk (7) |
| [ ] i2s2 (12,35,38,40) |
| [ ] pwm1 (15) |
| [ ] pwm5 (18) |
| [ ] pwm8 (13) |
| [*] spi1 (19,21,23,24,26) |
| [ ] uarta-cts/rts (11,36) |
| |
| Back |
| |
Back 버튼을 누르면, 아래와 같이 기존과는 달리 설정이 변경된 것을 확인할 수 있다. 23번 핀은 spi1_sck로 표시가 되어있다. 메뉴의 Save pin changes를 선택하여, 핀 변경 내용을 저장한다.
=================== Jetson Expansion Header Tool ===================
| |
| |
| 3.3V ( 1) .. ( 2) 5V |
| i2c9 ( 3) .. ( 4) 5V |
| i2c9 ( 5) .. ( 6) GND |
| unused ( 7) .. ( 8) uarta |
| GND ( 9) .. ( 10) uarta |
| unused ( 11) .. ( 12) unused |
| unused ( 13) .. ( 14) GND |
| unused ( 15) .. ( 16) unused |
| 3.3V ( 17) .. ( 18) unused |
| spi1_dout ( 19) .. ( 20) GND |
| spi1_din ( 21) .. ( 22) NA |
| spi1_sck ( 23) .. ( 24) spi1_cs0 |
| GND ( 25) .. ( 26) spi1_cs1 |
| i2c2 ( 27) .. ( 28) i2c2 |
| unused ( 29) .. ( 30) GND |
| unused ( 31) .. ( 32) unused |
| unused ( 33) .. ( 34) GND |
| unused ( 35) .. ( 36) unused |
| unused ( 37) .. ( 38) unused |
| GND ( 39) .. ( 40) unused |
| |
| |
| Jetson 40pin Header: |
| |
| Export as Device-Tree Overlay |
| Save pin changes |
| Discard pin changes |
아래에서 4번째에 있는 "Save and reboot to reconfigure pins"를 선택한다. 다른 메뉴를 선택해도 되는데, 리부팅을 해야지만 설정이 되는 것 같다.(메뉴의 설명을 보면... )
=================== Jetson Expansion Header Tool ===================
| |
| |
| Select one of the following: |
| |
| Re-configure Jetson 40pin Header |
| Configure Jetson AGX CSI Connector |
| Configure Jetson M.2 Key E Slot |
| Save and reboot to reconfigure pins |
| Save and exit without rebooting |
| Discard all pin changes |
| Exit |
| |
아래 글에 연결됩니다.
https://makejarvis.tistory.com/m/148