それでは、実際の作業に入ります。今回カーネルのビルドに使用する環境は、VMware Workstation Player上で動かす仮想サーバ(CentOS 7.1.1503)です。この環境の作成については、一昨日の記事をご覧下さい。
まずは、必要な道具を揃えます。こちらの記事とこちらの記事を参考に、yumでインストールしていきます。
# yum install rpm-build
# yum groupinstall "Development Tools"
# yum install rpmdevtools
続いて、CentOS Wikiを参考に、CentOS 7のカーネルビルドに必要なパッケージをインストールします。
# yum install asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto
# yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel
# yum install ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel
では、準備に入ります。
注意!:ここからの先の作業は、Officialの警告に従って、一般ユーザ権限で行ないます。
まずは必要なディレクトリ構成と.rpmmacrosの作成から。
$ rpmdev-setuptree
うん、これは楽でいいですね。
そして、ターゲットとなるカーネルのソースを入手します。今回はThe Linux Kernel Archives(いわゆる”kernel.org”)から3.x系の(今日時点での)最新バージョンである3.18.24に挑戦してみます。
$ cd ~/rpmbuild/SOURCES
$ wget https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.18.24.tar.xz
$ tar Jxf linux-3.18.24.tar.xz
(展開にしばらく時間がかかります。この辺は仮想マシンなのでやむを得ません)
展開が終わったら、ソースツリーに移動して、念のために(余計な.configやオブジェクトを消して)初期状態にします。
$ cd linux-3.18.24
$ make clean; make mrproper
現在のカーネルのconfigをコピーしてきて、.configを作成します。
$ cp /boot/config-`uname -r` .config
oldconfigを使って、新しく追加されたパラメータの設定をします。
$ make oldconfig
(注意:ここから先、oldconfigの実況となるため、かなり無駄な記述が延々と続きます。3.18の拡張内容に興味のない方や、手っ取り早くその後を知りたい方はその3へどうぞ)
Compile also drivers which will not load (COMPILE_TEST) [N/y/?] (NEW) ?
必要のないドライバはコンパイルしないようにします。N。
Kernel compression mode
> 1. Gzip (KERNEL_GZIP)
2. Bzip2 (KERNEL_BZIP2)
3. LZMA (KERNEL_LZMA)
4. XZ (KERNEL_XZ)
5. LZO (KERNEL_LZO)
6. LZ4 (KERNEL_LZ4) (NEW)
choice[1-6?]:
せっかくですから、新しく使えるLZ4を選択します。6。
uselib syscall (USELIB) [Y/n/?] (NEW)
glibcでは使わないらしいので、n。
Detect full-system idle state for full dynticks system (NO_HZ_FULL_SYSIDLE) [N/y/?] (NEW)
カーネルのデバッグでもしない限り必要はなさそうですし、システムも肥大化するらしいので、お断りしておきます。N。
Task_based RCU implementation using voluntary context switch (TASKS_RCU) [N/y/?] (NEW)
ヘルプによると「よくわからない時はNにしとけ」ということらしいので(笑)、N。
Build-forced no-CBs CPUs
1. No build_forced no-CBs CPUs (RCU_NOCB_CPU_NONE) (NEW)
2. CPU 0 is a build_forced no-CBs CPU (RCU_NOCB_CPU_ZERO) (NEW)
> 3. All CPUs are build_forced no-CBs CPUs (RCU_NOCB_CPU_ALL)
choice[1-3?]:
……これ、よく理解できていません。多分RCUを 行なう際にCPUにCB(コールバック)させないようにするかどうか、という意味だと思います。多分大規模なマルチCPUシステムだと影響があるんでしょ うけど、LIVAのCPU(Celeron N2807)はたかだかデュアルコアなのでほとんど意味が無いような気がするんですが、コールバックさせないようにするとCPUの稼働率が良くなるらしい ので(こちらの記事参照)、ここは3を選びます。
CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB) (LOG_CPU_MAX_BUF_SHIFT) [12] (NEW)
各CPUごとのログバッファのサイズを決めろということらしいです。デフォルトのカーネルログバッファが2^20=1024KBで、CPUのログバッファの合計がこの半分より大きくなってくると影響が出てくるということなので(こちらの記事参照)、デュアルコアだから1CPUあたり256KBより少なければいいわけです。ここは2^17=128KBに設定することにして、17とします。
……にしても、マルチCPU時代のカーネルってのは、ややこしいですなぁ。設定が何を意味するのか理解するまで、えらい時間がかかります。もはやoldconfigしている時点で青息吐息です。
SLUB per cpu partial cache (SLUB_CPU_PARTIAL) [Y/n/?] (NEW) ?
もはや理解できる域を超えてきました。ヘルプによると「リアルタイムシステムならnoを選ぶよ」ということなので、ここはY。
Compress modules on installation (MODULE_COMPRESS) [N/y/?] (NEW)
カーネルモジュールをインストールする時に圧縮するか、ということです。そんなに容量をケチる必要もないので、N。
Block device command line partition parser (BLK_CMDLINE_PARSER) [N/y/?] (NEW)
eMMCのような組み込みデバイスを扱う時に使われるものだそうです。LIVAはまさにeMMCを使っているので、ここはy。今回の目的のためには、けっこう重要なポイントかと。
AIX basic partition table support (AIX_PARTITION) [N/y/?] (NEW)
AIXは今回まったく関係がないので、N。
Command line partition support (CMDLINE_PARTITION) [N/y/?] (NEW)
パーティションテーブルをbootargsから読み込むかどうか、というもの。調べたところ組み込みシステムで使うものらしいので、とりあえずN。
Goldfish (Virtual Platform) (X86_GOLDFISH) [N/y/?] (NEW)
Androidの開発に使用する仮想環境「Goldfish」に対応させるかどうか。まったく関係ないのでN。
Intel SoC IOSF Sideband support for SoC platforms (IOSF_MBI) [N/m/y/?] (NEW)
SoCプラットフォームをサポートするかどうか。LIVAはBayTrail-M SoCなので、y。ここもポイント。
Enable IOSF sideband access through debugfs (IOSF_MBI_DEBUG) [N/y/?] (NEW)
IOSFの解析をする時に使うものらしいです。ちょっと気になりますが、多分そういう使い方はしないと思うので、N。
Support for running as a PVH guest (XEN_PVH) [N/y] (NEW)
Xenの上でPVHのゲストとして動作させるか、ということらしいです。関係ないのでN。
Maximum count of the CMA areas (CMA_AREAS) [7] (NEW)
連続メモリアロケータ(CMA)領域で最大いくつまで領域を確保するか、ということらしいです。これは見当もつかないので、デフォルト値の7。
Use page table mapping to access object in zsmalloc (PGTABLE_MAPPING) [N/y/?] (NEW)
zsmallocでページテーブルマッピングを行なうかどうか。ARMとかだとマッピングが速くなるどうなのですが、今回は違うので、N。
EFI mixed-mode support (EFI_MIXED) [N/y/?] (NEW)
32ビットUEFIで64ビットのカーネルを動作させる「EFI mixed-mode」をサポートするかどうか。LIVAは64ビットUEFIのみ対応なので、必要ないと思われます。N。
Randomize the address of the kernel image (RANDOMIZE_BASE) [N/y/?] (NEW)
カーネルイメージを展開するアドレスをランダムにするか、ということだそうです。セキュリティ対策として行なわれることらしいんですが、ヘルプで「よくわからないときはN」とあるので、N。
……いい加減ひとつひとつ答えるがつらくなってきましたが、ここでやめるわけにもいきません。せめてoldconfigが終わるまで、この記録は続けます。
Enable workqueue power-efficient mode by default (WQ_POWER_EFFICIENT_DEFAULT) [N/y/?] (NEW)
“電力効率のよいworkqueue”モードをデフォルトにするか、ということらしいです。いまいちよく理解していないのですが、詳しくはこちらの記事を参照のこと。若干パフォーマンスを落とす代わりに電力消費を抑えるということらしいです。主にモバイル用途を考えての仕様なんでしょうか。LIVAを持ち歩いて使うようなことはしませんので、パフォーマンスをとります。N。
Mark VGA/VBE/EFI FB as generic system framebuffer (X86_SYSFB) [N/y/?] (NEW)
VGA/VBE/EFIのフレームバッファを標準のフレームバッファとするか、ということのようです。よくわからない時はyにするように、とヘルプにあったので、y。
IP: Foo (IP protocols) over UDP (NET_FOU) [N/m/y/?] (NEW)
Foo over UDPについては、こちらの記事を参照のこと。正直、この先使うかどうかわからないので、モジュール化しておくことにします。m。
Generic Network Virtualization Encapsulation (Geneve) (GENEVE) [N/m/y/?] (NEW)
Geneveについては、こちらの記事が詳しいようです。これも正直使うかどうかわからないので、モジュールにしておきます。m。
DataCenter TCP (DCTCP) (TCP_CONG_DCTCP) [N/m/y/?] (NEW)
DCTCPについては、こちらのページが詳しいようです。これもモジュール化で。m。
Virtual (secure) IPv6: tunneling (IPV6_VTI) [N/m/?] (NEW)
IPv6、どうなるんでしょうね。これもモジュールで。m。
“ipcomp” match support (NETFILTER_XT_MATCH_IPCOMP) [N/m/y/?] (NEW)
Xtablesというのが、そもそもよくわかっていません。Xtables関係は軒並みモジュール化されているので、これもmで。
“l2tp” match support (NETFILTER_XT_MATCH_L2TP) [M/n/y/?] (NEW)
これもm。
だんだん対応が雑になってきました。
hash:ip,mark set support (IP_SET_HASH_IPMARK) [N/m/?] (NEW)
IP setについてはこちらのサイトが一番詳しいようなのですが、すみません、さすがに全部理解しきれません。よくわからない時はN、あるいはモジュール化ということなので、一応m。
hash:mac set support (IP_SET_HASH_MAC) [N/m/?] (NEW)
これもmで。
hash:net,port,net set support (IP_SET_HASH_NETPORTNET) [N/m/?] (NEW)
これもmで。
hash:net,net set support (IP_SET_HASH_NETNET) [N/m/?] (NEW)
これもmで。
weighted failover scheduling (IP_VS_FO) [N/m/?] (NEW)
IPVS、使うことはないと思うので、これもmで。
ARP packet logging (NF_LOG_ARP) [N/m/y] (NEW)
ARPのパケットログ……見ることはあまりないと思うので、m。
IPv4 packet rejection (NF_REJECT_IPV4) [M/y] (NEW)
何なんでしょう、これ。IPv4のパケットの廃棄……? 調べてもよくわかりませんでした。デフォルトのMで。
IPv6 packet rejection (NF_REJECT_IPV6) [M/y] (NEW)
これもよくわかりませんでした。すみません、かなり疲れてきているので。デフォルトのM。
Bridge packet logging (NF_LOG_BRIDGE) [N/m] (NEW)
ブリッジのパケットログ……見ることはないと思うんですが。mで。
6LoWPAN Support (6LOWPAN) [N/m/y/?] (NEW)
6LoWPANはIoT関係の規格だそうです。詳しくはこちら。使うことはないと思うので、N。
Fair Queue (NET_SCH_FQ) [N/m/y/?] (NEW)
Fair Queueパケットスケジューリング……よくわからない時はN、ということなのでN。
Heavy-Hitter Filter (HHF) (NET_SCH_HHF) [N/m/y/?] (NEW)
Heavy-Hitter Filterパケットスケジューリング。すみません、デフォルトのNで。
Proportional Integral controller Enhanced (PIE) scheduler (NET_SCH_PIE) [N/m/y/?] (NEW)
IETFのドラフトを見てくれ、だそうです。つ、つらい……。デフォルトのN。
Open vSwitch Geneve tunneling support (OPENVSWITCH_GENEVE) [Y/n/?] (NEW)
Geneveについては使うかどうかもわからないので、デフォルトのY。
High-availability Seamless Redundancy (HSR) (HSR) [N/m/y/?] (NEW)
イーサネット上での冗長化プロトコル、なのだそうです(Wikipediaより)。使うにはイーサネットのインターフェイスが2つ必要なのだそうで。もちろんLIVAには2つもありませんので、N。
すみません、カーネル構築をなめていました。こんなにいろんな規格のサポートが行なわれているなんて、思いませんでした。きついです。
Network priority cgroup (CGROUP_NET_PRIO) [N/y/?] (NEW)
ネットワークトラフィックの優先度を動的に決められるようになる、のだそうです。詳しくはこちら。デフォルトのNで。
Support for uevent helper (UEVENT_HELPER) [Y/n/?] (NEW)
udev関係らしいのですが、すみません、勉強不足です。デフォルトのYで。
Fallback user-helper invocation for firmware loading (FW_LOADER_USER_HELPER_FALLBACK) [N/y/?] (NEW)
user-mode helperは特別なファームウェアを使っていない限りもはや必要ではない、とのことなので、N。
Enable verbose FENCE_TRACE messages (FENCE_TRACE) [N/y/?] (NEW)
DMAバッファの共有に関するメッセージを吐きまくるようにできるのだそうです。必要ないのでN。
DMA Contiguous Memory Allocator (DMA_CMA) [N/y/?] (NEW)
これもCMA関係らしいのですが、よくわからない時はNだそうなので、Nで。
SPI-NOR device support (MTD_SPI_NOR) [N/m/?] (NEW)
SPI NORフラッシュメモリ、というものがあるのだそうで。多分いらないと思うので、デフォルトのN。
Read-only block devices on top of UBI volumes (MTD_UBI_BLOCK) [N/y/?] (NEW)
すみません、UBIというのがそもそもよくわかっていません。フラッシュデバイスに関係するものらしいのですが、よくわからない時はNを選べ、ということなので、N。
Enable LZ4 algorithm support (ZRAM_LZ4_COMPRESS) [N/y/?] (NEW)
RAMブロックデバイスの圧縮アルゴリズムにLZ4を使えるようにするか、というもののようです。カーネルの圧縮にLZ4を選択しましたので、ここはひとつyで。
STEC S1120 Block Driver (BLK_DEV_SKD) [N/m/y/?] (NEW)
STEC,S1120というPCIe SSDをサポートするか、とのこと。LIVAにはそんなもの付けられませんので、Nで。
Xen block-device backend driver (XEN_BLKDEV_BACKEND) [N/m/y/?] (NEW)
Xenにのっけるつもりはありませんので、N。
Intel MIC Bus Driver (INTEL_MIC_BUS) [N/m/y/?] (NEW)
インテルのMICデバイスを使うようなことは当然ありませんので、N。
SCSI: use blk-mq I/O path by default (SCSI_MQ_DEFAULT) [N/y/?] (NEW)
SCSIは使いませんので、Nで。
ATTO Technology’s ExpressSAS RAID adapter driver (SCSI_ESAS2R) [N/m/y/?] (NEW)
そんなもん使わんわぁ! というわけで、N。
XEN SCSI frontend driver (XEN_SCSI_FRONTEND) [N/m/y/?] (NEW)
Xenは関係ないので、N。
TCM/USER Subsystem Plugin for Linux (TCM_USER) [N/m/?] (NEW)
そもそもTCMというものが何なのか、調べてもよくわかりませんでした。デフォルトのNで。
Marvell 88E6171 ethernet switch chip support (NET_DSA_MV88E6171) [N/m/y/?] (NEW)
どうやらイーサネットスイッチのチップらしいのですが、LIVAには多分入っていないと思うので、N。
Broadcom Starfighter 2 Ethernet switch support (NET_DSA_BCM_SF2) [N/m/y/?] (NEW)
これも入っていないと思うので、N。
Agere devices (NET_VENDOR_AGERE) [Y/n/?] (NEW)
Agere社製のネットワークデバイスを使うかどうか、ということだそうです。さて、LIVAが使っているのかどうか。よくわからないので、デフォルトのYで。
Altera Triple-Speed Ethernet MAC support (ALTERA_TSE) [N/m/y/?] (NEW)
多分、こんなデバイス入ってないよなぁ、ということで、デフォルトのN。
APM X-Gene SoC Ethernet Driver (NET_XGENE) [N/m/y/?] (NEW)
同じSoCでもLIVAはBayTrail-Mなので、使いません。N。
ARC devices (NET_VENDOR_ARC) [Y/n/?] (NEW)
これはよくわからないので、デフォルトのY。
Data Center Bridging (DCB) Support for Chelsio T4/T5 cards (CHELSIO_T4_DCB) [N/y/?] (NEW)
こんなもの使いません、ので、N。
Beckhoff CX5020 EtherCAT master support (CX_ECAT) [N/m/y/?] (NEW)
もちろんLIVAとはまったく違うものなので、N。
Fibre Channel over Ethernet (FCoE) (I40E_FCOE) [N/y/?] (NEW)
こんなものがあるんですねー。もちろん無関係なのでN。
Intel(R) FM10000 Ethernet Switch Host Interface Support (FM10K) [N/m/y/?] (NEW)
これも関係ないよなぁ。N。
Qualcomm devices (NET_VENDOR_QUALCOMM) [Y/n/?] (NEW)
これは使ってるかどうかわからないので、デフォルトのYで。
Samsung Ethernet devices (NET_VENDOR_SAMSUNG) [Y/n/?] (NEW)
これも使ってるかどうかわからないので、Y。
Samsung 10G/2.5G/1G SXGBE Ethernet driver (SXGBE_ETH) [N/m/y/?] (NEW)
でもさすがにこんなスペックのデバイスは乗っかっていないはずなので、N。
SMSC LAN911x/LAN921x families embedded ethernet support (SMSC911X) [N/m/y/?] (NEW)
これもわからんのですが、デフォルトがNなので、N。
Drivers for Broadcom 7xxx SOCs internal PHYs (BCM7XXX_PHY) [N/m/y/?] (NEW)
多分関係ないと思うので、デフォルトのN。
Broadcom UniMAC MDIO bus controller (MDIO_BCM_UNIMAC) [N/m/y/?] (NEW)
えー、こんなの使ってるかどうかわからんです。デフォルトのN。
USB Network Adapters (USB_NET_DRIVERS) [Y/n/m] (NEW)
これは使う可能性無きにしもあらずなので、Y。
CoreChip-sz SR9700 based USB 1.1 10/100 ethernet devices (USB_NET_SR9700) [N/m/?] (NEW)
LIVAにUSB1.1は付いていないので、N。
CoreChip-sz SR9800 based USB 2.0 10/100 ethernet devices (USB_NET_SR9800) [N/m/?] (NEW)
これは、どうなんだろう……いまどき10/100もないよなぁ。ということでN。
Atheros ath9k ACK timeout estimation algorithm (EXPERIMENTAL) (ATH9K_DYNACK) [N/y/?] (NEW)
実験ということなので、パスします。N。
Channel Context support (ATH9K_CHANNEL_CONTEXT) [N/y/?] (NEW)
WiFiダイレクトによるP2Pをサポートするか、ということらしいです。Nで。
Atheros 802.11ac wireless cards support (ATH10K) [N/m/?] (NEW)
11ac、対応していたらうれしいんですけど、LIVAでは使えません。N。
Qualcomm Atheros WCN3660/3680 support (WCN36XX) [N/m/?] (NEW)
うーん、LIVAのWiFiが何を使っているか、わからないんですよね。でもデフォルトNなので、N。
PCIE bus interface support for FullMAC driver (BRCMFMAC_PCIE) [N/y/?] (NEW)
これも11acのドライバということなので、N。
enable U-APSD by default (IWLWIFI_UAPSD) [N/y/?] (NEW)
U-APSD……関係ないと思うので、N。
Realtek RTL8192EE Wireless Network Adapter (RTL8192EE) [N/m/?] (NEW)
うーん……たしかLIVAのWiFiはM.2コネクタなんですよね。これはPCIeのアダプタなので、N。
Realtek RTL8821AE/RTL8812AE Wireless Network Adapter (RTL8821AE) [N/m/?] (NEW)
これも同じくN。
CW1200 WLAN support (CW1200) [N/m/?] (NEW)
こんなのは使っていないと思うので、N。
Redpine Signals Inc 91x WLAN driver support (RSI_91X) [N/m/?] (NEW)
これもわからんですー。N。
Xen backend network device (XEN_NETDEV_BACKEND) [N/m/y/?] (NEW)
だからXenは関係ない、と。N。
Verbose reason code reporting (ISDN_CAPI_CAPIDRV_VERBOSE) [N/y/?] (NEW)
PBX関係の話らしいので、N。
Wacom protocol 4 serial tablet support (TABLET_SERIAL_WACOM4) [N/m/y/?] (NEW)
いや、さすがにそんなもの繋げませんから。N。
Cypress TrueTouch Gen4 Touchscreen Driver (TOUCHSCREEN_CYTTSP4_CORE) [N/m/y/?] (NEW)
タッチスクリーンはついていませんので、N。
Samsung SUR40 (Surface 2.0/PixelSense) touchscreen (TOUCHSCREEN_SUR40) [N/m/y/?] (NEW)
Surfaceじゃありませんので、N。にしても、こんなものまでサポートするんですね。すごい。
IdeaPad Laptop Slidebar (INPUT_IDEAPAD_SLIDEBAR) [N/m/y/?] (NEW)
こんなのもついていませんので、N。
TI DRV2667 haptics support (INPUT_DRV2667_HAPTICS) [N/m/?] (NEW)
タッチフィードバックデバイス……N。Linux、奥が深すぎ。
Support for Fintek F81216A LPC to 4 UART (SERIAL_8250_FINTEK) [N/m/y/?] (NEW)
何のデバイスなんでしょう……わからないので、N。
SC16IS7xx serial support (SERIAL_SC16IS7XX) [N/m/?] (NEW)
LIVAにシリアルポートはついていませんので、N。
Freescale lpuart serial port support (SERIAL_FSL_LPUART) [N/m/y/?] (NEW)
同じく、N。
TPM Interface Specification 1.2 Interface (I2C – Atmel) (TCG_TIS_I2C_ATMEL) [N/m/?] (NEW)
LIVAにセキュリティチップはついていません。N。
TPM Interface Specification 1.2 Interface (I2C – Nuvoton) (TCG_TIS_I2C_NUVOTON) [N/m/?] (NEW)
同じく、N。
XEN TPM Interface (TCG_XEN) [N/m/y/?] (NEW)
Xenは(以下略)。N。
Xillybus generic FPGA interface (XILLYBUS) [N/m/y/?] (NEW)
FPGAは多分関係がないので、N。
NXP PCA9541 I2C Master Selector (I2C_MUX_PCA9541) [N/m/?] (NEW)
マルチプレクサは関係ないので、N。
RobotFuzz Open Source InterFace USB adapter (I2C_ROBOTFUZZ_OSIF) [N/m/?] (NEW)
I2Cも関係ないので、N。
SPMI support (SPMI) [N/m/y/?] (NEW)
電源制御……多分関係ないので、N。
GMT G762 and G763 (SENSORS_G762) [N/m/?] (NEW)
ファンレスのLIVAにファンスピードコントローラはいりません。N。
Lattice POWR1220 Power Monitoring (SENSORS_POWR1220) [N/m/?] (NEW)
電源のモニタリング……いらないだろうなぁ。N。
Linear Technology LTC2945 (SENSORS_LTC2945) [N/m/?] (NEW)
これもI2C関係なので、N。
Linear Technology LTC4222 (SENSORS_LTC4222) [N/m/?] (NEW)
ホットスワップコントローラ……残念ながら縁が無いです。N。
Linear Technology LTC4260 (SENSORS_LTC4260) [N/m/?] (NEW)
これも同じくN。
Measurement Specialties HTU21D humidity/temperature sensors (SENSORS_HTU21) [N/m/?] (NEW)
湿度・温度センサ。N。
Nuvoton NCT6683D (SENSORS_NCT6683) [N/m/y/?] (NEW)
これも温度センサなんですね。N。
TI TPS40422 (SENSORS_TPS40422) [N/m/?] (NEW)
ハードウェアモニタリング、多分できないと思うので、N。
Sensiron humidity and temperature sensors. SHTC1 and compat. (SENSORS_SHTC1) [N/m/?] (NEW)
これも湿度温度センサ。N。
Texas Instruments ADC128D818 (SENSORS_ADC128D818) [N/m/?] (NEW)
これも温度センサ。N。
Texas Instruments TMP103 (SENSORS_TMP103) [N/m/?] (NEW)
これも温度センサ。N。
Bang Bang thermal governor (THERMAL_GOV_BANG_BANG) [N/y/?] (NEW)
これも温度関係みたいですな。N。
X86 package temperature thermal driver (X86_PKG_TEMP_THERMAL) [M/n/y/?] (NEW)
これも温度関係みたいですが、デフォルトがMになってますね。ということで、M。
Intel SoCs DTS thermal driver (INTEL_SOC_DTS_THERMAL) [N/m/y/?] (NEW)
Intel SoCのデジタル温度センサ、とのこと。縁が無いわけでもなさそうなので、m。
ACPI INT340X thermal drivers (INT340X_THERMAL) [N/m/y/?] (NEW)
熱暴走防止のための温度センサ、のようです。N。
Xilinx Watchdog timer (XILINX_WATCHDOG) [N/m/y/?] (NEW)
ウォッチドッグ・タイマー、関係ないのでN。
Synopsys DesignWare watchdog (DW_WATCHDOG) [N/m/y/?] (NEW)
これも同じくN。
Broadcom BCM590xx PMUs (MFD_BCM590XX) [N/m/?] (NEW)
ワイヤレス充電の電源管理ユニット。こんなものまで。N。
Kontron module PLD device (MFD_KEMPLD) [N/m/y/?] (NEW)
プログラマブル・ロジック・デバイス。N。
MEN 14F021P00 Board Management Controller Support (MFD_MENF21BMC) [N/m/?] (NEW)
マザーボードの管理コントローラ。N。
Realtek USB card reader (MFD_RTSX_USB) [N/m/y/?] (NEW)
USBカードリーダ。面白そうなので、m。
Ricoh RN5T5618 PMIC (MFD_RN5T618) [N/m/?] (NEW)
電源管理IC。多分いらないのでN。
TI/National Semiconductor LP3943 MFD Driver (MFD_LP3943) [N/m/?] (NEW)
LEDドライバ、だそうです。N。
TI TPS65218 Power Management chips (MFD_TPS65218) [N/m/?] (NEW)
電源管理チップなんだそうですが、使われているのかどうかわかりません。デフォルトのN。
Wolfson Microelectronics WM8994 (MFD_WM8994) [N/m/?] (NEW)
スマートフォン用の音源その他をコントロールするチップらしいです。N。
Software defined radio support (MEDIA_SDR_SUPPORT) [N/y/?] (NEW)
ラジオ、だそうです。N。
Enable IR raw decoder for the Sharp protocol (IR_SHARP_DECODER) [M/n/?] (NEW)
シャープのリモコンの赤外線デコーダ、らしいです。こんなものまで。N。
Enable IR raw decoder for the XMP protocol (IR_XMP_DECODER) [M/n/?] (NEW)
これはノートPCとかに付いている赤外線デバイスらしいですが、N。
Hisilicon hix5hd2 IR remote control (IR_HIX5HD2) [N/m/?] (NEW)
これも赤外線リモコン。N。
ImgTec IR Decoder (IR_IMG) [N/m/?] (NEW)
これも赤外線関係。N。
DTCS033 (Scopium) USB Astro-Camera Driver (USB_GSPCA_DTCS033) [N/m/?] (NEW)
USBカメラのドライバ。N。
Syntek STK1135 USB Camera Driver (USB_GSPCA_STK1135) [N/m/?] (NEW)
これも同じくN。
USBTV007 video capture support (VIDEO_USBTV) [N/m/?] (NEW)
USBビデオキャプチャ。LIVAに繋げることはなさそうなので、N。
STK1160 USB video capture support (VIDEO_STK1160_COMMON) [N/m/?] (NEW)
これも同じくN。
WIS GO7007 MPEG encoder support (VIDEO_GO7007) [N/m/?] (NEW)
MPEGエンコーダ。N。
AU0828 Remote Controller support (VIDEO_AU0828_RC) [N/y/?] (NEW)
これもリモコン関係。N。
DVBSky USB support (DVB_USB_DVBSKY) [N/m/?] (NEW)
デジタルテレビのUSBデバイス、らしいです。N。
Abilis AS102 DVB receiver (DVB_AS102) [N/m/?] (NEW)
デジタルテレビの受信機? N。
Empia EM28xx analog TV, video capture and/or webcam support (VIDEO_EM28XX_V4L2) [N/m/?] (NEW)
テレビ、ビデオキャプチャ、ウェブカム等々。N。
Bluecherry / Softlogic 6×10 capture cards (MPEG-4/H.264) (VIDEO_SOLO6X10) [N/m/?] (NEW)
これもビデオキャプチャ。N。
Techwell tw68x Video For Linux (VIDEO_TW68) [N/m/?] (NEW)
フレーム・グラバー。N。
VP-3054 Secondary I2C Bus Support (VIDEO_CX88_ENABLE_VP3054) [Y/n/?] (NEW)
これもビデオキャプチャ関係らしいです。デフォルトがYになってますが、n。
Earthsoft PT3 cards (DVB_PT3) [N/m/?] (NEW)
デジタルテレビチューナー。N。
Silicon Labs Si470x FM Radio Receiver support (RADIO_SI470X) [N/y] (NEW)
FMラジオ。N。
Silicon Labs Si4713 FM Radio with RDS Transmitter support (RADIO_SI4713) [N/m] (NEW)
同じくN。
AverMedia MR 800 USB FM radio support (USB_MR800) [N/m/?] (NEW)
これもN。
D-Link/GemTek USB FM radio support (USB_DSBR) [N/m/?] (NEW)
これもN。
Guillemot MAXI Radio FM 2000 radio (RADIO_MAXIRADIO) [N/m/?] (NEW)
N。
Griffin radioSHARK USB radio receiver (RADIO_SHARK) [N/m/?] (NEW)
N。
Griffin radioSHARK2 USB radio receiver (RADIO_SHARK2) [N/m/?] (NEW)
N。
Keene FM Transmitter USB support (USB_KEENE) [N/m/?] (NEW)
N。何なんでしょう、このラジオ関係の充実ぶりは。
Thanko’s Raremono AM/FM/SW radio support (USB_RAREMONO) [N/m/?] (NEW)
N。
Masterkit MA901 USB FM radio support (USB_MA901) [N/m/?] (NEW)
N。
TEA5764 I2C FM radio support (RADIO_TEA5764) [N/m/?] (NEW)
N。
SAA7706H Car Radio DSP (RADIO_SAA7706H) [N/m/?] (NEW)
N。
TEF6862 Car Radio Enhanced Selectivity Tuner (RADIO_TEF6862) [N/m/?] (NEW)
N。もういいから。
Texas Instruments WL1273 I2C FM Radio (RADIO_WL1273) [N/m/?] (NEW)
N。ああもう。
PTN3460 DP/LVDS bridge (DRM_PTN3460) [N/m/?] (NEW)
DisplayPort関係らしいです。N。
OpenCores VGA/LCD core 2.0 framebuffer support (FB_OPENCORES) [N/m/y/?] (NEW)
フレームバッファ。N。
Simple framebuffer support (FB_SIMPLE) [N/y/?] (NEW)
同じくN。
Sanyo LV5207LP Backlight (BACKLIGHT_LV5207LP) [N/m/?] (NEW)
液晶ディスプレイのバックライト! こんなものまで! N。
Rohm BD6107 Backlight (BACKLIGHT_BD6107) [N/m/?] (NEW)
同じくN。
DICE-based DACs (EXPERIMENTAL) (SND_DICE) [N/m/?] (NEW)
DACだそうです。N。
Echo Fireworks board module support (SND_FIREWORKS) [N/m/?] (NEW)
デジタルオーディオ関係らしいです。N。
BridgeCo DM1000/DM1100/DM1500 with BeBoB firmware (SND_BEBOB) [N/m/?] (NEW)
これも同じくN。
ELO USB 4000/4500 touchscreen (HID_ELO) [N/m/y/?] (NEW)
タッチスクリーン。N。
MSI GT68xR LED support (HID_GT683R) [N/m/y/?] (NEW)
LEDのコントローラ? N。
Huion tablets (HID_HUION) [N/m/y/?] (NEW)
ペンタブ。N。
Lenovo / Thinkpad devices (HID_LENOVO) [N/m/y/?] (NEW)
ThinkPadじゃありませんので、N。
Logitech HID++ devices support (HID_LOGITECH_HIDPP) [N/m/y/?] (NEW)
タッチパッド。N。
Penmount touch device (HID_PENMOUNT) [N/m/y/?] (NEW)
これもタッチパッドらしいです。N。
Sony PS2/3/4 accessories force feedback support (SONY_FF) [N/y/?] (NEW)
プレステ2/3/4のフォースフィードバック。こんなのまで。N。
Synaptics RMI4 device support (HID_RMI) [N/m/y/?] (NEW)
これもタッチパッド。N。
Xin-Mo non-fully compliant devices (HID_XINMO) [N/m/y/?] (NEW)
ジョイスティックのコントローラらしいです。N。
Rely on OTG and EH Targeted Peripherals List (USB_OTG_WHITELIST) [N/y/?] (NEW)
USB On-The-Go関係らしいです。多分使わないでしょう。N。
USB 2.0 OTG FSM implementation (USB_OTG_FSM) [N/m/y/?] (NEW)
同じくN。
FUSBH200 HCD support (USB_FUSBH200_HCD) [N/m/y/?] (NEW)
USBホストコントローラ。N。
FOTG210 HCD support (USB_FOTG210_HCD) [N/m/y/?] (NEW)
同じくN。
Inventra Highspeed Dual Role Controller (TI, ADI, …) (USB_MUSB_HDRC) [N/m/y/?] (NEW)
USBのイメージングデバイス関係らしいのですが、よくわかりません。N。
USB Moxa UPORT Serial Driver (USB_SERIAL_MXUPORT) [N/m/y/?] (NEW)
USBシリアルコンバータ。N。
USB Link Layer Test driver (USB_LINK_LAYER_TEST) [N/m/y/?] (NEW)
よくわかりません。N。
NOP USB Transceiver Driver (NOP_USB_XCEIV) [N/m/y/?] (NEW)
USB物理層のトランシーバらしいです。N。
NXP ISP1301 USB transceiver support (USB_ISP1301) [N/m/?] (NEW)
同じくN。
USB LED Triggers (USB_LED_TRIG) [N/y/?] (NEW)
USBデバイスについているLEDのトリガだそうです。N。
Renesas USDHI6ROL0 SD/SDIO Host Controller support (MMC_USDHI6ROL0) [N/m/?] (NEW)
SDカードおよびSDIOのホストコントローラとのこと。N。
Realtek USB SD/MMC Card Interface Driver (MMC_REALTEK_USB) [N/m/?] (NEW)
USBカードリーダのインターフェイスのドライバ? N。
MemoryStick Standard device driver (MS_BLOCK) [N/m/?] (NEW)
メモリースティックのデバイスドライバ。N。
Realtek USB Memstick Card Interface Driver (MEMSTICK_REALTEK_USB) [N/m/?] (NEW)
USBのメモリースティックリーダのドライバ? N。
LED Support for TI LP8501 LED driver chip (LEDS_LP8501) [N/m/?] (NEW)
LEDドライバ。N。
LED support for PCA963x I2C chip (LEDS_PCA963X) [N/m/?] (NEW)
同じくN。
Intel e312xx (EDAC_IE31200) [N/m/?] (NEW)
DRAMコントローラのエラー訂正? N。
Intersil ISL12057 (RTC_DRV_ISL12057) [N/m/?] (NEW)
リアルタイムクロック。N。
NXP PCF2127 (RTC_DRV_PCF2127) [N/m/?] (NEW)
同じくN。
nxp PCF85063 (RTC_DRV_PCF85063) [N/m/?] (NEW)
同じくN。
APM X-Gene RTC (RTC_DRV_XGENE) [N/m/y/?] (NEW)
X-Geneのリアルタイムクロック。N。
Synopsys DesignWare AHB DMA support (DW_DMAC_CORE) [M/y] (NEW)
DMAデバイス。あら、デフォルトがM。ということでM。
Synopsys DesignWare AHB DMA PCI driver (DW_DMAC_PCI) [N/m/y/?] (NEW)
こっちはN。
Humusoft MF624 DAQ PCI card driver (UIO_MF624) [N/m/?] (NEW)
PCIカードドライバ。N。
Dynamically self-balloon kernel memory to target (XEN_SELFBALLOONING) [N/y/?] (NEW)
Xen関係のドライバ。例によってN。
Backend driver support (XEN_BACKEND) [Y/n/?] (NEW)
これもXen関係。あ、でもデフォルトがYか。でも使わないからn。
Xen platform mcelog (XEN_MCE_LOG) [N/y/?] (NEW)
同じくXen関係。N。
Realtek RTL8188EU Wireless LAN NIC driver (R8188EU) [N/m/y/?] (NEW)
USBに接続するワイヤレスLANのNICのドライバ、らしいです。多分使わないのでN。
Realtek RTL8723AU Wireless LAN NIC driver (R8723AU) [N/m/?] (NEW)
同じくN。
Realtek PCI-E Card Reader RTS5208/5288 support (RTS5208) [N/m/y/?] (NEW)
PCI-Eカードリーダ? まあ、N。
GCT GDM724x LTE support (LTE_GDM724X) [N/m/?] (NEW)
LTEだそうです。N。
Maximum number of serial ports supported (FWTTY_MAX_TOTAL_PORTS) [64] (NEW)
FireWireのシリアルドライバでサポートするシリアルポートの最大数? よくわからないのでデフォルトの64。
Maximum number of serial ports supported per adapter (FWTTY_MAX_CARD_PORTS) [32] (NEW)
これもよくわからないので、デフォルトの32。
Lustre file system client support (LUSTRE_FS) [N/m/?] (NEW)
Lustreという並列分散ファイルシステムのサポート。N。
Digi Neo and Classic PCI Products (DGNC) [N/m/y/?] (NEW)
マルチポートのシリアルカード、らしいです。N。
Digi EPCA PCI products (DGAP) [N/m/y/?] (NEW)
調べてみたのですが、よくわかりませんでした。デフォルトでN。
Xilinx FPGA firmware download module (GS_FPGABOOT) [N/m/y/?] (NEW)
FPGAのファームウェアのダウンロードモジュール?? N。
Skein digest algorithm (CRYPTO_SKEIN) [N/y/?] (NEW)
Skeinというハッシュアルゴリズムに対応するかどうか。多分使わないのでN。
Threefish tweakable block cipher (CRYPTO_THREEFISH) [N/y/?] (NEW)
Skeinをベースにしたサイファーのことらしいです。N。
Unisys SPAR driver support (UNISYSSPAR) [N/y/?] (NEW)
よくわかりませんでした。N。
Alienware Special feature control (ALIENWARE_WMI) [N/m/?] (NEW)
Alienwareというのがどういうものなのか、ちょっとわかりませんでした。N。
Dell Latitude freefall driver (ACPI SMO8800/SMO8810) (DELL_SMO8800) [N/m/y/?] (NEW)
Dellのラップトップ関係らしいです。N。
HP wireless button (HP_WIRELESS) [N/m/y/?] (NEW)
こちらはHPのノートPC関係らしいです。N。
Toshiba HDD Active Protection Sensor (TOSHIBA_HAPS) [N/m/y/?] (NEW)
東芝製HDDの加速度センサー、だそうです。N。
Intel Rapid Start Technology Driver (INTEL_RST) [N/m/y/?] (NEW)
インテルのラピッド・スタート・テクノロジーのことらしいです。N。
Intel Smart Connect disabling driver (INTEL_SMARTCONNECT) [N/m/y/?] (NEW)
インテルのスマート・コネクトを無効化する?? N。
Platform support for Chrome hardware (CHROME_PLATFORMS) [N/y/?] (NEW)
多分Chromebookとかのことだと思います。N。
TI SOC drivers support (SOC_TI) [N/y] (NEW)
TIのSoCドライバをサポートするか。N。
Simple Ondemand (DEVFREQ_GOV_SIMPLE_ONDEMAND) [M/y/?] (NEW)
すいません、よくわからなかったです。デフォルトがMなので、M。
Performance (DEVFREQ_GOV_PERFORMANCE) [N/m/y/?] (NEW)
ますますわからないです。デフォルトがNなので、N。
Powersave (DEVFREQ_GOV_POWERSAVE) [N/m/y/?] (NEW)
たぶん、クロック周波数の何かを言ってるのだと思いますが……N。
Userspace (DEVFREQ_GOV_USERSPACE) [N/m/y/?] (NEW)
これも多分同じ。N。
FMC support (FMC) [N/m/y/?] (NEW)
FMCというのは、多分これのことかと。N。
Broadcom Kona USB2 PHY Driver (BCM_KONA_USB2_PHY) [N/m/y/?] (NEW)
USBの物理層のドライバのこと? N。
MCB support (MCB) [N/m/y/?] (NEW)
「MEN Chameleon Bus」のことらしいのですが、そもそもそれが何かよくわかりませんでした。とりあえずN。
Thunderbolt support for Apple devices (THUNDERBOLT) [N/m/y/?] (NEW)
アップルのThunderboltに対応するかどうか。Nで。
SquashFS 4.0 – Squashed file system support (SQUASHFS) [M/n/y/?] m
File decompression options
> 1. Decompress file data into an intermediate buffer (SQUASHFS_FILE_CACHE) (NEW)
2. Decompress files directly into the page cache (SQUASHFS_FILE_DIRECT) (NEW)
choice[1-2?]:
うにゅう? よくわからないので、デフォルトの1。
Decompressor parallelisation options
> 1. Single threaded compression (SQUASHFS_DECOMP_SINGLE) (NEW)
2. Use multiple decompressors for parallel I/O (SQUASHFS_DECOMP_MULTI) (NEW)
3. Use percpu multiple decompressors for parallel I/O (SQUASHFS_DECOMP_MULTI_PERCPU) (NEW)
choice[1-3?]:
これもデフォルトの1で。そもそもSquashFSなんて多分使わないだろうし。
Enable Ceph client caching support (CEPH_FSCACHE) [N/y/?] (NEW)
Cephという分散ストレージのクライアントがローカルにキャッシュを持つか、ということかな? よくわからないのでN。ま、そもそもLIVAでそんなもの使わないだろうし。
Ceph POSIX Access Control Lists (CEPH_FS_POSIX_ACL) [N/y/?] (NEW)
これもCeph関係。N。
Default message log level (1-7) (MESSAGE_LOGLEVEL_DEFAULT) [4] (NEW)
カーネル・ロギングのデフォルトのログレベル。とりあえずデフォルトの4で。
Produce split debuginfo in .dwo files (DEBUG_INFO_SPLIT) [N/y/?] (NEW)
カーネルをコンパイルする際のdebug infoを分散したファイルに書き込むか、という話のようです。コンパイル時のディレクトリサイズを減らせるんだとか。うーん、必要なのかな。デフォルトがNなので、N。
Generate dwarf4 debuginfo (DEBUG_INFO_DWARF4) [N/y/?] (NEW)
DWARF4形式のdebug infoを作るかどうか。これも必要なのかよくわからないので、デフォルトのNで。
Enable magic SysRq key functions by default (MAGIC_SYSRQ_DEFAULT_ENABLE) [0x1] (NEW)
うう、よくわかりません、というか見当もつきません。とりあえずデフォルトの0x1で。
Detect stack corruption on calls to schedule() (SCHED_STACK_END_CHECK) [N/y/?] (NEW)
スタックが壊れたときにどうするか、という話らしいのですが、すみません勉強不足で。デフォルトのNで。
torture tests for locking (LOCK_TORTURE_TEST) [N/m/y/?] (NEW)
カーネルロッキングに対するtorture testを行なうモジュールを作るかどうか、ということらしいです。よくわからないので、N。
Debug priority linked list manipulation (DEBUG_PI_LIST) [N/y/?] (NEW)
いやほんと、ここまで来るともう全然わかりません。よくわからない時はN、ということなのでN。
Add tracepoint that benchmarks tracepoints (TRACEPOINT_BENCHMARK) [N/y/?] (NEW)
いやもうほんとごめんなさい、わかんないです。デフォルトのNで。
Per cpu operations test (PERCPU_TEST) [N/m/?] (NEW)
よくわからない時は、N。
Perform selftest on resizable hash table (TEST_RHASHTABLE) [N/y/?] (NEW)
よくわから(以下略)N。
Test module loading with ‘hello world’ module (TEST_LKM) [N/m/?] (NEW)
よく(以下略)N。
Test user/kernel boundary protections (TEST_USER_COPY) [N/m/?] (NEW)
よく(以下略)N。
Test BPF filter functionality (TEST_BPF) [N/m/?] (NEW)
N。
Test firmware loading via userspace interface (TEST_FIRMWARE) [N/m/y/?] (NEW)
N。
udelay test driver (TEST_UDELAY) [N/m/y/?] (NEW)
N。
Debug alternatives (X86_DEBUG_STATIC_CPU_HAS) [N/y/?] (NEW)
N。
Enables integrity auditing support (INTEGRITY_AUDIT) [Y/n/?] (NEW)
デフォルトのYで。もうそろそろ終わってくれないかな。
Integrity Measurement Architecture(IMA) (IMA) [Y/n/?] y
Default template
1. ima (IMA_TEMPLATE) (NEW)
> 2. ima-ng (default) (IMA_NG_TEMPLATE) (NEW)
3. ima-sig (IMA_SIG_TEMPLATE) (NEW)
choice[1-3?]:
デフォルトの2で。
Default integrity hash algorithm
> 1. SHA1 (default) (IMA_DEFAULT_HASH_SHA1) (NEW)
2. SHA256 (IMA_DEFAULT_HASH_SHA256) (NEW)
3. SHA512 (IMA_DEFAULT_HASH_SHA512) (NEW)
4. WP512 (IMA_DEFAULT_HASH_WP512) (NEW)
choice[1-4?]:
デフォルトの1で。
FSUUID (version 2) (EVM_ATTR_FSUUID) [Y/n/?] (NEW)
デフォルトのYで。ほんと、もうここまで来るとわからんです。
Software async multi-buffer crypto daemon (CRYPTO_MCRYPTD) [N/m/y/?] (NEW)
デフォルトのNで。
SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental) (CRYPTO_SHA1_MB) [N/m/y/?] (NEW)
デフォルトのNで。
というか、あれですね。全部の項目をいちいち書き連ねるよりも、LIVAに関係ありそうなところだけ抜き書きすればよかったんですよね。ああもう、でももう戻れない。
Triple DES EDE cipher algorithm (x86-64) (CRYPTO_DES3_EDE_X86_64) [N/m/y/?] (NEW)
デフォルトのNで。
LZ4 compression algorithm (CRYPTO_LZ4) [N/m/y/?] (NEW)
これはyにしたいです。
LZ4HC compression algorithm (CRYPTO_LZ4HC) [N/m/y/?] (NEW)
LZ4 high compression modeだそうです。これはNで。
Support for AMD Cryptographic Coprocessor (CRYPTO_DEV_CCP) [N/y/?] (NEW)
AMDのコプロは使っていないと思うので、N。
glob self-test on init (GLOB_SELFTEST) [N/y/?] (NEW)
ブート時にglob_matchのセルフテストをするか、という話。やるとブートが少し遅くなるから、別にやらなくてもいい、ということなのでN。
以上、make oldconfig、これでおしまい。ああ、疲れた……。
というか、本当に無駄なことをしました。はたしてこれを最後まで読んでくれた人がいるのかどうか……。まあ、かなりカーネル周りの勉強になったので、それはそれでいいのですが。
それにしても、Linuxがサポートするデバイスの量には驚かされました。ありとあらゆるデバイスに対応しようとする貪欲さには、すごいを通り越して呆れるほどです。おかげでこの記事も異常に長くなってしまいました。ものすごい徒労をしたようで、後悔しきりです。まあ、初めてのカーネル構築ですから、いい勉強になったということにしたいと思います。
さて、少し寝るか……。