Windows 上の X11サーバ VcXsrvで遊んでみる (sshによるX11Forward)
tag: vcxsrv, ssh, freebsd, x11, xauth
前回の続き。
Windows用のVcXsrv( X Windows System )をもうちょっと使ってみる。
sshコマンドには、 -X や -Y という謎のオプションがある。X11Forwarding 関連のオプション。
Windows 10マシンから、ssh -X george@FreeBSDマシン とやった端末にて xclock & とかすると、FreeBSD側で起動した時計の画面がWindowsマシンに飛んでくるという仕込みができる。
前回は家庭内LANにあるFreeBSDマシンだったのでDISPLAY環境変数を直接Windowsマシンに設定していたが、 sshコマンドによる転送でもX11画面を飛ばせるわけだ。
つまり、AWSなどクラウド上にあるLinux仮想マシンからでもssh経由でX11画面をWindowsマシンに飛ばせるようになる。
■FreeBSD側/Linux側の設定(sshd)
/etc/ssh/sshd_config
X11Forwarding yes X11DisplayOffset 10 X11UseLocalhost no
■Windows側の設定(ssh)
~/.ssh/config
Host * ForwardX11 yes ForwardX11Trusted yes
■WindowsからFreeBSD側にssh -v -Yしてみる。
ssh -v -Y freebsd59
以下のようなデバッグログが出る。
debug1: No xauth program. Warning: untrusted X11 forwarding setup failed: xauth key data not generated
「debug1: No xauth program.」と出た場合は、sshクライアント側(Windows側)でxauthコマンドが無い、という意味らしい。
■Windows側の設定(ssh)(改)
~/.ssh/config
Host * ForwardAgent yes ForwardX11 yes ForwardX11Trusted yes XAuthLocation "C:/Program Files/VcXsrv/xauth.exe"
XAuthLocation指定でxauth.exeの場所を教えてあげれば、「debug1: No xauth program.」は出なくなった。けど動かないw
■Windows側の設定(ssh)(改2)
~/.ssh/config
Host * ForwardAgent yes ForwardX11 yes ForwardX11Trusted yes XAuthLocation /usr/bin/xauth
その他作業。
■VcXsrv起動シェル(Windows側)
xauthを使うなら、vcxsrvの起動オプションに -auth ファイル名 は指定しないとダメ。
以下のようなシェルを使って VcXsrvを起動する。( debianの /usr/bin/startx を参考に作ってみた )
vcxsrv のオプションで -ac を指定するとアクセス制御制限を無効にする。xauthを使うなら、 -ac ナシで。
シェルでは、Xサーバ起動時に mcookieコマンドで乱数を生成して、 サーバ用の認証ファイル(/tmp/serverauth.XXXXXXXXXX)と、ユーザー用の認証ファイル(~/.Xauthority)にそれぞれxauthコマンドで追加している。
VcXsrv由来のxauthコマンドでは、 xauth add kabylakes:0 MIT-MAGIC-COOKIE-1 aabbccddeeffxxxx とやると、なぜか IPv6アドレスにしかクッキーが付かないので、IPv4アドレスは別途明示的に追加している。
#!/bin/bash
#
# VcXsrv起動
#
function f-startx() {
    # vcxsrv -auth ~/.Xauthority -background none -multiwindow -ac
    DEFAULT_IPV4_ADDR=192.168.1.35
    DISPLAY=${DEFAULT_IPV4_ADDR}:0.0
    export DISPLAY
    XAUTHORITY=$HOME/.Xauthority
    export XAUTHORITY
    # initialize xauth
    dummy=0
    mcookie=`mcookie`
    if [ -z "$mcookie" ]; then
        echo "mcookie failed. abort."
        return 1
    fi
    
    xserverauthfile=`mktemp --tmpdir serverauth.XXXXXXXXXX`
    xauth -f "$xserverauthfile" add :$dummy MIT-MAGIC-COOKIE-1 $mcookie
    xauth -f "$xserverauthfile" add ${DEFAULT_IPV4_ADDR}:$dummy MIT-MAGIC-COOKIE-1 $mcookie
    xauth                       add ${DEFAULT_IPV4_ADDR}:$dummy MIT-MAGIC-COOKIE-1 $mcookie
    hostname=`hostname`
    authdisplay=":0"
    # now add the same credentials to the client authority file
    # if '$displayname' already exists do not overwrite it as another
    # server may need it. Add them to the '$xserverauthfile' instead.
    for displayname in $authdisplay $hostname$authdisplay
    do
        authcookie=`xauth -n list "$displayname" | sed -n "s/.*$displayname[[:space:]*].*[[:space:]*]//p" | sort | uniq ` 2>/dev/null;
        if [ "z${authcookie}" = "z" ] ; then
            xauth add $displayname MIT-MAGIC-COOKIE-1 $mcookie
            removelist="$displayname $removelist"
        else
            dummy=$(($dummy+1));
            xauth -f "$xserverauthfile" add :$dummy MIT-MAGIC-COOKIE-1 $authcookie
            xauth -f "$xserverauthfile" add ${DEFAULT_IPV4_ADDR}:$dummy MIT-MAGIC-COOKIE-1 $authcookie
        fi
    done
    echo ""
    echo ""
    echo "X11 server side xauth list"
    xauth -f "$xserverauthfile" -n list
    echo ""
    echo ""
    echo ""
    echo "X11 user side xauth list"
    xauth -n list
    echo ""
    # start X server
    # vcxsrv -auth $xserverauthfile -background none -multiwindow -ac
    vcxsrv -auth $xserverauthfile -background none -multiwindow
    # after X server end, remove authfile
    /bin/rm $xserverauthfile
}
f-startx "$@"
#
# End of File
#
■sshコマンドはなぜxauthを使おうとするのか
xauthは、X11サーバが画面表示受け付けする際のマジッククッキーの表示や登録を行う。
IPアドレス、MIT-MAGIC-COOKIE-1、共通の16進数のマジッククッキー(乱数)をX11サーバ側&クライアント側の両方が持っていれば、X11画面飛ばしを受け入れるという共通秘密鍵みたいなモノ。
george@KabyLakeS ~ $ xauth -n list 192.168.1.35:0 MIT-MAGIC-COOKIE-1 123412341234abcdabcdabcd12341234 george@KabyLakeS ~ $
george@freebsd59 ~ $ xauth -n list 192.168.1.35:0 MIT-MAGIC-COOKIE-1 123412341234abcdabcdabcd12341234 george@freebsd59 ~ $
sshコマンドがX11転送を行う場合、xauthコマンドを使ってX11サーバ側(Winodws側)から情報を取得し、xauthコマンドを使ってX11クライアント側(FreeBSD側)で登録をしようとするらしい。
なので、xauthコマンドはX11サーバ側(Winodws側)、X11クライアント側(FreeBSD側)の両方で必要。
■ssh with X11画面転送 が成功した場合の例
ssh -v -Y raspi4 した後、xhostコマンドで確認。
「access control enabled, only authorized clients can connect」と表示されていれば xauth によるアクセス制御が有効な状態。
pi@raspi4:~ $ xhost debug1: client_input_channel_open: ctype x11 rchan 3 win 65536 max 16384 debug1: client_request_x11: request from ::1 35996 debug1: channel 1: new [x11] debug1: confirm x11 access control enabled, only authorized clients can connect INET:0.0.0.0 INET6:localhost debug1: channel 1: FORCE input drain debug1: channel 1: free: x11, nchannels 2 pi@raspi4:~ $
■sshのconfigに書いたForwardX11Trusted yesとは何か
manページの記述があいまいなので、何を言っているのかよくわからんが...。
sshの向こう側のクライアントをX11のtrustedクライアント扱いする、という意味のようだ。
ssh -Y と同等なのかな?
■sshのconfigによく書かれているForwardAgent yesとは何か
sshでホスト多段踏みを行う際にssh-agent情報を転送する場合にyesとする。
みんな書いてるけどX11画面転送には関係ないww
■xauthコマンド使用の通常手順(手作業)の流れ(参考)
環境変数DISPLAYが設定されている状態で、X11サーバ側(Windows側)でxauth generateコマンドを発行。
相手側(FreeBSD側)では、xauth nmergeとして、16進数のマジック(乱数)を~/.Xauthorityファイルに保存する。
これで両者は共通の秘密の乱数を持つことになり、FreeBSD機にログイン中の他のユーザーからX11画面にイタズラできなくなる、という寸法。
xhostだとホスト名(IPアドレス)が許可基準だったので、同じマシンにログインしている別のユーザーからも画面を飛ばせるため、こうなっているものと思われる。
ssh -X を行うと、手作業で行っていた以下の手順(に似た何か)は自動的に実行される。
# X server 側 (Windows) で実施。今回は実験のため毎回ファイルは消している。
if [ ! -f ~/.Xauthority ] ; then
    touch ~/.Xauthority
