あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

Raspberry PiにNICをSPI接続で2つ足すやつ(10Mbpsだけど)

Raspberry PiにGPIOポートからNICを生やす話。

以前から、GPIOからNICが生える系のボードがあるのは知っていました。ENC28J60という10BASE-TNICをSPIで接続しているようです。

https://www.adafruit.com/product/3374

でも10Mbpsじゃなあと思ってスルーしていたのですが、これを見たらちょっと欲しくなりました。SPIポート2つあるからたしかにデュアルポートにできるんですよね。

www.industrialberry.com

これやってみたい!というわけで、まずはENC28J60モジュールをeBayでポチポチしました。

www.ebay.com

f:id:Akkiesoft:20190422101337j:plain:w480

配線は、先ほどのEthernetBerry Dualのページとraspi.tvのページを参考にSPI0とSPI1につなぐようにします。GPIOピンの表記が物理番号とBCMで違ったりするので注意が必要です(わりと間違えた)。

raspi.tv

ブレッドボードでやってもいいですが、NIC1つあたり7本の配線が必要で散らかりそうだったので、HATサイズのバニラボード(今回使用したのはスイッチサイエンスが売っているもので、買ったけどしばらく放置していたやつ。色んなとこでいろんなのが売られてるので好きなやつを使ってね)に一発で実装してしまいました。ピンソケットにブスブスっとモジュールを挿して使うイメージです。

f:id:Akkiesoft:20190422102725j:plain:w480

裏の配線。いくつか配線を間違えてますが、設定ファイルの書き換えで済むやつ(INTを間違えた)は諦めてそのままにしました。

f:id:Akkiesoft:20190422102907j:plain:w480

ラズピッピに載せた様子。位置的には電源とかHDMIの上に来る感じになりましたが、結構はみ出す形になったのでなんとなくバランスが良くないですねもう少し高めのピンソケットが手元にあれば、もうちょい引っ込めることはできそうです。やらんけど。

f:id:Akkiesoft:20190422103300j:plain:w480

f:id:Akkiesoft:20190422103325j:plain:w480

設定はEthernetBerry Dualのページにあるtarballをもらってきてスクリプトを実行すればOK。中身はENC28J60のモジュールをコピーして増やしたもののバイナリの一部を書き換えてSPI1で使えるようにして、元のモジュールとコピーしたモジュールそれぞれのdtoverlayを/boot/config.txtに書いているようでした。私はINTの配線を間違えたので、ココでピン番号を入れ替えました。

設定後に再起動すれば、eth1とeth2が増えていることが確認できます。増えていないときは配線があっているかを確認します。

pi@raspberrypi:~ $ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether b8:27:eb:**:**:** brd ff:ff:ff:ff:ff:ff
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 66:e1:d0:**:**:** brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 02:e9:8b:**:**:** brd ff:ff:ff:ff:ff:ff
5: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DORMANT group default qlen 1000
    link/ether b8:27:eb:**:**:** brd ff:ff:ff:ff:ff:ff

pi@raspberrypi:~ $ sudo ethtool -i eth1
driver: enc28j61
version: 1.02
firmware-version: 
expansion-rom-version: 
bus-info: spi1.0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
pi@raspberrypi:~ $ sudo ethtool -i eth2
driver: enc28j60
version: 1.02
firmware-version: 
expansion-rom-version: 
bus-info: spi0.0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
pi@raspberrypi:~ $ sudo ethtool eth1
Settings for eth1:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: No
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Speed: 10Mb/s
	Duplex: Half
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: off
	MDI-X: Unknown
	Current message level: 0x00000036 (54)
			       probe link ifdown ifup
pi@raspberrypi:~ $ sudo ethtool eth2
Settings for eth2:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: No
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Speed: 10Mb/s
	Duplex: Half
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: off
	MDI-X: Unknown
	Current message level: 0x00000036 (54)
			       probe link ifdown ifup

さて、これで何しましょうかね。動くのを見たかったので特に使いみちは考えていないんですよね(?🤔)。言わずもがな、USB-GbEアダプターをUSBに挿したほうが手っ取り早いし通信も速いし楽です。簡易ルーターとか、あるいはポートミラーリングとかキャプチャみたいな感じのやつとかか。

