chroju.dev/blog

the world as code

Arch Linux + awesome with Windows 8.1 in VAIO Pro

snapshot1_1

先日VirtualBoxでArch Linux入れてみたところでしたが、引き続いてVAIO Proへのインストールが完了したのでまとめます。なお、Window8.1とのデュアルブートです。上のスクリーンショットが完成形。

事前準備

まず起動前の状態でASSISキーを押してBIOS設定を呼び出し、Secure Bootをdisabledにしておきます。Arch LinuxではSecure Bootをサポートしてないです。あとここではExternal MediaでのBootを許可したりとかしておくべきなんですけど、怠惰なんでASSISTメニューからUSBメモリでの起動を選ぶことでインストール作業を済ませてしまいました。Arch Wikiには「External MediaいじってUSBブートしろ」って書いてあるんで、そっちに従った方がいいと思います。

続いてWindows側での設定。

  • コントロールパネル > 電源オプション > 電源ボタンの動作の選択 > 高速スタートアップを有効にする をオフ
  • スタートボタン右クリック > ディスクの管理 > パーティションを縮小

既存パーティションを縮めることでLinuxインストール用の領域を作るのが通例ですけど、自分の場合これだ空き容量が小さすぎたので、回復パーティションを削除することにしました。そのために16GBのUSBメモリを買ってきて、回復ドライブを作ります。

VAIO Care > その他の機能 > リカバリーメディアの作成

作成が無事に終わったら、その後一度シャットダウンしてASSISTキー押して起動。以下の手順でリカバリーパーティションが消せます。

トラブルシューティングを開始 > Microsoft IME > トラブルシューティング > VAIOのリカバリー機能 > Windows 8.1 > ツール > リカバリーパーティションを削除

が、自分の場合これだとエラーが出て結局ダメだったんでdiskpartで削除しました。これもあまり褒められたやり方ではないと思うので推奨はしません。256GBモデルをケチらず買っときゃよかったなと初めて思った次第。

インストール

インストール用のUSB指して再度ASSISTキーを押し、USBメディアから起動。そこからは前回のエントリーを参考に、通常通りインストール進めていきます。ポイントは以下の点かなと。

  • ディスクパーティション、ESPはWindowsのものを使うので新たな切り出し不要。自分は/mnt/boot(200MB)と/mnt(残り全部)だけ切りました。
  • 実際にインストールしていく段階ではネット接続が必要だが、wifi-menuでWi-Fi接続できる。意外に簡単。
  • インストール後の設定作業でもwifi-menuを使えるようにするため、pacstrapするときにdialogとwpa_supplicantも入れておく。

だいたいブートローダーの設定前までは特にハマるポイントはないはず。

ブートローダーの設定

grub-installまで完了すると、/boot内は次のような感じになりました。

/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
/boot/efi/EFI/grub/grubx64.efi

……efiがダブったパスになったのあれなんですけど、とりあえずここで言いたいのはもともとのWindowsのブートローダーとgrubがダブりますねという話で、勝手にgrubの方を上げてくれればいいんですけど、このPCの場合なのかWindows8の場合なのかわかりませんが、bootmgfw.efiの方がどうしても呼ばれてしまうので、パスを変える必要があります。

$ cd /boot/efi/EFI/Microsoft/Boot/
$ mv bootmgfw.efi bootmgfw.efi.original  #あとで使うので必ず残すこと
$ cp /boot/efi/EFI/grub/grubx64.efi bootmgfw.efi

あとはGRUBのメニューエントリにWindows8のブートローダーを追加してやればよいのですが、この辺はArch Wikiに記述があるのでそちらを見ながらやった方が確実です。で、当然ながらここでchainloaderで呼び出すのがさっき.original付けて退避した元のブートローダーってことになります。

なお、ここでbootmgfw.efiを上書きしてやっても、Windows Updateをかけることで元に戻ってしまうなんて話がありまして、自分も実際その現象には遭遇しました。面倒だけど遭遇したらもっかいUSBブートしてブートローダー移し替えてやるしかないです。

起動後の各種設定

rebootをかければGRUBのメニューが起動して、Arch Linuxをブートできるはず。あとはwifi-menuにつないで前回同様にslimとawesomeを導入、その他もろもろ設定します。まずはyaourt入れとくと何かと便利です。前エントリーに書いたのでやり方省略しますが、yaourt -Syuaは最初にかけておくのが無難。具体的に言うとDropbox落としてみたらバージョン古くて使えなくてハマった。

