본문 바로가기

분류 전체보기103

Screen Linux의 screen 프로그램은 터미널 세션을 관리하고 멀티플렉싱하는 강력한 도구로, 주로 원격 서버 작업이나 터미널 세션이 끊길 우려가 있을 때 유용하게 사용된다. 필자는 이러한 기능을 이용해 백그라운드 작업을 실행하거나, 이전 글 처럼 터미널 모니터 대용으로 사용하기도 한다. 그 중, 이 글에서는 screen을 이용한 백그라운드 작업 실행 방법을 서술한다.백그라운드 작업Screen 세션 시작아래의 명령을 실행한다.screen새 세션이 실행된다.[Enter] 키를 눌러 진행한다.세션의 이름을 직접 지정하려면 아래의 명령을 입력한다.screen -S [세션이름]세션 분리이후 아무 명령이나 내려 프로그램을 실행한 후, [Ctrl + A]를 누른 후, 이어 [D] 키를 눌러 세션을 detach 한다.이렇.. 2026. 1. 1.
Visual Studio Code에서 원격 접속 시 도메인 이름으로 접속 Visual Studio Code에서 원격 접속 시 도메인 이름으로 접속하는 방법을 서술한다. 요즈음 SSH 원격 접속을 할 때, VS Code를 많이 사용하는데, 이유는 파일 편집이 편해서이다. 특히 라즈베리 파이에 접속할 때도 VS Code를 이용한 원격 접속을 많이 하는데, 이렇게 접속을 하다 보니 문제가 생겼다.SSH에 저장된 IP 주소가 충돌하는 현상이 발생한 것이다. 해당 문제의 원인과 해결 방법에 대해서는 이전 글에서 설명한 바 있다. 어쨌든 불편하게 충돌할 때마다 주소를 일일이 지우느니, 그냥 도메인 이름을 사용하도록 SSH 구성 파일을 편집하기로 했다.SSH 구성 파일 편집하기SSH 구성 파일을 연다. 아래와 같이 나타난다. 장치 이름을 확인한다.장치 이름을 확인하였으면 파일을 편집한다... 2025. 12. 1.
SSH 접속 오류: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 여느 때처럼 SSH 접속을 하려고 할 때, 아래와 같은 오류가 발생하였다.C:\Windows\System32>ssh -i "D:\Documents\SSH_Key\raszero" sprout02@192.168.137.95@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right no.. 2025. 12. 1.
Raspberry Pi #13 - Raspberry Pi 5에서 UART를 통해 Raspberry Pi Zero 2 WH에 접속하기 얼마 전에 Raspberry Zero 2 WH를 구입하였다. pico와 아두이노 micro도 같이 구입하였는데 그것들은 나중에 활용하기로 한다.문제는, Raspberry Zero 2 WH가 필자의 핫스팟 네트워크에 연결하지 못한다는 것이다.Raspberry OS부터 Ubuntu까지 다 설치하였으나 연결이 안 되어 방법을 찾던 중, 제로 시리즈가 UART를 통한 접속이 가능하다는 것을 알고 이를 실행하기로 했다. 하드웨어 연결파이 5의 UART 케이블을 제로 2에 연결한다.저번 아두이노 글에서와 같이, 적색 선은 RX 핀에, 황색 선은 TX 핀에 연결하면 된다. 검은 선은 접지 선이다.파이 5와 제로 2의 GPIO 핀 배열은 동일하므로, 잘 모르겠다면 위 이미지를 보고 연결하면 된다.적색 선은 GPIO 1.. 2025. 11. 1.
Raspberry Pi #12 - waifu2x-ncnn-vulkan 계속 라즈베리 파이 관련 글만 계속 올리는 것 같다. 하지만 재밌는걸.waifu2x-ncnn-vulkan은 NCNN이라는 경량 신경망 추론 프레임워크를 기반으로 구현된 waifu2x이다.Vulkan API를 활용해 GPU 가속을 지원하기에, CUDA 없이도 GPU 가속이 가능하므로 라즈베리 파이와 같은 ARM 기반 디바이스에서 적합하다. 그러나, 라즈베리 파이 5의 하드웨어 자체가 그리 좋다고 할 수는 없기 때문에, waifu2x-ncnn-vulkan이라고 해도 GPU를 이용한 가속이 어려울 수 있다. 그래도 일단 사용은 가능하니, 이 글에 방법을 서술한다.사전 준비사전 준비물이다.아래의 명령을 입력한다.sudo apt updatesudo apt install git cmake g++ libvulkan-.. 2025. 10. 1.
Raspberry Pi #11 - arduino-cli에서 Arduino R4 Minima 사용 라즈베리 파이뿐만 아니라, 대부분의 linux에서는 이러한 문제가 발생한다. 그 이유는 Arduino R4 Minima가 내부적으로 USB장치처럼 동작하기 때문이다.아래는 Windows에서의 컴파일 및 업로드 과정의 일부이다.스케치는 프로그램 저장 공간 38936 바이트(14%)를 사용. 최대 262144 바이트.전역 변수는 동적 메모리 3944바이트(12%)를 사용, 28824바이트의 지역변수가 남음. 최대는 32768 바이트."C:\Users\mukea\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.11.0-arduino5/dfu-util" --device 0x2341:0x0069,:0x0369 -D "C:\Users\mukea\AppData.. 2025. 9. 1.
Raspberry Pi #10 - Arduino CLI를 이용한 Arduino 프로그래밍 Raspberry Pi에서 Arduino와 연결하고 작업하려면 보통 GUI 환경에서 Arduino IDE를 설치하여 사용한다.그러나 필자와 같이 라즈베리 파이에 SSH로 접속하여 CLI 작업을 한다면 IDE를 사용할 수 없다. 그렇기에 이러한 환경에서는 Arduino CLI를 사용하여야 한다.이 글에서는 Arduino CLI를 설치하고 사용하는 방법을 간단히 안내한다.설치하기Snap을 이용하기(Ubuntu만 가능)Ubuntu라면 snap을 이용하여 설치할 수 있다.아래의 명령을 입력한다.sudo snap install arduino-cli그러면 설치되는데, 이것을 사용하면 된다.그러나 어떠한 이유로 snap을 사용하기 꺼린다면 아래의 방법을 이용한다.설치하기(일반)아두이노 공식 문서에서는 curl을 이용.. 2025. 8. 1.
Raspberry Pi #9 - Raspberry Pi에 저장된 네트워크 연결 정보 변경하기 필자는 라즈베리 파이에 핫스팟을 이용하여 SSH로 접속한다.최근 핫스팟 비밀번호의 보안을 강화하고자 핫스팟 비밀번호를 변경하기로 하였고, 이에 라즈베리 파이에 저장된 비밀번호 또한 변경해 주기 위해 설정 파일을 열었다.그런데, 설정 파일에 저장된 비밀번호가 사전 설정 단계에서 입력한 비밀번호와 다르다는 것을 확인하였다. 왜 이러한 현상이 일어나는지 알아보자.왜 이런 일이 일어나나요?핫스팟에서의 PSK(Pre-Shared Key) 생성 방식 때문이다.Ubuntu Server와 같은 보안 중심 운영체제는 비밀번호를 원문 그대로 저장하지 않을 가능성이 있다.이 때문에 핫스팟이 WPA2-PSK 방식인 경우, 입력된 비밀번호는 라우터나 핫스팟에서 PSK(Pre-Shared Key)로 변환되어 기기(라즈베리 파이.. 2025. 7. 1.
Raspberry Pi #8 - Raspberry Pi 5에서 BitNet AI 모델을 로컬로 실행 BitNet은 Microsoft가 개발한 언어 모델로, 기존의 고성능 그래픽처리장치(GPU) 없이도 일반 중앙처리장치(CPU)에서 원활히 작동할 수 있도록 설계된 초경량 및 저전력 대규모 언어 모델(LLM)이다.기존의 16비트 또는 32비트 부동소수점 대신 -1, 0, +1 세 가지 값만을 사용하여 각 파라미터를 표현하는데, 이 덕분에 메모리 점유와 전력 소모를 크게 줄였다. 특히 BitNet b1.58은 초경량 대형 언어 모델(LLM)로, CPU 기반 장치에서도 효율적으로 실행할 수 있도록 설계된 모델이다. 이렇기 때문에, 거의 대부분의 컴퓨터, 특히 Raspberry Pi에서도 설정만 잘 해주면 무리 없이 구동할 수 있다. Raspberry Pi 5 모델 기준으로 설명한다. 별 의미는 없다.소스코드로.. 2025. 5. 1.
Raspberry Pi #7 - 시간 동기화 설정 라즈베리 파이를 열심히 만지던 도중, 시간 동기화가 되어 있지 않은 것을 확인했다.필자는 핫스팟을 이용하여 라즈베리 파이와 컴퓨터를 연결하는데, 아마 이 때문인 것으로 추정된다.이를 해결하기 위해 엄청 많은 작업을 했는데, 어찌어찌 해결하는 데 성공하였다. 이에 방법을 설명하고자 한다.사전 작업일단 무엇이 문제인지 알아보기 위해 다음 명령을 입력한다.timedatectl 아래와 같은 화면이 뜨는데, 봐야 할 것은 'System clock synchronized'와 'NTP service'이다.sprout1345@sproutpi:~$ timedatectl Local time: Tue 2024-08-27 19:51:13 UTC Universal time: Tue 2.. 2025. 5. 1.
Raspberry Pi #6 - wiringPi 라이브러리를 이용한 핀 제어(C/C++) 라즈베리파이에서, GPIO 제어는 파이썬을 이용하여 제어할 수 있다. 물론, 다른 언어로도 가능하다. 그 예로는, C/C++(wiringPi), Java(Pi4J), Node.js(rpi-gpio), Go(periph) 등이다. 이 글에서는 wiringPi를 이용해 C/C++로 GPIO를 제어할 것이다.wiringPi 라이브러리 설치라이브러리를 사용하기 위해서는 라이브러리를 사용해야 한다. 아래의 명령을 입력한다.sudo apt updatesudo apt install wiringpi경우에 따라, 설치가 완료되었음에도 라이브러리 파일을 찾을 수 없는 등의 오류가 발생할 수 있다(필자가 그랬다).이런 경우는 먼저 소스 코드를 이용해 빌드해 볼 수 있다. 일단 아래의 명령을 입력한다:mkdir wiringp.. 2025. 4. 1.
Raspberry Pi #5 - gpiozero 라이브러리를 이용한 핀 제어 라즈베리파이는 개발 보드인 만큼 당연히 여러 포트와 핀이 있고, 이를 제어할 수 있는 라이브러리도 개발되어 있다.RPi.GPIO나 gpiozero와 같은 라이브러리들이 바로 그것이다. Raspberry Pi OS에는 이러한 라이브러리들이 기본으로 포함되어 있지만, 필자의 라즈베리 파이에 설치한 Ubuntu Server에는 이러한 라이브러리들이 기본으로 포함되어 있지 않으므로, 추가적인 설치가 요구된다.Raspberry Pi OS를 이용한다면 그냥 APT로 업그레이드나 시켜 주자.gpiozero 라이브러리 설치일단, 가장 쉽게 사용 가능한 라이브러리 중 하나인 gpiozero 라이브러리를 설치하자. 다음의 명령을 입력한다.sudo apt install python3-gpiozero설치는 간단하다.gpioz.. 2025. 3. 1.
728x90
반응형