Nvidia jetbot 와이파이 끊김 문제 해결 (jetbot powersave mode disable)
Jetbot 프로젝트를 하면서 모니터와 HDMI 연결을 하지 않은 채로 Jetbot 에 접속하면 계속해서 프리징이 발생해 재부팅해야 하는 문제가 있었다.
모니터와 연결하면 문제가 없는데 모니터가 없을 때만 문제가 발생하는 것으로 보아 절전모드(powersave mode)와 연관이 있다고 생각하고 이를 설정하는 법을 찾아보았는데 아래의 링크에서 자세한 해결법을 찾을 수 있었다.
나도 처음 Nvidia document 를 통해 했던 방법이 /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf 에서 3을 2로 수정해주는 방법이였는데 이 문서에 따르면 효과가 없다.
대신,
cd /etc/systemdsudo gedit wifi-powersave-off.sh
을 통해 스크립트를 하나 생성해주고
#!/usr/bin/env bash
iw dev wlan0 set power_save on
iw dev wlan0 set power_save off
아래와 같은 내용을 넣고 저장한다.
sudo chmod +x wifi-powersave-off.sh
그 다음 스크립트에 권한을 부여해줘서 서비스에서 실행 가능하도록 한다.
스크립트를 생성했으면,이 스크립트를 실행해줄 서비스를 만들어야 한다.
cd /etc/systemd/system
서비스 기본 디렉터리로 이동한 후,
sudo gedit wifi-powersave-off.service
서비스 파일을 생성한다.
[Unit]
Description=Turn Wifi Power Management Off
After=network.target
After=network-manager.service
After=network-online.target
After=wpa_supplicant.service
After=multi-user.target
After=graphical.target
After=systemd-networkd-wait-online.service
[Service]
Type=idle
RemainAfterExit=no
ExecStart=/etc/systemd/wifi-powersave-off.sh
Restart=no
RestartSec=20
[Install]
WantedBy=multi-user.target
위와 같은 내용을 넣은 후 저장한다.
그리고 서비스를 지속시켜주기 위한 타이머를 작성한다.
cd /etc/systemd/systemsudo gedit wifi-powersave-off.timer
아래와 같은 내용을 저장한다.
[Unit]
Description=Wait before turning Wifi Power Management Off
#After=network.target
#After=network-manager.service
#After=network-online.target
#After=wpa_supplicant.service
#After=multi-user.target
#After=graphical.target
#After=systemd-networkd-wait-online.service
[Timer]
OnBootSec=30
#OnUnitActiveSec=10
AccuracySec=1
[Install]
WantedBy=default.target
모두 작성이 되었으면 서비스를 시작한다.
sudo systemctl start wifi-powersave-off.service
디버깅 정보를 확인한다.
sudo journalctl -x -u wifi-powersave-off.service
제대로 실행되었는지 스테이터스를 확인한다.
sudo systemctl status wifi-powersave-off.service
서비스를 활성화 한다.
sudo systemctl enable wifi-powersave-off.service
타이머로 서비스를 지속시킨다.
sudo systemctl start wifi-powersave-off.timer
재시작 시에도 실행되도록 활성화한다.
sudo systemctl enable wifi-powersave-off.timer