金魚が死んだはなし

昨晩、金魚に突然死んでしまいました。。

きのうはアキバに散歩に出て、帰ってきてご飯食べて一息ついて、ふと水槽を見たらいなくなっていました。ここ数日やんちゃんしていたので、そろそろ水槽掃除かと思っていた矢先、水槽の蓋を持ち上げるほど跳ねたそのまま外に出てしまったらしく、金魚カメラやら置物を散らかした挙げ句収納と壁の隙間(壁コンセントがあるのでどうしてもできていたところ)に落ちて干からびていました。

帰ってからややもしばらく気づかなかった私も相当間抜けなのですが、おそらくでかけてすぐのことだったか全身ぼろぼろのカピカピになってしまっており、エラこそ動いていたものの、水に戻してやっても時すでに遅し、2時間くらいあとには息を引き取りました。

病気とかで死ぬのかと思ったりはしましたが、こういう死なれ方は想定していなかったので、ちょっとショックがでかい。けど、今週そんな話を聞かされたばっかりでもあったので、まさかという気持ちも。

ぼちぼち水槽のサイズ変えも覚悟していたけど、遅かったのかもしれないとか、水槽の掃除タイミングもちょっと遅かったかもしれないとか、思い返しても時すでに遅し。。。

2016年の夏にホームセンターから3cmもあればばいいくらいの小赤を買って3年弱で15cmほどまででかくなりました。自分で飼った金魚では一番大きくなったほうだと思います。そして気性が荒いというか、動きの激しいやつでもありました。

エアーを止めた部屋はとても静かになって、寂しさが増しますね。その騒音が関係するのか、スマートウォッチの睡眠計は"深い睡眠"が増えましたが……。

亡骸は火曜日のごみの日まで安置です(腐敗臭とか心配ですけど……)。本当は土に埋めてやりたいし、ハムスターのときは冷凍で実家に送ってそうしてもらったりしてましたが、いつまでもそんなトリッキーなこともできぬと覚悟して、火曜日に送り出します。

水槽とかも、ここいらでいったん整理かなーと断捨離中です。が、先週買ったばかりで手付かずの交換ろ材どうすんだよ。

先週末の長津田

先週末は技術書典に行かず、長津田を散歩してました。今回もなんとなくWebライター記事風でお送りしますが多分もう次はない。

f:id:Akkiesoft:20190412004539p:plain:w80長津田で降りたときはたい焼きを買食いしながら行くのが好き。検車区に着く前に食べ終わっちゃうけどね!」

f:id:Akkiesoft:20190418163530j:plain:h480

洗車線は検査から時間が経っていない8631Fと営業開始前だった2129Fのピカピカコンビが並んでいました。

f:id:Akkiesoft:20190412004539p:plain:w80 「屋根を見る機会なんてそうそうないにせよ2020系も走り込むと屋根が茶色くなってしまうので白く塗っても微妙かな……?」

f:id:Akkiesoft:20190418163606j:plain:w480

2129F〜2129Fだけで見られる2桁の数字が2回繰り返されるシリーズも今回が最後。2929で肉っぽい?

f:id:Akkiesoft:20190412004539p:plain:w80 「3020系も3031F〜3038Fが製造されたらワンチャンあるな?」

f:id:Akkiesoft:20190418163913j:plain:w480

そんな3020系を見たくて来たわけですが、おった。

f:id:Akkiesoft:20190412004539p:plain:w80大井町線の602系は暖色で2020系とははっきり分かれてるけど、3020系は同じ寒色系だから細い帯1本の色で区別つけるの難しくなりそう?走ってるところが違うから問題ないか。」

f:id:Akkiesoft:20190418164113j:plain:w480

恩田まで歩いて恩田もチェック。8638Fと8620Fが離脱して集まっている割にはこざっぱりして見えるのはテクノ側の外が空いているから?

f:id:Akkiesoft:20190418164951j:plain:w480

f:id:Akkiesoft:20190412004539p:plain:w80 「いよいよ田園都市線8500系が直接離脱しはじめたかあ。」

