2016年3月27日日曜日

VAIO S11にLinuxを入れる

VAIO S11を購入した。カスタマイズとしてはCPUをCore-i5 6200U、メモリを8GB、SSDをPCI-Express版の256GBにしてある。

それにしてもPCI-Express版のSSDは速い。

さて、感動したところでArch Linuxを入れよう。今回はWindowsを残してデュアルブートにしようと思う。

まずは前準備。Windowsが使っているパーティションを縮小してLinux用の領域を開けなければならない。

Windowsキー+xで開くメニューからディスクの管理を開く。
ドライブCを右クリックして「ボリュームの縮小」を行う。上の画面ではWindowsのボリュームを下限まで減らした。これでインストール先の用意はできた。

インストーラは2016.03.01(Kernel 4.4.1)を使用。UnetbootinでUSBメモリに書き込んである。

このPCはそのままではUSBメモリからブートできないので一旦UEFI画面に入る必要があるが、起動時に何かのキーを押す通常の手段では(なぜか)UEFIに行けなかったのでWindows側から指定して再起動する。

設定画面から更新とセキュリティ→回復→PCの起動をカスタマイズする(今すぐ再起動する)→トラブルシューティング→詳細オプション→UEFIファームウェアの設定→再起動、という長い道のりが必要である。これでUEFI画面に到達したらようやくUSBメモリからのブートが選択できる。

さてここで問題が起きる。USBメモリのブートローダで「Arch Linux archiso x86_64 UEFI CD」を選んで起動すると即座に固まる。とりあえずブートさせたければカーネルパラメータにnolapicを渡せばよい。ただしnolapicをつけると当然のことながらCPUが1コアしか認識されない。この問題については後述。

ひとまずこのままインストールを終了させてしまおう。Beginner's Guideの通りやれば難しいことはない。パーティションは空けた領域全部を1つにして、ファイルシステムはBtrfsにした。ブートローダはSystemd-bootにする。もちろんここでもブートローダのエントリにはoptionsにnolapicを渡さないと起動時にコケるのでお忘れなく。

その他に注意することは特にない。タッチパッドはElantechらしいのでよく使うxf86-input-synapticsではなくxf86-input-libinputを入れる。そのままでは一部の機能が使えないのでArch Wikiに従って設定を記述しておこう。その他ほぼすべてのハードウェアがそのままで動作する。

あとはお好みで自分だけのArch Linuxを作ろう。



nolapicを渡さないと起動しない問題について。

おそらく原因は https://bugzilla.kernel.org/show_bug.cgi?id=110941 これだと思われる。ここに書いているintel_pstateを指定する方法でも起動しないので疑っていたのだが https://git.kernel.org/cgit/linux/kernel/git/rafael/linux-pm.git/commit/?h=bleeding-edge&id=42341f87ba1bee4c5be95038c24abb69cbcf361a
このとおり先ほどの記事で出てきたパッチが取り込まれており、Gitから落としてビルドしたところ正常に起動して4コアとも認識された。

Linux rubiales 4.6.0-rc2-g9735a22 #1 SMP PREEMPT Sat Apr 9 20:29:36 JST 2016 x86_64 GNU/Linux
k
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model  : 78
model name : Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
stepping : 3
microcode : 0x76
cpu MHz  : 500.063
cache size : 3072 KB
physical id : 0
siblings : 4
core id  : 0
cpu cores : 2
apicid  : 0
initial apicid : 0
fpu  : yes
fpu_exception : yes
cpuid level : 22
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs  :
bogomips : 4799.85
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model  : 78
model name : Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
stepping : 3
microcode : 0x76
cpu MHz  : 500.082
cache size : 3072 KB
physical id : 0
siblings : 4
core id  : 1
cpu cores : 2
apicid  : 2
initial apicid : 2
fpu  : yes
fpu_exception : yes
cpuid level : 22
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs  :
bogomips : 4802.98
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

processor : 2
vendor_id : GenuineIntel
cpu family : 6
model  : 78
model name : Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
stepping : 3
microcode : 0x76
cpu MHz  : 500.016
cache size : 3072 KB
physical id : 0
siblings : 4
core id  : 0
cpu cores : 2
apicid  : 1
initial apicid : 1
fpu  : yes
fpu_exception : yes
cpuid level : 22
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs  :
bogomips : 4804.42
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

processor : 3
vendor_id : GenuineIntel
cpu family : 6
model  : 78
model name : Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
stepping : 3
microcode : 0x76
cpu MHz  : 499.334
cache size : 3072 KB
physical id : 0
siblings : 4
core id  : 1
cpu cores : 2
apicid  : 3
initial apicid : 3
fpu  : yes
fpu_exception : yes
cpuid level : 22
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs  :
bogomips : 4803.21
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

2016.04.01版のインストーラは試していないが、Kernel 4.4.5なのでおそらく同じ問題に遭遇するだろう。kernel 4.6になれば特にオプションなしで起動できるようになるはずなのでそれまで待つか、AURからlinux-gitを入れるか、お好きな方をどうぞ。

ちなみに1コアでカーネルをビルドすると何時間もかかって一昔前に戻ったような気分を味わえる。

Q:つまり?
A:時間が解決する

0 件のコメント:

コメントを投稿