pi-kvm을 구축한지 오래되었지만 드디어 블로그에 정리글을 작성한다.

 


PI-KVM란? 

pikvm 홈페이지

 

pi-kvm은 값비싼 장비인 ipkvm을 라즈베리파이를 사용하여 저렴하게 제작하며 웹을 통한 물리적인 컴퓨터의 제어가 가능하다.

서버와 떨어지게 되면서 구성 4port hdmi kvm스위치를 이용하여 구성하였다.

 

 

1. 필요 부품

- 라즈베리파이 4 (+  sd 카드, 어댑터)

- hdmi2csi

- 4port kvm(알리발)

- ft232 - 제품링크 (알리에서 파는 ft232는 작동하지 않는다....  정품칩을 사용하는 것으로 구매!!)

- c type 케이블 2개

- 납땜 도구

 

2. 장치 준비

4포트 PI-KVM을 만들기 위해서는 2가지의 DIY가 필요하다

2-1. 전원 및 OTG케이블 만들기

pi-kvm에서 키보드, 마우스, ISO마운트등 USB를 PC에 연결하기위한 케이블을 제작해야 한다.

알리에서 별도 젠더도 팔지만 제작하여 사용중이다.

 

 

 

 

어댑터에서는 전원 단자 케이블 만 나머지 케이블은 USB-A 수 커넥터에 USB-C 의 데이터 +,- 케이블에 연결하여 사용한다.

 

 

2-2. KVM스위치 제어 케이블 만들기

다포트  kvm을 구현하기 위해 공식문서를 보던중 발견한 알리 hdmi 4port kvm

이걸 처음 구매할떈 단순히 케이블만 연결하여 pi-kvm을 통해 제어 할수있을줄 알았다...

XH-HK4401

알리에서 구매한 4포트 kvm 스위치를 Pi-KVM에서 제어하기 위한 장치가 필요하다.

https://docs.pikvm.org/xh_hk4401/#linux-instructions
 

XH-HK4401 4-port HDMI USB KVM Switch - PiKVM Handbook

XH-HK4401 4-port HDMI USB KVM Switch This KVM is sold under many names, and comes in two versions. The only way these two versions differ is that one has one of its USB ports replaced with a PS/2 port. The identifying feature is that they come with a small

docs.pikvm.org

ft232 보드

해당 kvm스위치를 제어하기 위해선 정품 ft232칩을 사용한 보드가 필요하다고 한다.

알리에서 비슷한 짭이 많아서 구매해봤지만 번번히 실패하고 결국 직배 되는 곳을 찾아서 주문하였다.

 

ft_prog 프로그램을 이용하여

Inver RS232 Signals -> Invert TXD
                                    -> Invert RXD

 두 항목을 활성화만 하면 세팅은 끝이 난다. 단지 정품칩이 아닐 경우 재연결 하면 설정이 사라진다..

 

KVM스위치와 연결을 위한 납땜 또한 필요하다.

보드에 납땜후 연결한 모습

ft232의 마이크로5핀 단자에는 라즈베리파이와 케이블로 연결하면되고 아래 4개의 단자 중 전원(3.3v)를 제외하고 KVM스위치와 연결을 위한 마이크로5핀 수 단자를 납땜하여 연결한다.(D+ -> Tx / D- -> Rx / GND -> GND로 납땜)

 

3. 설치

제작한 케이블, 캡처보드 등을 연결

전체 연결한 모습

SD카드에 PI-KVM OS 다운로드 및 설치

 

다양한 usb 플래싱 툴 이용해서 부팅 sd 카드 제작 및 부팅

 

4. 세팅

1. 로그인

 

 

2.메뉴바에 4port 지원 추가

ft232를 이용하여 kvm컨트롤러에 연결했기때문에 해당 부분을 활성화 시켜줘야한다.

https://docs.pikvm.org/xh_hk4401/#an-inverter-circuit-the-cheap-way

 

XH-HK4401 4-port HDMI USB KVM Switch - PiKVM Handbook

XH-HK4401 4-port HDMI USB KVM Switch This KVM is sold under many names, and comes in two versions. The only way these two versions differ is that one has one of its USB ports replaced with a PS/2 port. The identifying feature is that they come with a small

docs.pikvm.org

 

FT-232  /dev/ttyUSB0

 

pi-kvm은 sd카드를 읽기 모드로 두고 사용한다 따라서 터미널에서 수정모드로 변경한다

rw

/etc/kvmd/override.yaml 를 아래와 같이  추가한다.