else
    rm ~/.Xauthority
    touch ~/.Xauthority
fi
xauth.exe generate 192.168.1.35:0.0 MIT-MAGIC-COOKIE-1 trusted
# 作成された内容を確認
xauth.exe -n list
# xauth nlistで送信される内容の確認。(nlistで表示すると内容は16進数の呪文みたいになる。この形式でないとマージできない。)
xauth.exe nlist
# xauth nlist の内容を宛先マシンに送る。  相手のマシンでは、 xauth nmerge としてマージする。
xauth.exe nlist | ssh freebsd59 xauth nmerge -
# ここで、~/.Xauthority ファイルを指定して Xサーバを起動。
vcxsrv -auth ~/.Xauthority -background none -multiwindow
# お互い秘密のクッキーを共有しているので、相手のマシンで環境変数DISPLAYを192.168.1.35:0.0にしてからxclockを起動するとX11画面が飛んでくる。
# FreeBSD機側で操作
export DISPLAY=192.68.1.35:0.0
xclock &
■MobaXtermによるX11画面飛ばし
MobaXtermは、X11サーバーを内蔵している。(MobaXterm起動時についでにX11サーバーも起動する)
こちらはcygwin系のコマンド一式を標準装備していて、xauthコマンドも/bin/xauthとして存在する。
MobaXtermでSSH接続すると、xauthを使った許可設定を内部で自動的にしているようで、xauth -n listすると、MobaXterm用のマジッククッキーが登録されているのが見える。
というわけで、SSH端末からemacsとか起動すると画面がWindows側に飛んでくる。
面倒な設定が不要なあたり、利便性は高い。
VcXsrvの起動オプション
tag: vcxsrv, x11, xauth
xauthを使うなら、vcxsrvの起動オプションに -auth ファイル名 は指定しないとダメか。
vcxsrv 起動オプションの末尾の -ac はX11サーバのアクセス制御をオフにするオプション。
以下参考。VcXsrvのヘルプ内容。
george@KabyLakeS ~ $ vcxsrv.exe -?
Welcome to the VcXsrv X Server
Vendor: The VcXsrv Project
Release: 1.20.8.1
OS: Windows NT 6.2 build 9200 (64-bit)
Contact: marha@users.sourceforge.net
Unrecognized option: -?
Usage...
Vcxsrv [:<display>] [option]
:display-number
        Vcxsrv runs as the given display-number, which defaults to 0.
        To run multiple instances, use unique display-numbers.
