電池交換2018
4年2ヶ月ぶりの交換。よく考えたら時計本体はもう18〜19年モノになる。
これの電池を電器屋へ買いに行ったら目的の『SR920SW』のすぐ近くに『SR920W』というのがあって、はてこの2つの違いは何だろうと思ったらmaxellさんが解説してた。
SR○○○Wという品名の電池は、バックライトやストップウォッチ、アラーム機能などが付いた多機能(デジタル)時計に適しているハイレートタイプ(重い負荷用)です。
SR○○○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聞きに来た pic.twitter.com/1PXl05JOO2
— とんぬら@転職するか考え中 (@tristelo) 2018年1月2日
ただし ”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できなくなってた問題
この件。
GPD WinにUSBメモリから8.99.12を起動させてみたけど、どうも本体eMMCがうまくマウントできなくなってる模様。 pic.twitter.com/EjL0Ksn7l2
— とんぬら@転職するか考え中 (@tristelo) 2018年2月17日
なお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にした。ただこれも行幅を取りすぎている気がするのでまた変えるかも。
GPD WINにrEFIndを入れる
俺、この仕事が終わったらGR-PEACHにNetBSDを移植しようと思うんだ… #死亡フラグ
— とんぬら (@tristelo) 2018年1月20日
あの時移植やると言ったな、あれはまだ仕事が終わってないから冬休みの状態から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 + rEFInd + NetBSD = pic.twitter.com/INnm0lNU9s
— とんぬら (@tristelo) 2018年2月11日
ただ、今GPD WINに入っている7.99.42だと問題なく起動するものの、8.99.12だと本体eMMCのmountに失敗する模様。currentだしそんなもんかなーということで時間を置いたらまた試すかも。