隠居日録

2016年(世にいう平成28年)、発作的に会社を辞め、隠居生活に入る。日々を読書と散歩に費やす

精霊の箱 チューリングマシンをめぐる冒険

川添愛氏の精霊の箱 チューリングマシンをめぐる冒険を読んだ。これは白と黒のとびらの続編で、前作の登場人物が今作でも登場し、あたらな人物も登場してくる。今回のテーマはチューリングマシーンとなっているが、最後の所では暗号の話題も取り上げられている。

ガレットは塔の守り手となり、魔術師となったが、相変わらず師匠のアルドウィンから厳しく指導を受けていた。そんなガレットが、色々な事件に巻き込まれるうちに、クージュの魂がガレットの手の中に吸い込まれてしまった。クージュの魂は本来は浄罪界に属していたものであるが、失われて九百年も経ち、魔術師たちはずっと探していたのだった。一方、学術院の院長のファウマン卿はユフィンやヴィエンに何やら不思議な装置設計を依頼しており、実はファウマン卿の依頼はユフィンやヴィエンだけではなく、他の若い学者にもされていた。それは、ファウマン家の長年の悲願を達成するために装置なのであった。

今作は、上巻と下巻とに分かれていて、ストーリーとしてはかなり長くなっているが、前作がどちらかというと、オートマトンを説明しるためにストーリをひねり出したような印象だったのに比べ、今回は十分な紙幅があるので、ストーリが主で、そこにチューリーンぐマシーンなどの動作・説明をうまくあてはめたような印象を受けた。そのため、今回の方がストリーとしては格段に面白くなっている。今回はあとがきがついているのが、それによると最初から続編の執筆は予定していたのだとか。そうであれば、第一作目はちょっと詰め込み過ぎだったのではないかと思えてくる。

NanoPI NEO2+NAS kitは安定稼働させられなかった

armbianのインストールで盛大にはまる - 隠居日録の11月6日の追記にも書いたが、kernelのページング問題が結局解決できなかった。こんな感じでsyslogにエラーが吐き出される。

