NetBSD/amd64-current on HP Spectre x360 ae019TU (インストール編)

この記事は、 NetBSD Advent Calendar 2018の5日目の記事です。

はじめに

2018年7月のJapan NetBSD Users' GroupのBoFの際には、いろいろ動かないものばかり だったのだが、2018年12月現在では、HP Spectre x360 13-inch ae019TUも多くの 機能がちゃんと動くようになっている。 今日から2日間は、HP Spectre x360 13-inch ae019TUで、快適にNetBSDデスクトップを 使用する方法について書いていきたい。 ちなみにこの記事は、おおしまさんのU-EFI bootで起動するNetBSD USBメモリを作ってみるの記事を 読んだ方にはほぼ不要だと思います。

NetBSDのインストール

このマシンには、当然のようにDVDドライブなどは内蔵されていない。 それにUEFIな環境で使用したい。 と言うことで、今日の時点で最新なNetBSD-8.99.26-amd64-uefi-install.img.gznycdn.NetBSD.orgから ディスクイメージをダウンロードして USBスティックに書き込み、インストールに使用することにする。 NetBSDの環境があれば、そこでddコマンドで書き込むのが良いのだが、 今回は、Windows 10 Proの環境で書き込んでみた。rawrite32.exeを使う。 rawrite32.exeは、a href="https://www.netbsd.org/~martin/rawrite32/"> lNetBSD.orgにあるmartin@のウェブページからダウンロードすることができる。 ちなみに、既にGPTなパーティショニングがされていると、rawrite32.exeでは どうやってもエラーになってディスクイメージを書き込めないことがある。 どうにかしたいのだが、何も行動できていない。

実際のインストールは、インストーラーであるsysinstは使用しなかった。 おそらくsysinstは、GPTパーティショニングな環境へのインストールに まだ対応していないのではないかと思う。これについても何もできていない。 今回は、sysinstが起動したら、すぐにCtrl-Cを押して シェルに移行し、そこでインストールを行なった。 このマシンのストレージはNVMeなSSDであり、ld0として認識される。 容量は1 TBである。 以下のようにしてパーティションを設定する。

# gpt create ld0
# gpt add -s 128m -t efi -l EFI ld0
# gpt add -s 50G -t ffs -l ROOT ld0
# gpt add -s 32G -t swap -l SWAP ld0
# gpt add -s 250G -t ffs -l USR  ld0
# gpt -t ffs -l HOME ld0
以下のようにそれぞれのパーティションをnewfsする。 ここで、ld0に作成した各GPTパーティションはdk2移行に 割り振られているものとする。今のdk2が実際に使用する際には dk0となる。
# newfs_msdos /dev/rdk2
# newfs -O2 /dev/rdk3
# newfs -O2 /dev/rdk4
# newfs -O2 /dev/rdk5
# newfs -O2 /dev/rdk6
# gpt set -a bootme -i 2 ld0
ここで注意すべき点があるとすれば、gpt biosbootコマンドを使ってはいけない ということである。 これを実行してしまうと、このマシンではUEFIでもCSMでも起動しなくなる (そもそも純粋なUEFIモードというのが、このマシンのBIOS設定では不可能なようであるが)。 以下のようにUEFIブートローダーを配置する。
# mkdir /efiboot
# mount_msdos /dev/dk2 /efiboot
# mkdir -p /efiboot/EFI/boot
# cp /usr/mdec/boot*.efi /efiboot/EFI/boot
# umount /efiboot
これにより、bootia32.efibootx64.efiが配置され、 bootx64.efiが使用されることとなる。 あとは、パーティションを実際の使用時と同じ構造で/mnt以下に にmountして例えば以下のように配布物を展開しておく。
# tar zxvfp base.tgz -C /mnt
# tar zxvfp etc.tgz -C /mnt
ここで、他の配布物も展開しておいて良いが、X Window Systemに関しては、 xsrcからビルドしたものでは快適なデスクトップ環境は実現できないので、 X Window System関連のものは展開しない。 忘れてはいけないのが、/dev以下のノードの作成である。 このタイミングでちゃんとやっておかないとtmpfsが使われてしまい。 直すのが面倒である。 他にも必要なものを準備しておく。
# cp / mnt/usr/mdec/boot /mnt
# mkdir /mnt/kern
# mkdir /mnt/proc
# cd /mnt/dev
# ./MAKEDEV all
後は設定ファイル類を準備すれば良い。
# vi /etc/fstab
NAME=ROOT /  ffs rw,log 1 1
NAME=SWAP none  swap sw,dp 0 0
NAME=USR /usr  ffs rw,log 1 1
NAME=HOME /home  ffs rw,log 1 1
kernfs  /kern  kernfs rw
ptyfs  /dev/pts ptyfs rw
procfs  /proc  procfs rw
tmpfs  /var/shm tmpfs rw,-m1777,-sram%25

# vi /etc/rc.conf
(snip)
rc_configured=YES
(snip)

ここまで来れば、後はいつものNetBSD環境である。 dmesgは、dmesgdに投稿してある。 一つ残念なこととして、USB Type-CポートがUSB 3のデバイスを認識しないというのがある。 どうにか直したいのだが…。

明日は、pkgsrcpkgsrc-wipを使って(私的に)快適なデスクトップ環境を構築する話を書きます。

Comments

Popular posts from this blog

#5000へCメールを送れないau端末でezweb.ne.jpの電子メールアドレスをIMAP4/SMTPで扱う方法

PostgreSQLのOracle Foreign Data WrapperをWindowsで使う

Vaio Pro 11/13用のサードパーティーのACアダプター