トップ «前の日記(2014-05-10(Sat)) 最新 次の日記(2014-05-13(Tue))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2014-05-12(Mon) ハックとはこんなのかも

とりあえずシェルスクリプト

既にできたのが一昨日になってしまった 基板
20個のLEDと5本のGPIOを適当に(でたらめに)繋ぎ、 相関関係を調べて表にする。
そして、それを gpioでLEDを点灯させる関数に渡すための 配列にぶちこむ。
以上をsourceにする。

# GPIO and LED align
# |   |   |   |  |
# R   R   R   R  R
# |   |   |   |  |

#  2-0 0-1 1-3 3-7
#  0-2 1-0 3-1 7-3
#  2-1 2-3 0-3 1-7
#  1-2 3-2 3-0 7-1
#  7-2 2-7 7-0 0-7

 
a=0; b=1; c=2; d=3; e=7
a=1; b=3; c=2; d=0; e=7
 
led_array=( \
"$c $a" "$a $b" "$b $d" "$d $e" \
"$a $c" "$b $a" "$d $b" "$e $d" \
"$c $b" "$c $d" "$a $d" "$b $e" \
"$b $c" "$d $c" "$d $a" "$e $b" \
"$e $c" "$c $e" "$e $a" "$a $e" )
 
allwp="$a $b $c $d $e"
 
function gout()
  { command gpio mode $1 out ;}
function gin()
  { command gpio mode $1 in ;}
function ghigh()
  { gout $1 && command gpio write $1 1;}
function glow()
  { gout $1 && command gpio write $1 0;}
function  allout()
  { for l in $allwp; do gout $l ; glow $l; done; }
function alllow()
  { allout && for l in $allwp; do glow $l; done; }
function allin()
  { alllow;  for l in $allwp; do gin $l; done; }
function ledon()
  { gpio reset && glow $2;  ghigh $1; }

全部消すには gpio reset が手っ取り早いようだった。
で、とるものも とりあえず (重要なので二回)一巡するスクリプト。

#!/bin/bash
source ./galilas.txt
for x in `seq 0 19`
do 
  ledon ${led_array[$x]}
  sleep 0.5
done
gpio reset

dash(1)にはsourceはないかもしれない。
電線を買ってきて、また違う順序で繋ぎ直し、点灯確認をやり直す。
でもソフトの変更箇所のは変数の値3つだけ。

MTU色々

USB-Etherを追加したRaspbianをNATにする。
DNATは久々で、かなり忘れていた。

$ sudo iptables -t nat -A POSTROUTING \
 -s $OUTER -o $ETH -j MASQUERADE
 
$ sudo iptables -t nat -A PREROUTING -p icmp \
 -j DNAT --to-destination $wheezy

eth1 にwheezyなPCを接続。eth0の外へのgatewayをeth1に向ける。
ip(1)でeth1のMTUを色々変えながら、eth0 の外にあるUbuntuから ping。
三台とも tcpdump でパケットをチェック。

$ sudo ip link set mtu 1496 dev eth0
$ ping -M dont -s 1472 -n $wheezy

eth1のMTUが1496を下回ると、echo request はwheezyに届いて、reply をwheezyが送信しても、(1472バイト+28バイトの?)1500バイトの 応答はUbuntuに返らなくなった。
ちなみに、Raspbianのeth0や、wheezyのeth0などは多少いじっても ping自体はあまり変わらなかったようだ。
-M dont(日本語manには載ってなかった)は、あってもなくても 同じに思えた。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。