KVMのpara virtualドライバであるところのvirtioドライバがあればきっといいのだろうと思って探してみると、それっぽいものを発見。
https://github.com/grigale/solaris-virtio
一昨日pkgコマンドを触ったばかりの人間には妙にハードルが高いが、さっそく入れてみる。
Linuxでいうところのmakeしてinsmodするくらいのノリでいけるんだろうと期待。
まずコンパイラがないので入れる。きっとSun Studioとやらが必要だ。
$ pkg search sun studio
sunstudio12u1というのが見つかったので、インストール。
$ pkg install sunstudio12u1
ccコマンドが使えるようになった。
そしてコンパイル。
$ tar zxvf grigale-solaris-virtio-07c22ec.tar.gz # Solarisのくせにzオプションが使える
$ cd grigale.../usr/src/uts/common/io/virtio/
$ make
$ make install
あっさり/usr/kernel/drv/amd64とかに入った感。
しかしドライバをシステムに認識させないといけない。
http://kohju.justplayer.com/Tips_Solaris_OpenSolarisOS_forlinuxuser_adddevice.html
virtioのNICのIDがなんだかわからなかった(prtconfの結果を読むのが面倒だった)ので
他のLinuxマシンでlspciするというチートを使った。
# lspci
~~
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
~~
# lspci -n
~~
00:03.0 0200: 1af4:1000
~~
きっとpci1af4,1000でいけるに違いない。
# sudo /usr/sbin/add_drv -n -v -i "pci1af4,1000" virtionetリブートしろと言われたのでリブートする。
Reboot client to install driver.
Driver (virtionet) installed.
$ sudo dladm show-link
LINK CLASS MTU STATE BRIDGE OVER
e1000g0 phys 1500 up -- --
e1000g1 phys 1500 up -- --
virtionet0 phys 1500 unknown -- --
キター!
$ sudo ifconfig virtionet0 plumb
ifconfig: cannot plumb virtionet0: Could not open DLPI link
だめでした。
ちなみにprtconf -vの当該部分