Arch BSDをVirtualBoxにインストールする

bootstrap pkgsrc on Debian GNU/kFreeBSDをしようとしていて、
細かい所で良く分からない部分はあるものの、だいたい使えるように
なって来た。

けれども、Debian GNU/kFreeBSDだけを対象にするのはちょっと
残念かもしれないと思う。他にもGentoo FreeBSDとかArch BSDとか、
FreeBSDを利用するプロジェクトはあるので、それも似た構造であれば
サポートするようにしたい。

Gentoo FreeBSDは、http://wiki.gentoo.org/wiki/Gentoo_FreeBSD に、
SONAMEの違いくらいしか違いがないと書いてある。
つまりFreeBSDのlibcを使っていると言うことのようである。

Arch BSDについては、何も情報がないので、実際に試してみることにした。

私の仮想マシンはメモリーが少ないので、ZFSなんて無理なので、UFSで設定する。
基本的には、Official Arch BSD Install Guide
http://wiki.archbsd.net/index.php/Official_Arch_BSD_Install_Guide
の通りにすれば良いのだが、これがSCSIディスク(da)を前提に書いているのと、
root filesystemの指定が追加で必要だったので、以下に手順をまとめておく。

まずは、ISOイメージをダウンロードする。Arch BSDのオフィシャルサイトには
書いてないようだったが、2013-05-03版が出ているので、以下のURLから
取得する。

ftp://archbsd.net/iso/2013-05-03/ArchBSD-x86_64-03052013.iso

VirtualBoxは、OS:FreeBSD(64bit)、IO APIC有効、ハードウェアクロックをUTCにする
を有効にし、今回はストレージコントローラーは、SATA AHCIにした。
IDEでも以下の記述は当てはまるのではないかと思う。
ネットワークアダプターは、Intel PRO 82540EMにしたが、何でも問題なく
動くだろう。

適当な大きさのHDDファイルを用意して、ISOイメージから起動する。

ユーザー名: root、パスワードなしでログインする。

私は、US配列のキーボードを使うので、kdbmapとかは使わないし、
framebufferも使わないので、vidcontrolも触らない。

ディスクをGPTで設定する。
# gpart create -s gpt ada0

ブートローダーの置き場になると思われる領域を準備する。
これが、/dev/ada0p1になる。
# gpart add -s 64k freebsd-boot ada0

スワップ領域を1GB用意する。
これが、/dev/ada0p2になる。
# gpart add -s 1g -t freebsd-swap ada0

ルートパーティションを用意する。大きさは残り全部。
これが、/dev/ada0p3になる。
# gpart add -t freebsd-ufs ada0

ブートローダーをインストールする。ada0p1にインストールされるようだ(-i 1)。
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0

ルートパーティションada0p3をnewfs(フォーマット)する。
# newfs -U -j -L root /dev/ada0p3

スワップを有効にする。
# swapon /dev/ada0p2

ベースシステムをインストールするために、仮に/mntにmountする。
# mount /dev/ada0p3 /mnt

DHCPサーバーにIPアドレスとかを割り当ててもらう。
自宅が手動固定IP制になっていたら、DHCP/DDNS環境を整えると良い。
# dhclient em0

ベースシステムをインストールする。
# pacstrap /mnt base

chrootして、環境を整える。
# chroot /mnt


root filesystemを指定する。ここはOfficial Install Guideにはないが
私には必要だった。
/boot/loader.confに、以下のように書き足す。
# vi /boot/loader.conf
vfs.root.mountfrom="ufs:/dev/ada0p3"

/etc/fstabを以下のように書く。
# vi /etc/fatab
/dev/ada0p2 none swap sw 0 0
/dev/ada0p3 / ufs rw 1 1

タイムゾーンを合わせる。以下は日本の場合。
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

ホスト名を設定する。
# vi /etc/conf.d/hostname
hostname="yourhostname"

rootのパスワードを設定する。
# passwd

そのままrebootコマンドでリブートしても良いし、chrootから抜けて、
/mntをumountしてrebootしても良い。

で、結局のところ、Arch BSDはGentoo FreeBSDのようなもので、glibc/eglibcを
使ってはいないようである。

plgarc/wip/llama.cppでpkgsrcのBLASサポートを探る

この記事は、 NetBSD Advent Calendar 2024 の13日目の記事です。 llama.cppを使ってみる 以前に、 NetBSD/amd64でllama.cppを使ってみる という記事で llama.cpp を使ってみていました。 あれか...