帰りに乗ったこどもの国線から8695Fを見ると床下にマークがついていたので、何らかの床下機器を付替えるための作業が進んでいるようです。

f:id:Akkiesoft:20190418165001j:plain:w480

帰りはうしでんしゃでした。

f:id:Akkiesoft:20190412004539p:plain:w80 「いつみてもうしだらけ」

f:id:Akkiesoft:20190418165221j:plain:w480

f:id:Akkiesoft:20190412004539p:plain:w80 「結構好き。」

f:id:Akkiesoft:20190418165229j:plain:h480

ところで駅舎もうしのるるんで侵食し始めていました。

f:id:Akkiesoft:20190412004539p:plain:w80 「いずれ他の駅にも侵食して、渋谷もうしのるるんになるのは時間の問題やな……!」

f:id:Akkiesoft:20190418165324j:plain:w480

f:id:Akkiesoft:20190418165328j:plain:w480

おわり。

はてなハイクが終了したので、終了前後を振り返る

書くのがだいぶおくれてしまったんですが、はてなハイクが先月末で終わりました。終了直前とかあとのお話を書きます。いや、一回3000文字くらい書きかけたんだけど、はてなブログの下書きに保存したと思ったら消えてたんですよね。保存し忘れたのか、ふしぎなちからで消えたのか。前者でしょうけど。今回5900文字書いたので、概ね復元できたと思います。どうしよう、note.muあたりにもミラーしたほうがいいのかな、笑。

ハイク終了発表時に書いた感想みたいなやつはこちら。

akkiesoft.hatenablog.jp

こっさん

ハイク終了直前記念に撮っておきました。

f:id:Akkiesoft:20190324162312j:plain:w640

終了前夜祭オフ

ハイクのオフ、すごい久しぶりに参加しました。5年ぶりとかそんなレベル。そんな久しぶり具合でもすっと入っていけるのがハイカーのオフなのかなと思いました。なんか楽しすぎて、すっごいエモくなって、家帰ってから泣きましたもんね。

唐揚げ。普通に唐揚げなんですけど、apoさんが「家で絶対作んないから、唐揚げめっちゃ食べたい!!」と言ってエンジョイしてたのが印象的でした。そのあとふたりで日本酒がばがば飲んでめっちゃ酔っ払いました。ジーパンに日本酒こぼして漏らしたみたいになってしぬかとおもった。

f:id:Akkiesoft:20190326193409j:plain

足写真、すっごい懐かしすぎてちょっとはしゃいでしまった!

f:id:Akkiesoft:20190326222220j:plain

日本酒がめっちゃはいっていろいろぶっ壊れた図。こっさん素材になりました。

f:id:Akkiesoft:20190326221638j:plain

帰宅して、ジェネリックロールちゃんがあると聞いて買ってきたやつ。ローソンストア100にあるんですけど、うちの階下がそれなので。少し短くなってますがロールちゃんですねこれは!

f:id:Akkiesoft:20190327001125j:plain

当日

ハイク終了当日の話。終了時間が未定のままだったので、終了時間が17時と判明する16時の告知まで、最後の大喜利と言わんばかりに終了時間予想トトカルチョとネタキーワードが盛り上がりました。

後述のエクスポート機能があまりにもカスであったため、前日まででエクスポートを仕掛けてそのまま筆を置こうとするハイカーもわりと見られたのですが、終了当日の朝も、昼も、夕方も、まだ終わる気配のないハイクに我慢できずネタをぶっこんでしまうのが、ハイカーのハイカーらしいところのような気もしました。やっぱりハイクしたいなあってやつ。

エクスポートできなくていいからなんか書き散らかしてやろう作った「ここからはバックアップせずに書き散らかすやべーはてなハイク」は、午前中に作って、終了時間までには819投稿を超えるスピード感でした。

終了は17時ちょうどでフロントエンドのダウンを確認。APIサーバーはその約4分後にダウンしたため、サードパーティクライアントユーザーしか使えないハイクという時間が少しだけありました。以下はkoHaikuから投稿したエントリーをJSONで取っといてあとからパースしたやつ。

