Windows 10を初期インストールした時に、ユーザ名/パスワードを入力しないで、いきなりデスクトップ画面を出したい、ということがある。
その場合の設定は「代わりにドメインに参加する」を選ぶ

なにか適当にユーザ名を指定する。
パスワードを入力せずに「次へ」を選ぶ
これでOK
技術的なことをメインにいろいろ書いてくサイトです
sueboさんがうっかり落札してしまった14台のタッチパネル一体型PCを2台譲ってもらった。
台数が多くて気が付かなかったけど
— suebo@弱々メンタル (@cd1086) April 9, 2021
14台有るはずが、10台しか無かった。
頼まれてももう要らんけど…
←オークションの写真 箱から出して確認した結果→ pic.twitter.com/X7nQzPh52D
現状は全台はけた、ということですが、この機種およびマザーボードについてぐぐっても情報がほとんど出てこないので、ここにメモとして残しておきます。
目次
スペックについて
中をあける方法
USBメモリからの起動について
Windows 10の起動状況
Ubuntu 20.04の起動状況
ChromeOSの起動状況
BIOSアップデートについて
マザーボードはMSI MS-98I8 で、この一体型PCは下記の様なスペックになっている。
Celeron N3160
DDR3x1 / Mini-PCIex1 / mSATAx1 / SATAx1 / DPx1 / HDMIx1 / GbEx2
10インチ SVGA(800×600)+タッチパネル
Windows 10 IoT Enterprise 2016 LTSB ライセンスシール
メモリ/ディスクは搭載なしだが、CF/SATA変換ボードと2.5インチHDD接続用ケーブルが残存
電源は12V単一。一般的なコネクタではなく電線を直接入力するタイプ
ただ、マザーボード自体の仕様としては9V~36Vと書いてある
抜けたりするのを防ぐため中のケーブルのコネクタ部分が固められています。
とりあえず中身を確認するためには、下記のような感じで開けてみてから、その次をどうしていくかを考えた方がいいと思います。
このような感じであけるには以下の赤い丸印のネジを外します。
中をあけたらメモリとディスクなどをいれて単体で動作できるようにしましょう。
BIOSメニューからUSBメモリを選んでもなんか普通のマザーボードと同様にUSBメモリからの起動になりません。(後述のWindows, Ubuntu, ChromeOSで同じ)
起動順序を「UEFI: Built-IN EFI Shell」を一番最初にして起動します。
EFI Shellが起動してくるので、何かキーを押してEFI Shellプロンプトで止めます。
今回はUSBメモリが「fs1」で認識されていたので「fs1:」でドライブを移動したあと、
「efi\boot\bootx64.efi」を実行するとUSBメモリからの起動が開始されます。
下記の写真では「cd efi」「cd boot」でディレクトリ移動してから「bootx64.efi」を実行しています。
なお、このEFI Shellはタブキー補完が効くのでefiを指定する際に「e」を入力したあとにタブキーを押すと「efi」と変換されます。
また、fs1:で移動した後にそこにどんなディレクトリ/ファイルがあるかを確認するには「ls」を実行することで確認出来ます。
なお、USBメモリに startup.nsh というファイルを置いて、「.\efi\boot\bootx64.efi」とかかいておけば自動起動されるんじゃないかなぁとは思います。
参考:拡張ファームウェアインターフェイス (EFI) インテル®の基本手順サーバーボード
Windows 10 IOT ENT 2016 LTSBのプロダクトキーがついていますが、このプロダクトキーが通るのは、「Windows 10 IOT ENT 2016 LTSBメディア」か「Windows 10 ENT 2016 LTSB」だけのようです。「Windows 10 Enterpriseメディア」や「Windows 10 Enterprise 2019 LTSCメディア」では通りませんでした。
「Windows 10 IOT ENT 2016 LTSBメディア」を含めて2016年頃のWindows 10メディアだとデバイスが2個△マークとなりますが、タッチパネル/イーサネット含めて動作しています。
2017年以降のWindows 10 メディアを使ったり、Windows Updateを実行すると、全デバイスが正常に認識されますので、問題はありません。
なお、Windows 10 IOT ENT 2016 LTSBのプロダクトキーを入力してライセンス認証を行った場合、「Windows 10 Enterprise 2016 LTSB」として認識されています。
なお、Windows 10 Enterprise 2016 LTSBのライフサイクル ポリシーはメインストリームが2021/10/12、延長が2026/10/13となっています。
普通にインストールすると、タッチパネル用のドライバが認識されているもののX-Window上でタッチパネル動作を認識できていません。
この問題についてはxserver-xorg-input-evdevをインストールして、xserver-xorg-input-libinputを削除して対応できました。(xinput-calibratorはタッチパネルの位置調整用コマンドxinput_calibratorをインストールするために追加している)
$ sudo apt install xserver-xorg-input-evdev xinput-calibrator
$ sudo apt remove xserver-xorg-input-libinput
これを行った後、再起動するとタッチパネルが動作するようになっていると思います。
Ubuntuのオンスクリーンキーボードは、「設定」の「アクセスビリティ」から設定できますが、最初のログイン画面では動いていないようです。
とりあえず、自動ログインさせてログイン画面をスキップする設定をGUIで行おうとしたところ画面が表示できていない・・・
このため設定ファイル /etc/gdm3/custom.conf を直接編集し、下記の設定を行いました。
[daemon]
AutomaticLoginEnable=yes
AutomaticLogin =ユーザ名
純正ChromeOSのリカバリイメージを元に汎用ChromeOS起動ディスクを作成するbrunchを使ってUSBメモリを作成して起動したもの。
rammus用リカバリイメージを元に作成してあるUSBメモリがあったので起動してみたところ、標準状態でそのままタッチパネルもLineOUTからのオーディオ出力も普通に使える状態で起動してきました。
ただ、Chrome OSは、800×600解像度で使うものではない感じですね・・・
マザーボードの製品ページを開いて少しスクロールすると上側に「Download」リンクが現れ、そこにBIOSアップデートが提供されており、Version 170と書いてある。
ZIPファイルをダウンロードするとバージョンアップ履歴のテキストファイルがあり、Version 170とは、E98I8IMS V1.7ということのようだ
届いたものを確認すると E98I8IMS V1.6となっているので、少し古いバージョンということになっている。
BIOSアップデータはEFIで実行する形式なので、EFI Shellから実行する必要があります。
EFI ShellではFAT32領域しか見れず、NTFSやLinux ext4領域などは使えない、という制約があるので、FAT32でフォーマットしたUSBメモリにBIOSアップデート関連ファイルを展開して使用します。
USBメモリをさして、EFI Shellに入ってから下記のように入力してアップデートを実施します
Shell> fs1:
fs1:\> cd E98I8IMS170
fs1:\> EFUx64.EFI E98I8IMS.170
アップデートが終わったら再起動します。
バージョンを確認するとV1.7に変わったことが確認できます。
Linux上からIPv6アドレスを指定してsshしようとしたら「port 22: Invalid argument」と言われてしまった。
[root@centos8 ~]# ssh root@fe80::250:56ff:fe8f:aba9
ssh: connect to host fe80::250:56ff:fe8f:aba9 port 22: Invalid argument
[root@centos8 ~]#
きちんとpingでは応答あるのに
[root@centos8 ~]# ping -6 fe80::250:56ff:fe8f:aba9 -c 5
PING fe80::250:56ff:fe8f:aba9(fe80::250:56ff:fe8f:aba9) 56 data bytes
64 bytes from fe80::250:56ff:fe8f:aba9%ens192: icmp_seq=1 ttl=255 time=0.246 ms
64 bytes from fe80::250:56ff:fe8f:aba9%ens192: icmp_seq=2 ttl=255 time=0.269 ms
64 bytes from fe80::250:56ff:fe8f:aba9%ens192: icmp_seq=3 ttl=255 time=0.250 ms
64 bytes from fe80::250:56ff:fe8f:aba9%ens192: icmp_seq=4 ttl=255 time=0.303 ms
64 bytes from fe80::250:56ff:fe8f:aba9%ens192: icmp_seq=5 ttl=255 time=0.316 ms
--- fe80::250:56ff:fe8f:aba9 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 135ms
rtt min/avg/max/mdev = 0.246/0.276/0.316/0.035 ms
[root@centos8 ~]#
なんでかと思ったら、sshコマンドでは、sshコマンドを実行したホストのどのインタフェースを使ってアクセスするのかを明示的に指定する必要があったようだ。
[root@centos8 ~]# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:9c:2a:d1 brd ff:ff:ff:ff:ff:ff
inet 172.17.44.49/16 brd 172.17.255.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 xxxx:xxx:xxxx:4700:2788:3aad:4bfa:6715/64 scope global dynamic noprefixroute
valid_lft 2172237sec preferred_lft 185037sec
inet6 fe80::2c85:a948:cd5:d5e1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@centos8 ~]#
つかうネットワークインタフェースは「ens192」なので、IPv6アドレスの後ろに「%ens192」をつけて実行
[root@centos8 ~]# ssh root@fe80::250:56ff:fe8f:aba9%ens192
Password:
Last login: Wed Apr 7 16:24:37 2021 from fe80::2c85:a948
Oracle Corporation SunOS 5.11 11.3 September 2015
root@solaris11:~# exit
logout
Connection to fe80::250:56ff:fe8f:aba9%ens192 closed.
[root@centos8 ~]#
問題無く接続できました。
Solaris10だったら以下のファイルあたりの変更でやってた
/etc/nodename
/etc/hostname.ネットワークインタフェース名
/etc/hosts
/etc/resolv.conf
/etc/nsswitch.conf
Solaris11だとファイルを編集するのではなく、コマンドで変更する形になる
資料:Oracle® Solaris 10 から Oracle Solaris 11.3 への移行「Oracle Solaris 11 でのネットワークの構成」
# svccfg -s svc:/system/identity:node setprop config/nodename=ホスト名
# svcadm refresh svc:/system/identity:node
# svcadm restart svc:/system/identity:node
# vi /etc/hosts で関係するホスト名を修正
# reboot
refreshのところは「svcadm refresh node」でも大丈夫説がある模様
ネタ元 IPv4 インタフェースの構成
# ipadm show-addr
# ipadm show-if
# route -p show
# netstat -rn
# dladm show-phys
# dladm show-link
現在値を消して、新規作成となるが2種類手順がある
アドレス設定のみ削除するもの
# ipadm delete-addr net?/v4
# ipadm create-addr -T static -a local=<IPアドレス>/<プレフィックス> net?/v4
ネットワーク定義全体を削除するもの
# ipadm delete-ip net?
# ipadm create-ip net?
# ipadm create-addr -T static -a local=<IPアドレス>/<プレフィックス> net?/v4
# route -p add default <IPアドレス>
# svccfg -s network/dns/client
svc:network/dns/client> listprop config
<略>
svc:network/dns/client> quit
#
(ネタ元 DNS クライアントを有効にする方法 )
# svccfg -s network/dns/client
svc:/network/dns/client> setprop config/search = astring: ("<ドメイン名>" "<ドメイン名>")
svc:/network/dns/client> setprop config/nameserver = net_address: (<IPアドレス> <IPアドレス>)
svc:/network/dns/client> setprop config/options = timeout:1
svc:/network/dns/client> select network/dns/client:default
svc:/network/dns/client:default> refresh
svc:/network/dns/client> quit
#
# svcadm enable network/dns/client
# cat /etc/nsswitch.conf
# svccfg -s system/name-service/switch
svc:/system/name-service/switch> listprop config
<略>
svc:/system/name-service/switch> quit
#
# svccfg -s system/name-service/switch
svc:/system/name-service/switch> setprop config/host = astring: "dns files [TRYAGAIN=0]"
svc:/system/name-service/switch> select system/name-service/switch:default
svc:/system/name-service/switch:default> refresh
svc:/system/name-service/switch:default> quit
# svcadm enable system/name-service/switch
# svcadm refresh name-service/switch
Oracle公式に書いてあるDNSサーバ設定手順例
# svccfg -s dns/client setprop config/nameserver=net_address: 192.168.1.1
# svccfg -s dns/client setprop config/domain = astring: "foohost.org"
# svccfg -s name-service/switch setprop config/host = astring: "files dns"
# svcadm refresh name-service/switch
# svcadm refresh dns/client
telnet は /etc/default/login の「CONSOLE=/dev/console」をコメントにする
sshは/etc/ssh/sshd_configに「PermitRootLogin yes」を設定して「svcadm restart ssh」
Microsoftは従来からLinuxのいくつかのディストリビューション向けにバイナリパッケージを配布するレポジトリサーバ https://packages.microsoft.com/ を公開している。
たとえば、PowerShellを使いたい場合は「Linux への PowerShell のインストール」の手順を行って設定していた。
このたび、MicrosoftからOpenJDK 11のプレビュー版提供が開始された。「Announcing Preview of Microsoft Build of OpenJDK」
「Microsoft Build of OpenJDK」を見ると「Linux Installers for OpenJDK 11」という手順が公開されており、これを見ると、Debian 9と10、Ubuntu 18.04以降、CentOS8で従来から提供されているMicrosoftプロダクトレポジトリにおいて、msopenjdk-11の提供が始まったように見える。
うちのCentOS7環境はPowerShellを使える様にしているので使えるはず!と「yum search msopenjdk」を実行してみると見付からない・・・
設定されているレポジトリファイルはPowerShell手順にあるようにRHEL7のものだしなぁ・・・
# curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
・・・OpenJDKの方のCentOS7手順を見てみる。
# sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
取得しているディレクトリが https://packages.microsoft.com/config/rhel/7/ ではなく https://packages.microsoft.com/config/centos/7/ に変更されている。
というわけで、レポジトリファイルを変更して再実行!
無事検索されるようになりました。
が・・・よく見ると、CentOS7レポジトリでは「powershell」はなく「powershell-preview」というパッケージのみ提供な模様。(rhel7ではpowershell,powershell-lts,powershell-previewが提供されている)
CetnOS7ユーザは注意が必要なようです。
とはいえRHEL7/CentOS7ユーザはRedHat提供のOpenJDK 11が使えますけどね・・・(java-11-openjdk)。「OpenJDK RPMs for RHEL 7」「第2章 RED HAT ENTERPRISE LINUX での OPENJDK 11 のインストール」
RHEL8/CentOS8についても同様で、OpenJDK 11をjava-11-openjdkというパッケージ名で提供しており、また、java-latest-openjdkでOpenJDK 16も提供しているので除外されているようですね。