電池交換2018

4年2ヶ月ぶりの交換。よく考えたら時計本体はもう18〜19年モノになる。

これの電池を電器屋へ買いに行ったら目的の『SR920SW』のすぐ近くに『SR920W』というのがあって、はてこの2つの違いは何だろうと思ったらmaxellさんが解説してた。

SR○○○Wという品名の電池は、バックライトやストップウォッチ、アラーム機能などが付いた多機能(デジタル)時計に適しているハイレートタイプ(重い負荷用)です。
SR○○○SWという品名の電池は、時計の針だけを動かすアナログ時計に適したローレートタイプ(軽い負荷用)となります。

「酸化銀電池」よくあるご質問

同じ酸化銀電池でも特性が異なると。マンガン電池の赤黒みたいなもんかねーと思いつつこれ書きながら調べたらWikipediaにまんま載ってた。材料レベルで違うんならそりゃ型番分けるわと納得。

  • 記号なし/W 電解液に水酸化カリウムを使用し、重負荷で短時間の使用を考慮したものである。デジタル機器や防犯ブザー、LEDライトなど比較的大電流放電を必要とするものに向いている。
  • SW 電解液に水酸化ナトリウムを使用し、軽負荷で長時間の使用を考慮したものである。アナログ時計や測定器、バックアップ用に最適である。

酸化銀電池 - Wikipedia

KiCad 5.0.0動いた


9分9厘PLISTだからいいものの40000行越えのパッチとか意味わからんな…

大きく変わったのはライブラリで、Download Librariesの通り4.0系は "footprints" と" library" の2本立てだったのが、5.0系では "footprints"・"packages3d"・"symbols"の3本柱になったこと。pkgsrcでもそれぞれ別々のパッケージ扱いしていたので、”cad/kicad-lib" を削除し "cad/kicad-package3d" と "cad/kicad-symbols" として分割。あとは KiCad Licenses を見たらライブラリ系はCC-BY-SA 4.0らしいのでそちらに変更。

KiCad本体はboost 1.68での破壊的変更なところをバッチリ踏み抜いてエラーを吐いていた箇所があったので、本家から”Fix build error with Boost 1.68." の #include 部分だけ適用。というかキミこの前もcmake 3.11で非互換なところですっ転んでた気がするんだがそういう趣味でもあるのかね。あとライセンスもGPL3らしい。

