2021年07月05日

Raspberry PI RADIO計画 その2

まずは、Raspberry PIのOSのアップデートです。
Buster ( Linux raspi 5.10.17-v7+)となりました。

何年か前に買ったラジオユニットのリモコンを利用する事ととする。
まずは、LIRCをインストール。

次は、受信回路を組む。
# mode2 --driver default --device /dev/lirc1
としたら、データは、出てきた。
赤外線の受信ハードウェアは、問題なし。

irrecord でデータの取得をするがうまく行かない。
Raspberry PI+ LIRCの例は、多々見つかりましたが゛
OSのリリースによって癖があるみたいです。
Busterでの例は、見つかりませんでしたので色々と試行錯誤になりそうです。

posted by kuma SF-Z at 00:00| Comment(0) | 電子機器 制作

2021年07月04日

Raspberry PI RADIO計画 その1

居間に置いてあるラジオ(東芝TY-C300)のリココンが壊れたようだ。
Arduino+FM-TEA5767で計画していたのですが、
AirPlay,spotify Connectにも対応できるようにするアイディアが出てきた。

Raspberry PI 3B+もKT0923のシステムを計画。
KT0923の供給元のKT MicroのWebPageは、昨年(2020)より所在不明になっています。
こいつは、Audio セレクターが内蔵されているので、Raspberry PIからの
音声の切り替えも実装する予定です。
posted by kuma SF-Z at 14:17| Comment(0) | 電子機器 制作

2021年05月01日

IPV6サービス 開通 その2

https://qiita.com/kakinaguru_zo/items/2764dd8e83e54a6605f2
https://qiita.com/nishio-dens/items/4bb28574b7d43fd2b3bf
を参考に、iptablesを設定するスクリプトを作成。

systemdに登録して、起動時にキックするように設定。

setup_iptable.sh

#!/bin/bash
#set -x
# Refer : https://qiita.com/kakinaguru_zo/items/2764dd8e83e54a6605f2
BR='スクショのoption peeraddrのアドレスをそのまま書く'
CE='スクショのCEを書く'
IP4='スクショのIPv4アドレスを書く'
PSID='スクショのPSIDを書く'
WAN_DEVICE='`OCUに接続されたネットワークのインターフェース名`
LAN_DEVICE='ローカル・ネットワークのインターフェース名`
LOCAL_SOURCE='fd00::/64' # ローカル・ネットワークのインターフェースのGlobal scope IPv6アドレス
TUNDEV='ip6tnl1' # 新たに作り出すインターフェース名をは好きなように決める
IP4_LOCAL='192.168.X.YY' # ローカル・ネットワークのインターフェースのIPv4アドレス
BK_NUM=63
IP6_MARK='1000'

set_tunnel(){
ip -6 addr add $CE dev $WAN_DEVICE
ip -6 tunnel add $TUNDEV mode ip4ip6 remote $BR local $CE dev $WAN_DEVICE encaplimit none
ip link set dev $TUNDEV mtu 1460
ip link set dev $TUNDEV up

ip -4 route delete default
ip -4 route add default dev $TUNDEV
}

set_iptables_ip4_output(){
iptables -t nat -F

for rule in $( seq 1 ${BK_NUM} ) ; do
mark=$(( $rule + 16 ))
pn=$(( $rule - 1))
portl=$(( $rule * 1024 + $PSID * 16 ))
portr=$(( $portl + 15 ))
iptables -t nat -A PREROUTING -m statistic --mode nth --every $BK_NUM --packet $pn -j MARK --set-mark $mark
iptables -t nat -A OUTPUT -m statistic --mode nth --every $BK_NUM --packet $pn -j MARK --set-mark $mark
iptables -t nat -A POSTROUTING -p icmp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
iptables -t nat -A POSTROUTING -p tcp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
iptables -t nat -A POSTROUTING -p udp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
done

iptables -t mangle -o $TUNDEV --insert FORWARD 1 -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu

}


set_iptables_ip6_output(){
ip6tables -F

# すべての通信を素通りだと怖いので MARKをつけてLAN内のものからのみ許可する
ip6tables -t nat -A PREROUTING -i $LAN_DEVICE -j MARK --set-mark $IP6_MARK
ip6tables -t filter -A FORWARD -p tcp -m mark --mark $IP6_MARK -j ACCEPT
ip6tables -t filter -A FORWARD -p udp -m mark --mark $IP6_MARK -j ACCEPT
ip6tables -t filter -A FORWARD -m mark --mark $IP6_MARK -j ACCEPT

# SSHはローカルネットワークからのみ許可
ip6tables -A INPUT -p tcp -s $LOCAL_SOURCE --dport 22 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 22 -j DROP

# fd00::/64 宛の通信は全部WANに流す
ip6tables -t nat -A POSTROUTING -s $LOCAL_SOURCE -o $WAN_DEVICE -j MASQUERADE
}

set_iptables_input(){
iptables -t nat -I PREROUTING -i $TUNDEV -p tcp --dport 1504 -j DNAT --to-destination ${IP4_LOCAL}:22
}

set_tunnel
set_iptables_ip4_output
set_iptables_ip6_output

#set_iptables_input

posted by kuma SF-Z at 00:00| Comment(0) | ソフトウェア 修理/改修