daemonfreaks.com

FreeBSDでeGPUを使う

posted by jun-g at Sun, 28 May 2023 10:30 JST

先日購入したIntel NUC13 Pro のセットアップ続き、その2。

NUC13はThunderbolt4をサポートしていて、かつFreeBSDもThunderboltをサポートしていて、そして手元に都合良くNVIDIA RTX3060の入ったeGPUがあります。ということで内蔵GPUがサポートされるまでこれを使います。

まずは準備。ドライバーをインストールして起動時にカーネルモジュールを読み込む用にセット。

$ su -
Password:
# pkg install nvidia-driver
...
# sysrc kld_list=nvidia-modeset

再起動した後のdmesg。

# dmesg|grep nvidia
nvidia1: <NVIDIA GeForce RTX 3060> on vgapci1
vgapci1: child nvidia1 requested pci_enable_io
vgapci1: child nvidia1 requested pci_enable_io
nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  515.86.01  Wed Oct 26 08:52:34 UTC 2022

eGPUは無事に認識されました。が、コンソールは引き続きNUC13本体から接続したモニター上に表示されてます。

次にXの設定。先日作ったscfbを使う設定ファイルを退避して起動してみます。

# cd /usr/local/etc/X11/xorg.conf.d
# mv driver-scfb.conf driver-scfb.conf.bak
# startx

が、起動しません…。 Handbookのビデオカードの設定ページ を読むと:

1つ以上のビデオカードが存在する場合には、 BusID 行のコメントを外し、 希望するカードを選択するように設定できます。 ビデオカードバス ID は、 pciconf -lv | grep -B3 display で表示できます。

と書いてありましたので、その通りにします。

# pciconf -lv | grep -B3 display
vgapci0@pci0:0:2:0: class=0x030000 rev=0x04 hdr=0x00 vendor=0x8086 device=0xa7a0 subvendor=0x8086 subdevice=0x3037
    vendor     = 'Intel Corporation'
    device     = 'Raptor Lake-P [Iris Xe Graphics]'
    class      = display
--
vgapci1@pci0:4:0:0: class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de device=0x2504 subvendor=0x10de subdevice=0x2504
    vendor     = 'NVIDIA Corporation'
    device     = 'GA106 [GeForce RTX 3060 Lite Hash Rate]'
    class      = display

この情報を使ってX用の以下のファイルを作成。

# cat /usr/local/etc/X11/xorg.conf.d/driver-nvidia.conf
Section "Device"
    Identifier    "Device0"
    Driver        "nvidia"
    VendorName    "NVIDIA COrporation"
    BoardName     "NVIDIA GeForce RTX 3060"
    BusId         "PCI:4:0:0"
EndSection

でstartxすると、無事にXが起動し、eGPUに接続したモニター上に表示されました!

続く…。

Raptor LakeのIris Xeグラフィックスは13Rのdrm-kmodではまだサポートされてない

posted by jun-g at Sat, 27 May 2023 17:30 JST

先日購入したIntel NUC13 Pro のセットアップ続き。

書きたかったことはタイトルの通りで、1世代前のAlder LakeのGPUも まだサポートされてなさそう

14-CURRENTだと Alder Lakeはサポートされていそう

とりあえずDRMは一旦諦めて、以下のファイルを作成してXは起動できるようになりました。

$ cat /usr/loca/etc/X11/xorg/conf.d/driver-scfb.conf
Section "Device"
    Identifier    "Card0"
    Driver        "scfb"
EndSection

続く…。

Intel NUC13 Pro購入

posted by jun-g at Mon, 22 May 2023 09:50 JST

一昨年にCPUを入れ替えつつ 2014年に作った自作PCをずっと使っていましたが、ATXケースが大きく場所を取るのでもう少し省スペースなPCにしたいなと思っていたところ、 IntelのNUC 13 Pro が売っていたので購入しました。

購入したのはCore i7 CPUが載ったキットなので、あわせてメモリやストレージも購入しました。スペックはこんな感じです。

キット Intel NUC13ANHi7
CPU Intel Core i7 1360P
メモリ Kingston FURY Impact DDR4-3200 32GBx2
NVMe Western Digital WD_BLACK SN850X 1TB
SSD Samsung SSD 870 QVO 4TBi

13世代CoreなのでメモリはDDR5が良かったですが、そうすると今のところNUC 13 Extremeしか選択肢がなく、Extremeはちょっと大きすぎるのでそこは妥協しました。

実際手元に届いて、想像したよりももっと小さくてビックリしました。旧PCのケースはWINDy製でずっと使うつもりでしたが、こんなに小さくて済むならタワー型PCはもうイラネという感じ…。


さて、キットなのでOSも自分で選んでインストールする必要があります。

最近はもっぱらWindows11(+WSL)のラップトップで生活しているし、仕事ではDockerやK8S使う機会も多いので、デスクトップが使えつつコンテナも動くOSが良いですね。

