반응형

테스트 날짜, 작성일 : 2023년 12월 22일
테스트한 OS 버전: Raspbian 12 (bookworm)

 

 

Raspberry Pi 4, Pi 5를 사용하면서 Pi 3와 다른 점이 몇 가지 있는데, VNC가 다른 것 중에 하나이다.

 

VNC Server 설치, 설정

Pi 4, Pi 5에서 VNC Server는 기본으로 설치되어 있기 때문에 아래와 같이

[ 라즈베리 파이 환경설정 ] 화면에서 [ VNC ] 항목을 활성화시키는 작업만 하면 된다.

 

 

VNC Client(Viewer) 설치

이것저것 VNC Client를 다 테스트해봤는데, RealVNC Viewer만 정상 동작하고 나머지 VNC Client 들은 몇 가지 기능들이 오동작하는 이슈가 있었다.

따라서 RealVNC Viewer를 설치해서 사용하길 추천한다.

RealVNC Viewer 설치, 설정 절차는 너무 간단해서 설명을 생략~

 


 

반응형

 


 

테스트 날짜, 작성일 : 2023년 12월 20일
테스트한 OS 버전: Raspbian 12 (bookworm), Debian GNU/Linux 12

 

대부분 인터넷에서 검색된 설명을 따라서 설정해보면, 마우스 스크롤 방향이 macOS처럼 바뀌지 않았다.

아마 Raspbian OS 버전 11 이전까지는 잘 동작했으나, 버전 12(bookworm)부터는 기존의 설정 방법으로는 마우스 스크롤 방향을 바꿀 수 없는 것 같다.

 

그래서 이것저것 해보고 알아낸 방법이 이것이다.

 

라즈베리 파이의 마우스 스크롤 방향을 macOS의 마우스처럼 바꾸고 싶다면, 아래와 같이 설정 파일에 한 줄만 추가하면 된다.

 $ cat ~/.config/wayfire.ini
... 중간 생략 ...
[input]
xkb_options=
xkb_model=pc105
xkb_layout=us
xkb_variant=
left_handed_mode=true
natural_scroll=true           # <-- 이 내용을 추가한다.

$

 

위와 같이 설정 파일을 편집하고, Raspbian OS를 reboot 하고 마우스의 스크롤 방향이 바뀌었는지 확인한다.

Raspbian(Debian Linux 12, Bookwork)에서 테스트해보았고, macOS의 마우스처럼 스크롤 방향이 변경되었다.

 


 

반응형

 


작성한 날: 2023년 12월 20일
테스트했던 Pi 모델: Pi 4, Pi 5

 

터미널을 열어서 아래 명령(CLI)를 입력한다.

$ sudo  apt install -y fonts-unfonts-core

 

 

Raspbian Desktop 시작 메뉴에서 [ Raspberry Pi Configuration ] 창을 연다.

메뉴를 찾아가는 순서는 아래와 같다.

  [ 시작 메뉴 ]  ->  [ 기본 설정 ]  ->  [ Raspberry Pi Configuration ]  ->  [ Localisation ]

 

[ Locale ] 설정 항목에서 아래와 같이 설정한다.

 - Language : ko (Korean)

 - Character Set : UTF-8

 

[ Raspberry Pi Configuration ] 창을 닫는다.

 

아래와 같이 명령을 실행하여 한글 패키지를 설치한다.

 

$ sudo  apt install -y fcitx fcitx-hangul
... 출력 화면 생략 ...


$ vim  /etc/default/im-config
... 중간 생략 ...
IM_CONFIG_DEFAULT_MODE=fcitx     # <-- "auto" 값을 "fcitx" 값으로 수정 
... 중간 생략 ...


$ reboot

 

 

 

Raspberry Pi를 Reboot하고 나면, [한/영] 전환하는 키 조합을 설정한다. 메뉴를 찾아가는 순서는 아래와 같다.

 [ 시작 메뉴 ]  ->  [ 기본 설정 ]  ->  [ Fcitx 구성 ]  ->  [ 전역 설정 ] 탭 

 

[ 전역 설정 ] 탭에서 [ 트리거 입력기 ]를 설정한다.

나는 [ Shift + Space ] 키 조합과 [ Right Alt ] 키를 설정했다.  (아래아한글 프로그램의 한영 전환 키처럼 설정)

 

 


 

반응형

 


 

작성일: 2023년 12월 14일

 

 

