Edited at

さくらのVPSにCentOS7入れて kernel 4.5をコンパイルしてみた

More than 3 years have passed since last update.

さくらのVPSにCentOS 7を入れて、カーネル4.5.2をコンパイルしてみた時の make oldconfig の設定。

https://polaire.org/r-top/mob/2015/11/centos-7-1.html (日本語の情報が少なかったので凄い助かりました。マジありがとう!)を参考に、出てないとこだけまとめた。


PIDs controller (CGROUP_PIDS)

コンテナ使わない限りはいらなそう

ref: http://gihyo.jp/admin/serial/01/linux_containers/0003


Enable bpf() system call (BPF_SYSCALL)

ネットワークパケットにゲスト環境からアクセスするインターフェイスらしい。

既に仮想化されてるVPS用なんで無効で


Static key selftest (STATIC_KEYS_SELFTEST)

ブート時にパッチのテストがどうのこうのだけど、めったにブートしないのでn


Intel MID platform support (X86_INTEL_MID)

インテルのモバイルプラットフォームのサポートなんでいらない


AMD ACPI2Platform devices support (X86_AMD_PLATFORM_DEVICE)

さくらのVPSのCPUはIntelのXenonだったんでN


Paravirt queued spinlock statistics (QUEUED_LOCK_STAT)

"スローパスに関する統計データの収集を有効にします"との事だけどいらないんでN


CMA debugfs interface (CMA_DEBUGFS)

CMAのデバッグとかしないんでN


Export zsmalloc statistics (ZSMALLOC_STAT)

見ないんでN


Defer initialisation of struct pages to kthreads (DEFERRED_STRUCT_PAGE_INIT)

巨大なマシンのブートに関する事みたいだけど、小さなVPSなんでN


Enable idle page tracking (IDLE_PAGE_TRACKING)

アイドル状態のページをトラッキングするらしい。メモリ管理の効率が良くなるっぽいんだけど、その分常に少しだけCPU使うみたいなのでN


Support non-standard NVDIMMs and ADR protected memory (X86_PMEM_LEGACY)

よくわからない場合はYとあるのでY

VPSだからたぶんNでも大丈夫だと思う...


Intel MPX (Memory Protection Extensions) (X86_INTEL_MPX)

サポートしてないっぽいんでN


vsyscall table for legacy applications

古いシステムコールの仕様なので、あんまり使わなそうなのでデフォルト( LEGACY_VSYSCALL_EMULATE )に


Kernel Live Patching (LIVEPATCH)

Ver.4からカーネルのライブパッチが出来る様になったらしい。

特に必要性を感じなかったのでNで


AML debugger interface (ACPI_DEBUGGER)

開発機だけど、AML debuggerはいらんのでN


Allow supported ACPI revision to be overriden (ACPI_REV_OVERRIDE_POSSIBLE)

VPSなんで多分不要、Nで


ACPI NVDIMM Firmware Interface Table (NFIT) (ACPI_NFIT)

揮発性のDRAMとNANDを両方搭載したRAM用のインターフェイスらしい。

VPSは関係無さそうなのでN


