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


さくらの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で