2019年6月11日火曜日

meishiを作った

はじめに

自作キーボードのキットをいくつか買ったが、全部積んであるばかりで作っていないのでお手軽なmeishiを作ってみた。
meishiは@Biacco42さんが設計した4キーの名刺サイズのキーボードで、部品点数も少なくお手軽に作れる初心者向けキーボードである。

キットの内容

作ったキットは去年の5月にBOOTHで買ったmeishiのキット。キットに入っていたキースイッチはGateron Redだったが、遊舎工房で買ってきたZilent 62gを使うことにした。
Pro Micro (互換機) は一応交換可能なように秋月電子通商で買った背が低いピンソケットピンヘッダを使って取り付けることにした。

ファームの書き込み

制作途中で動作確認できるように、まずPro Microにファームウェアを書き込むことにした。meishiのデフォルトレイアウトはWindows用にCtrl-Z/Ctrl-X/Ctrl-C/Ctrl-Vになっているので、macOS版を作って書き込んだ。
書き込み後、実際にMacにつないでみて、キーボードとして認識されることを確認した。

ダイオードの取り付け

まず、ダイオードを4本はんだ付けする。

Pro Microの取り付け

Pro Microにピンヘッダをはんだ付けし、PCBにピンソケットをはんだ付けした。リセット用のタクトスイッチも付けた。
この状態でMacに接続し、キースイッチ用のスルーホールをピンセットでショートさせ、全てのキーが正しく入力されることを確認した。

キースイッチの取り付け

キースイッチをはんだ付けした。これで一応完成。
再度Macに接続し、全てのキーが入力できることを確認した。

ケースの取り付け

ちゃんと入力できることも確認できたので、キースイッチと一緒に遊舎工房で買ってきたmeishi用ケースを取り付けることにした。
のだが、事前にきちんと確認していなかったので、ケースのキースイッチ取り付け穴がただの穴ではなく、キースイッチのプレートマウント用になっていることに気づいていなかった。
キースイッチをケースの穴にはめてからはんだ付けする必要があるのに、キースイッチだけを取り付けてしまった。仕方がないのではんだ吸い取り線を使ってキースイッチを外し、ケースの穴にはめ込んでから改めてはんだ付けする。
再度Macに接続し、動作に問題がないことを確認した。


キーキャップの取り付け

キットに入っていたキーキャップを取り付けて完成。制作時間は1時間くらい。キースイッチ取り付けミスがなければ45分くらいでできたはず。

2019年6月3日月曜日

FreeBSDでQuaggaを動かす その3


はじめに

FreeBSD で Quagga を integrated configuration を使って動かす場合の初期設定手順をまとめてみた。

なお、マニュアルにはintegrated configurationは使わない方がベターというようなことが書いてある。

integrated configuration を使わない場合の手順はこちら

環境

FreeBSD 11.2-RELEASE-p10 に pkgng で quagga-1.2.4_4 をインストールした。
デーモンは zebra および bgpd のみを動かす場合を想定している。

手順

