読者です 読者をやめる 読者になる 読者になる

GeekFactory

int128.hatenablog.com

X27Dで始める自宅サーバ(カーネル構築編)

Linux

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

uname -a

Linux ***** 2.6.26-gentoo-r3 #4 SMP Sun Dec 7 18:23:24 JST 2008 x86_64 Intel(R) Atom(TM) CPU 330 @ 1.60GHz GenuineIntel GNU/Linux

*1:ネゴシエーションに失敗しているっぽい