IOT 오픈소스 > 라즈베리파이
라즈베리파이 문제 해결

 

제03강. 문제 해결

키보드 및 마우스 문제 해결

가장 흔하게 발생하는 문제는 글자가 중복 입력되는 현상이다. 예를들어 ‘startx’를 입력했는데 ‘sttttttttttttttttttarxxxxxxxxxxxxxxxxxx’처럼입력되는 현상이다.

주 원인은 전력 부족, 키보드 뒷면의 소비전력을 확인해 본다. LED를 사용하는 키보드는 그렇지 않은 일반 키보드 보다 전력 소모가 많다.

라즈베리파이의 소비 전력은 500mA(2.5W, Model A),700mA(3.5W, Model B)이다.

라즈베리파이의 USB 포트에 연결된plyfuse 라는 부품이 USB에 연결된 주변기기로150mA이상의 전력이 소모되면 전류를 차단하므로 주변기기가 이상 작동하거나 아예 작동하지 않게 된다.

주변기기를 전력소모가 낮은 기기로 교체하거나 전원을 사용하는 USB 허브를통해서 연결

호환성 문제 – USB 포트에 무선랜 어댑터 같은 다른 장비를 추가했을때 키보드가 이상 동작을 일으키고, 빼면 정상으로 돌아오는 경우 간혹 라즈베리파이와의 호환성 문제일수 있다. 다른 장비로 교체해야 된다. 알려진 비호환 장비목록은 다음 링크를 참조한다: http://elinux.org/RPi_VerifiedPeripherals#Problem_USB_Keyboards

마우스나 트랙볼도 키보드와 마찬가지이다. 다음 호환성 목록을 참조한다: http://elinux.org/RPi_VerifiedPeripherals#Working_USB_Mouse_Devices

전원 문제

라즈베리파이에서 발생하는 많은 수의 문제들이 전원 공급과 관련이 있다. 모델 A 5V 500mA의 전력이 필요하고 모델 B 5V 700mA의 전력을 필요로 한다. 모든 USB 전원어댑터들이 정격 규격은 그렇게 표기되어 있을지라도이 요건을 온전히 충족시켜 주는 것은 아니다.

주의: 공식 USB 표준에 의하면 USB에 연결된 기기는 500mA이상을 소비하지 않아야 하고 그 이상의전력은 협상절차를 거쳐야 얻을 수 있도록 되어있다. 라즈베리파이는 전력 전력 협상 절차 동작을 하지않으므로 데스크톱 PC USB 포트에 직접 연결하면 동작하지않을 가능성이 높다.

정상적으로 동작하던 라즈베리파이가 USB 포트에 주변기기를 연결했을때, 또는 비디오 플레이 같은 프로세서 집중적인 동작을 했을 때 이상 증세를 보이면 전압강하 문제일가능성이 높다. 라즈베리파이는 전압 테스트를 위한 두 지점을 제공하므로 상대적으로 쉽게 테스트를 해볼수 있다. DC 전압 측정기 또는 멀티 미터를 이용하여 측정한다.

주의: 테스트 지점 이외의 곳을 건드리지 않도록 주의한다. 라즈베리파이의 내부는 3.3V 로 동작하므로 5V의 전압이 닿으면 회로가 망가지기 쉽다. 특히 헤더 핀을 건드리지않도록 주의한다. TP1에는 적색 프루브(+), TP2에는흑색(GND)을 대어 측정한다.

그림 31: 전압 테스트 지점 TP1 TP2

라즈베리파이 문제 해결  

측정값은 4.8V ~ 5V 가 되어야 한다. 그 이하면 전원 어댑터를 교체한다. 1A 용량의 어댑터를 권장. 저가 모델은 표기된 정격에 미치지 못하는 전력을 제공하는 수가 많다.

디스플레이 문제

라즈베리파이는 대부분의 HDMI, DVI, 컴포지트 비디오 디스플레이와동작하도록 만들어졌지만 간혹 기대와는 다르게 동작하기도 한다.

우선 연결된 장치의 타입을 확인한다. 특히 RCA 커넥터를 이용해 TV에 연결했을 때 특히 중요하다. 국가마다 TV를 위한 표준이 다르기 때문에 흑백으로 표시되는 경우대부분 표준이 다르기 때문이다. 설정을 조정하는 방법은 라즈베리파이설정장에서 다룬다.

HDMI 출력 사용 시 보통 자동으로 디스플레이를 감지한다. HDMI-DVI 어댑터를 이용하여 컴퓨터 모니터를 연결한 경우 눈 같은 점들이 생기거나, 화면의 일부가 보이지 않거나, 아예 화면이 표시되지 않을 수 있다. 이 경우 해상도와 refresh rate를 조절해야 된다. “라즈베리파이 설정장에서 수동으로 조정하는 방법을 다룬다.

화면이 너무 크거나 작게 나오는 경우 화면이 모니터 가장 자리를 벗어나거나 가장 자리가 많이 남게 되는 경우는오버스캔이 설정되어 있기 때문이다. 오버스캔은 화면이 모니터크기를 벗어나 표시되는 것을 방지하기 위한설정으로 값을 조정하거나 꺼주면 된다. 그 방법은 라즈베리파일 설정장에서 다룬다.

부팅 진단

라즈베리파이 부팅 실패의 원인은 대부분 SD카드와 관련이 있다. 데스크톱이나 랩톱 컴퓨터와 달리 라즈베리파이는 모든 것을 전적으로 SD 카드에의존한다. SD카드를 읽지 못하면 아무런 동작도 하지 않는다.