ドライバ系の設定はだいたいArch WikiにVAIO Proの項があるので見ればOK。

  • 今回はVirtualBoxなので、当然ながらビデオドライバ(xf86-video-intel)が必要。
  • タッチパッドのドライバはxf86-input-synapticsを入れる。
  • 音はalsa-utils入れたら普通に流れた。

ラップトップだと折りたたんだときの電源の扱いがいろいろあるかと思いますが、デフォルトだとサスペンドになってるので、/etc/systemd/logind.confを編集してハイバネートに変更しておきます。

HandleLidSwitch=hibernate

Fn+Functionキーでの各種操作は当然ながらできなくなったので、xbindkeysを使って設定します。xbindkeys -kを打つと入力待ちの小窓が現れるので、そこで設定したいキーバインドを押すとキーコードが取れます。あとは取得したキーコードを使って、~/.xbindkeysrcにキーバインドを設定。

"xbacklight -inc 10"
  m:0x0 + c:233
"xbacklight -dec 10"
  m:0x0 + c:232
"amixer set Master 3%+"
  m:0x0 + c:123
"amixer set Master 3%-"
  m:0x0 + c:122

alsamixerでいちいち音量調節するのが面倒なので、音量の増減もキーバインドしときました。~/.xbindkeysrcを設けた状態でxbindkeysコマンド打てばキーバインドが設定されるので、~/.xinitrcに書き込んで自動起動するようにしておくと捗ります。

フォントはttf-rictyotf-takaoぶち込みました。ターミナルはRictyが好きだけどFirefoxとかGUIアプリで使うにはTakaoが見やすいので使い分け。パッチ当てたりとかは面倒なのでまだしてないけど、もうなんかいっかなって気がする。vim-airlineのためだけにパッチ当てるってのも手間かなと。フォント綺麗に表示するためにここの設定はしとくべきだと思います。

ターミナルはterminatorです。機能豊富なのとノウハウ多くて安定してそうなので。設定は画面右クリック→設定で呼べます。一度何か設定を入れると~/.config/terminator/configが作られるので、これを編集しても設定可能になる。今こんなとこです。透過はやっぱ素敵。

[global_config]
  title_transmit_bg_color = "#490001"
  inactive_color_offset = 0.4
[keybindings]
[profiles]
  [[default]]
    scrollbar_position = hidden
    background_image = None
    background_darkness = 0.66
    background_type = transparent
    use_system_font = False
    font = Ricty 14
  [[mysetting]]
    background_image = None
    background_type = transparent
    scrollbar_position = hidden
[layouts]
  [[default]]
    [[[child1]]]
      type = Terminal
      parent = window0
      profile = default
    [[[window0]]]
      type = Window
      parent = ""
[plugins]

ターミナル決めたら忘れずにデフォルトターミナルも変更します。rc.luaをコピーしてきて編集します。

cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua

ターミナルに関する記述の行を探して変更。

terminal = "terminator"

あとは欲しいソフト適当に入れます。コードとブログ書くのに特化したマシンなので、大したのは入れてないです。

  • Dropboxは開発中のコードやdotfilesやメモやタスク全部入りなので自分的には必須。容量の余裕そんなないのでテキスト関連だけ部分同期です。yaourtで入れてdropboxd叩けばGUIで楽々設定できます。あとは~/.xinitrcにも忘れず書き込むこと。
  • ブラウザはVimperatorに慣れてるのでFirefox。以降には昔FEBE使ったりしてた時期もありましたが、今時だとFirefox Sync使えばだいたいいい感じになる。
  • バッテリー状態見たいのでACPI入れる。本当はawesomeのウィジェットで常時表示させたいけどまだやってない。
  • エディタは前回記事でVim入れましたが、その後Wiki読んだらRuntimeもろもろ入ってるのがGVimだけだとわかったんでGVim入れ直しました。colorscheme適用するとターミナルの透過背景塗りつぶされるんで、背景設定の部分だけコメントアウトするとかアレなことしてます。対策求む。
  • 開発用にrbenv。
  • スクリーンショットはKSnapshot使ってます。

だいたいこんなとこですかねー。骨は折れましたがそこそこ快適に使えてます。まだやりたいことはあって、テーマ変えたりとかウィジェット置いたりとかそのへんが今後の課題です。

あー、あとそういえばlibata.force=noncqを設定しないとSSDの場合は遅くなるていう話を見かけましたけど、今のとこうちの環境は普通に動けてます。一応やっといた方がいいのかね。

参考