なお現状pkgsrcに無いためビルドオプションで無効にしたのがこいつら。無効にしたことで何の機能が使えなくなったのかは知らん(ぉぃ

  • "-DKICAD_SPICE=OFF" : ngspiceの共有ライブラリが必要らしい
  • "-DKICAD_USE_OCE=OFF" : wip/opencascade ?
  • "-DKICAD_SCRIPTING_WXPYTHON=OFF" : "x11/py-wxWidgets" で試したら「古いわボケ」って怒られた

(2018/11/28追記)

"-DKICAD_SCRIPTING=OFF -DKICAD_SCRIPTING_MODULES=OFF" を入れておかないとSWIG3を要求してコケてしまうのでこいつらもビルドオプションに追加。SWIG3自体は devel/swig3 にはあるんだけど、なぜか devel/swig や devel/swig2 と違って buildlink3.mk が無いという謎。

今日のGR-PEACH

実に8ヶ月ぶりにシリアルの初期化部分をデータシート通りに書きなおしたら "rza1uart0: console" が出るように。

↓前回

ただし ”root device: ” の後に

  • 適当なキー(”a”とか)を押すと、その文字を表示してフリーズ
  • ENTERのみ "use one of: ddb halt reboot" となった後に再度 "root device: " になるけど、14回ENTER繰り返したところでpanic

となるんで入力回りがまだ怪しい感じがする。

U-Boot 2015.01-00076-gc83df16e6b-dirty (Jul 06 2017 - 01:45:26)

I2C:   ready
DRAM:  10 MiB
Using default environment

In:    serial
Out:   serial
Err:   serial
                      SPI Flash Memory Map
                ------------------------------------
                         Start      Size     SPI
                u-boot:  0x00000000 0x080000 0
                   env:  0x00080000 0x040000 0
                    DT:  0x000C0000 0x040000 0
                Kernel:  0x00100000 0x050000 0
                Rootfs:  0x00600000 0x0A0000 0
Net:   sh_eth
=> bootp 192.168.0.5:netbsd.bin
sh_eth Waiting for PHY auto negotiation to complete.. done
sh_eth: 100Base/Full
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 192.168.0.8 (620 ms)
Using sh_eth device
TFTP from server 192.168.0.5; our IP address is 192.168.0.8
Filename 'netbsd.bin'.
Load address: 0x20000000
Loading: #################################################################
         #################################################################
         #################################################################
         ####################################
         2.8 MiB/s
done
Bytes transferred = 3378388 (338cd4 hex)
=> go 0x20000000
## Starting application at 0x20000000 ...
  PC=0x20000024
  SP=0x208afdb0
CPSR=0x600001d3
<cortex_init>@ABC12-</cortex_init>
<mmu_init_table></mmu_init_table>
<arm_cpuinit>FG01H1IJKLM</arm_cpuinit>
jump to start()

uboot arg = 0x1, 0x208b0e5c, 0x208b0e5c, 0x20000000

NetBSD/evbarm (EVBARM_BOARDTYPE) booting ...
initarm: Configuring system, CLIDR=1110000003 CTR=0x83338003
arm32_bootmem_init: memstart=0x20000000, memsize=0xa00000, kernelstart=0x20000000
arm32_bootmem_init: kernelend=0x20356000
arm32_bootmem_init: adding 853 free pages: [0x20356000..0x209fffff] (VA 0x80356000)
arm32_kernel_vm_init: 1 L2 pages are needed to map 0x38a000 kernel bytes
arm32_kernel_vm_init: allocating page tables for kerneladd_pages: adding pv 0x80339414 (pa 0x20356000, va 0x80356000, 1 pages) at tail
 vmadd_pages: appending pv 0x8033a390 (0x20358000..0x2035bfff) to 0x20356000..0x20357fff
add_pages: appending pv 0x803395c8 (0x2035c000..0x2035dfff) to 0x20356000..0x2035bfff
add_pages: appending pv 0x803395dc (0x2035e000..0x2035ffff) to 0x20356000..0x2035dfff
add_pages: appending pv 0x803395f0 (0x20360000..0x20361fff) to 0x20356000..0x2035ffff
add_pages: appending pv 0x80339604 (0x20362000..0x20363fff) to 0x20356000..0x20361fff
add_pages: appending pv 0x80339618 (0x20364000..0x20365fff) to 0x20356000..0x20363fff
add_pages: appending pv 0x8033962c (0x20366000..0x20367fff) to 0x20356000..0x20365fff
add_pages: appending pv 0x80339640 (0x20368000..0x20369fff) to 0x20356000..0x20367fff
add_pages: appending pv 0x80339654 (0x2036a000..0x2036bfff) to 0x20356000..0x20369fff
arm32_kernel_vm_init: allocating stacks
add_pages: appending pv 0x80339af0 (0x2036c000..0x2036dfff) to 0x20356000..0x2036bfff
add_pages: appending pv 0x80339adc (0x2036e000..0x2036ffff) to 0x20356000..0x2036dfff
add_pages: appending pv 0x80339ac8 (0x20370000..0x20371fff) to 0x20356000..0x2036ffff
add_pages: appending pv 0x80339ab4 (0x20372000..0x20373fff) to 0x20356000..0x20371fff
add_pages: appending pv 0x80339aa0 (0x20374000..0x20375fff) to 0x20356000..0x20373fff
add_pages: appending pv 0x80339b04 (0x20376000..0x20377fff) to 0x20356000..0x20375fff
add_pages: appending pv 0x80339458 (0x20378000..0x2037bfff) to 0x20356000..0x20377fff
Creating L1 page table at 0x20358000
arm32_kernel_vm_init: adding L2 pt (VA 0x80356000, PA 0x20356000) for VA 0x80000000 (kernel)
arm32_kernel_vm_init: adding L2 pt (VA 0x8035c000, PA 0x2035c000) for VA 0xc0000000 (vm)
arm32_kernel_vm_init: adding L2 pt (VA 0x8035e000, PA 0x2035e000) for VA 0xc0800000 (vm)
arm32_kernel_vm_init: adding L2 pt (VA 0x80360000, PA 0x20360000) for VA 0xc1000000 (vm)
arm32_kernel_vm_init: adding L2 pt (VA 0x80362000, PA 0x20362000) for VA 0xc1800000 (vm)
arm32_kernel_vm_init: adding L2 pt (VA 0x80364000, PA 0x20364000) for VA 0xc2000000 (vm)
arm32_kernel_vm_init: adding L2 pt (VA 0x80366000, PA 0x20366000) for VA 0xc2800000 (vm)
arm32_kernel_vm_init: adding L2 pt (VA 0x80368000, PA 0x20368000) for VA 0xc3000000 (vm)
arm32_kernel_vm_init: adding L2 pt (VA 0x8036a000, PA 0x2036a000) for VA 0xc3800000 (vm)
Mapping kernel
arm32_kernel_vm_init: adding chunk for kernel text 0x20000000..0x20267fff (VA 0x80000000)
add_pages: adding pv 0x80339400 (pa 0x20000000, va 0x80000000, 308 pages) before pa 0x20356000
arm32_kernel_vm_init: adding chunk for kernel data/bss 0x20268000..0x20355fff (VA 0x80268000)
add_pages: adding pv 0x803393ec (pa 0x20268000, va 0x80268000, 119 pages) before pa 0x20356000
Listing Chunks
arm32_kernel_vm_init: pv 0x80339400: chunk VA 0x80000000..0x80267fff (PA 0x20000000, prot 7, cache 1)
arm32_kernel_vm_init: pv 0x803393ec: chunk VA 0x80268000..0x80355fff (PA 0x20268000, prot 3, cache 1)
arm32_kernel_vm_init: pv 0x80339414: chunk VA 0x80356000..0x8037bfff (PA 0x20356000, prot 3, cache 1)

Mapping Chunks
arm32_kernel_vm_init: mapping chunk VA 0x80000000..0x80267fff (PA 0x20000000, prot 7, cache 1)
pmap_map_chunk: pa=0x20000000 va=0x80000000 size=0x268000 resid=0x268000 prot=0x7 cache=1
SSLLLLLLPPPP
arm32_kernel_vm_init: mapping chunk VA 0x80268000..0x80355fff (PA 0x20268000, prot 3, cache 1)
pmap_map_chunk: pa=0x20268000 va=0x80268000 size=0xee000 resid=0xee000 prot=0x3 cache=1
PPPPLLLLLLLLLLLLLLPPP
arm32_kernel_vm_init: mapping last chunk VA 0x80356000..0x8037bfff (PA 0x20356000, prot 3, cache 1)
pmap_map_chunk: pa=0x20356000 va=0x80356000 size=0x26000 resid=0x26000 prot=0x3 cache=1
PPPPPLPPPPPP
devmap: 18000000 -> 1fffffff @ f7000000
pmap_map_chunk: pa=0x18000000 va=0xf7000000 size=0x8000000 resid=0x8000000 prot=0x3 cache=0
sSsSsSsSsSsSsSsS
devmap: 3fe00000 -> 3fffffff @ ff000000
pmap_map_chunk: pa=0x3fe00000 va=0xff000000 size=0x200000 resid=0x200000 prot=0x3 cache=0
SS
devmap: e8000000 -> e82fffff @ ff200000
pmap_map_chunk: pa=0xe8000000 va=0xff200000 size=0x300000 resid=0x300000 prot=0x3 cache=0
SSS
devmap: fc000000 -> fc0fffff @ ff500000
pmap_map_chunk: pa=0xfc000000 va=0xff500000 size=0x100000 resid=0x100000 prot=0x3 cache=0
S
devmap: fcf00000 -> fcffffff @ ff600000
pmap_map_chunk: pa=0xfcf00000 va=0xff600000 size=0x100000 resid=0x100000 prot=0x3 cache=0
S
devmap: fff00000 -> ffffffff @ ff700000
pmap_map_chunk: pa=0xfff00000 va=0xff700000 size=0x100000 resid=0x100000 prot=0x3 cache=0
S
devmap: f0000000 -> f00fffff @ ff800000
pmap_map_chunk: pa=0xf0000000 va=0xff800000 size=0x100000 resid=0x100000 prot=0x3 cache=0
S
                             Physical              Virtual        Num
                       Starting    Ending    Starting    Ending   Pages
               SDRAM: 0x20000000 0x209fffff 0x80000000 0x809fffff 1280
        text section: 0x20000000 0x20267fff 0x80000000 0x80267fff 308
        data section: 0x202c0000 0x20338cd8 0x802c0000 0x80338cd8 61
         bss section: 0x20338cd8 0x20354d98 0x80338cd8 0x80354d98 15
   L1 page directory: 0x20358000 0x2035bfff 0x80358000 0x8035bfff 2
   ABT stack (CPU 0): 0x2036c000 0x2036dfff 0x8036c000 0x8036dfff 1
   FIQ stack (CPU 0): 0x2036e000 0x2036ffff 0x8036e000 0x8036ffff 1
   IRQ stack (CPU 0): 0x20370000 0x20371fff 0x80370000 0x80371fff 1
   UND stack (CPU 0): 0x20372000 0x20373fff 0x80372000 0x80373fff 1
  IDLE stack (CPU 0): 0x20374000 0x20375fff 0x80374000 0x80375fff 1
           SVC stack: 0x20376000 0x20377fff 0x80376000 0x80377fff 1
      Message Buffer: 0x20378000 0x2037bfff 0x80378000 0x8037bfff 2
         Free Memory: 0x2037c000 0x209fffff                       834
TTBR0=0x209fc05b TTBR1=0x209fc05b TTBCR=0x1 CONTEXTIDR=0
switching to new L1 page table @0x20358000... ttb (TTBCR=0x11 TTBR0=0x2035805b TTBR1=0x2035805b) OK
nfreeblocks = 1, free_pages = 834 (0x342)
bootstrap done.
vectors vbar=0x8000c860 0x8000c860
init subsystems: stacks vectors undefined page pmap_physload pmap kpm tlb0 locks l1pt cache(l1pt) specials pools [ Kernel symbol table m]
done.
Loaded initial symtab at 0x802cc000, strtab at 0x802f64d0, # entries 10812
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 8.99.1 (GRPEACH) #126: Sun Aug 19 01:46:47 JST 2018
        star@pavilion.local:/home/star/work/netbsd.rza1h/obj/evbarm/sys/arch/evbarm/compile/GRPEACH
total memory = 10240 KB
avail memory = 6424 KB
sysctl_createv: sysctl_create(machine_arch) returned 17
mainbus0 (root)
cpu0 at mainbus0 core 0: 400 MHz Cortex-A9 r3p0 (Cortex V7A core)
cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu0: 32KB/32B 4-way L1 VIPT Instruction cache
cpu0: 32KB/32B 4-way write-back-locking-C L1 PIPT Data cache
cpu0: 128KB/32B 8-way write-back-locking-line L2 PIPT Unified cache
vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
armperiph0 at mainbus0
arml2cc0 at armperiph0: ARM PL310 r3p2 L2 Cache Controller (disabled)
arml2cc0: cache enabled
armgic0 at armperiph0: Generic Interrupt Controller, 32 sources (21 valid)
armgic0: 32 Priorities, 0 SPIs, 5 PPIs, 16 SGIs
a9tmr0 at armperiph0: A9 Global 64-bit Timer (200 MHz)
a9tmr0: interrupting on irq 27
a9wdt0 at armperiph0: A9 Watchdog Timer, default period is 12 seconds
axi0 at mainbus0: Advancd eXtensible Interface
rza1uart0 at axi0 addr 0xe8008000 intr 232
rza1uart0: console
boot device: <unknown>
root device: a

[NetBSD] GPD WinでeMMCがmountできなくなってた問題

この件。

なおdmesgはこんなかんじ。(これは調査中にメモしていた8.0_BETAのもの)

sdhc0 at acpi0 (SDHA, 80860F14-1): mem 0xa1a3a000-0xa1a3aff irq 45
sdhc0: SDHC 3.0, rev 16, SDMA, 200000 kHz, embedded slot, HS SDR50 DDR50 SDR104 HS200 1.8V, re-tuning mode 1 (128s timer), 512 byte blocks
sdmmc0 at sdhc0 slot 0
...
sdhc0: timeout waiting for mask 0x3 value 0 (state-0x1fff0a06)
sdhc0: command or data phase inhibited
sdhc0: tuning did not complete, using fixed sampling clock
sdmmc0: can't execute MMC tuning
sdmmc0: mem init failed
ld0 at sdmmc0 <0x15:0x0100:CGND3R:0x00:0x6a6eb830:0x000>
ld0: 59640 MB, 7603 cyl, 255 head, 63 sec, 512 bytes/sect x 122142720 sectors
sdhc0: auto_cmd12 error
sdhc0: data crc error
ld0d: error reading fsdn 0 of 0-2 (ld0 bn 0; cn 0 tn 0 sn 0), retrying
...

NetBSD 8.0がリリースされたしどうなったのかなーと思ったら8もcurrentもダメだったんでちょっと調べてみた。といってもどの時期から発生したのかもわからんしソースの見当もついていなかったので、人力二分探索で「ソース全コンパイルしてUEFIイメージを作成して起動させ、eMMC mountできるかどうか確認する」をひたすら繰り返してた。どなたでもできる簡単なお仕事です(白目)

んで範囲を絞り込みつつコミットログを調べていって最終的に見つかったのがコレ。

これの逆パッチをcurrentに適用させたところ、無事にeMMC mountできるようになった。めでたしめでたし。
……いやGPD Win的にはこれで良いんだけど、パッチとdmesgを見るに「tuningするとおかしくなった」ってことだからsdhcのチューニング(sdhc_execute_tuning1())がなんかマズいのか、チューニング失敗で "tuning did not complete, using fixed sampling clock" といいつつ返したEIOをsdmmcがなんか変に解釈しておかしくなったのか、とかいう気がしなくもない。そもそもtuning is 何って状態なので何が正しいのかも全くわからんのだが。

んで一通り調べてからSDMMC_DEBUGオプションの存在に気付いたので、有効にしてeMMC mount失敗する版のdmesgを取得してみたら何かdumpがでてきてビビった。gistに投げつけといたんで後はエライ人におまかせします(ぉぃ

ちなみにそのtuningとやら、sdhc以外だと amlogic_sdhc_execute_tuning()sunxi_mmc_execute_tuning() が固有で持っているので、こっちの人はshdc_execute_tuning1() の問題とは無縁なはず。sunxiのはこれで正規動作なのか手抜きなんか知らんけど。PineBookのemmcも不調という噂だけどアレsunxiみたいだしどうなんだろうか。

モニターを買った

NTTグループの安心オンラインストア」を名乗るだいたい頭おかしいことで評判の高い某オンラインストアで23.8インチのWQHDモニタを購入。今まで長いこと使っていたのが14インチのXGAモニタなので画面が大きくなった。というか画素数が従来比で約4.7倍とかワケわからんことに。

DPIが大きくなったことで今までの設定だと色々なものが小さすぎるようになってしまったので色々設定を調整。いまのところこんな感じ。

  • .Xresources
Xft.dpi: 120
Xft.autohint: 0
Xft.lcdfilter:  lcddefault
Xft.hintstyle:  hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.rgba: rgb

Emacs.font: Mgen+ 1mn 12
layout.css.devPixelsPerPx    1.25

等幅フォントはMyricaも試してみたけど微妙に細くて見づらかったのでMgen+ 12mnにした。ただこれも行幅を取りすぎている気がするのでまた変えるかも。

清水公園

そういや花見してねぇな、ってことで先週花見に清水公園まで行ってた。

ちなみに清水公園なのは「え、東京じゃもう満開したの→どうせ見るなら散る前に見ておきたい→寒いところならまだ大丈夫→じゃあ北に行こう→なんかちょうどいいところにあるな」くらいの理由。





なお走行ルートはこんな感じ。いつものスタート地点(右下)から半時計回りでぐるっと一周。これで大体38km。

GPD WINにrEFIndを入れる

あの時移植やると言ったな、あれはまだ仕事が終わってないから冬休みの状態から1ミリも進んでないぞ。ウボァ−

てなわけでGR-PEACHは放置中なんだが、ふとGPD WINにrEFIndを入れてみたら動いたので忘れる前にメモっとく。

インストール手順は基本的に「Installing rEFInd Manually Using Windows」の通り。ただ最初試したときは手順10のdescription設定は行なわかなったんだけど、どうも設定がうまくいっていないようで電源ONしてもrEFIndではなく普通にWindowが立ち上がるという状態のままだった。そこで「Alternative Naming Options」の通りに試したり、もう一度インストール手順を(今度は手順10まで)やり直したりと色々やってたら電源ONでrEFIndが起動するようになった。Alternative Naming Optionsで変更したところを戻してもrEFIndが起動するので、たぶん最初のインストールでどこか失敗したんだと思うけど結局理由は不明。

rEFIndが起動するようになったら "refind.conf" にこんな設定をしておくと起動時にNetBSDが選択できるようになる。当然あらかじめどうにかして本体eMMCにNetBSDを入れておく必要があるんだが、やり方は忘れた(たしかUSBメモリUEFIインストールイメージを突っ込んで起動させ、後は手動で展開したような)。なおアイコンはrEFIndに付属してたやつをそのまま使用している。ちなみに付属アイコンはWinにOS Xに主要LInuxディストリやFreeBSD、はてにはHaikuまで用意されているがOpenBSDは無い。何故だ。

menuentry "NetBSD" {
	loader /EFI/NetBSD/boot/bootx64.efi
	icon /EFI/refind/icons/os_netbsd.png
}

んで起動したときのがこれ。旗を選ぶとちゃんとNetBSDが起動する。画面のローテーションはどうにかしたいがUEFIで何か方法あるのかな。

ただ、今GPD WINに入っている7.99.42だと問題なく起動するものの、8.99.12だと本体eMMCのmountに失敗する模様。currentだしそんなもんかなーということで時間を置いたらまた試すかも。