본문 바로가기

개발자/라즈베리파이4

giblib error: Can't open X display. 에러 해결 방법

반응형

 

 

부엌에 있는 Raspberry Pi는 비교적 안정적으로 실행되지만 최근 브라우저(openHAB - HABpanel이 표시됨, 스마트 홈의 중심으로 실행되는 기술에 구애받지 않는 오픈 소스 홈 오토메이션 플랫폼)의 오른쪽 상단에 경고 팝업이 표시됩니다. HABpanel의 이 영역이 외부 온도를 표시하기 때문에 성가신 일입니다.

 

무슨 일이 벌어지고 있는지 조사하기 전에 화면을 캡처하기 위해 휴대전화를 들고 부엌으로 달려가지 않고도 디스플레이의 스크린숏을 얻을 수 있는 방법을 찾아야 했습니다. 그리고 항상 키보드를 연결하지 않고 ("Prt Sc" 버튼 혹은 Print Screen 키를 누르기 위해).

 

시스템이 Raspbian을 실행 중입니다. 디스플레이 관리자는 LXDE입니다. Raspbian은 미리 설치된 스크린샷 도구와 함께 제공됩니다: 화면 캡처 프로그램인 "scrot"가 좋은 점은 ssh를 통해 로그인하는 동안 명령줄에서 스크린샷을 찍을 수 있다는 것입니다. 라즈베리파이4 에서는 기본이지만 혹시 이전 버전의 Pi에서는 없을 수 있습니다. 

 

내가 해야 할 일은 디스플레이가 어디에 있는지 "scrot"을 가르치는 것뿐이었습니다. 디스플레이 설정 없이 시작하면 X 서버에 연결할 수 없습니다. 아래와 같은 에러가 떠도 화들짝 놀라지 마세요. 해결방법은 간단합니다.

pi@raspberrypi:~ $ scrot
giblib error: Can't open X display. It is running, yeah?

아래와 같이 환경 변수를 설정해야 합니다. 환경 변수를 설정하는 방법은 그냥 프롬프트 $ 뒤에 아래 명령어를 차례로 하나씩 입력합니다. 한 줄 입력 후 엔터입니다. "DISPLAY"("0"인 첫 번째 디스플레이를 가리킴) 및 "XAUTHORITY"(현재 로그인한 사용자의 Xauthority 파일을 가리킴): 

 

export DISPLAY=:0

export XAUTHORITY=/home/pi/.Xauthority 

 

$export DISPLAY=:0
$export XAUTHORITY=/home/pi/.Xauthority

 

두 변수를 모두 내보낼 필요가 있습니다. 이는 쉘 용어로 다음을 의미합니다. 시작된 프로그램은 환경 변수도 볼 수 있습니다. 그렇지 않으면 쉘 자체에 대한 변수일 뿐입니다. 두 변수를 설정한 후 스크린샷을 찍을 수 있습니다. 중요한 것은 Putty와 같은 원격 연결 프로그램, 그러니까 ssh 연결 상태에서 사진을 화면을 캡처할 수 있습니다. 

 

아래와 같이 명령어를 실행합니다. 파일 캡처 이미지인 2023-01-13~ png 파일이 보이시죠? 아름답습니다. ^^

 

pi@raspberrypi:~ $
pi@raspberrypi:~ $ export DISPLAY=:0
pi@raspberrypi:~ $ export XAUTHORITY=/home/pi/.Xauthority
pi@raspberrypi:~ $ scrot
pi@raspberrypi:~ $ ls
2021-07-25-190049_1920x1080_scrot.png  all_sensortest   php.ini
2021-07-25-190410_1920x1080_scrot.png  capture1sec.py   phpinfo.php
2022-08-01-193711_655x417_scrot.png    demofarmdb       s-farm
2022-08-01-193807_1920x1080_scrot.png  farmactubrowser  s-fire
2023-01-13-185006_1920x1080_scrot.png  farmactuphone    s-home
Arduino                                iot_farmserver   s-pet
Bookshelf                              iot_fireserver   s-safe
.
.
.

 

 

라즈베리파이 화면 캡쳐 - putty 에서 scrot 실행

 

 

참고

Raspberry Pi: take a screenshot from a display with no keyboard and mouse  다양하게 재미있는 개인 블로그 사이트

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