kvmd:
    gpio:
        drivers:
            hk:
                type: xh_hk4401
                device: /dev/ttyUSB0
        scheme:
            ch0_led:
                driver: hk
                pin: 0
                mode: input
            ch1_led:
                driver: hk
                pin: 1
                mode: input
            ch2_led:
                driver: hk
                pin: 2
                mode: input
            ch3_led:
                driver: hk
                pin: 3
                mode: input
            ch0_button:
                driver: hk
                pin: 0
                mode: output
                switch: false
            ch1_button:
                driver: hk
                pin: 1
                mode: output
                switch: false
            ch2_button:
                driver: hk
                pin: 2
                mode: output
                switch: false
            ch3_button:
                driver: hk
                pin: 3
                mode: output
                switch: false
        view:
            table:
                - ["#Input 1", ch0_led, ch0_button]
                - ["#Input 2", ch1_led, ch1_button]
                - ["#Input 3", ch2_led, ch2_button]
                - ["#Input 4", ch3_led, ch3_button]

3. (옵션)VNC 활성화

/etc/kvmd/override.yaml 에 아래와 같이 추가하면 활성화 된다.

 

vnc:
    # See https://github.com/pikvm/pikvm/blob/master/pages/vnc.md
    keymap: /usr/share/kvmd/keymaps/ru # Set russian keymap
    auth:
        vncauth:
            enabled: true # Enable auth via /etc/kvmd/vncpasswd#

 

5. 사용

로그인 후 활성화 된 화면

 

 

 

6. 추가 전원제어

PI-KVM은 GPIO단자를 통한 전원제어를 제공해주는 것같다 하지만 4포트 제어를 사용하기에 필자는 별도의 wifi 기반의 컴퓨터용 릴레이 스위치(tyua)를 별도로 구매하여 사용하고있다.

'컴퓨터 > 하드웨어' 카테고리의 다른 글

ITX ESXI 서버 조립기  (0) 2022.05.10
삼성 샌스p30 분해기  (0) 2012.07.31

각종 프로젝트를 도커로 빌드 하다가 까먹어서 작성

 

Dockerfile을 통하여 추후 젠킨스 등 으로 배포 자동화를 시도해볼 수 있다.

 


Dockerfile 

스프링부트 프로젝트dockrfile

# FROM azul/zulu-openjdk:11-latest
FROM azul/zulu-openjdk-alpine:11-latest
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar

# EXPOSE 8080 #npm으로 연결
ENTRYPOINT ["java","-jar","/app.jar"]

 

FROM 이미지이름

베이스가 되는 원하는 이미지를 기입한다.

 


Dockerfile을 통한 빌드

 

터미널에서 도커로 이미지 빌드

해당 폴더의 dockerfile을 참조하여 빌드해준다.

대문자가 이미지 이름에 포함될경우 빌드 불가능하다!!

 

docker build --tag 이미지이름:latest .

 

도커 이미지 Tar로 저장, 로드

이미지를 DockerHub나 개인 Harbor같은걸 쓰면 좋겠지만 귀찮을땐 파일째 옮기는것이 편할때가 있다.

 

도커이미지 저장

docker save -o tar파일이름 이미지이름:latest

 

도커이미지 로드

docker load -i tar파일명

 

//일단 기록용

 

서버가 존재하는 곳의 네트워크 라우팅 정보를 openvpn서버(도커로 운영)에 추가해준다.

터미널에 명령어 를 아래와 같이 자신의 네트워크 환경에 맞게 수정해주고 추가

ovpn_genconfig -N -d -p "route 192.168.35.0 255.255.255.0"

 

 

 

그리고 서버 재부팅

 

그리고 ovpn 파일에서 redirect-gateway def1 을 지우던가 주석처리 후 접속하면 서버에 추가한 경로만 vpn을 통해서 접속된다.

 

시놀로지 vpn서버에서는  redirect-gateway def1   만 지우면 됬는데 안되서 찾아보고 기록

1. 개발환경을 세팅

1)노드JS를 설치하거나 NVM을 설치하여 사용

https://nodejs.org/en/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

https://github.com/coreybutler/nvm-windows/releases

 

Releases · coreybutler/nvm-windows

A node.js version management utility for Windows. Ironically written in Go. - coreybutler/nvm-windows

github.com

 

2) 노드js에서 react설치

npm install -g create-react-app

 

3) 설치 후 리액트 프로젝트 생성

create-react-app .

. 은 현재 경로를 의미하며 지금 위치한 폴더에 리엑트 프로젝트를 생성한다.(프로젝트 명은 대문자를 포함 불가)

 

4) 생성한 리액트 프로젝트 실행

npm start

생성한 프로젝트 폴더로 이동한 뒤 프로젝트를 실행하면 연결된다.

 