오늘 Raspberry Pi 5를 구입하고, Raspbian OS(Bookworm)를 설치하고

1시간 정도 아무것도 하지 않고 방치했는데, 쿨링팬이 멈추지 않고 계속 돌고 있다.

상온에서 놀고 있는 장치가 열 받을 일이 뭐가 있다고 쿨링팬이 계속 돌까?

 

일단, CPU 온도를 확인해보까 이렇다.

$ echo $(( $(cat /sys/class/thermal/thermal_zone0/temp) / 1000 ))
49
$

 

 

그리고 이 상태에서 Cooling Fan의 회전 속도(RPM)를 확인해보니까 이렇다.

$   watch  'cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/fan1_input'
1874

 

 

위 명령을 스크립트로 합쳐 놓고, 5초 마다 돌려보자 !

$ vi monitor_fan.sh

#!/bin/bash

function my_monitor() {
    my_temp=$(cat /sys/class/thermal/thermal_zone0/temp)
    my_temp2=$(( $my_temp/1000 ))
    fan_speed=$(cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/fan1_input)
    echo "온도: $my_temp2    팬 속도: $fan_speed"
}

my_monitor


$ watch  -n 5  ./monitor_fan.sh

매 5.0초:   ./monitor_fan.sh                     raspberrypi: Thu Dec 14 17:53:49 2023

온도: 49    팬 속도: 1874

... 이하 생략 ...

 

 


TODO:  아직 Fan Speed를 제어하는 방법을 못 찾았다. 만약 제어 방법을 찾으면 추가로 작성할 계획이다.

 

 

 


 

반응형

Web Server를 운영하다보니, 해외에서 내 Web Server를 공격하는 시도가 많이 보인다.

그래서 이런 Web Server를 공격하는 Access를 몽땅 iptables 명령으로 drop(block)하는 스크립트를 만들었다.

아래와 같이 스크립트를 작성하고, 실행하면 이 시간 이후로 공격이 모두 차단된다.

 

##
## Block Some IP addresses
##

#!/bin/bash

LOG_FILE_NAME="/var/log/apache2/access.log"

BLACK_LIST=$(awk '{ printf "%s\n", $1 }' $LOG_FILE_NAME  | grep -v "192.168.0." | sort | uniq)

for BLOCKING_IP in $BLACK_LIST
do
  BLOCKING_CIDR="$BLOCKING_IP/16"
  echo "Blocking CIDR: $BLOCKING_CIDR"
  GEO_ADDRESS=$(whois $BLOCKING_IP | grep -i "address:")
  echo "$GEO_ADDRESS"
  echo ""
  iptables -A INPUT -s $BLOCKING_CIDR  -p tcp  --dport 80  -j DROP
done


iptables -L -n --line-numbers | grep "DROP" | awk '{ printf "%s\n", $5 }' | sort
# iptables -D INPUT 1
# iptables -D INPUT 2
# ...


##
## If you would like to save the iptables rules, then run the following command.
##
# service iptables save

 

만약, 위와 같이 수행했다가 다시 Rule을 지우고 싶다면, 아래와 같이 스크립트를 작성해서 실행한다.

 

##
## Remove rules of IP tables
##

#!/bin/bash

REMOVE_IP_LIST=$(iptables -L -n | grep "DROP" | awk '{ printf "%s\n", $4 }' | sort)

for REMOVE_IP in $REMOVE_IP_LIST
do
  echo "IP Address to be removed: $REMOVE_IP"
  iptables -D INPUT -s $REMOVE_IP -j DROP
done
반응형

스마트폰, 액션캠, 디지털카메라로 촬영한 동영상을 웹 페이지로 보려면, WEBM 형식으로 파일을 변환해야 한다.

변경 방식은 간단하다. 아래와 같은 명령을 수행하면 Web browser에서 바로 볼 수 있는 동영상 파일로 변환된다.

 

##
## 만약 MacOS를 사용한다면, 아래와 같이 ffmpeg을 먼저 설치한다.
##
$ brew install ffmpeg


##
## 명령 예시
##  아래 명령에서 'input.avi'가 스마트폰으로 촬영한 동영상 원본 파일명이고, 
##  'output.webm'이 변환된 이후에 web server에 올릴 파일명이다. 
##
$ ffmpeg -y -i my_input_movie.avi -c:v libvpx-vp9 -c:a libopus my_output_movie.webm