/etc/rc.conf を zebra と bgpd が自動起動するように設定する。
# sysrc quagga_enable="YES"
quagga_enable:  -> YES
# sysrc quagga_daemons+="zebra"
quagga_daemons:  -> zebra
# sysrc quagga_daemons+="bgpd"
quagga_daemons: zebra -> zebra bgpd
# 
空の Quagga.conf  と zebra.conf と bgpd.conf を作る。zebra.conf と bgpd.conf も作っておかないと、起動時のチェックでエラーになってしまう。
# install -m 0600 -o quagga -g quagga /dev/null /usr/local/etc/quagga/Quagga.conf
# install -m 0600 -o quagga -g quagga /dev/null /usr/local/etc/quagga/zebra.conf
# install -m 0600 -o quagga -g quagga /dev/null /usr/local/etc/quagga/bgpd.conf
# ls -l /usr/local/etc/quagga
total 0
-rw-------  1 quagga  quagga  0 Jun  3 18:20 Quagga.conf
-rw-------  1 quagga  quagga  0 Jun  3 18:20 bgpd.conf
-rw-------  1 quagga  quagga  0 Jun  3 18:20 zebra.conf
# 
vtysh.conf を作る。
# install -m 0600 -o quagga -g quagga /dev/null /usr/local/etc/quagga/vtysh.conf
# echo 'service integrated-vtysh-config' > /usr/local/etc/quagga/vtysh.conf
# ls -l /usr/local/etc/quagga
total 4
-rw-------  1 quagga  quagga   0 Jun  3 18:20 Quagga.conf
-rw-------  1 quagga  quagga   0 Jun  3 18:20 bgpd.conf
-rw-------  1 quagga  quagga  32 Jun  3 18:21 vtysh.conf
-rw-------  1 quagga  quagga   0 Jun  3 18:20 zebra.conf
# 
Quagga を起動する。
# service quagga start
Checking zebra.conf
OK
Starting zebra.
Checking bgpd.conf
OK
Starting bgpd.
# 
この時点で vtysh で接続できるようになるので、telnet でも接続する場合はパスワードを設定する。
# vtysh 

