僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
既にできたのが一昨日になってしまった
基板。
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つだけ。
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や内容が変った場合はあしからず。