본문 바로가기

Study

[Ubuntu/VMware] "The VMware Tools power-on script did not run successfully in this virtual machine." 에러 해결 방법 직장에서 VMware를 상당히 많이 활용하고 있습니다. 얼마 전부터 VMware Power On 시에 아래와 같은 메시지가 발생해서 상당히 성가신 날들을 보냈습니다. 문제를 자세히 살펴보고 해결할 물리적 시간도 마음의 여유도 없지만, 앞으로 지속적으로 성가실 것 같아서 좀 더 자세히 살펴보았고, 결국 문제의 원인을 해결하였습니다. The VMware Tools power-on script did not run successfully in this virtual machine. If you have configured a custom power-on script in this virtual machone, make sure that it contains no errors. You can also submi.. 더보기
[라즈베리파이] UART 시리얼 포트로 터미널 접속 방법(Headless 환경) 10년 넘게 모니터도 키보드도 없는 Embedded Firmware를 개발하다 보니, 모니터도 키보드도 업는 headless 환경이 더 편리하다고 느끼는 FW 개발자입니다. 만약 여러대의 라즈베리파이를 네트워크로 구성하셨다면, 라즈베리파이마다 모니터와 키보드를 연결하시겠습니까? 물론, 라즈베리파이를 일반 PC처럼 모니터와 키보드가 달려있는 상태로 사용하는 환경이라면 그것이 적절하겠지만, 굳이 모니터와 키보드가 필요 없는 환경이라면 이렇게 구성하는 것은 적절하지 않습니다. 어쩌면 모니터 하나의 가격이 라즈베리파이 보드 한 장의 가격보다 더 비쌀지도 모르겠습니다. [다수의 라즈베리파이가 구성된 환경] 아래의 그림은 다수의 라즈베리파이를 사용하는 환경입니다. 3대의 라즈베리파이를 하나의 네트워크에 연결하였습니.. 더보기
[라즈베리파이] LED 4번 깜빡이는 부팅불량 발생시 조치방법 모니터도 키보드도 없는 Embedded 환경에서 FW 개발업무를 10년 이상 하다 보니, 모니터와 키보드가 있는 환경이 오히려 불편하다고 생각하는 개발자입니다. 처음부터 headless 환경에서 라즈베리파이 연구를 시작했습니다만, 라즈베리파이 부팅 초기의 문제를 발견하고 해결하는 데는 어려움이 있었던 것이 사실입니다. [모니터가 장착된 상태에서 부팅 불량 문제점 진단] 모니터가 장착된 상태에서의 부팅불량 문제점을 진단하는 방법은 아주 쉽습니다. 라즈베리파이 4B 보드의 micro-HDMI 포트에 모니터를 연결해서 모니터로 출력되는 에러 메시지를 확인하면 됩니다. 아래는 대표적인 부팅 불량 문제점인 SD boot failed 메시지입니다. SD카드를 미장 착하거나, SD카드에서 부팅 가능한 OS를 찾지 못.. 더보기
[라즈베리파이] 현재 GPIO 출력값을 읽어와 토글 시키는 방법 라즈베리파이를 시작하면서 참 많은 것들을 배우게 되었네요. 해보고 싶은 것들은 많지만, 기초부터 탄탄하게 다지는 중입니다. GPI 포트로 센서의 입력을 받고, GPO 포트로 LED나 부저 등을 단순 제어하는 방법에 대해서는 충분히 익혔다고 생각합니다. GPIO로 단순히 True/False와 같은 출력을 보내는 것은 할 수 있지만, 마지막 출력 상태를 확인해서 toggle 시키려고 하니 어떻게 구현 해야 할지 감이 오지 않더군요. 결국은 방법을 찾아내서 이렇게 누군가를 위해 블로그로 기록 중입니다. 이번 시간에는 LED를 토글링(toggling) 하기 위해 현재 GPIO 출력값을 읽어오는 방법에 대해서 기록하고자 합니다. 아울러, not 문법을 통해서 토글링하는 방법까지 설명드리겠습니다. [C라면 XOR .. 더보기
[Python] 표준입력시 NameError: name 'XXXX' is not defined 에러 메시지 발생시 조치사항 새로운 것을 시작하는 것은 항상 어렵습니다. C로 밥을 벌어먹고 살지만, python은 또 새롭네요. 오늘은 python에서 input() 함수로 표준입력을 받을때 NameError: name 'XXXX' is not defined 라는 에러가 발생할 때 조치하는 방법에 대해서 설명드리겠습니다. [스크립트] 아래는 아주 간단한 python 스크립트입니다. 표준입력으로 받은 메시지를 표준출력으로 echo 시키는 아주 간단한 2줄짜리 스크립트입니다. python 문법적으로도 틀린게 없습니다. cmd = input() print(cmd) 여러분들은 위의 스크립트가 잘못되었다고 생각하시나요? 저는 아무리 눈씻고 찾아봐도 오류를 찾을 수 없었습니다. [실행] 위의 스크립트를 아래와 같은 명령을 이용하여 실행했습니.. 더보기
[라즈베리파이] 적외선 센서로 인체의 움직임이 감지되면 부저가 울리는 python 예제 오늘 제가 재미로 만들어본 것은 적외선 센서로 인체가 감지되면 능동 부저가 울리는 스크립트입니다. 라즈베리파이로 가장 먼저 손쉽게 할 수 있는게 GPIO 제어입니다. GPI로 IR 센서 입력을 받고, 인체가 감지되면 GPO로 능동부저를 울리는 아주 간단한 구조입니다. 별반 어려운 것도 없고 특별한 것도 없지만, 우리 아들이랑 도둑놀이하면서 즐거운 시간을 보냈습니다. 그럼 어떻게 회로구성을 했고, 스크립트를 어떻게 작성했는지 설명드리겠습니다. [준비물] 준비물은 아주 단촐합니다. 저항이나 컨덴서 같은 부품은 전혀 필요없습니다. IR 센서 : 인체감지를 위한 센서입니다. 집에서 흔히 사용하는 센서등에 널리 사용되는 인체감지 센서입니다. 능동 부저 : 전원만 입력하면 소리가 나는 active buzzer를 사.. 더보기
[Python] ms 단위 sleep 주는 방법 라즈베리파이를 시작하면서 python도 같이 공부하며 기록중입니다. C는 상당히 능숙한데 python을 배우려고 하니 막히는 부분들이 좀 있습니다. python으로 작성한 프로그램의 1초 단위 delay를 ms단위로 바꾸고 싶은데 방법이 당장 떠오르지 않더군요. [python으로 초단위 delay 주는 예제] import RPi.GPIO as GPIO import time GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(2, GPIO.OUT) while True: GPIO.output(2, True) time.sleep(1) GPIO.output(2, False) time.sleep(1) 위의 예제는 python으로 초단위 delay를 주는 예제입니.. 더보기
라즈베리파이로 active buzzer 제어하는 방법 지난 시간에는 라즈베리파이를 이용해서 LED를 제어하는 방법에 대해서 기록했었습니다. 오늘은 라즈베리파이를 이용해서 부저음을 낼 수 있는 방법에 대해서 기록하고자 합니다. [부저] GPIO를 이용하여 부저음을 내기에 앞서 부저에 대해서 간단하게 설명드리겠습니다. 부저(buzzer)는 소리를 낼 수 있는 부품으로 2가지 종류가 있습니다. 동작 방식에 따라서 능동 부저(active buzzer)와 수동 부저(passive buzzer)로 나뉩니다. [능동 부저] 능동 부저란 내부에 부저 신호를 발생시킬 수 있는 기능이 있어서, 전원만 연결해주면 고정된 주파수의 소리가 발생하게 됩니다. 동작 전압만 인가하면 소리가 나기 때문에 간단하게 소리를 낼 수 있지만, 고정된 주파수로만 소리가 나기 때문에 주파수를 바꿀.. 더보기