6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FreeBSDAdvent Calendar 2020

Day 4

古いPC の再利用: ThinkPad T420s へ FreeBSD をインストール

Last updated at Posted at 2020-12-03

ThinkPad T420s の構成

BIOS 設定変更

ThinkPad T420s は Intel CPU 内臓 GPU (Integrated Graphics) と NVIDIA Quadro NVS (NVS 4200M) が載っています。
BIOS の設定で

  • Intel CPU 内臓 GPU だけ
    • Integrated Graphics
  • NVIDIA Quadro NVS (NVS 4200M)
    • Discrete Graphics
  • 両方使う
    • NVIDIA Optimus

という設定ができますが、FreeBSD のドライバでは両方同時に使うことはできないようです。
そのため、BIOS の

  • Config -> Display -> Graphics Devices
  • Config -> Display -> OS Detection for NVIDIA Optimus

の値をどちらか一つだけを使う設定にしておきます。

Key Value
Graphics Devices Integrated GraphicsDiscrete Graphics のどちらか
OS Detection for NVIDIA Optimus Disabled

pciconf -l -v の実行結果

Integrated Graphics を設定した場合

hostb0@pci0:0:0:0:      class=0x060000 card=0x21d217aa chip=0x01048086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '2nd Generation Core Processor Family DRAM Controller'
    class      = bridge
    subclass   = HOST-PCI
vgapci0@pci0:0:2:0:     class=0x030000 card=0x21d317aa chip=0x01268086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '2nd Generation Core Processor Family Integrated Graphics Controller'
    class      = display
    subclass   = VGA
none0@pci0:0:22:0:      class=0x078000 card=0x21d217aa chip=0x1c3a8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family MEI Controller'
    class      = simple comms
uart2@pci0:0:22:3:      class=0x070002 card=0x21d217aa chip=0x1c3d8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family KT Controller'
    class      = simple comms
    subclass   = UART
em0@pci0:0:25:0:        class=0x020000 card=0x21ce17aa chip=0x15028086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82579LM Gigabit Network Connection (Lewisville)'
    class      = network
    subclass   = ethernet
ehci0@pci0:0:26:0:      class=0x0c0320 card=0x21d217aa chip=0x1c2d8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family USB Enhanced Host Controller'
    class      = serial bus
    subclass   = USB
hdac0@pci0:0:27:0:      class=0x040300 card=0x21d217aa chip=0x1c208086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family High Definition Audio Controller'
    class      = multimedia
    subclass   = HDA
pcib1@pci0:0:28:0:      class=0x060400 card=0x21d217aa chip=0x1c108086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 1'
    class      = bridge
    subclass   = PCI-PCI
pcib2@pci0:0:28:1:      class=0x060400 card=0x21d217aa chip=0x1c128086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 2'
    class      = bridge
    subclass   = PCI-PCI
pcib3@pci0:0:28:3:      class=0x060400 card=0x21d217aa chip=0x1c168086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 4'
    class      = bridge
    subclass   = PCI-PCI
pcib4@pci0:0:28:4:      class=0x060400 card=0x21d217aa chip=0x1c188086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 5'
    class      = bridge
    subclass   = PCI-PCI
ehci1@pci0:0:29:0:      class=0x0c0320 card=0x21d217aa chip=0x1c268086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family USB Enhanced Host Controller'
    class      = serial bus
    subclass   = USB
isab0@pci0:0:31:0:      class=0x060100 card=0x21d217aa chip=0x1c4f8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'QM67 Express Chipset LPC Controller'
    class      = bridge
    subclass   = PCI-ISA
ahci0@pci0:0:31:2:      class=0x010601 card=0x21d217aa chip=0x1c038086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family 6 port Mobile SATA AHCI Controller'
    class      = mass storage
    subclass   = SATA
none1@pci0:0:31:3:      class=0x0c0500 card=0x21d217aa chip=0x1c228086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family SMBus Controller'
    class      = serial bus
    subclass   = SMBus
iwn0@pci0:3:0:0:        class=0x028000 card=0x13118086 chip=0x00898086 rev=0x5e hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Centrino Advanced-N + WiMAX 6250 [Kilmer Peak]'
    class      = network
sdhci_pci0@pci0:5:0:0:  class=0x088000 card=0x21d217aa chip=0xe8231180 rev=0x04 hdr=0x00
    vendor     = 'Ricoh Co Ltd'
    device     = 'PCIe SDXC/MMC Host Controller'
    class      = base peripheral
xhci0@pci0:13:0:0:      class=0x0c0330 card=0x21d217aa chip=0x01941033 rev=0x04 hdr=0x00
    vendor     = 'NEC Corporation'
    device     = 'uPD720200 USB 3.0 Host Controller'
    class      = serial bus
    subclass   = USB

Discrete Graphics を設定した場合

hostb0@pci0:0:0:0:      class=0x060000 card=0x21d217aa chip=0x01048086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '2nd Generation Core Processor Family DRAM Controller'
    class      = bridge
    subclass   = HOST-PCI
pcib1@pci0:0:1:0:       class=0x060400 card=0x21d217aa chip=0x01018086 rev=0x09 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = 'Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
none0@pci0:0:22:0:      class=0x078000 card=0x21d217aa chip=0x1c3a8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family MEI Controller'
    class      = simple comms