Nov 13 16:10:23 localhost kernel: [   34.896785] Unable to handle kernel paging request at virtual address 20f2080020f208
Nov 13 16:10:23 localhost kernel: [   34.904787] Mem abort info:
Nov 13 16:10:23 localhost kernel: [   34.907704]   Exception class = DABT (current EL), IL = 32 bits
Nov 13 16:10:23 localhost kernel: [   34.913688]   SET = 0, FnV = 0
Nov 13 16:10:23 localhost kernel: [   34.916781]   EA = 0, S1PTW = 0
Nov 13 16:10:23 localhost kernel: [   34.919958] Data abort info:
Nov 13 16:10:23 localhost kernel: [   34.922881]   ISV = 0, ISS = 0x00000004
Nov 13 16:10:23 localhost kernel: [   34.926758]   CM = 0, WnR = 0
Nov 13 16:10:23 localhost kernel: [   34.929767] [0020f2080020f208] address between user and kernel address ranges
Nov 13 16:10:23 localhost kernel: [   34.936957] Internal error: Oops: 96000004 [#1] SMP
Nov 13 16:10:23 localhost kernel: [   34.941856] Modules linked in: sun4i_gpadc_iio iio_hwmon industrialio uas sunxi musb_hdrc [last unloaded: snd_timer]
Nov 13 16:10:23 localhost kernel: [   34.952436] CPU: 2 PID: 871 Comm: tinyproxy Not tainted 4.14.78-sunxi64 #416
Nov 13 16:10:23 localhost kernel: [   34.959492] Hardware name: FriendlyARM NanoPi NEO 2 (DT)
Nov 13 16:10:23 localhost kernel: [   34.964817] task: ffff800036a98d00 task.stack: ffff00000a0e8000
Nov 13 16:10:23 localhost kernel: [   34.970768] PC is at skb_release_data+0xc8/0x158
Nov 13 16:10:23 localhost kernel: [   34.975406] LR is at skb_release_all+0x24/0x30
Nov 13 16:10:23 localhost kernel: [   34.979862] pc : [<ffff000008803bb0>] lr : [<ffff000008802fc4>] pstate: 40000145
Nov 13 16:10:23 localhost kernel: [   34.987266] sp : ffff00000a0ebb50
Nov 13 16:10:23 localhost kernel: [   34.990589] x29: ffff00000a0ebb50 x28: ffff8000359aa000 
Nov 13 16:10:23 localhost kernel: [   34.995918] x27: ffff800034bd6900 x26: ffff8000359aa0c8 
Nov 13 16:10:23 localhost kernel: [   35.001248] x25: 0000000000000000 x24: 00000000000004bb 
Nov 13 16:10:23 localhost kernel: [   35.006578] x23: 0000000000000001 x22: ffff8000359aa51c 
Nov 13 16:10:23 localhost kernel: [   35.011914] x21: ffff800034bd6900 x20: ffff800029888d00 
Nov 13 16:10:23 localhost kernel: [   35.017248] x19: 0000000000000000 x18: 0000000000000000 
Nov 13 16:10:23 localhost kernel: [   35.022611] x17: 0000ffffb0a1fd80 x16: ffff0000081f6a18 
Nov 13 16:10:23 localhost kernel: [   35.027982] x15: 000004c01ac4da60 x14: 588cfd0b2f8b2bb5 
Nov 13 16:10:23 localhost kernel: [   35.033322] x13: d5d6dad28e347e88 x12: 9f236569c15bb044 
Nov 13 16:10:23 localhost kernel: [   35.038652] x11: f81be145f8ba51df x10: 0000000000000263 
Nov 13 16:10:23 localhost kernel: [   35.043982] x9 : 2fda4fb583a7da69 x8 : e3d7beb187cce6a6 
Nov 13 16:10:23 localhost kernel: [   35.049313] x7 : f8d177f7ea163fe0 x6 : 0000000009155c3e 
Nov 13 16:10:23 localhost kernel: [   35.054677] x5 : 00ffffffffffffff x4 : ffff8000359aa0e0 
Nov 13 16:10:23 localhost kernel: [   35.060048] x3 : 0000000000004280 x2 : 0000000000000700 
Nov 13 16:10:23 localhost kernel: [   35.065419] x1 : 0000000000000020 x0 : 0020f2080020f208 
Nov 13 16:10:23 localhost kernel: [   35.070799] Process tinyproxy (pid: 871, stack limit = 0xffff00000a0e8000)
Nov 13 16:10:23 localhost kernel: [   35.077712] Call trace:
Nov 13 16:10:23 localhost kernel: [   35.080221] Exception stack(0xffff00000a0eba10 to 0xffff00000a0ebb50)
Nov 13 16:10:23 localhost kernel: [   35.086717] ba00:                                   0020f2080020f208 0000000000000020
Nov 13 16:10:23 localhost kernel: [   35.094608] ba20: 0000000000000700 0000000000004280 ffff8000359aa0e0 00ffffffffffffff
Nov 13 16:10:23 localhost kernel: [   35.102463] ba40: 0000000009155c3e f8d177f7ea163fe0 e3d7beb187cce6a6 2fda4fb583a7da69
Nov 13 16:10:23 localhost kernel: [   35.110353] ba60: 0000000000000263 f81be145f8ba51df 9f236569c15bb044 d5d6dad28e347e88
Nov 13 16:10:23 localhost kernel: [   35.118241] ba80: 588cfd0b2f8b2bb5 000004c01ac4da60 ffff0000081f6a18 0000ffffb0a1fd80
Nov 13 16:10:23 localhost kernel: [   35.126141] baa0: 0000000000000000 0000000000000000 ffff800029888d00 ffff800034bd6900
Nov 13 16:10:23 localhost kernel: [   35.134035] bac0: ffff8000359aa51c 0000000000000001 00000000000004bb 0000000000000000
Nov 13 16:10:23 localhost kernel: [   35.141929] bae0: ffff8000359aa0c8 ffff800034bd6900 ffff8000359aa000 ffff00000a0ebb50
Nov 13 16:10:23 localhost kernel: [   35.149832] bb00: ffff000008802fc4 ffff00000a0ebb50 ffff000008803bb0 0000000040000145
Nov 13 16:10:23 localhost kernel: [   35.157721] bb20: ffff80003471bc00 ffff800034bd6900 0000ffffffffffff ffff000008801cf4
Nov 13 16:10:23 localhost kernel: [   35.165615] bb40: ffff00000a0ebb50 ffff000008803bb0
Nov 13 16:10:23 localhost kernel: [   35.170559] [<ffff000008803bb0>] skb_release_data+0xc8/0x158
Nov 13 16:10:23 localhost kernel: [   35.176296] [<ffff000008802fc4>] skb_release_all+0x24/0x30
Nov 13 16:10:23 localhost kernel: [   35.181843] [<ffff000008802fe4>] __kfree_skb+0x14/0x28
Nov 13 16:10:23 localhost kernel: [   35.187048] [<ffff0000088788a0>] tcp_recvmsg+0x630/0x810
Nov 13 16:10:23 localhost kernel: [   35.192390] [<ffff0000088a3d94>] inet_recvmsg+0x4c/0xe8
Nov 13 16:10:23 localhost kernel: [   35.197692] [<ffff0000087f6d90>] sock_recvmsg+0x48/0x58
Nov 13 16:10:23 localhost kernel: [   35.202985] [<ffff0000087f6e28>] sock_read_iter+0x88/0xd0
Nov 13 16:10:23 localhost kernel: [   35.208448] [<ffff0000081f3ec4>] new_sync_read+0xbc/0x108
Nov 13 16:10:23 localhost kernel: [   35.213925] [<ffff0000081f63f4>] __vfs_read+0x2c/0x38
Nov 13 16:10:23 localhost kernel: [   35.219041] [<ffff0000081f6490>] vfs_read+0x90/0x168
Nov 13 16:10:23 localhost kernel: [   35.224072] [<ffff0000081f6a78>] SyS_read+0x60/0xd8
Nov 13 16:10:23 localhost kernel: [   35.229002] Exception stack(0xffff00000a0ebec0 to 0xffff00000a0ec000)
Nov 13 16:10:23 localhost kernel: [   35.235505] bec0: 0000000000000008 0000aaaadcbe3730 0000000000000800 0000000000000001
Nov 13 16:10:23 localhost kernel: [   35.243362] bee0: 0000aaaadcbe3730 0000000000000000 0000ffffcdb4b2cc 0000aaaadcbe3f30
Nov 13 16:10:23 localhost kernel: [   35.251213] bf00: 000000000000003f 003b9aca00000000 000000005bea78df 000000000003ece5
Nov 13 16:10:23 localhost kernel: [   35.259064] bf20: 0000000000000018 00000003e8000000 000f50a1178acb56 000004c01ac4da60
Nov 13 16:10:23 localhost kernel: [   35.266914] bf40: 0000000000000000 0000ffffb0a1fd80 0000000000000000 0000aaaadcbe2ff0
Nov 13 16:10:23 localhost kernel: [   35.274799] bf60: 0000000000000000 0000000000000008 0000aaaadcbe3730 0000aaaaabb71000
Nov 13 16:10:23 localhost kernel: [   35.282651] bf80: 0000ffffcdb4b498 0000000000000001 0000000000000007 0000000000000008
Nov 13 16:10:23 localhost kernel: [   35.290502] bfa0: 0000ffffcdb4b528 0000ffffcdb4b3c0 0000aaaaabb54130 0000ffffcdb4b3c0
Nov 13 16:10:23 localhost kernel: [   35.298352] bfc0: 0000ffffb0a1fd68 0000000060000000 0000000000000008 000000000000003f
Nov 13 16:10:23 localhost kernel: [   35.306202] bfe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
Nov 13 16:10:23 localhost kernel: [   35.314063] [<ffff000008083318>] __sys_trace_return+0x0/0x4
Nov 13 16:10:23 localhost kernel: [   35.319661] Code: 6b13003f 54fffdcc f9400680 b40000a0 (f9400013) 
Nov 13 16:10:23 localhost kernel: [   35.325774] ---[ end trace 59dd9cbe42058e9b ]---

今実験のためにPCのブラウザでNanopi NEO2上のtinyproxyを使うように設定している。たまに、DNSであるunboundがエラーになることもあるが、だいたいtinyproxyがエラーになる。あと、aptitudeでパッケージをインストールしようとしたときにも発生した。いろいろ設定を見直してみたり、変更したのだが、どうやってもこの問題が解決できなかった。ネットで検索しても同様の問題は見当たらないので、使っているボードの問題だろうかと思い、秋月で別なNanopi NEO2を購入して試してみたが、そちらでも問題は発生するので、ボードの問題ではないと思う。

エラーが発生するのは必ずイーサでパケットを受信したときなので、そのあたりに何か問題があると思われる。実際ffmpegコンパイルでは落ちなかったし、stressコマンドで負荷をかけても、それでエラーは発生しなかったので、イーサに関係する問題だろうと想像しているのだが、さっぱり見当がつかない。これが一週間に一度ぐらいならまだしも、一時間もあればこの問題は発生するので、実稼働させるのには程遠いレベルだ。それにしても、検索しても、同様の問題が見当たらないのは本当に不思議だ。smbでも、大きなファイルを書き込めば問題が発生するような気がするが、まだ試していない。