markboy's archive
Create TOC
2025년 7월 11일
wlan0 자동 재연결 설정
목차
이 문서는 `nmcli`와 `systemd`를 이용하여 무선 인터페이스 `wlan0`이 `disconnected` 상태일 때 자동으로 재연결하는 시스템을 구축하는 방법을 설명합니다. --- ## 스크립트 생성 아래와 같은 내용으로 `/usr/local/bin/check-wlan.sh` 파일을 생성합니다. ```bash #!/bin/bash IFNAME="wlan0" STATE=$(nmcli -t -f DEVICE,STATE dev | grep "^$IFNAME:" | cut -d: -f2) if [ "$STATE" = "disconnected" ]; then echo "$(date): $IFNAME is disconnected. Trying to reconnect..." >> /var/log/wlan-reconnect.log /usr/bin/nmcli connection up ifname "$IFNAME" >> /var/log/wlan-reconnect.log 2>&1 else echo "$(date): $IFNAME is $STATE. No action needed." >> /var/log/wlan-reconnect.log fi ``` 파일 생성 후 실행 권한을 부여합니다. ```bash $ sudo chmod +x /usr/local/bin/check-wlan.sh ``` ## systemd 서비스 작성 아래와 같은 내용으로 `/etc/systemd/system/check-wlan.service` 파일을 생성합니다. ```ini [Unit] Description=Check and reconnect wlan0 if disconnected Wants=network-online.target After=network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/check-wlan.sh ``` ## systemd 타이머 작성 아래와 같은 내용으로 `/etc/systemd/system/check-wlan.timer` 파일을 생성합니다. ```ini [Unit] Description=Run wlan0 checker every 2 minutes [Timer] OnBootSec=30sec OnUnitActiveSec=2min Persistent=true [Install] WantedBy=timers.target ``` ## 타이머 활성화 및 시작 ```bash $ sudo systemctl daemon-reload $ sudo systemctl enable --now check-wlan.timer ``` ## 동작 확인 타이머 상태 확인: ```bash $ systemctl list-timers | grep check-wlan ``` 서비스 로그 확인: ```bash $ journalctl -u check-wlan.service ``` 재연결 시도 로그 확인: ```bash cat /var/log/wlan-reconnect.log ```
2025년 7월 4일
SOYO M4 Pro Debian Linux 설정 가이드
목차
# SOYO M4 Pro Debian Linux 설정 가이드 이 문서는 SOYO M4 Pro에 Debian Linux 설치 후 추가 설정한 내용을 기술한다. ## CPU 성능 관련 설정 ### CPU frequency 정책을 schedutil로 변경 기본 CPU 거버너를 schedutil로 변경하여 시스템 성능을 최적화한다. #### 현재 상태 확인 ```shell $ sudo cpupower frequency-info ``` 사용 가능한 cpufreq governors에 schedutil이 없는 경우, intel_pstate를 passive 모드로 변경해야 합니다. #### 설정 방법 1. GRUB 설정 파일 백업 ```shell $ sudo cp /etc/default/grub /etc/default/grub.backup ``` 2. */etc/default/grub* 파일에서 **GRUB_CMDLINE_LINUX_DEFAULT**를 찾아 **intel_pstate=passive**를 추가: ```text GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=passive" ``` 3. GRUB 설정 갱신 ```shell $ sudo update-grub ``` 4. 시스템 재시작 #### 확인 방법 재시작 후 다음 명령으로 schedutil이 활성화되었는지 확인: ```shell $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ``` ### 부팅 시 자동으로 최고 성능 모드 설정 시스템 부팅 시 항상 CPU를 최고 성능 모드로 동작시키고 싶다면 아래와 같이 설정한다. #### 설정 방법 1. systemd 서비스 파일 생성 ```shell $ sudo nano /etc/systemd/system/set-cpu-gov.service ``` 2. 다음 내용 입력 ```ini [Unit] Description=Set CPU governor to performance After=multi-user.target [Service] Type=oneshot ExecStart=/usr/bin/cpupower frequency-set -g performance RemainAfterExit=yes [Install] WantedBy=multi-user.target ``` 3. 서비스 활성화 ```shell $ sudo systemctl daemon-reload $ sudo systemctl enable set-cpu-gov.service ``` #### 확인 방법 ```shell $ sudo systemctl status set-cpu-gov.service $ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ``` ### 터보 부스트 비활성화 CPU 터보 부스트를 비활성화하여 발열과 전력 소모를 줄이고 일정한 성능을 유지한다. #### 임시 설정 (재부팅 시 초기화) ```shell $ echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo ``` #### 영구 설정 1. systemd 서비스 파일 생성 ```shell $ sudo nano /etc/systemd/system/disable-turbo.service ``` 2. 다음 내용 입력 ```ini [Unit] Description=Disable Intel Turbo Boost by setting no_turbo DefaultDependencies=no Before=multi-user.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/sh -c 'echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo' ExecStop=/bin/sh -c 'echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo' [Install] WantedBy=multi-user.target ``` 3. 서비스 활성화 ```shell $ sudo systemctl daemon-reload $ sudo systemctl enable disable-turbo.service ``` #### 확인 방법 ```shell $ sudo systemctl status disable-turbo.service $ cat /sys/devices/system/cpu/intel_pstate/no_turbo ``` (1이면 터보 비활성화, 0이면 활성화) ## 메모리 관련 설정 ### Swap 사용 최소화 메모리 스왑 사용을 최소화하여 시스템 성능을 향상시킨다. 기본값은 60이며, 10으로 설정하여 스왑 사용을 크게 줄인다. #### 설정 방법 1. 설정 파일 생성 ```shell $ sudo nano /etc/sysctl.d/swappiness.conf ``` 2. 다음 내용 입력 ```text # 스왑 사용을 최소화 (기본값: 60) vm.swappiness=10 ``` #### 적용 방법 ```shell $ sudo sysctl -p /etc/sysctl.d/swappiness.conf ``` #### 확인 방법 ```shell $ cat /proc/sys/vm/swappiness ``` ## 기타 시스템 설정 ### 커널 최적화 설정 디스크 쓰기 성능 향상 및 불필요한 시스템 감시 기능 비활성화를 통해 전반적인 시스템 성능을 개선한다. #### 설정 방법 1. 설정 파일 생성 ```shell $ sudo nano /etc/sysctl.d/99-custom.conf ``` 2. 다음 내용 입력 ```text # VM writeback timeout (기본값: 500, 단위: centiseconds) # 디스크 쓰기 지연 시간을 늘려 성능 향상 vm.dirty_writeback_centisecs=1500 # NMI watchdog 비활성화 # 시스템 감시 기능을 비활성화하여 성능 향상 kernel.nmi_watchdog=0 ``` #### 추가 GRUB 설정 NMI watchdog를 완전히 비활성화하려면 */etc/default/grub*에 **nmi_watchdog=0**을 추가 ```text GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=passive nmi_watchdog=0" ``` #### 설정 적용 ```shell $ sudo sysctl -p /etc/sysctl.d/99-custom.conf $ sudo update-grub # GRUB 설정 변경 시 ``` ## 네트워크 설정 ### Wake-on-LAN (WOL) 활성화 원격에서 시스템을 깨울 수 있도록 Wake-on-LAN 기능을 활성화한다. #### 현재 상태 확인 1. 네트워크 인터페이스 확인 ```shell $ ip addr show ``` 2. WOL 지원 여부 확인 (실제 네트워크 인터페이스 이름으로 변경) ```shell $ sudo ethtool enp1s0 ``` #### 임시 설정 ```shell $ sudo ethtool -s enp1s0 wol g ``` #### 영구 설정 (NetworkManager Dispatcher 스크립트 사용) 1. NetworkManager dispatcher 스크립트 생성 ```shell $ sudo nano /etc/NetworkManager/dispatcher.d/99-wol.sh ``` 2. 다음 내용 입력 (네트워크 인터페이스 이름을 실제 이름으로 변경) ```shell #!/bin/bash if [ "$1" = "enp1s0" ] && [ "$2" = "up" ]; then /sbin/ethtool -s enp1s0 wol g fi ``` 3. 스크립트 실행 권한 부여 ```shell $ sudo chmod +x /etc/NetworkManager/dispatcher.d/99-wol.sh ``` 4. NetworkManager 재시작 ```shell $ sudo systemctl restart NetworkManager ``` #### 확인 방법 ```shell $ sudo ethtool enp1s0 | grep "Wake-on" ``` "Wake-on: g" 또는 "Wake-on: d"가 표시되면 설정 완료 ## Docker 관련 설정 ### 로그 정리 Docker 컨테이너 로그가 무제한으로 쌓이는 것을 방지하기 위해 로그 로테이션을 설정한다. #### 설정 방법 */etc/logrotate.d/docker* 파일을 생성하고 다음 내용을 입력: ```text /var/lib/docker/containers/*/*.log { rotate 7 daily compress notifempty missingok copytruncate create dateext } ``` #### 설정 설명 - `rotate 7`: 최대 7개의 백업 파일 유지 - `daily`: 매일 로테이션 실행 - `compress`: 백업 파일 압축 - `notifempty`: 빈 파일은 로테이션하지 않음 - `missingok`: 파일이 없어도 오류 발생하지 않음 - `copytruncate`: 파일을 복사한 후 원본 파일 크기를 0으로 만듦 - `create`: 새 로그 파일 생성 - `dateext`: 백업 파일에 날짜 확장자 추가 ## 주의사항 1. **설정 변경 전 백업**: 중요한 설정 파일은 반드시 백업하고 변경하세요. 2. **단계적 적용**: 모든 설정을 한번에 적용하지 말고 하나씩 테스트해보세요. 3. **시스템 재시작**: 일부 설정은 시스템 재시작 후에 적용됩니다. 4. **네트워크 인터페이스 이름**: 실제 시스템의 네트워크 인터페이스 이름으로 변경하여 사용하세요. ## 롤백 방법 설정에 문제가 발생한 경우: 1. **GRUB 설정 롤백**: 백업한 `/etc/default/grub.backup` 파일을 복원 2. **서비스 비활성화**: `sudo systemctl disable [서비스명]` 3. **sysctl 설정 제거**: 해당 설정 파일 삭제 후 시스템 재시작
최근 게시물
이전 게시물
홈
모바일 버전 보기
피드 구독하기:
글 ( Atom )