f:id:Akkiesoft:20190413111034p:plain

なお、私とか何人かの観測の結果、真のラストハイクは牛乳先生っぽいと推測されています。牛乳先生は私って言ってましたけど。

hh-alamode.fanweb.jp

ハイクエクスポートの話

さて、これほんと言いたいこといっぱいなんだけども。

11月の終了予告から3ヶ月後、終了の1ヶ月前の2月になって、ようやくエクスポートの提供が始まりましたが、ツッコミどころ満載の提供内容でブチギレて自分で実装し直したのは前のブログに書きました。

akkiesoft.hatenablog.jp

そもそもエクスポートしたデータをどう見返すか、そもそも見返すのかというアレも含めて必要性について考えるときりがないんですけど。提供されたCSV一つ見ても、

という、インポートのしやすさを優先したのか人が読みやすいものを優先したのかわかりにくいというツッコミどころが存在していました。

また、エクスポート提供期間も、提供開始日からハイク終了時(ただし3/27の16時に同日17時とアナウンスされるまで時間未定)の1ヶ月のみという、極めて不親切な対応がイカーの問い合わせではじめて判明するというやる気の無さを見せつけられました。

その提供期間内も、デバッガーで見るにJavaScriptのエラーによってエクスポートに失敗する事象を確認できる程度には完成度の低そうなものであり、自分でJSONでエクスポートするに至ったわけですが、途中でイカーの問い合わせによって修正されていたらしく、私もダウンロードできるようにはなりましたが、修正のアナウンスはありませんでした。

はてなダイアリーがしつこくメールでアナウンスされていたのとは対照的に、ハイクでは公式ブログでのアナウンスのみであったため、エクスポート機能に気づかないままハイク終了を迎えてエクスポートできなかったというハイカーも、その後の終了報告のようなブログ記事のブコメで見られました。

d.hatena.ne.jp

b.hatena.ne.jp

labo.hatenastaff.com

b.hatena.ne.jp

上記のような雑な対応の結果、問い合わせがそれなりにあったようで、その後問い合わせによるエクスポート対応が4/5まで受け付けられることになりました。わたしも、前述の「ここからはバックアップせずに書き散らかすやべーはてなハイク」に書いたやつを、あとからやっぱり見返したくなるかなと思って(すっとぼけ)問い合わせましたが、4/13現在でエクスポートデータは未着です。人力でやっているんでしょうかね。エクスポート機能ページだけ期間限定で延長すればよかったものを、ご苦労なことです。

labo.hatenastaff.com

一方でこれ、重箱の隅をつつくかんじで流石に酷なような気もしました。ここだけはちょっとだけはてなに同情の余地がありま……やっぱりないか。

はてなハイクは、2019年3月27日にてサービスの提供を終了いたしました。終了に先立ち、2月13日にエクスポート機能の提供のお知らせを行いましたが、はてラボ開発者ブログでは行っていなかったという不備がありました。

さてさて。エクスポートしたデータどうすんの、というやつですが、思い出したときにちまちまと実装する感じでツールを整備しています。基本の方針は「特別なツールを用意せず、ダウンロードしたHTMLファイルをブラウザーで開いてエクスポートデータをぶっこめばOK」ときめて、HTMLとJavaScriptで書いてみています。

ハイクが生きているうちははてなハイクキーワードでポロポロと投下していましたが、Githubにまとめて置くようにしました。まだとっ散らかっているので、使い方わからないとかがあれば質問してください。基本的にJSONデータであれこれするやつを優先して書いていますが、CSV版も気が向けば。あるいはプルリクもお待ちしています。

github.com

エクスポートに関しては、スマホタブレットしかないハイカーの需要も途中で見られて、何がベストだったのかは私も悩ましいなと思うところはありますが、Twitterのツイートエクスポートみたいに、HTMLのビューアつきのあれみたいなのが親切な提供方法だったんじゃないかなと思っています。あんなCSVだけ渡されて、どうしろと。だって、スターも見られないじゃん。ちょっとHTML書いたらスター見られるのにだよ?