PMIC (Power Management Integrated Circuit) operation region support (PMIC_OPREGION

PMICとかVPSは関係無さそうなんでN


Default CPUFreq governor

新しくpowersave (CPU_FREQ_DEFAULT_GOV_POWERSAVE)オプションが追加されたらしい。

VPSだから関係あるのか微妙だけど、performance (CPU_FREQ_DEFAULT_GOV_PERFORMANCE)にしてみた。


Volume Management Device Driver (VMD)

Intel Volume Management Deviceのドライバ。VPSだといらなそうだし、よく解らなければNにしとけと言われるのでNで

http://www.phoronix.com/scan.php?page=news_item&px=Linux-4.5-PCI-Updates


INET: allow privileged process to administratively close sockets (INET_DIAG_DESTROY)

これもよくわかんなければNにしろとの事。


CAIA Delay-Gradient (CDG) (TCP_CONG_CDG)

新しいパケットフロー制御アルゴリズムらしい。詳しくは下記を参照。

興味はあるが、とりあえずデフォルトのNで

https://630e6617.github.io/2015/09/12/reading-delay-gradient-congestion-control/


IPv6: Identifier Locator Addressing (ILA) (IPV6_ILA)

IPv6は使わないし、よくわかんなかったらNでと言われるのでNで


Netfilter ingress support (NETFILTER_INGRESS)

iptablesとかで使ってるパケットキャプチャのフレームワークがNetfilterって言うらしい。

これはその ingress hook。 とりあえずデフォルト

http://wiki.nftables.org/wiki-nftables/index.php/Netfilter_hooks


NFQUEUE and NFLOG integration with Connection Tracking (NETFILTER_NETLINK_GLUE_CT)

これもiptablesとかで使うっぽい。

とりあえずデフォルト。


Netfilter nf_tables netdev tables support (NF_TABLES_NETDEV)

とりあえずモジュールにしておく


Netfilter nf_tables redirect support (NFT_REDIR)

これもとりあえずモジュールにしておく


Netfilter packet duplication support (NF_DUP_NETDEV)

これもとりあえずモジュールにしておく


Netfilter nf_tables netdev packet duplication support (NFT_DUP_NETDEV)

デフォルトでn


Netfilter nf_tables netdev packet forwarding support

デフォルトでn


"ipcomp" match support (NETFILTER_XT_MATCH_IPCOMP)

デフォルトでn


IPv4 nf_tables packet duplication support (NFT_DUP_IPV4)

デフォルトでn


IPv4 redirect support for nf_tables (NFT_REDIR_IPV4)

デフォルトでn


Flower classifier (NET_CLS_FLOWER)

デフォルトでn


Vlan manipulation (NET_ACT_VLAN)

VLANとか使わないんでn


BPF based action (NET_ACT_BPF)

よくわかんんきゃnとの事なのでn

BPFについてはここがわかりやすかった。パケットキャプチャとかsocket使った通信とかその辺の関係。

このサーバではやんないのでnでいい

http://www.tiger1997.jp/report/activity/securityreport_20131111.html


MPLS: routing support (MPLS_ROUTING)

デフォルトのnで

MPLSに関してはココ https://ja.wikipedia.org/wiki/Multi-Protocol_Label_Switching

http://www.infraexpert.com/study/mpls1.html


Switch (and switch-ish) device support (EXPERIMENTAL) (NET_SWITCHDEV)

よくわからない。たぶんスイッチ用のOSに使うときのオプションだと思う。デフォルトのnで


L3 Master device support (NET_L3_MASTER_DEV)

たぶんこれもスイッチ用のOSに使うときのオプションだと思う。デフォルトのnで


Bluetooth Classic (BR/EDR) features (BT_BREDR)

Bluetoothとか使わないんでn


Bluetooth Low Energy (LE) features (BT_LE)

Bluetoothとか使わないんでn


Bluetooth self testing support (BT_SELFTEST)

Bluetoothとか使わないんでn


Export Bluetooth internals in debugfs (BT_DEBUGFS)

Bluetoothとか使わないんでn


Broadcom protocol support (BT_HCIBTUSB_BCM)

Bluetoothとか使わないんでn


Realtek protocol support (BT_HCIBTUSB_RTL)

Bluetoothとか使わないんでn


Intel protocol support (BT_HCIUART_INTEL)

Bluetoothとか使わないんでn


Broadcom protocol support (BT_HCIUART_BCM)

Bluetoothとか使わないんでn


Qualcomm Atheros protocol support (BT_HCIUART_QCA)

Bluetoothとか使わないんでn


Network light weight tunnels (LWTUNNEL)

NFCも使わないんでn


Retain master device when partitioned (MTD_PARTITIONED_MASTER)

デフォルトのnで


Device Tree and Open Firmware support (OF)

yにした方が良さそうだけど、今回はクロスコンパイルじゃないんでデフォルトのnで

Device Treeに関しては http://qiita.com/koara-local/items/ed99a7b96a0ca252fc4e


SCSI emulation for NVMe device nodes (BLK_DEV_NVME_SCSI)

たぶんVPSなあらNVMeとか関係無いと思うのでデフォルトのnで


SCIF Bus Driver (SCIF_BUS)

インテルMIC関係。関係無さそうなんでnで


Cisco SNIC Driver (SCSI_SNIC)

VPSなんでnで


Tekram DC390(T) and Am53/79C974 SCSI support (new driver) (SCSI_AM53C974)

VPSなんでnで


Western Digital WD7193/7197/7296 support (SCSI_WD719X)

VPSなんでnで


CEVA AHCI SATA support (AHCI_CEVA)

VPSなんでnで