…ということでFreeBSD 13.2をインストールしました。要件は満たしているはず。

dmesgはこんな感じです。

Copyright (c) 1992-2021 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 13.2-RELEASE releng/13.2-n254617-525ecfdad597 GENERIC amd64
FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)
VT(efifb): resolution 3840x2160
CPU: 13th Gen Intel(R) Core(TM) i7-1360P (2611.20-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0xb06a2  Family=0x6  Model=0xba  Stepping=2
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x7ffafbff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x121<LAHF,ABM,Prefetch>
  Structured Extended Features=0x239c27eb<FSGSBASE,TSCADJ,BMI1,AVX2,FDPEXC,SMEP,BMI2,ERMS,INVPCID,NFPUSG,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,PROCTRACE,SHA>
  Structured Extended Features2=0x984007bc<UMIP,PKU,OSPKE,WAITPKG,GFNI,VAES,VPCLMULQDQ,RDPID,MOVDIRI,MOVDIR64B>
  Structured Extended Features3=0xfc18c410<FSRM,MD_CLEAR,IBT,IBPB,STIBP,L1DFL,ARCH_CAP,CORE_CAP,SSBD>
  XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
  IA32_ARCH_CAPS=0x88fd6b<RDCL_NO,IBRS_ALL,SKIP_L1DFL_VME,MDS_NO,TAA_NO>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID,VID,PostIntr
  TSC: P-state invariant, performance statistics
real memory  = 68717379584 (65534 MB)
avail memory = 66327597056 (63254 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <INTEL NUCxi7A5>
FreeBSD/SMP: Multiprocessor System Detected: 16 CPUs
FreeBSD/SMP: Non-uniform topology
random: registering fast source Intel Secure Key RNG
random: fast provider: "Intel Secure Key RNG"
random: unblocking device.
ioapic0 <Version 2.0> irqs 0-119
Launching APs: 1 9 2 13 7 5 3 10 8 6 15 12 14 11 4
random: entropy device external interface
kbd0 at kbdmux0
efirtc0: <EFI Realtime Clock>
efirtc0: registered as a time-of-day clock, resolution 1.000000s
smbios0: <System Management BIOS> at iomem 0x59454000-0x5945401e
smbios0: Version: 3.5, BCD Revision: 3.5
aesni0: <AES-CBC,AES-CCM,AES-GCM,AES-ICM,AES-XTS,SHA1,SHA256>
acpi0: <INTEL>
acpi0: Power Button (fixed)
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 19200000 Hz quality 950
Event timer "HPET" frequency 19200000 Hz quality 350
Event timer "HPET1" frequency 19200000 Hz quality 340
Event timer "HPET2" frequency 19200000 Hz quality 340
Event timer "HPET3" frequency 19200000 Hz quality 340
Event timer "HPET4" frequency 19200000 Hz quality 340
Event timer "HPET5" frequency 19200000 Hz quality 340
Event timer "HPET6" frequency 19200000 Hz quality 340
Event timer "HPET7" frequency 19200000 Hz quality 340
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1808-0x180b on acpi0
acpi_ec0: <Embedded Controller: GPE 0x6e> port 0x62,0x66,0x68,0x6c,0x6a,0x6e on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
vgapci0: <VGA-compatible display> port 0x3000-0x303f mem 0x6123000000-0x6123ffffff,0x4000000000-0x400fffffff at device 2.0 on pci0
vgapci0: Boot video device
pcib1: <ACPI PCI-PCI bridge> at device 6.0 on pci0
pci1: <ACPI PCI bus> on pcib1
nvme0: <Generic NVMe Device> mem 0x84400000-0x84403fff at device 0.0 on pci1
pcib2: <ACPI PCI-PCI bridge> at device 7.0 on pci0
pcib3: <ACPI PCI-PCI bridge> at device 7.2 on pci0
xhci0: <XHCI (generic) USB 3.0 controller> mem 0x6124190000-0x612419ffff at device 13.0 on pci0
xhci0: 32 bytes context size, 64-bit DMA
usbus0 on xhci0
usbus0: 5.0Gbps Super Speed USB v3.0
pci0: <serial bus, USB> at device 13.2 (no driver attached) pci0: <serial bus, USB> at device 13.3 (no driver attached)
xhci1: <Intel Alder Lake USB 3.2 controller> mem 0x6124180000-0x612418ffff at device 20.0 on pci0
xhci1: 32 bytes context size, 64-bit DMA
usbus1 on xhci1
usbus1: 5.0Gbps Super Speed USB v3.0
pci0: <memory, RAM> at device 20.2 (no driver attached)
pci0: <network> at device 20.3 (no driver attached)
pci0: <serial bus> at device 21.0 (no driver attached)
pci0: <serial bus> at device 21.1 (no driver attached)
pci0: <simple comms> at device 22.0 (no driver attached)
ahci0: <AHCI SATA controller> port 0x3090-0x3097,0x3080-0x3083,0x3060-0x307f mem 0x84500000-0x84501fff,0x84503000-0x845030ff,0x84502000-0x845027ff at device 23.0 on pci0
ahci0: AHCI v1.31 with 1 6Gbps ports, Port Multiplier not supported
ahcich1: <AHCI channel> at channel 1 on ahci0
pcib4: <ACPI PCI-PCI bridge> at device 29.0 on pci0
pci2: <ACPI PCI bus> on pcib4
igc0: <Intel(R) Ethernet Controller I226-V> mem 0x84200000-0x842fffff,0x84300000-0x84303fff at device 0. 0 on pci2
igc0: Using 1024 TX descriptors and 1024 RX descriptors
igc0: Using 4 RX queues 4 TX queues
igc0: Using MSI-X interrupts with 5 vectors
igc0: Ethernet address: 48:21:0b:56:9b:93
igc0: netmap queues/slots: TX 4/1024, RX 4/1024
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
hdac0: <Intel Raptor Lake-P HDA Controller> mem 0x61241b0000-0x61241b3fff,0x6124000000-0x61240fffff at device 31.3 on pci0
pci0: <serial bus> at device 31.5 (no driver attached)
acpi_button0: <Sleep Button> on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_button1: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_syscontainer0: <System Container> on acpi0
acpi_syscontainer1: <System Container> on acpi0
atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0
atrtc0: Warning: Couldn't map I/O.
atrtc0: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
atrtc0: non-PNP ISA device will be removed from GENERIC in FreeBSD 14.
hwpstate_intel0: <Intel Speed Shift> on cpu0
hwpstate_intel1: <Intel Speed Shift> on cpu1
hwpstate_intel2: <Intel Speed Shift> on cpu2
hwpstate_intel3: <Intel Speed Shift> on cpu3
hwpstate_intel4: <Intel Speed Shift> on cpu4
hwpstate_intel5: <Intel Speed Shift> on cpu5
hwpstate_intel6: <Intel Speed Shift> on cpu6
hwpstate_intel7: <Intel Speed Shift> on cpu7
hwpstate_intel8: <Intel Speed Shift> on cpu8
hwpstate_intel9: <Intel Speed Shift> on cpu9
hwpstate_intel10: <Intel Speed Shift> on cpu10
hwpstate_intel11: <Intel Speed Shift> on cpu11
hwpstate_intel12: <Intel Speed Shift> on cpu12
hwpstate_intel13: <Intel Speed Shift> on cpu13
hwpstate_intel14: <Intel Speed Shift> on cpu14
hwpstate_intel15: <Intel Speed Shift> on cpu15
Timecounter "TSC-low" frequency 1305602658 Hz quality 1000
Timecounters tick every 1.000 msec
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
ugen1.1: <Intel XHCI root HUB> at usbus1
uhub0 on usbus1
uhub0: <Intel XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus1
ugen0.1: <Intel XHCI root HUB> at usbus0
uhub1 on usbus0
uhub1: <Intel XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
nvd0: <WD_BLACK SN850X 1000GB> NVMe namespace
nvd0: 953869MB (1953525168 512 byte sectors)
hdacc0: <Realtek ALC256 HDA CODEC> at cad 0 on hdac0
hdaa0: <Realtek ALC256 Audio Function Group> at nid 1 on hdacc0
pcm0: <Realtek ALC256 (Right Analog)> at nid 33 and 25 on hdaa0
Trying to mount root from zfs:root [rw]...
ada0 at ahcich1 bus 0 scbus0 target 0 lun 0
ada0: <Samsung SSD 870 QVO 4TB SVQ02B6Q> ACS-4 ATA SATA 3.x device
ada0: Serial Number S5STNF0W200963X
ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 512bytes)
ada0: Command Queueing enabled
ada0: 3815447MB (7814037168 512 byte sectors)
uhub1: 4 ports with 4 removable, self powered
uhub0: 16 ports with 16 removable, self powered
ugen1.2: <vendor 0x05e3 USB2.0 Hub> at usbus1
uhub2 on uhub0
uhub2: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/32.98, addr 1> on usbus1
Root mount waiting for: usbus1
uhub2: 4 ports with 4 removable, self powered
Root mount waiting for: usbus1
ugen1.3: <Logitech USB Receiver> at usbus1
ukbd0 on uhub2
ukbd0: <Logitech USB Receiver, class 0/0, rev 2.00/24.10, addr 2> on usbus1
kbd1 at ukbd0
ugen1.4: <vendor 0x05e3 USB2.0 Hub> at usbus1
uhub3 on uhub2
uhub3: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/32.98, addr 3> on usbus1
Root mount waiting for: usbus1
uhub3: 4 ports with 4 removable, self powered
ugen1.5: <PFU Limited HHKB-Hybrid> at usbus1
ukbd1 on uhub3
ukbd1: <keyboard> on usbus1
kbd2 at ukbd1
ukbd2 on uhub3
ukbd2: <Multi-Media> on usbus1
kbd3 at ukbd2
ugen1.6: <vendor 0x8087 product 0x0033> at usbus1
Intel(R) Wireless WiFi based driver for FreeBSD
acpi_wmi0: <ACPI-WMI mapping> on acpi0
acpi_wmi0: Embedded MOF found
ACPI: \134AMW0.WQBA: 1 arguments were passed to a non-method ACPI object (Buffer) (20201113/nsarguments-361)
acpi_wmi1: <ACPI-WMI mapping> on acpi0
acpi_wmi1: Embedded MOF found
ACPI: \134_SB.WFDE.WQCC: 1 arguments were passed to a non-method ACPI object (Buffer) (20201113/nsarguments-361)
acpi_wmi2: <ACPI-WMI mapping> on acpi0
acpi_wmi2: Embedded MOF found
ACPI: \134_SB.WFTE.WQCC: 1 arguments were passed to a non-method ACPI object (Buffer) (20201113/nsarguments-361)
iwlwifi0: <iwlwifi> mem 0x61241b4000-0x61241b7fff at device 20.3 on pci0
iwlwifi0: successfully loaded firmware image 'iwlwifi-so-a0-gf-a0-73.ucode'
iwlwifi0: api flags index 2 larger than supported by driver
iwlwifi0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.36
iwlwifi0: loaded firmware version 73.35c0a2c6.0 so-a0-gf-a0-73.ucode op_mode iwlmvm
iwlwifi0: Detected Intel(R) Wi-Fi 6E AX211 160MHz, REV=0x370
iwlwifi0: successfully loaded firmware image 'iwlwifi-so-a0-gf-a0.pnvm'
iwlwifi0: loaded PNVM version 881c99e1
iwlwifi0: Detected RF GF, rfid=0x2010d000
iwlwifi0: base HW address: d4:d8:53:84:1c:7d
ig4iic0: <Intel Alder Lake-P I2C Controller-0> at device 21.0 on pci0
ig4iic0: Using MSI
iicbus0: <Philips I2C bus (ACPI-hinted)> on ig4iic0
ig4iic1: <Intel Alder Lake-P I2C Controller-1> at device 21.1 on pci0
ig4iic1: Using MSI
iicbus1: <Philips I2C bus (ACPI-hinted)> on ig4iic1
iicbus1: <unknown card> at addr 0x36
iicbus1: <unknown card> at addr 0x63
ichsmb0: <Intel Alder Lake SMBus controller> port 0xefa0-0xefbf mem 0x61241bc000-0x61241bc0ff at device31.4 on pci0
smbus0: <System Management Bus> on ichsmb0
wlan0: Ethernet address: d4:d8:53:84:1c:7d
lo0: link state changed to UP
wlan0: ieee80211_new_state_locked: pending ASSOC -> RUN transition lost
wlan0: link state changed to UP
iwlwifi0: No beacon heard and the session protection is over already...
wlan0: link state changed to DOWN
ums0 on uhub2
ums0: <Logitech USB Receiver, class 0/0, rev 2.00/24.10, addr 2> on usbus1
ums0: 16 buttons and [XYZT] coordinates ID=2
uhid0 on uhub2
uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/24.10, addr 2> on usbus1
uhid1 on uhub3
uhid1: <PFU Limited HHKB-Hybrid, class 0/0, rev 1.10/0.01, addr 4> on usbus1

とりあえずHWは一通り認識してくれました。最新デバイスも普通に認識してくれるのでメンテナの皆様には感謝ですね。

Xの設定やデータ移行はこれからなのでボチボチやります。

過去エントリー

PCのCPU交換

posted by jun-g at Mon, 12 Jul 2021 22:43 JST

帰国したら新しいPCでも作るか!と思っていましたが、昨今の半導体需要によるCPU不足、マイニング需要によるビデオカード高騰など、とてもじゃないけどPCを作れる状況でなく、 古くなったデスクトップPC を使わずに生活していましたが、久々にデスクトップPCを起動してみると、メモリも潤沢だし、もう少しこのまま使ってみるか、という気分になりました。

で、まだ使うなら、このままのチップセットでCPUだけ一番速いやつに交換しようと思い調べたところ、LGA1150チップセットの最速CPUは4790Kっぽかったので、早速ヤフオクで注文して交換しました。

…しかし、交換したらPCが起動しなくなりました。電源が入っては落ちてを繰り返す感じ。ああ、面倒臭い、と思いつつ、原因はBIOSのバージョンだろうと予想し、CPUを元に戻してBIOSのバージョンを上げ、再度CPUを入れ替えたら無事に起動しました。

…と喜んだのもつかの間、次はFreeBSDのブートシーケンス中に画面が真っ白になる状態になりました。ググって見つけたページの通り set kern.vty="sc" とすると治りましたが、Xが起動しなくなるのでダメじゃん!と…。

結局、内臓GPUとビデオカードがコンフリクトしていることが原因と書いてあるサイトがあったので、BIOSの設定で内臓GPUをオフにしたところ、無事に起動するようになりました。

うん、PC買い替えたい。

ノートPC新調

posted by jun-g at Thu, 04 Apr 2019 01:50 JST

新年 の日記にも書いたが、以前使っていたノートPCが壊れてしまったので新調した。

以前使っていたのはLonovo X1 Carbonの2017年モデル。2017年10月に買ったものなので1年ちょっとしか使っていなかったが、保証期間が切れており修理代の見積り額が20万円と購入金額より高額だったため修理を断念した。

で、新しく買ったのはLenovo X1 Carbonの2018年モデル…。先代はWindows10 Homeのモデルを買って結局あとからProにアップグレードしたので、今回は最初からProモデルにした。

ZFSに置いているデータを移行

posted by jun-g at Sat, 04 Jan 2014 21:28 JST

新しく作ったPCに旧PCからデータを移行しました。

前準備

旧PCはHDD2台構成で、1つはUFS、もう1つはZFSにしてZFS側にhomeを置いていました。

blackmagic# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad6s1a      2G    772M    1.0G    42%    /
devfs          1.0k    1.0k      0B   100%    /dev
/dev/ad6s1e    3.9G    903M    2.7G    25%    /tmp
/dev/ad6s1f    126G     18G     98G    16%    /usr
/dev/ad6s1d    3.9G    676M    2.9G    19%    /var
procfs         4.0k    4.0k      0B   100%    /proc
linprocfs      4.0k    4.0k      0B   100%    /usr/compat/linux/proc
pub            663G     33k    663G     0%    /pub
pub/home       913G    250G    663G    27%    /pub/home

今回データ移行したかったのは/homeだけなので、旧PCをバラす前に下準備。

blackmagic# umount /pub/home
blackmagic# umount /pub
blackmagic# zpool list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
pub    928G   251G   677G    26%  1.00x  ONLINE  -
blackmagic# zpool export pub
blackmagic# zpool list
no pools available

homeを置いているzpool「pub」をexportして他のPCでimportできるようにして準備完了。

本作業

新しいPCはSSDとHDDの2台構成で両方ZFSにしました。OSのインストールはSSD側に行い、HDD側は後でzpool createして/homeにマウントしました。

旧PCで使っていたHDDを接続して、

blackmagic# zpool import pub

を実行すると/pubにマウントされるので、後は

$ cp -Rpv /pub/home/jun-g/* ~/.

して終了。

あまりよく知らないままZFS使っていましたが、簡単で良かったです。

/homeの容量が足りなくなったらHDDを追加して/homeを置いてるzpoolにaddするだけで容量を追加できるのでZFS素晴らしいですね。

自作PCを新調

posted by jun-g at Fri, 03 Jan 2014 22:31 JST

長い間お古のパーツ(Athlon64x2)で作ったPCを使っていましたが、秋ごろから頻繁に原因不明のカーネルパニックを起こすようになったのでそろそろ限界かなと思い、久々に自作PCの中身を新調しました。

新品のパーツで自作するのはPentium3(Socket370)の頃以来です。

スペックはこんな感じ。

CPU Intel Core i7 4771
マザーボード Gigabyte GA-Z87X-D3H
メモリ Corsair DDR3-PC3-17000 8GBx4
ビデオカード 玄人志向 GF-GTX660-E2GHD/DF/OC/A
SSD CFD販売 CSSD-S6T128NHG5Q
HDD Seagate ST3000DM001
BD BDR-209BK/WS
電源 KRPW-PT850W/92+

ケースは今は亡きWINDy製のでかいやつ。かれこれ10年以上使い続けてますが、気に入っているので恐らくATX規格が無くなるまで使い続けると思います。

OSは当然FreeBSD 10.0-RC2をインストールしました。インストール後すぐにfreebsd-updateして(初めて使った!)RC4に更新。dmesgはこんな感じ。

Copyright (c) 1992-2014 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 10.0-RC4 #0 r260130: Tue Dec 31 17:10:01 UTC 2013
    root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
CPU: Intel(R) Core(TM) i7-4771 CPU @ 3.50GHz (3491.99-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x306c3  Family = 0x6  Model = 0x3c  Stepping = 3
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x7ffafbff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,<b11>,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x21<LAHF,ABM>
  Standard Extended Features=0x2fbb<GSFSBASE,TSCADJ,BMI1,HLE,AVX2,SMEP,BMI2,ENHMOVSB,INVPCID,RTM>
  TSC: P-state invariant, performance statistics
real memory  = 34359738368 (32768 MB)
avail memory = 33239568384 (31699 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <ALASKA A M I>
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 SMT threads
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP): APIC ID:  3
 cpu4 (AP): APIC ID:  4
 cpu5 (AP): APIC ID:  5
 cpu6 (AP): APIC ID:  6
 cpu7 (AP): APIC ID:  7
ACPI Error: Null physical address for ACPI table [(null)] (20130823/tbutils-239)
ioapic0 <Version 2.0> irqs 0-23 on motherboard
random: <Software, Yarrow> initialized
kbd1 at kbdmux0
acpi0: <ALASKA A M I> on motherboard
acpi0: Power Button (fixed)
acpi0: reservation of 67, 1 (4) failed
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
cpu2: <ACPI CPU> on acpi0
cpu3: <ACPI CPU> on acpi0
cpu4: <ACPI CPU> on acpi0
cpu5: <ACPI CPU> on acpi0
cpu6: <ACPI CPU> on acpi0
cpu7: <ACPI CPU> on acpi0
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 14318180 Hz quality 950
Event timer "HPET" frequency 14318180 Hz quality 550
atrtc0: <AT realtime clock> port 0x70-0x77 irq 8 on acpi0
atrtc0: Warning: Couldn't map I/O.
Event timer "RTC" frequency 32768 Hz quality 0
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1808-0x180b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> irq 16 at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
vgapci0: <VGA-compatible display> port 0xe000-0xe07f mem 0xf2000000-0xf2ffffff,0xe8000000-0xefffffff,0xf0000000-0xf1ffffff irq 16 at device 0.0 on pci1
nvidia0: <GeForce GTX 660> on vgapci0
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: Boot video device
hdac0: <NVIDIA (0x0e0b) HDA Controller> mem 0xf3080000-0xf3083fff irq 17 at device 0.1 on pci1
xhci0: <Intel Lynx Point USB 3.0 controller> mem 0xf3120000-0xf312ffff irq 16 at device 20.0 on pci0
xhci0: 32 byte context size.
xhci0: Port routing mask set to 0xffffffff
usbus0 on xhci0
pci0: <simple comms> at device 22.0 (no driver attached)
em0: <Intel(R) PRO/1000 Network Connection 7.3.8> port 0xf040-0xf05f mem 0xf3100000-0xf311ffff,0xf3139000-0xf3139fff irq 20 at device 25.0 on pci0
em0: Using an MSI interrupt
em0: Ethernet address: 94:de:80:6b:03:6d
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xf3138000-0xf31383ff irq 16 at device 26.0 on pci0
usbus1: EHCI version 1.0
usbus1 on ehci0
hdac1: <Intel Lynx Point HDA Controller> mem 0xf3130000-0xf3133fff irq 22 at device 27.0 on pci0
pcib2: <ACPI PCI-PCI bridge> irq 16 at device 28.0 on pci0
pci2: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> irq 19 at device 28.3 on pci0
pci3: <ACPI PCI bus> on pcib3
pcib4: <ACPI PCI-PCI bridge> irq 19 at device 0.0 on pci3
pci4: <ACPI PCI bus> on pcib4
ehci1: <EHCI (generic) USB 2.0 controller> mem 0xf3137000-0xf31373ff irq 23 at device 29.0 on pci0
usbus2: EHCI version 1.0
usbus2 on ehci1
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
ahci0: <Intel Lynx Point AHCI SATA controller> port 0xf090-0xf097,0xf080-0xf083,0xf070-0xf077,0xf060-0xf063,0xf020-0xf03f mem 0xf3136000-0xf31367ff irq 19 at device 31.2 on pci0
ahci0: AHCI v1.30 with 6 6Gbps ports, Port Multiplier not supported
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich3: <AHCI channel> at channel 3 on ahci0
ahcich5: <AHCI channel> at channel 5 on ahci0
ahciem0: <AHCI enclosure management bridge> on ahci0
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
acpi_button0: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz1: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: cannot reserve I/O port range
est0: <Enhanced SpeedStep Frequency Control> on cpu0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
est1: <Enhanced SpeedStep Frequency Control> on cpu1
p4tcc1: <CPU Frequency Thermal Control> on cpu1
est2: <Enhanced SpeedStep Frequency Control> on cpu2
p4tcc2: <CPU Frequency Thermal Control> on cpu2
est3: <Enhanced SpeedStep Frequency Control> on cpu3
p4tcc3: <CPU Frequency Thermal Control> on cpu3
est4: <Enhanced SpeedStep Frequency Control> on cpu4
p4tcc4: <CPU Frequency Thermal Control> on cpu4
est5: <Enhanced SpeedStep Frequency Control> on cpu5
p4tcc5: <CPU Frequency Thermal Control> on cpu5
est6: <Enhanced SpeedStep Frequency Control> on cpu6
p4tcc6: <CPU Frequency Thermal Control> on cpu6
est7: <Enhanced SpeedStep Frequency Control> on cpu7
p4tcc7: <CPU Frequency Thermal Control> on cpu7
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
Timecounters tick every 1.000 msec
hdacc0: <NVIDIA (0x0041) HDA CODEC> at cad 0 on hdac0
hdaa0: <NVIDIA (0x0041) Audio Function Group> at nid 1 on hdacc0
pcm0: <NVIDIA (0x0041) (HDMI/DP 8ch)> at nid 4 on hdaa0
pcm1: <NVIDIA (0x0041) (HDMI/DP 8ch)> at nid 5 on hdaa0
pcm2: <NVIDIA (0x0041) (HDMI/DP 8ch)> at nid 6 on hdaa0
pcm3: <NVIDIA (0x0041) (HDMI/DP 8ch)> at nid 7 on hdaa0
hdacc1: <Realtek ALC892 HDA CODEC> at cad 2 on hdac1
hdaa1: <Realtek ALC892 Audio Function Group> at nid 1 on hdacc1
pcm4: <Realtek ALC892 (Rear Analog 5.1/2.0)> at nid 20,22,21 and 24,26 on hdaa1
pcm5: <Realtek ALC892 (Front Analog)> at nid 27 and 25 on hdaa1
pcm6: <Realtek ALC892 (Onboard Digital)> at nid 17 and 31 on hdaa1
pcm7: <Realtek ALC892 (Rear Digital)> at nid 30 on hdaa1
random: unblocking device.
usbus0: 5.0Gbps Super Speed USB v3.0
usbus1: 480Mbps High Speed USB v2.0
usbus2: 480Mbps High Speed USB v2.0
ugen2.1: <Intel> at usbus2
uhub0: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
ugen1.1: <Intel> at usbus1
uhub1: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
ugen0.1: <0x8086> at usbus0
uhub2: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
ada0 at ahcich1 bus 0 scbus0 target 0 lun 0
ada0: <TOSHIBA THNSNH128GCST HTRAN101> ATA-9 SATA 3.x device
ada0: Serial Number 93GS10BMTPEY
ada0: 600.000MB/s transfers (SATA 3.x, UDMA5, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 122104MB (250069680 512 byte sectors: 16H 63S/T 16383C)
ada0: Previously was known as ad4
ada1 at ahcich3 bus 0 scbus1 target 0 lun 0
ada1: <ST3000DM001-1CH166 CC27> ATA-9 SATA 3.x device
ada1: Serial Number Z1F3WH0A
ada1: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 2861588MB (5860533168 512 byte sectors: 16H 63S/T 16383C)
ada1: quirks=0x1<4K>
ada1: Previously was known as ad6
ses0 at ahciem0 bus 0 scbus3 target 0 lun 0
ses0: <AHCI SGPIO Enclosure 1.00 0001> SEMB S-E-S 2.00 device
ses0: SEMB SES Device
cd0 at ahcich5 bus 0 scbus2 target 0 lun 0
cd0: <PIONEER BD-RW   BDR-209 1.10> Removable CD-ROM SCSI-0 device
cd0: Serial Number MIDL005607WL
cd0: 150.000MB/s transfers (SATA 1.x, UDMA5, ATAPI 12bytes, PIO 8192bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
Netvsc initializing... SMP: AP CPU #1 Launched!
SMP: AP CPU #2 Launched!
SMP: AP CPU #6 Launched!
SMP: AP CPU #3 Launched!
SMP: AP CPU #5 Launched!
SMP: AP CPU #7 Launched!
SMP: AP CPU #4 Launched!
Timecounter "TSC-low" frequency 1745993011 Hz quality 1000
Root mount waiting for: usbus2 usbus1 usbus0
uhub1: 2 ports with 2 removable, self powered
uhub0: 2 ports with 2 removable, self powered
uhub2: 21 ports with 21 removable, self powered
Root mount waiting for: usbus2 usbus1 usbus0
xhci0: Port routing mask set to 0x00000000
usb_alloc_device: device init 2 failed (USB_ERR_IOERROR, ignored)
ugen0.2: <Unknown> at usbus0 (disconnected)
uhub_reattach_port: could not allocate new device
ugen2.2: <vendor 0x8087> at usbus2
uhub3: <vendor 0x8087 product 0x8000, class 9/0, rev 2.00/0.04, addr 2> on usbus2
ugen1.2: <vendor 0x8087> at usbus1
uhub4: <vendor 0x8087 product 0x8008, class 9/0, rev 2.00/0.04, addr 2> on usbus1
uhub4: 6 ports with 6 removable, self powered
uhub3: 8 ports with 8 removable, self powered
ugen2.3: <vendor 0x045b> at usbus2
uhub5: <vendor 0x045b product 0x0209, class 9/0, rev 2.00/1.00, addr 3> on usbus2
Root mount waiting for: usbus2
uhub5: 4 ports with 4 removable, self powered
ugen2.4: <vendor 0x045b> at usbus2
uhub6: <vendor 0x045b product 0x0209, class 9/0, rev 2.00/1.00, addr 4> on usbus2
Root mount waiting for: usbus2
uhub6: 4 ports with 4 removable, self powered
Root mount waiting for: usbus2
ugen2.5: <Microsoft> at usbus2
Trying to mount root from zfs:zroot0/ROOT/default []...
ums0: <Microsoft Microsoft Optical Mouse with Tilt Wheel, class 0/0, rev 2.00/1.20, addr 5> on usbus2
ums0: 3 buttons and [XYZT] coordinates ID=17
ums0: 0 buttons and [T] coordinates ID=0
em0: link state changed to UP

細かい設定とデータ移行はこれから。

ハイパーバイザ型仮想化ソフト事始め その2

posted by jun-g at Sun, 24 Apr 2011 16:00 JST

前回の続き 。とりあえずインストールして簡単に触ってみたところまで。

Citrix XenServer

  1. インストールは簡単。
  2. 接続したHDDをインストール時に全て選択しておけば、LVMの論理ボリュームとなり1つのHDDとして見える。便利。
  3. XenCenterというWindowsで動作する管理ソフトが必須という事実を知って驚愕した。 悪あがきとして OpenXenManager というソフトを見つけてきて試してみたが、メモリの設定がうまく出来なかったので断念してWinXPの入ったノートPCにXenCenterをインストールした。
  4. VMの設定は超簡単。

VMware vSphere Hypervisor

  1. インストール途中でエラーになってインストールに難儀した。ググって見つけたページ ProLiant ML110 G6 と VMware ESXi 4.1 によると、インストーラーがML110 G6のDVDドライブを認識しないとの事だったので、USBでCDドライブを接続してそちらからインストールすることで事無きを得た。
  2. こちらもWindowsで動作する管理ソフトが必須。無念。
  3. HDDは個別の管理。単一の大きなボリュームとして扱うにはハードウェアRAIDを組むしか無さそう。
  4. VMの設定は簡単だが、VMから起動するゲストOSからも内蔵DVDドライブが見えないようなのでCDからのインストールはとても面倒。

Microsoft Hyper-V Server 2008 R2

  1. インストールイメージの容量がやたらデカイのでちょいビビりながらDVDに焼いて起動してみると、まさかのWindowsのインストールが始まった。容量がデカイ原因はこれかー!
  2. Windowsが入るんならもしかしてクライアントソフトがいらないんじゃ? 1台で完結できるのならHyper-Vが最強じゃ? と思って一瞬だけニヤニヤしたが、インストール後に起動してみるとそれらしいメニューは見付けられず、よくよく調べてみるとやはり管理ソフト必須、しかもVista以降のみ対応だった。
  3. XPしか持ってないので評価もできず断念。悲しー。

ということで、上記3つを試して(厳密には2つしか試せてない)みたところ、XenServerがとても使いやすそうに感じたので、OSはひとまずXenServerを使うことにした。

次に、

  • HDD容量はVM用に沢山置いときたいのでホストOSはUSBメモリにインストールしたい
  • LVMは手軽だけど冗長化したいのでRAID組んどきたい

と、試してみたいことが出てきたので、XenServerでこの2点を試してみることにした。

つづく。

ハイパーバイザ型仮想化ソフト事始め その1

posted by jun-g at Tue, 19 Apr 2011 12:53 JST

先月、NTT-X StoreでHP ProLiant ML110 G6のCeleronモデルが安く売ってるのを見て、思わず衝動買いした。これ→HP ML110 G6 CeleronG1101 2.26GHz/2GB/SATA160GB 5100780-ARUH - NTT-X Store。先月買った時はクーポンが3000円だったけど、今見たら4000円になってるな。

で、せっかくなので最近流行り?の仮想化ソフトを使って、自宅で3台ほど動いてるサーバを1台に集約してスペースと電気代を節約したいなあと思い、追加でパーツを購入した。

まずはメモリ。ECC付きでないとダメらしいが、最近はECC付きメモリも安く買えるので良かった。ということで、トランセンドのDDR3-4GBメモリを4枚購入。

4GB DDR3 1333 ECC DIMM 9-9-9 2 Rank
トランセンド・ジャパン
売り上げランキング: 14946

次にHDD。WDに身売りされてしまった日立HGSGの1TBのHDDを4台購入。

日立 HGST Deskstar パッケージ版 3.5inch 1TB 32MB 7200rpm 0S02601
日立グローバルストレージテクノロジーズ
売り上げランキング: 370

貯まってたポイントを使ったりしたが、結局サーバ本体と合わせて合計で5万円ちょいぐらいだった。安く済んで良かった。

次はインストールするソフトの選定。無償で使えるハイパーバイザ型のソフトはCitrix XenServerVMware vSphere HypervisorMicrosoft Hyper-V Server 2008 R2、そしてオープンソース版のXen hypervisorの4つが代表的なものらしい。折角なので全部試してみて一番使いやすいのにしようと思い、片っ端からインストールしてみた。

つづく。