ちなみに、JSONを使ったHTMLビューアーはこっさんアーカイブで使っています。自分の全エントリー置き場もあるんですが、現状は作りが雑で28MBのJSONを全部先読みするクソ仕様なのでここでは貼らないでおきます。この辺もちまちま改善したい。

https://l.kokuda.org/kossan/

イカーの移住先。

終了の告知以降、ハイクからの転居先を伝えるスレなどで伝えあっていましたが、ハイクが終わると見られなくなるんだよなあ、という気持ちになって、雑にブリッジサービスを作りました。MastodonでもTwitterとブリッジするようなサービスがある(ただ死んでいる模様)ので、それを倣った感じです。はてなIDでログインして移住先URLを書くか、単にログインしてはてなプロフィールのURLを書くか共有するかをできます。ハイク終了前はフォロー一覧をインポートする機能も提供していました。今はインポートした人に限り、その一覧をエクスポートできるようになっています。

kokuda.org

イカーの移住先は主にツイッター…と思いきや、ハイカーが作る独自のSNSにわりと移っているように見えます。こういう自給自足感もハイカーらしいかなと思ったりしました。普通いまならだいたいツイッター行っちゃうもんね。わたしはTwitterほぼやめちゃったけど。

  • kodakanaさんが開発、運用するIT-TALKS( https://pulpdust.org/i/index.php )。多分ここが一番多い?CSVインポート対応。
  • coby_o2さんが開発、運用する17on( https://17on.site/ )。ハイク風UIを踏襲しているのがポイントです。CSVインポート対応。

わたしが運用するのは、こくだハイク( https://h.kokuda.org/ )。踏襲したのはサブドメインとハイクの文字だけで、中身はMastodonです。私がサービス名をパクって雑なものを動かすのはこくだランドとかいろいろとかでやってきたことなので、わかるひとからすればいつものことかと思います。気が向いたら少しずつ魔改造してみようかと思っていますが、今のところできたのはHatenaStar.jsのロードだけです。Siteconfig入れないと動かないし、ストリーミングで受信したトゥートにスターをつけるのもつけないとなので、なかなか大変そう。ユーザーの方は、30人くらい、アクティブは10人くらい?でしょうか。なお、CSVのインポートはMastodonがもともと他所からのインポートに対応しないフシがあるので、ありません。

こくだハイクがはてなハイクから引き続いてやっているものとしては、こっさん綾鷹千本選ばれ鳴らし綾鷹以外のお茶千本選ばれ慣らしあたりです。うわ、リンク貼るのにこっさん開いたらなかなかやべーな。こっさん新規素材はこくだハイクで生えるので、こっさんコラ師各位はぜひ。成果物のIT-TALKS、17onへのマルチポストは許容します。

akkiesoft.hatenablog.jp

まとめ

やっぱりハイクしたいなあ。しんかんせーん。

8月19日はハイク新盆オフするって言われてたので、どこで告知されるかわからんですけど予定を空けつつ、↑の移住先SNSのどれかをウォッチしようかと思います。

宮前平駅に増設されたエスカレーターを見に行った

宮前平駅の隣りにあるホームセンターに、金魚のポンプのフィルターを買いに行くついでに、駅に増設されたエスカレーターを見てきました。なお、Webライター記事でよく見る名前は顔写真のあのアイコンを作ってみたので、この記事では実験的にアイコンを多用します。気にしないでください。

f:id:Akkiesoft:20190412004539p:plain:w64 「おお…増設部分めっちゃキレイ…!」

f:id:Akkiesoft:20190412004445j:plain:w480

f:id:Akkiesoft:20190412004539p:plain:w64 「階段のほうは変わらずボコボコしてるし照明も古いままか。壁だけきれいになってるので違和感がすごい。あとからキレイにするんだろうか」

f:id:Akkiesoft:20190412004902j:plain:w480

階段下。土曜日以降はこの先に進めるっぽいです。写真では見切れてますが、階段の手すりが壁からはみ出しているのが気になりました。エスカレーター方面から来た人がぶつかりそう。

f:id:Akkiesoft:20190412004943j:plain:w480

f:id:Akkiesoft:20190412004539p:plain:w64 「供用開始されたらまた行く」

おわり