전원을 연결했을 때 라즈베리파이의 전원 등은 켜지는데 아무 일도 일어나지 않고OK 등이 꺼진 상태이면 SD카드에 문제가 있는 것이다.SD카드를 PC에 연결해서 파티션과 파일이 제대로 있는지를 확인한다.

SD카드가 PC에서는 정상적으로보인다면 호환성 문제이다. 특히 클래스 10 급의 고속 카드일수록흔하다. 다음의 호환성 목록을 참조한다:

 http://elinux.org/RPi_VerifiedPeripherals#Problem_SD_Cards

네트웍 진단

네트웍 문제를 진단하는데 있어 가장 유용한 도구는 ifconfig 명령이다. 무선랜 설정은 네트웍 설정장을참조한다.

ifconfig 명령을 사용하면 라즈베리파이의 모든 이더넷 포트를볼 수 있는데 2개의 포트가 있다. 하나는 보드의 우측에있는 물리적인 포트이고, 다른 하나는 라즈베리파이 내의 프로그램들간에 통신을 할 수 있도록 해주는 가상루프백 인터페이스이다.

그림 32: ifconfig 실행 결과

 

라즈베리파이 문제 해결 

ifconfig 출력 결과의 각 부분은 다음과 같다.

Link encap – 네트웍에 의해 사용되는 캡슐화 타입, 물리적 네트웍 포트는ethernet, 가상 루프백 어댑터는 Local Loopback 타입이다.

Hwaddr – 네트웍 인터페이스의 미디어 접근 제어(MAC; Media Access Control) 주소. 16진수로 표시되며 네트웍상의 각 장치마다 고유한 번호를 갖는다. 각라즈베리파이도 각각 고유의 MAC 주소를 가지며 공장에서 설정된다.

inet addr – 네트웍 인터페이스의 인터넷 프로토콜(IP; Internet Protocol) 주소. 이 주소를 이용하여 네트웍상에서 운용되는 웹 서버 또는 파일 서버 등의  위치를 찾을 수 있다.

Bcast – 라즈베리파이가 연결되어 있는 네트웍을 위한 브로드캐스트 주소. 이 주소로 보내지는 트래픽은같은 네트웍 상의 모든 장치가 수신한다.

Mask – 라즈베리파이가 연결되어 있는 네트웍의 크기를 결정. 대부분의 가정에서는 255.255.255.0이다.

MTU – 최대 전송 단위 크기(Maximum transmission unit size). 시스템이 전송을위해 데이터를 여러 개의 패킷으로 자를 때 단일 패킷의 최대 크기를 지정

RX – 수신된네트웍 트래픽에 대한 보고. 오류 및 누락된 패킷 수를 포함. 오류숫자가 표시되면 네트웍에 뭔가 문제가 있다는 뜻.

TX – 송신된네트웍 트래픽에 대한 보고.

collisions – 네트웍 상의 시스템들이 동시에 전송 시 발생하는 충돌 횟수. 소량의 충돌은 상관없지만 많은수의 충돌이 발생하면 네트웍에 뭔가 문제가 있다는 뜻

txqueuelen – 송신 대기열의 길이. 대개 1000으로 설정되며바꿀 일은 거의 없다.

RX bytes, Tx bytes – 네트웍 인터페이스를 통과한 트래픽 양

네트웍에 문제가 발생하면 우선 네트웍 인터페이스를 비활성화시켰다가다시 활성화 시킨다. 가장 쉬운 방법은 ifup ifdown을 사용하는 것이다.

네트웍이 활성화되어 있는데 ifconfig를 쳤는데 inet addr 섹션에 아무것도 나타나지않으면 다음의 명령을 사용한다.

$ sudo ifdown eth0

네트웍 케이블 등을 점검하고 잠시 후

$ sudo ifup eth0

ping 명령어를 사용하여 네트웍 상태를 점검. 다른 컴퓨터에 데이터를보내고 응답을 확인한다.

그림 33: ping 명령 실행 결과 성공

라즈베리파이 문제 해결

 

비상용 커널

 

리눅스 커널은 /boot 디렉터리에kernel.img 단일 파일. 전원이 들어오면 이 파일을 찾아서 로드한다.

비상용 커널은 /boot 디렉터리에kernel_emergency.img 파일

비상용 커널은 표준 커널과 동일. 표준 커널에 변경이 가해지더라도비상용 커널은 원래의 상태를 유지. 표준 커널에 문제가 생겼을 때 비상용 커널을 로드 하도록 할 수있다.

첫 번째 방법은 PC에서 원래의kernel.img파일을 kernel.img.bak으로 이름을 변경하고, kernel_emergency.img 파일을 kernel.img로변경하여 라즈베리파이를 부팅한다. 다시 표준 커널로 되돌아가 가려면kernel.img kernel_emergency.img로 변경하고, kernel.img.bak kernel.img로 변경하면 된다.

두 번째 방법은 /boot 디렉터리의 cmdline.txt 파일의 맨 끝에 다음 커맨드를 추가한다.

kernel=kernel_emergency.img

라즈베리파이가 로드할 커널 명칭을 지정해주는 것이다. 되돌아가는 방법은추가된 행을 다시 지우면 된다. cmdline.txt 에 대해서는 라즈베리파이설정장에서 더 다룬다.

 

이전글
라즈베리파이 설치 2014/07/08
아두이노 실습 - 스위치로 LED 제어하기 2014/07/08
다음글
아두이노 실습 - 7 Segment LED 로 카운트 하기 2014/07/12
아두이노 실습 - 광센서(CDS)를 이용한 LED 켜기 2014/07/12