개요 안정적인 라즈베리 파이의 경우도, 홈 서버로 운영하다 보면 예기치 못한 오류로 서비스가 중단되는 경우가 있습니다. 이 경우 가장 손쉬운 해결방법은 장치를 재부팅하는 것입니다. 하지만 언제 발생할지 모르는 장애를 우리가 지켜보고 있는 것은 비효율적입니다. 이번 포스트에서는 우리 대신 이러한 오류시 복구 작업이 자동으로 수행되도록 라즈베리 파이를 설정하겠습니다. 이를 위해서 라즈베리파이의 Watchdog 모듈을 설정해보겠습니다. Watchdog Timer는 하드웨어 타이머로 메인 서비스가 멈추는 것을 감지해 시스템을 자동으로 리셋시키는 장치입니다. 즉, 어떠한 이유로 라즈베리파이가 멈추면 동작하여 시스템을 재부팅합니다. 경고 또는 일러두기 잘못된 Watchdog Timer 설정은 다음과 같은 문제를 야..
라즈베리파이/기초
개요 라즈베리파이의 Bluetooth를 사용하는 중 갑자기 연결이 끊어지는 오류가 있었습니다. 이에 대한 (확인되지 않은) 원인 중 하나로 WIFI와 Bluetooth가 서로 간섭을 일으켜 장애가 발생한다는 언급이 있었습니다. 따라서 현재 사용하고 있지 않은 WIFI를 비활성화하여 이를 해결해 보겠습니다. config.txt 수정 라즈베리파이 보드의 하드웨어 모듈은 /boot/config.txt 파일을 통해 제어합니다. WIFI 모듈을 끄기 위해 파일의 마지막 줄에 다음 내용을 추가합니다. dtoverlay=disable-wifi ※ 만약 블루투스도 비활성화하고자 한다면 dtoverlay=disable-bt 도 함께 삽입합니다. 확인 config.txt는 라즈베리파이의 재부팅 시 적용됩니다. 재부팅 완료..
개요 여러분의 컴퓨터에서 연결 시마다 매번 암호를 입력하지 않도록 라즈베리파이를 설정할 수 있습니다. 이를 위해 SSH key를 생성해야 합니다. ※ 라즈베리파이 보안강화 에서도 다루었지만 암호가 아닌 SSH Key 기반의 SSH 연결을 사용하는 것은 보안 측면에서도 도움이 됩니다. SSH keys 확인 먼저, 라즈베리파이에 연결할 PC에 이미 생성되어 있는 키가 없는지 확인합니다. (접속에 사용하고자 하는 PC가 윈도우즈를 운영체제로 사용한다면 PowerShell에서 다음 명령을 실행합니다.) $ ls ~/.ssh만약 id_rsa.pub나 id_dsa.pub가 보인다면 이미 키가 있는 것이니 새로운 SSH keys 생성 단계는 건너 띄어도 좋습니다. 새로운 SSH keys 생성 새로운 SSH keys ..
개요 라즈베리파이를 포함한 리눅스 및 윈도우즈는 우선 DHCP를 이용하여 IP 획득을 시도하고, IP 획득에 실패하면 자신의 IP를 사설 IP 영역인 169.254.0.0/16로 자동 설정합니다. DHCP는 네트워크에 연결된 장치에 동적으로 IP를 부여해주는 프로토콜입니다. 라즈베리파이의 운영체제인 라즈비언(Raspbian)은 내장하고 있는 dhcpcd 프로그램에서 DHCP 프로토콜로 자신이 사용할 수 있는 IP를 DHCP 서버로 요청합니다. 라즈베리파이는 DHCP 서버에서 발행한 IP를 자신의 IP로 설정합니다. 예를 들어 제 라즈베리파이는 이 절차에 따라 현재 192.168.0.3이라는 내부 IP로 설정되어 있습니다. 라즈베리파이를 24시간 동작하는 홈서버 또는 NAS로 사용하지 않는 경우나 장치의 ..
개요 때때로 SSH를 이용하여 라즈베리파이에 접속 후, 프로그램을 실행하다 보면 장시간 구동이 필요한 경우가 있습니다. 하지만 어떤 사유로 SSH 세션이 갑자기 종료되면 동작중이던 프로그램도 함께 종료되고 작업 중이던 내용도 함께 잃게 됩니다. 다행히 Screen이라는 GNU의 유틸리티를 사용하면 이러한 상황을 예방할 수 있습니다. 설치 라즈베리파이에 Screen이 설치되어 있지 않은 경우, 다음 명령을 사용하여 Screen을 설치할 수 있습니다. $ sudo apt install screen $ screen -v Screen version 4.05.00 (GNU) 10-Dec-16Screen 사용 Screen 실행 Screen세션을 하나 실행하려면 간단히 아래의 명령어를 터미널에 입력합니다. $ scr..
개요 bluetoothctl은 앞서 설치한 리눅스의 공식 블루투스 스택(bluetooth stack)을 개발하는 프로젝트인 bluez에서 제공하는 bluez-utils 패키지 포함되어 있는 명령줄(command line) 도구입니다. 라즈베리파이의 공식 운영체제인 라즈비언(raspbian)역시 리눅스이므로 해당 도구가 기본 설치되어 있습니다. 따라서 우리는 이 도구를 사용하여 간단히 블루투스 디바이스를 관리할 수 있습니다. 시작하기 라즈베리파이의 콘솔에서 아래의 명령을 실행합니다. $ bluetoothctl [bluetooth]# 프롬프트가 변경됩니다. 현재 정보 확인 라즈베리파이의 블루투스의 현재상태는 show 명령을 사용해 확인합니다. [bluetooth]# show Controller B8:27:E..
개요 라즈비언에 설치되어 있는 bluez 5.34 버전은 상태 확인 시 오류 메시지가 출력됩니다. 이를 해결하기 위해서 최신 버전의 bluez 버전을 설치하도록 하겠습니다. 시스템 최신화 및 관련 패키지 설치 시스템을 변경하거나 기능을 추가하기 위해 라즈베리파이를 최신화하고 소스코드 컴파일을 위해 관련 패키지를 다운로드합니다. $ sudo apt update $ sudo apt upgrade $ sudo apt-get install libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev -y 상태 확인 현재 bluez 버전을 확인합니다 $ bluetoothctl -v 5.43 $ sudo systemctl status blue* ● bl..
개요 라즈베리파이는 USB 포트 출력 전류값이 0.6A로 제한되어 있습니다. 일반적인 용도로 사용하는 것에는 문제가 없지만 USB 포트를 사용하여 전원을 공급받는 외장하드디스크를 사용하는 경우, 하드디스크가 올바르게 구동되도록 라즈베리파이의 설정 파일을 편집하여 이 제한을 해제할 수 있습니다. USB 포트 출력 전류 설정 /boot/config.txt 파일은 일반적인 피씨(PC)의 바이오스(BIOS)가 없는 라즈베리파이에서 부팅 시 하드웨어의 기능을 활성화, 비활성화하는 용도로 사용되는 설정 파일입니다. ※ 참고 : 이번 포스트에서는 /boot/config.txt 파일의 USB의 출력 전력 값을 설정하는 방법만 기술하고 있지만, 이 외에도 다양한 옵션을 설정할 수 있으므로 하단의 링크를 참고하여 필요에 ..