-silent-dup-error      Do not show fatal exit error mesage box
-a #                   default pointer acceleration (factor)
-ac                    disable access control restrictions
-audit int             set audit trail level
-auth file             select authorization file
-br                    create root window with black background
+bs                    enable any backing store support
-bs                    disable any backing store support
-cc int                default color visual class
-nocursor              disable the cursor
-core                  generate core dump on fatal error
-displayfd fd          file descriptor to write display number to when ready to connect
-dpi [auto|int]        screen resolution set to native or this dpi
-dpms                  disables VESA DPMS monitor control
-deferglyphs [none|all|16] defer loading of [no|all|16-bit] glyphs
-f #                   bell base (0-100)
-fp string             default font path
-help                  prints message with these options
+iglx                  Allow creating indirect GLX contexts (default)
-iglx                  Prohibit creating indirect GLX contexts
-I                     ignore all remaining arguments
-maxclients n          set maximum number of clients (power of two)
-nolisten string       don't listen on protocol
-listen string         listen on protocol
-noreset               don't reset after last client exists
-background [none]     create root window with no background
-reset                 reset after last client exists
-pn                    accept failure to listen on all ports
-nopn                  reject failure to listen on all ports
-r                     turns off auto-repeat
r                      turns on auto-repeat
-render [default|mono|gray|color] set render color alloc policy
-retro                 start with classic stipple
-seat string           seat to run on
-t #                   default pointer threshold (pixels/t)
-terminate             terminate at server reset
-tst                   disable testing extensions
-wr                    create root window with white background
+xinerama              Enable XINERAMA extension
-xinerama              Disable XINERAMA extension
-dumbSched             Disable smart scheduling and threaded input, enable old behavior
-schedInterval int     Set scheduler interval in msec
+extension name        Enable extension
-extension name        Disable extension
-query host-name       contact named host for XDMCP
-broadcast             broadcast for XDMCP
-multicast [addr [hops]] IPv6 multicast for XDMCP
-indirect host-name    contact named host for indirect XDMCP
-port port-num         UDP port number to send messages to
-from local-address    specify the local address to connect from
-once                  Terminate server after one session
-class display-class   specify display class to send in manage
-cookie xdm-auth-bits  specify the magic cookie for XDMCP
-displayID display-id  manufacturer display ID for request
[+-]accessx [ timeout [ timeout_mask [ feedback [ options_mask] ] ] ]
                       enable/disable accessx key sequences