Hello, this is Quagga (version 1.2.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

# configure terminal 
(config)# service password-encryption 
(config)# password quagga
(config)# enable password quagga
(config)# end
# write 
Building Configuration...
Integrated configuration saved to /usr/local/etc/quagga/Quagga.conf
[OK]
# exit
# 
以上で設定したパスワードで telnet ログインができるようになる。
なお、このままだとどこからでもtelnetできるので、line vtyへの適切なアクセス制限を検討すべきである。
# telnet localhost 2601
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Hello, this is Quagga (version 1.2.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.


User Access Verification

Password: 
> enable 
Password: 
# exit
Connection closed by foreign host.
# telnet localhost 2605
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Hello, this is Quagga (version 1.2.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.


User Access Verification

Password: 
> enable 
Password: 
# exit
Connection closed by foreign host.
# 

FreeBSDでQuaggaを動かす その2


はじめに

FreeBSD で Quagga を integrated configuration を使わずに動かす場合の初期設定手順をまとめてみた。

integrated configuration を使う場合の手順はこちら

環境

FreeBSD 11.2-RELEASE-p10 に pkg install で quagga-1.2.4_4 をインストールした。
デーモンは zebra および bgpd のみを動かす場合を想定している。

手順

/etc/rc.conf を zebra と bgpd が自動起動するように設定する。
# sysrc quagga_enable="YES"
quagga_enable:  -> YES
# sysrc quagga_daemons+="zebra"
quagga_daemons:  -> zebra
# sysrc quagga_daemons+="bgpd"
quagga_daemons: zebra -> zebra bgpd
# 
空の zebra.conf と bgpd.conf を作る。
# install -m 0600 -o quagga -g quagga /dev/null /usr/local/etc/quagga/zebra.conf
# install -m 0600 -o quagga -g quagga /dev/null /usr/local/etc/quagga/bgpd.conf
# ls -l /usr/local/etc/quagga
total 0
-rw-------  1 quagga  quagga  0 Jun  3 17:21 bgpd.conf
-rw-------  1 quagga  quagga  0 Jun  3 17:21 zebra.conf
# 
Quagga を起動する。
# service quagga start
Checking zebra.conf
OK
Starting zebra.
Checking bgpd.conf
OK
Starting bgpd.
#
この時点で vtysh で接続できるようになるので、telnet でも接続する場合は zebra と bgpd それぞれにパスワードを設定する。
# vtysh -d zebra

Hello, this is Quagga (version 1.2.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

# configure terminal 
(config)# service password-encryption 
(config)# password zebra  
(config)# enable password zebra
(config)# end
# write 
Building Configuration...
Configuration saved to /usr/local/etc/quagga/zebra.conf
[OK]
# exit
# vtysh -d bgpd

Hello, this is Quagga (version 1.2.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

# configure terminal 
(config)# service password-encryption 
(config)# password bgpd
(config)# enable password bgpd
(config)# end
# write
Building Configuration...
Configuration saved to /usr/local/etc/quagga/bgpd.conf
[OK]
# exit
# 
以上で設定したパスワードで telnet ログインができるようになる。
なお、このままだとどこからでもtelnetできるので、line vtyへの適切なアクセス制限を検討すべきである。
# telnet localhost 2601
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Hello, this is Quagga (version 1.2.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.


User Access Verification

Password: 
> enable 
Password: 
# exit
Connection closed by foreign host.
# telnet localhost 2605
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Hello, this is Quagga (version 1.2.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.


User Access Verification

Password: 
> enable 
Password: 
# exit
Connection closed by foreign host.
# 

FreeBSDでQuaggaを動かす その1


正しそうな初期設定

正しそうな初期設定は別記事 (integrated configuration を使わない場合 / integrated configuration を使う場合) にまとめてみた。

経緯

先日参加したIHANet Hackathon@淡路町 & peering day #9で、トンネルを張るところまではできたが、起動した Quagga の zebra に telnet localhost 2601 したところ、以下のようにパスワードが設定されていないというエラーになった。
# telnet localhost 2601
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Vty password is not set.
Connection closed by foreign host.
# 
/usr/local/etc/quagga/zebra.conf には
password zebra03
とパスワードを設定してあったが、これが有効になっていないようだった。

当日は時間切れで諦めてしまったが、後日改めて調査してみた。

調査した環境

FreeBSD 11.2-RELEASE-p10 に pkg install で quagga-1.2.4_4 をインストールした。

原因

/usr/local/etc/quagga/zebra.conf の他に /usr/local/etc/quagga/Quagga.conf があり、それが読まれていたため。

Quagga は当日初めて触ったために全く知識がなかった。そのため適当にググりながら設定を行ったのだが、zebra.conf の他に integrated configuration 用の Quagga.conf を置いてしまっていたのが敗因だった。

ちゃんとソースを追いかけるのが面倒だったので Quagga.conf がある状態とない状態で
# truss /usr/local/sbin/zebra
してシステムコールを追いかけてみたところ、以下のような結果だった。

Quagga.conf がある場合

stat("/usr/local/etc/quagga/Quagga.conf",{ mode=-rw------- inode=1448588,size=234,blksize=32768 }) = 0 (0x0)
Quogga.conf を stat して 0 が返っている。その後は zebra.conf にアクセスしている形跡はなかった。

Quagga.conf がない場合

stat("/usr/local/etc/quagga/Quagga.conf",0x7fffffffe6a0) ERR#2 'No such file or directory'
open("/usr/local/etc/quagga/zebra.conf",O_RDONLY,0666) = 6 (0x6)
Quagga.conf を stat して No such file or directory が返った後に zebra.conf を open している。

以上の挙動から Quagga.conf があると zebra.conf は読まれないという動作をしているようだ。

あとでマニュアルを見たら、ちゃんと書いてあった……。

2019年6月2日日曜日

RIPE Atlas ProbeがYour probe is currently disconnected.

先日に引き続いて、一昨日からまたRIPE Atlas Probeがちゃんと動いていなかった。

今回はProbeのページのStatus (beta)タブによると、「Your probe is currently disconnected.」という情報のみ。
まずは、電源を投入し直して様子を見てみるが復活しない。スイッチのポートの状況を見ると100BASE-TXでリンクアップしているものの、MACアドレスが何も見えないので何もパケットが出ていないらしい。

原因はよくわからないが、前回とUSBメモリーが壊れたと仮定して同様の手順で復活を試みた。すると今回もUSBメモリー挿入後10分ほどで、Statusが「Your probe is currently connected.」に戻ったことが確認できた。