uart2@pci0:0:22:3:      class=0x070002 card=0x21d217aa chip=0x1c3d8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family KT Controller'
    class      = simple comms
    subclass   = UART
em0@pci0:0:25:0:        class=0x020000 card=0x21ce17aa chip=0x15028086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82579LM Gigabit Network Connection (Lewisville)'
    class      = network
    subclass   = ethernet
ehci0@pci0:0:26:0:      class=0x0c0320 card=0x21d217aa chip=0x1c2d8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family USB Enhanced Host Controller'
    class      = serial bus
    subclass   = USB
hdac1@pci0:0:27:0:      class=0x040300 card=0x21d217aa chip=0x1c208086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family High Definition Audio Controller'
    class      = multimedia
    subclass   = HDA
pcib2@pci0:0:28:0:      class=0x060400 card=0x21d217aa chip=0x1c108086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 1'
    class      = bridge
    subclass   = PCI-PCI
pcib3@pci0:0:28:1:      class=0x060400 card=0x21d217aa chip=0x1c128086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 2'
    class      = bridge
    subclass   = PCI-PCI
pcib4@pci0:0:28:3:      class=0x060400 card=0x21d217aa chip=0x1c168086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 4'
    class      = bridge
    subclass   = PCI-PCI
pcib5@pci0:0:28:4:      class=0x060400 card=0x21d217aa chip=0x1c188086 rev=0xb4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family PCI Express Root Port 5'
    class      = bridge
    subclass   = PCI-PCI
ehci1@pci0:0:29:0:      class=0x0c0320 card=0x21d217aa chip=0x1c268086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family USB Enhanced Host Controller'
    class      = serial bus
    subclass   = USB
isab0@pci0:0:31:0:      class=0x060100 card=0x21d217aa chip=0x1c4f8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'QM67 Express Chipset LPC Controller'
    class      = bridge
    subclass   = PCI-ISA
ahci0@pci0:0:31:2:      class=0x010601 card=0x21d217aa chip=0x1c038086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family 6 port Mobile SATA AHCI Controller'
    class      = mass storage
    subclass   = SATA
none1@pci0:0:31:3:      class=0x0c0500 card=0x21d217aa chip=0x1c228086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 Series/C200 Series Chipset Family SMBus Controller'
    class      = serial bus
    subclass   = SMBus
vgapci0@pci0:1:0:0:     class=0x030000 card=0x21d217aa chip=0x105610de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'GF119M [NVS 4200M]'
    class      = display
    subclass   = VGA
hdac0@pci0:1:0:1:       class=0x040300 card=0x21d217aa chip=0x0e0810de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'GF119 HDMI Audio Controller'
    class      = multimedia
    subclass   = HDA
iwn0@pci0:3:0:0:        class=0x028000 card=0x13118086 chip=0x00898086 rev=0x5e hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Centrino Advanced-N + WiMAX 6250 [Kilmer Peak]'
    class      = network
sdhci_pci0@pci0:5:0:0:  class=0x088000 card=0x21d217aa chip=0xe8231180 rev=0x04 hdr=0x00
    vendor     = 'Ricoh Co Ltd'
    device     = 'PCIe SDXC/MMC Host Controller'
    class      = base peripheral
xhci0@pci0:13:0:0:      class=0x0c0330 card=0x21d217aa chip=0x01941033 rev=0x04 hdr=0x00
    vendor     = 'NEC Corporation'
    device     = 'uPD720200 USB 3.0 Host Controller'
    class      = serial bus
    subclass   = USB

FreeBSD をインストール

FreeBSD のインストールについては ThinkPad T420s 特有のものはありません。

USB Disk から起動してインストールできますので、memstick.img を使ってインストールするのが楽だと思います。

X のインストール

利用するグラフィックチップに合わせて X のドライバーを選びます。
それ以外は通常の X のインストールと変わりません。

Intel CPU 内臓 GPU を使う場合

対応しているドライバーは xf86-video-intel になります。

pkg install -y xf86-video-intel

NVIDIA Quadro NVS (NVS 4200M) を使う場合

対応しているドライバーは nvidia-driver-340 になります。

pkg install -y nvidia-driver-340

インストール後にドライバーの kernel module をロードしておきます。

kldload nvidia

再起動してもドライバーがロードされるように /boot/loader.conf.local に設定を追加しておきます。

echo 'nvidia_load="YES"' >> /boot/loader.conf.local

そのままだとうまくカードを認識できないため、/usr/local/etc/X11/xorg.conf.d/thinkpad-t420s.conf を作成して BusID を明示的に指定しておきます。

cat > /usr/local/etc/X11/xorg.conf.d/thinkpad-t420s.conf <<EOM
Section "Device"
        Identifier "Card0"
        Driver     "nvidia"
        BusID      "PCI:1:0:0"
EndSection
EOM

xorg のインストール

xorg をインストールして X Windows System をインストールします。

pkg install -y xorg

startx で確認

startx を実行して動作を確認します。
xterm が起動したら xwininfo で画面サイズが 1600x900 で認識できているかを確認します。

まとめ

ThinkPad T420s に FreeBSD をインストールする場合、BIOS 設定と graphic driver の選択に注意するだけでした。

ちょっと古い PC に FreeBSD をインストールする参考にしてみてください。

参照

6
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?