VcXsrv Device Dependent Usage:
-[no]clipboard
        Enable [disable] the clipboard integration. Default is enabled.
-noprimary
        Do not map the PRIMARY selection to the windows clipboard.
        The CLIPBOARD selection is always mapped if -clipboard is enabled.
        Default is mapped.
-clipupdates num_boxes
        Use a clipping region to constrain shadow update blits to
        the updated region when num_boxes, or more, are in the
        updated region.  Diminished effect on current Windows
        versions because they already group GDI operations together
        in a batch, which has a similar effect.
-[no]compositewm
        Enable [Disable] Composite extension. Default is enabled.
        Used in -multiwindow mode.
        Use Composite extension redirection to maintain a bitmap
        image of each top-level X window, so window contents which
        are occluded show correctly in Taskbar and Task Switcher
        previews.
-[no]compositealpha
        X windows with per-pixel alpha are composited into the Windows desktop.
-[no]compositewm
        Use the Composite extension to keep a bitmap image of each top-level
        X window, so window contents which are occluded show correctly in
        task bar and task switcher previews.
-depth bits_per_pixel
        Specify an optional bitdepth to use in fullscreen mode
        with a DirectDraw engine.
-[no]emulate3buttons [timeout]
        Emulate 3 button mouse with an optional timeout in
        milliseconds.
-engine engine_type_id
        Override the server's automatically selected engine type:
                1 - Shadow GDI
                4 - Shadow DirectDraw4 Non-Locking
-fullscreen
        Run the server in fullscreen mode.
-[no]hostintitle
        In multiwindow mode, add remote host names to window titles.
-icon icon_specifier
        Set screen window icon in windowed mode.
-ignoreinput
        Ignore keyboard and mouse input.
-[no]keyhook
        Grab special Windows keypresses like Alt-Tab or the Menu key.
-lesspointer
        Hide the windows mouse pointer when it is over any
        VcXsrv window.  This prevents ghost cursors appearing when
        the Windows cursor is drawn on top of the X cursor
-logfile filename
        Write log messages to <filename>.
-logverbose verbosity
        Set the verbosity of log messages. [NOTE: Only a few messages
        respect the settings yet]
                0 - only print fatal error.
                1 - print additional configuration information.
                2 - print additional runtime information [default].
                3 - print debugging and tracing information.
-[no]multimonitors or -[no]multiplemonitors
        Use the entire virtual screen if multiple
        monitors are present.
-multiwindow
        Run the server in multiwindow mode.  Not to be used
        together with -rootless or -fullscreen.
-nodecoration
        Do not draw a window border, title bar, etc.  Windowed
        mode only i.e. ignored when -fullscreen specified.
-nounicodeclipboard
        Disable Unicode in the clipboard.
-[no]primary
        When clipboard integration is enabled, map the X11 PRIMARY selection
        to the Windows clipboard. Default is enabled.
-refresh rate_in_Hz
        Specify an optional refresh rate to use in fullscreen mode
        with a DirectDraw engine.
