Klipper CAN bus 설정 [ Directory '/etc/network/interfaces.d/can0' does not exist ] 오류 해결 방법 오류 발생 원인 Klipper 공식 문서의 CANBUS설정은 /etc/network/interfaces.d/can0에 아래 내용을 저장하도록 하고 있다. allow-hotplug can0 iface can0 can static bitrate 1000000 up ip link set $IFACE txqueuelen 128 CANBUS - Klipper documentationlogo
3D Printing [DIY 3D Printer] 2. Klipper CAN bus 구성 3D프린터를 만들다 보면 toolhead로 가는 배선들이 굉장히 거슬린다. hotend heater, thermistor, probe, heater / parts fan 만 해도 기본 11가닥이고, rgb led, input shaper를 위한 가속도 센서까지 추가되면 20가닥부터 시작은 기본이다. 이 케이블들은 서로 얽혀 유지보수를 어렵게 만들 뿐만 아니라 그 자체로 뻣뻣하여 고속 프린팅을 방해한다. 이번 포스팅에선 CAN bus를 구성해
3D Printing [DIY 3D Printer] 1. Klipper 설치 3D 프린터 성능이 향상되며 Marlin 같은 one-board방식은 연산 능력에 한계가 생겼다. Klipper는 성능이 뛰어난 Raspberry pi같은 SBC Host에서 복잡한 연산을 담당하고, 기존의 Marlin이 올라가던 mainboard에서는 단순한 제어만을 담당하는 방식으로 기존의 한계를 해결했다. 기존 mainsail에서는 설정 값을 바꾸러면 일일히 전체 펌웨어를 다 빌드해야 했지만, Klipper는 웹 콘솔 상에서 printer.cfg파일만 수정하면
3D Printing [DIY 3D Printer] 0. 50만원 이하로 Voron 2.4, Trident 만들기 Voron 2.4의 경우 알리에서 약 1,200,000원, SIBOOR 공홈 1,960,000원 이고, Voron Trident는 알리에서 약 1,600,000원, SIBOOR 공홈 2,120,000원 이다. Trident는 CNC 파츠 + AWD인 점을 감안 하더라도, 하이엔드 고속 프린터인 뱀부 H2S가 169만원대인 이 시대에 가격이 사악해 보이는 것은 사실이다. 또 자작
HomeLab [Docker] AdGuard Home으로 광고를 막아보자 나만의 DNS서버 구축으로 광고 차단과 보안을 동시에 해결. Adguard Home는 DNS서버로 DNS쿼리를 필터하여 연결된 내부 망 클라이언트들의 광고·트래킹을 차단합니다. 이번 포스팅 에서는 Docker를 이용해 AdGuard Home를 설치 해 보겠습니다. 설치 환경: Ubuntu24.04 / Docker version 28.4.0 / Docker Compose version v2.39.1 docker, docker-compose 설치는 여기로 Docker,
Docker 설치 apt-key is deprecated, apt-key: command not found 해결법 Warning, Error 발생 이유 Docker 설치 과정에서 아래와 같은 apt-key 방식으로 GPG key를 등록하는 경우가 있습니다. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - apt-key 방식은 여러 보안 문제로 권장 되지 않는 방식이기에 아래와 같은 경고가 뜰 수 있습니다. Warning: apt-key is deprecated. Manage keyring
Docker [Docker] Guacamole 설치 오픈소스 원격 데스크탑 게이트웨이 Guacamole Apache Guacamole는 RDP, VNC, SSH 프로토콜을 지원하는 cilentless 원격 데스크탑 게이트웨이입니다. Apache Guacamole® Guacamole를 Docker-compose를 사용해 설치 해 보겠습니다. 설치 환경: Ubuntu24.04 / Docker version 24.0.2 / Docker Compose version v2.35.1 docker, docker-compose 설치는 여기로 프로젝트 파일 생성 프로젝트를 생성할 위치로 이동하여
Docker Docker, Docker-compose 설치 Docker 설치 1. 패키지 업데이트, 의존성 패키지 설치 sudo apt-get update sudo apt-get install ca-certificates curl 2. Docker 공식 GPG key 등록 sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r
Linux SSH로 원격접속하기 A to Z (Key, Config) SSH(Secured Shell)는 네트워크를 통해 원격으로 쉘에 접속하기 위한 툴 입니다. Password 방식 부터 Private Key / Public Key로 Password 없이 사용하는 방법 그리고 config 파일 생성까지 알아보겠습니다. OpenSSH 설치 OpenSSH는 가장 널리 사용되는 SSH패키지 입니다. 접속하고자 하는 Server와 사용중인 Client 모두 설치해야 합니다. 패키지 설치부터 해보겠습니다. 윈도우 대부분 윈도우에서
Algorithm 재귀와 반복문에 대한 생각 코테를 풀다보면 분할정복 등 재귀 알고리즘을 종종 사용하게 됩니다. 이럴 때 마다 재귀를 사용할지 반복문으로 바꿔서 풀지 고민하게 되는데, 이번 포스트에서 재귀와 반복문의 차이, 효율성 등을 비교 해보겠습니다. 재귀 재귀함수는 함수가 자기 자신을 다시 호출하여 문제를 해결하는 프로그래밍 기법입니다. 복잡한 문제를 작고 쉬운 문제로 분할하여 해결하는 분할정복, 이진탐색, 퀵정렬, 팩토리얼,
백준 백준 1764 듣보잡 파이썬 1764번: 듣보잡Baekjoon Online Judge스타트링크 (Startlink) 1764번 : 듣보잡 알고리즘 : 집합, 이진탐색, 해시 테이블 정답 코드 코드 1 (집합) import sys input = sys.stdin.readline n, m = list(map(int, input().split())) a = {input() for _ in range(n)} b = {input() for _ in range(m)} result = sorted(list(a & b)) print(len(
백준 백준 2630 색종이 만들기 파이썬 2630번: 색종이 만들기Baekjoon Online Judge스타트링크 (Startlink) 2630번 : 색종이 만들기 알고리즘 : 재귀, 분할정복 정답 코드 코드1 (재귀) import sys input = sys.stdin.readline w = 0 b = 0 arr = [] def check(k:int, r: int, c: int) -> None: global w,b for i in range(r, r + k): for j
Proxmox 0. Proxmox VE란 무엇인가? Proxmox VE는 KVM(Kernel-based Virtual Machine)과 LXC(Linux Container)를 기반으로 가상화 환경의 효율적인 관리를 도와주는 플랫폼입니다. 1. 가상화를 사용하는 이유는? 가상화를 활용하면 서버의 물리적인 자원을 나누어 한개의 서버에서 마치 여러개의 서버를 사용하는 것과 같은 환경을 제공합니다. 보다 직관적으로 얘기하자면, 한개의 서버에서 여러개의 OS(윈도우, 우분투 등)를 동시에
백준 백준 11723 집합 파이썬 11723번: 집합Baekjoon Online Judge스타트링크 (Startlink) 11723번 : 집합 알고리즘: 비트마스크 정답 코드 import sys m = int(sys.stdin.readline()) s = 0b000000000000000000000 for i in range(m): arr = sys.stdin.readline().split() calc = arr[0] if calc == 'all': s = (1 << 21) - 1 elif calc == 'empty'