## 원본 파일이 .mp4 파일이면, 아래와 같이 수행하면 된다.
$ ffmpeg -y -i my_input_movie.mp4 -c:v libvpx-vp9 -c:a libopus my_output_movie.webm

참고:
꼭 Web browser로 포기 위한 용도가 아니더라도 위와 같인 webm 파일로 변경하면 좋은 점이 하나 더 있다. 그것은 바로, 동영상의 사이즈가 1/10 수준으로 확 줄어든다. 신기하게도 90% 정도의 사이즈 압축이 있지만, 동영상 품질의 차이는 눈으로 느낄 수 없을 정도이다. 동영상 품질이 거의 원본과 동일하다.

반응형

 


 

작성일: 2023년 12월 15일
준비물: Raspberry Pi 5
   (Pi 3B, 4, 5 모두 테스트해봤는데, 설정 내용이 동일했다. 그러니까 아무 버전의 Raspberry Pi 다 된다는 뜻.)

 

 

 

Raspberry Pi 5를 아래와 같이 Wi-Fi AP로 구축한다면, 아래의 설명을 쭉~ 따라하면 잘 동작한다.

 

Raspberry Pi를 Wi-Fi Access Point로 사용하기 위한 구성도

 

 

아래의 명령만 복붙(Copy & Paste)하면 동작할 것이다.

(자세한 설명은 이 링크의 공식 문서를 참고)

 

 

 

DNSMasq, HostAPD를 설치

$ sudo apt install dnsmasq hostapd

## 참고: 설정 작업을 위해 임시로 서비스를 종료시킨다.
$ sudo systemctl stop dnsmasq
$ sudo systemctl stop hostapd

 

Raspberry Pi의 무선 Interface wlan0에 Static IP 설정

$ sudo vim /etc/dhcpcd.conf

... 중간 생략 ...

## 이 파일의 마지막 부분에 아래의 3줄을 추가한다.
interface wlan0
    static ip_address=192.168.4.1/24
    nohook wpa_supplicant
    
$ sudo systemctl restart dhcpcd

 

DHCP Server 설정

$ sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

$ sudo vim /etc/dnsmasq.conf
## 이 파일에 아래 2줄을 추가한다.
interface=wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h


$ sudo systemctl start dnsmasq

 

Access Point Host 프로그램 설정

$ sudo vim /etc/hostapd/hostapd.conf
country_code=KR
interface=wlan0
ssid=YOURSSID
hw_mode=g
channel=7
auth_algs=1
wpa=2
wpa_passphrase=YOURPWD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ignore_broadcast_ssid=0


$ sudo vim /etc/default/hostapd
... 중간 생략 ...
## 아래 설정 내용을 추가한다.
DAEMON_CONF="/etc/hostapd/hostapd.conf"
... 중간 생략 ...

 

 

위와 같이 따라하면, Wi-Fi 구간의 설정은 끝 !!!

 

아래는 Raspberry Pi의 Wi-Fi 인터페이스 wlan0 으로 들어온 IP 트래픽을 유선 인터페이스 eth0 방향으로 보내면서 Masquerading 하는 설정이다.  

이 설정이 잘 되어야 무선으로 접속한 PC 또는 스마트폰이 유선 방향(즉, 인터넷 방향)으로 트래픽이 잘 전달된다.

 

IP Routing 및 Masquerading 설정

$ sudo nano /etc/sysctl.conf
... 중간 생략 ...
## 아래의 1줄을 추가한다.
net.ipv4.ip_forward=1
... 중간 생략 ...

## 라즈베리 파이에서 외부로 나가는 트래픽을 eth0의 IP address로 변경하는 설정.
## (일반적인 Source NAT 설정과 동일함)
$ sudo iptables -t nat -A  POSTROUTING -o eth0 -j MASQUERADE

## 재기동 후, 위 IPTables의 NAT 설정이 유지되도록 아래와 같이 설정을 저장함.
$ sudo netfilter-persistent save

$ reboot

 

 

위 설정 작업이 끝나면, 라즈베리 파이는 무선 AP로 동작할 것이다.

스마트폰이나 노트북으로 라즈베리 파이의 Wi-Fi 접속해보면 인터넷이 잘 될 것이다.

 

 

참고하면 좋은 문서

https://raspberrypi-guide.github.io/networking/create-wireless-access-point


 

+ Recent posts