-resize=none|scrollbars|randr
        In windowed mode, [don't] allow resizing of the window. 'scrollbars'
        mode gives the window scrollbars as needed, 'randr' mode uses the RANR
        extension to resize the X screen.  'randr' is the default.
-rootless
        Use a transparent root window with an external window
        manager (such as openbox).  Not to be used with
        -multiwindow or with -fullscreen.
-screen scr_num [width height [x y] | [[WxH[+X+Y]][@m]] ]
        Enable screen scr_num and optionally specify a width and
        height and initial position for that screen. Additionally
        a monitor number can be specified to start the server on,
        at which point, all coordinates become relative to that
        monitor. Examples:
         -screen 0 800x600+100+100@2 ; 2nd monitor offset 100,100 size 800x600
         -screen 0 1024x768@3        ; 3rd monitor size 1024x768
         -screen 0 @1 ; on 1st monitor using its full resolution (the default)
-swcursor
        Disable the usage of the Windows cursor and use the X11 software
        cursor instead.
-[no]trayicon
        Do not create a notification area icon.  Default is to create
        one icon per screen.  You can globally disable notification area
        icons with -notrayicon, then enable them for specific screens
        with -trayicon for those screens.
-[no]unixkill
        Ctrl-Alt-Backspace exits the X Server. The Ctrl-Alt-Backspace
        key combo is disabled by default.
-[no]wgl
        Enable the GLX extension to use the native Windows WGL interface for hardware-accelerated OpenGL
-swrastwgl
        Enable the GLX extension to use the native Windows WGL interface based on the swrast interface for accelerated OpenGL
-[no]winkill
        Alt+F4 exits the X Server.
-xkblayout XKBLayout
        Set the layout to use for XKB.  This defaults to a layout
        matching your current layout from Windows or us (i.e. USA)
        if no matching layout was found.
        For example: -xkblayout de
-xkbmodel XKBModel
        Set the model to use for XKB.  This defaults to pc105.
-xkboptions XKBOptions
        Set the options to use for XKB.  This defaults to not set.
-xkbrules XKBRules
        Set the rules to use for XKB.  This defaults to xorg.
-xkbvariant XKBVariant
        Set the variant to use for XKB.  This defaults to not set.
        For example: -xkbvariant nodeadkeys
george@KabyLakeS ~ $
すかいらーくの宅配
ファミレス業界も宅配に力を入れているようで、宅配始めましたみたいなチラシが入ってた。
スマホからQRコードを読み込んでWebサイトにアクセス。
割と近代的なWeb型ECサイトが作られてて使いやすかった。やるなぁ。
とりあえず注文してみるテスト。
p.s.
お。ちゃんと届いたww わりと好印象。
「緊急事態宣言」延長を正式決定 31日まで
tag: 武漢肺炎
うーん。大事になってきたなぁ。
ソフトバンク光やNTTで大規模な通信障害発生か?「繋がらない」の声相次ぐ
ソフトバンク光の場合はDNSが落ちてるっぽいので 8.8.8.8 にすると色々使えるとかなんとか。
地震もあったし色々あるなぁ。
GW終わったー
今年は完全な引きこもりだったw
市内から一歩も出てないゾ
休み中の成果はUbuntu 20.04 LTS が出たのでvagrant上でちと環境整えてみたのと、MSYS2 + VcXsrv + ssh -Y で画面飛ばしの準備したくらいかな。
Raspberry Pi 4 3号機のUbuntu 1910から2004にアップグレード ... 失敗w
tag: raspberrypi4
ウチのラズパイ3号機はlinux/arm64を動かすためにUbuntu 1910を入れていたのだが、 Ubuntu 20.04 LTS for Raspberry Pi が出たからアップグレードできるでー、 と表示が出たので以下のコマンドを入力してみる。
do-release-upgrade
さて。上手くいくかな?
おっと。/etc/ssh/sshd_config に変更が入ってるけど、どっちを使う?の所でキー入力不可能になった。
推定だが、アップグレード中放置していたのでサスペンドに陥って復帰できなかったものと思われる。
ここで電源オフ→電源オンしたら以下の画面が出たww
あれっ!何かおかしいです。 問題が発生して、システムの復帰ができません。システム管理者に連絡してください
オワタ・・・\(^o^)/
さて、Ubuntu 20.04 for Raspberry Pi 4 のイメージのダウンロードからはじめようか。
RaspBerry Pi 4 3号機に Ubuntu 20.04 (64bit)をインストール
tag: raspberrypi4
手順自体は Ubuntu 19.10 64bit版をインストールする時と違いは無かった。
というわけで、ラズパイ3号機はUbuntu 20.04 LTSになった。
問題点は、サスペンドになるとキーボードやマウスを操作しても復帰しないこと。(これは 19.10 からそうだった)
ラズパイは電源ボタンとかサスペンドボタンとか無いので仕方ない。
do-release-upgrade によるアップデートの時は、新OS(というか下で設定するgdm)はサスペンド有り設定で入るので、サスペンドに落ちて失敗する。
アップグレード時はgdm落としてからやろうというのが教訓かな。
Ubuntu 20.04 xubuntu-desktop (gdm) 自動サスペンドの解除
tag: ubuntu, gnome, gdm, raspberrypi4
設定ファイルは以下。
ファイルの末尾付近のAutomatic suspendに以下の2行を追記する。
sleep-inactive-ac-timeout=0 sleep-inactive-battery-timeout=0
追加後は以下のような感じ。
# Automatic suspend # ================= [org/gnome/settings-daemon/plugins/power] # - Time inactive in seconds before suspending with AC power # 1200=20 minutes, 0=never # sleep-inactive-ac-timeout=1200 # - What to do after sleep-inactive-ac-timeout # 'blank', 'suspend', 'shutdown', 'hibernate', 'interactive' or 'nothing' # sleep-inactive-ac-type='suspend' # - As above but when on battery # sleep-inactive-battery-timeout=1200 # sleep-inactive-battery-type='suspend' sleep-inactive-ac-timeout=0 sleep-inactive-battery-timeout=0
緊急事態宣言の一部(39県)を解除とのこと
tag: 武漢肺炎
以下は東京都のグラフ。一時期に比較すれば随分減ったように感じるな。
これくらい減ったらまたクラスター対策班の効果が出るかもしれん。
 22,177bytes
  22,177bytes
ただ、フルコンタクトがある夜の街、集まって声を出すライブハウス、集まって体を動かすスポーツジム、大規模遊興施設なんかはいつ再開できるかわからんねこれ。
NTT 東日本 - IPA 「シン・テレワークシステム」の続報
tag: 武漢肺炎
前回の続き。
写真を見るとどう見てもRaspberry Pi 4 Model Bでワロタw
ラズパイのうち25台は豪族(?)が秋葉原の店頭で買い集めたものを無償で貸し出されているらしい。
色々面白い企画で良いと思う。
25日に全面解除を検討
tag: 武漢肺炎
ちょっと予定より早いけど緊急事態宣言は一旦解除する模様。
さて、どうなるかな?
Windows 10, vagrant 2.2.9, virtualbox 6.1.8, ubuntu/focal64 が起動しなくなったゾ
tag: vagrant, virtualbox
centos/7, FreeBSD-12.1-RELEASEはvagrant経由で起動できる。うーん。謎。
virtualbox 6.1.8がマズイのかしら。
mstdn.jp鯖終了
tag: mastodon
mstdn.jp鯖サービス終了のお知らせ。
日本国内だと開示請求や訴訟対応の対策コストが高いので無料のSNSサーバは置けないってことかな。
首相表明「緊急事態宣言を全面解除」
tag: 武漢肺炎
緊急事態宣言は日本全国で解除とのこと。
東京と神奈川と北海道では微妙に感染拡大してる様子なのでどうなるかまだわからんね。
これからはクラスター狩りを中心に行うのだろうけど、ここで感染拡大の原因になった業種(バス団体旅行とか屋形船とかライブハウス)は業界ごと焼かれかねないので、おっかない展開もあり得る。
【8割おじさん西浦教授に聞く】新型コロナの実効再生産数のすべて
tag: 武漢肺炎
R言語を使って解析しとるんやね。ソースコードとかGitに上がっているらしい。見てもわからんけどw
実効再生産数R(t)の逆算結果が出るのが感染日から18日遅れになってしまう(潜伏期間、発症〜病院に行くまでの時間、診断確定までの時間、集計時間)のは仕方ないけど、ほぼ3週間放置してたら感染爆発手遅れになるのが課題。
3月くらいの欧州では、累積患者数倍化時間(2〜3日)が良く使われていて、これは反応が早いから急ぎで対策打たないといけないことを示す兆候として便利。
実効再生産数R(t)の逆算では、不顕性感染率が時間によらず一定の定数ならば打ち消すように数式が作られているので、新型コロナみたいに病院に行くほど重症にならない人が5割くらいいてもOK。
今週の確定患者数/先週の確定患者数*とある係数で、大雑把に実効再生産数R(t)みたいな評価値を計算するのも速報性が高くて良い。
8GBのRAM搭載で64ビット対応のRaspberry Pi 4が登場、標準OSも64ビット版がリリース
tag: raspberrypi4
お。8GB版か〜。これは良いかも。
Raspbian OS も64bit版が来たか。これでUbuntu 64bitを入れてもいいしRaspbianOS 64bitを入れても良くなったね。