X27Dで始める自宅サーバ(カーネル構築編)
X27DはデュアルコアAtomが載っている超小型デスクトップPCです。Linuxカーネル構築のうち、ハードウェアに依存するポイントをまとめてみました。
カーネルはgentoo-sources-2.6.26-gentoo-r3 (Gentoo Linux)です。
Atom 330プロセッサ
マルチコア、HTスケジューラを有効にします。残念ながらIntel VT-xには対応していませんね。
Processor type and features ---> [*] Symmetric multi-processing support Processor family (Core 2/newer Xeon) ---> [*] SMT (Hyperthreading) scheduler support [*] Multi-core scheduler support [*] Machine Check Exception [*] Intel MCE features
ACPI
cpufreqはまだAtomに対応していないようです。
Power management options ---> [*] Power Management support [*] ACPI (Advanced Configuration and Power Interface) Support ---> <*> Button CPU Frequency scaling ---> [ ] CPU Frequency scaling [*] CPU idle PM support
SATA/PATA
ICH7を選択すればOKです。
Device Drivers ---> <*> Serial ATA (prod) and Parallel ATA (experimental) drivers ---> [*] ATA ACPI Support <*> AHCI SATA support [*] ATA SFF support <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support
Ethernet
Realtek 8111cが搭載されていますが、こいつが曲者で、Realtek純正のドライバが必要です。カーネル標準のドライバでは大量のドロップフレームが発生します*1。
同梱のReadmeにインストール手順が書いてあります。だいたい以下の感じ。
# cd r8168-8.009.00 # make # mkdir /lib/modules/2.6.26-gentoo-r3/kernel/drivers/net # make install # depmod
/etc/modules.autoload.d/kernel-2.6 にr8168を追加すると、起動時に自動的に読み込んでくれます。
# /etc/modules.autoload.d/kernel-2.6: kernel modules to load when system boots. r8168
サウンド
Intel HD AudioのRealtekを有効にすればOKです。
Device Drivers ---> Sound ---> <*> Sound card support Advanced Linux Sound Architecture ---> PCI devices ---> <*> Intel HD Audio [*] Build Realtek HD-audio codec support
温度センサー
lm_sensorsではit87が認識されています。coretempは読み取れませんでした。
Device Drivers ---> <*> I2C support ---> <*> I2C device interface I2C Hardware Bus support ---> <*> Intel 82801 (ICH) <*> Hardware Monitoring support ---> <*> ITE IT87xx and compatibles <*> Generic Thermal sysfs driver ---> [*] Hardware monitoring support
sensorsの実行結果。
# sensors it8718-isa-0290 Adapter: ISA adapter in0: +1.76 V (min = +0.00 V, max = +4.08 V) in1: +0.93 V (min = +3.06 V, max = +4.08 V) ALARM in2: +3.34 V (min = +0.00 V, max = +4.08 V) in3: +3.01 V (min = +0.00 V, max = +4.08 V) in4: +3.02 V (min = +0.00 V, max = +4.08 V) in5: +1.54 V (min = +0.00 V, max = +4.08 V) in6: +1.14 V (min = +0.00 V, max = +4.08 V) in7: +2.98 V (min = +0.00 V, max = +4.08 V) in8: +3.31 V fan1: 0 RPM (min = 10 RPM) ALARM fan2: 4326 RPM (min = 0 RPM) fan3: 0 RPM (min = 0 RPM) temp1: +47 C (low = -1 C, high = +127 C) sensor = diode temp2: +49 C (low = -1 C, high = +127 C) sensor = thermistor temp3: +43 C (low = -1 C, high = +127 C) sensor = thermistor vid: +2.050 V