본문 바로가기

Study

[라즈베리파이] 현재 시간 정보를 자동으로 가져와서 유지하는 방법 라즈베리파이는 현재 시간 정보를 유지하지 못합니다. 작고 저렴하지만 파워풀한 라즈베리파이에 RTC(Real Time Clock) 블록은 포함되어 있지 않습니다. 다시 말하면 라즈베리파이에는 현재 시간 정보를 유지하는 기능이 없다는 이야기입니다. 그래서 오랫동안 껐다가 재부팅하면 현재 시간이 잘 맞지 않는 문제가 발생합니다. 라즈베리파이에 RTC block이 없는 이유? 제가 라즈베리파이를 설계한 사람은 아니지만 10년 이상 Embedded 환경에서 개발을 한 경험을 바탕으로 미루어 짐작하자면, 원가 절감과 크기 절감을 위한 게 아닌가 싶습니다. 라즈베리파이는 상업적인 목적이 아닌 교육적인 목적을 위해 만들어진 것이기 때문입니다. 필수적인 기능이 아니므로 RTC를 지원하지 않으면 더 저렴하고 저 작은 크기.. 더보기
[Ubuntu] Linux 업그레이드 이후 키보드와 마우스 잠김 현상 해결 방법 [개요] 최근 Ubuntu 16.04를 18.04를 거쳐 20.04로 업그레이드하였습니다. 그 과정에서 여러 가지 문제들이 발생했습니다. 특히, Ubuntu OS를 업그레이드 한 이후에 로그인 화면에서 마우스와 키보드가 전혀 동작하지 않는 문제가 발생하여 다소 당황스러웠습니다. 본 페이지에서는 Ubuntu OS를 업데이트한 이후에 마우스와 키보드가 잠기는 문제의 해결 방법에 대해서 기록해두고자 합니다. [Ubuntu 16.04를 업데이트하게 된 배경] 제가 운용 중인 개발 서버의 경우 Ubuntu 16.04 LTS를 사용하고 있었습니다. 16.04 LTS는 2021년 4월 이후로 유지보수 중단되었습니다. 이에 따라 18.04 이후의 버전으로 업데이트하도록 회사로부터 공지를 받았습니다. 사실 리눅스 서버를.. 더보기
[Jenkins] node 추가시에 known host 추가하는 방법 최근에 젠킨스에서 노드를 추가하는 방법을 알게 되었고 신세계를 만났습니다. 하나의 서버에 부하가 쏠리는 현상을 확실하게 막아주는 것을 알게 되었습니다. 단순히 랜덤하게 노드간의 load balancing을 해주는게 아니라 처리하는데 걸리는 시간을 피드백 받아서 적절하게 분산 처리해주는 것으로 판단됩니다. 실제로 어떤 노드에서 수행되는지 확인해보면 성능이 좋은 서버에 우선적으로 job이 할당되는 것을 알 수 있습니다. 여러 서버들을 골고루(?) 잘 활용하기 위해서는 job을 잘게 쪼개는 작업이 필요합니다. 하나의 큰 job을 여러개의 작은 job으로 쪼개서 여러 노드에서 병렬로 빌드가 이뤄져야 더 빨리 수행할 수 있기 때문입니다.극단적인 예를 들자면, 노드는 100개인데 job이 2개 뿐이라면 나머지 98.. 더보기
[라즈베리파이] Jenkins 설치하는 방법 라즈베리파이에 Jenkins를 설치하여 테스트 자동화 환경 구성 라즈베리파이로 할 수 있는 것들은 무궁무진합니다. 저의 경우는 회사에서 Test Automation에 라즈베리파이를 응용하고 있는데요. 라즈베리파이에 Jenkins를 설치하여 Git에 Pull Request 또는 Merge가 이뤄지는 시점에 서버에서 빌드된 패키지를 라즈베리파이로 자동으로 전송합니다. 라즈베리파이는 수신한 번들을 Target Device에 자동으로 다운로드한 후 테스트를 자동으로 수행하고 결과를 리포팅하도록 구성하였습니다. 라즈베리파이는 미니 컴퓨터이면서도 GPIO, PWM, I2C, SPI, UART 등의 I/O 채널들이 있기 때문에 Target Device의 Power Control, UART Control 등을 수행할 .. 더보기
라즈베리파이에 FTP 서버 설정 (proftpd inactive 문제 해결 방법) 오늘은 라즈베리파이에 FTP 서버를 설정하는 방법에 대해서 기록해두고자 합니다. 저는 Ubuntu Desktop 운영체제를 설치하여 사용하고 있는데요. x86 계열의 PC에 설치된 Ubuntu와 뭔가 조금씩 상이한 게 느껴집니다. 특히 proftpd를 라즈베리파이에 설치해봤는데 단순 설치만 했음에도 불구하고 service가 inactive 되는 생경한 경험을 하게 되었네요. 본 페이지에서 2가지 내용을 다룹니다. 라즈베리파이에 ftp 서버 설정 (proftpd) proftpd inactive 문제 해결 방법 라즈베리파이에 FTP 서버 설정하는 방법 $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install proftpd 라즈베리파이에 FTP .. 더보기
[Bash Shell] set -e 옵션과 set -x 옵션 사용 방법 (명령 실패시 스크립트 자동 종료시키는 방법) Ubuntu Linux의 세계에 입문한 이후에 Bash Shell의 강력함에 압도당했고 매료당했다. Windows Shell 보다 문법이 훨씬 더 깔끔하고 직관적이기 때문이다. Bash Script로 무언가를 구현하라고 한다면 큰 어려움 없이 할 수 있겠다. 하지만 Windows Shell로 뭔가를 구현하려고 하면 막막하기 그지없다. Bash Shell Script가 Windows Batch File보다 훨씬 훌륭하지만, Bash Shell 역시도 처음에 문법을 익히는데 다소 시간이 든다. 구글링과 수많은 시행착오를 거치면 어느 정도 수준까지는 큰 어려움 없이 Bash Shell Script를 작성할 수 있다. (물론 아주 복잡한 연산이나 대량의 데이터를 취급해야 할 경우는 C로 작성하는 게 바람직하다... 더보기
[라즈베리파이] Your Computer Clock Is Wrong 해결 방법 Your Computer Clock is Wrong 라즈베리파이 공부를 시작한지도 몇개월이 지났네요. 아주 작고도 저가의 컴퓨터로 인터넷도하고 파이선 공부도 할 수 있어서 참 마음에 듭니다. 어느날 Ubuntu Desktop OS를 설치하고 FireFox로 인터넷에 접속하려는 순간 위와 같은 메시지가 발생하는 것입니다. "Your Computer Clock is Wrong"이라는 메시지였는데, 실제로 살펴보니 날짜가 약 3개월 전으로 되어 있는 것입니다. 그렇습니다! 라즈베리파이에는 RTC 값을 유지시켜줄 배터리가 없었던 것입니다. RTC의 기능은 크게 2가지라고 생각하시면 되겠습니다. 하나는 시간값을 저장하는 기능이고, 나머지 하나를 시간을 증가시키는 기능입니다. 라즈베리파이의 RTC는 시간 저장 기능.. 더보기
윈도우즈에서 python 설치 및 명령창에서 python 실행 방법 [Linux에서 python 설치 방법] 리눅스에서 python을 설치하는 방법은 아주 쉽습니다. 쉘에서 sudo apt-get install python3 명령을 입력하면 python 패키지가 자동으로 실행됩니다. $ sudo apt-get install python3 위와 같이 패키지를 설치하고 나면 쉘에서 python 스크립트를 수행할 수 있습니다. $ python3 abc.py [Windows에서 python 설치 방법] 반면, Windows에서는 http://www.python.org/downloads 경로로 접속해서 다운로드 후 설치해야 합니다. 관리자 권한을 이용하여 설치합니다. 설치를 마치고 재부팅을 한 다음 쉘에서 python, python3 등을 입력해보았지만 실행이 안 됩니다. dir.. 더보기