4-1) 기타 프로젝트 생성시 이미 제작되어 있는 프로젝트를 가져올경우

npm install

명령어를 통해 의존성 패키지를 설치하여 실행합니다.

시스템에 설치된 모든 패키지를 업데이트 하지 않고 OS의 보안 패치만 적용하는 명령어

sudo apt-get update

sudo apt-get install unattended-upgrades

sudo unattended-upgrade

NAS를 운영 중이지만 자취를 하면서 떨어 저 있는 NAS에 갑갑함을 느껴 라즈베리파이 4를 가져와 우분투 서버로 써먹다가 그것도 답답하여 조립한 미니 ITX 컴퓨터(조립은 작년 8월에하고 이제 글쓴다)

 

무소음을 최대한 실현하기위해 파워만큼은 dc 파워를 쓰기로 했다.

 

조립한 컴퓨터의 사양으로 

CPU : i3-10105F (내장그래픽 없는 버전)

MB : ASRock H470M itx/ac

SSD : nvme 삼성 pm9a1 256GB

RAM : 삼성 DDR4 8gb(3200)

GPU : GT720 (esxi 패스쓰루를 위해 중고로 구입)

파워 : DC to DC / 120W 어댑터(12v,10A)

케이스 : 알리에서 4만원 주고 직구한 ITX 케이스

 

OS는 ESXI 7.0.1 랜 드라이버 추가 버전을 설치하였다. 

조립에 사용한 ITX 사이즈 메인보드

ITX보드를 처음 사용해봤는데 작고 생각보다 괜찮아서 마음에듬

가성비 의 PM9A1 256GB
국룰 삼성 시금치 램
오랜만에 쓰는 인텔 CPU

 

케이스에 최종 조립

기본 쿨러가 이전 납작한 초코파이에서 살짝 높이가 높아진거 같다. 덕분에 닫을수 없어서 쿨러도 다시 따로 주문

 

파워자리가 Flex 파워 자리라서 충분히 어댑터가 들어갈 공간이 나왔다.

 

알리에서 시킨 DC 파워도 태워 먹고 리뷰도 다들 태워먹은걸보니 에초에 문제가 있는듯 덕분에 요것도(오존컴퍼니 VIPER DC to DC 150W) 새로 구입

새로산 Dc To DC

 

 

쿨러 높이가 안 맞아서 새로 구입한 EVERCOOL EC155C-915BP

쿨러 변경을 위해 다시 보드 빼고 쿨러를 교체 해주었다.

그리고 조립완료

'컴퓨터 > 하드웨어' 카테고리의 다른 글

4포트 PI-KVM 구축기  (0) 2023.07.29
삼성 샌스p30 분해기  (0) 2012.07.31

cloudflare (클라우드 플레어) SSL





클라우드플레어는 CDN이 적용되는 네임서버이다 최근엔 무료 계정에도 ssl이 젹용되서 사용할수 있게 되엇다. 덕분에 간단하게 ssl를 적용할수 있다.

원래는 CDN을 적용할려고 가입햇는데 어느날 보니 ssl도 지원한다고한다 덕분에 루트도메인하고 www.도메인 은 서버에 ssl설치가 안되있어도 사용이 가능해젓다

방법도 쉽고 무료여서 꽤나 쓸만하다.


우선 해당도메인의 www나 최상위 도메인을 클라우드플레어 활성화를 해준다음




대시보드에 잇는 설정에서


클라우드플레어 셋팅에 들어가면 




쭉내리다 보면 ssl항목이 있다. 지금은 활성화 된상테이다


ssl설정 목록인대 ssl 사용하지 않는것과  Flexible SSL, FULL SSL, 그리고 맨아래 있는 ssl은 유료계정용이다.

Flexible SSL이면 그림그대로 사용자와 CDN서버만 ssl이 적용이 되고 서버와 클라우드플레어는 적용되지 않는다 우선 클라우드플래어를 활성화시키면 도메인에 연결된 ip확인이 안되는 것같앗다 어느정도는 보안이 될것 같앗다. 어파치 뚤리긴 뚤릴태지만

2번인 Full ssl은 그림그대로 전과정에 ssl를 적용하는 것이다.

3번도 위와 같지만 사용자가 직접지정한 ssl를 이용하는 것인대 어차피 유료회원 용이다.


위처럼 설정을 하고 기다려 주면 좀잇다가. https로 접속이 가능해집니다. 

서버에 설정을 안해도 되고 무료이다 거기에 CDN도 지원되니 트래픽 절약도 가능하다 뭐 그에따른 제약이 어느정도 있지만 개인 홈페이지로써는 충분한 보안이 될거 같앗다.


자물쇠가 딲!






+ Recent posts