archlinux

ABS でカーネルを再コンパイルして Let’s note のサスペンド問題を解消する

Let’s note にインストールした Linux では、サスペンドからの復帰後、トラックパッドとキーボードが反応しなくなる不具合がある。これはパッチを当ててカーネルを再構築することで解消できることが分かっている。 Arch Linux には Arch Build System (ABS) とソフトウェアのビルドを自動化するシステムがある。これを使ってパッケージを作成すれば pacman で管理できるので、今回はこれを使って再構築してみる。

ABS でリビルドするのに必要なパッケージをインストールしておく。

$ pacman -S abs base-devel

カーネルのパッケージのファイルをカレントディレクトリにダウンロードする。

$ ABSROOT=. abs core/linux

カレントディレクトリ以下に作成された core/linux の中に PKGBUILD ファイルがあるのでこれを編集する。

pkgbase をカスタムパッケージ名に変更する。

pkgbase=linux-custom

prepare() 関数内ではパッチを当てるなどの下拵えの処理が記述されている。今回のサスペンドの問題を解消するにはファイルの中の1行を変更するだけで、パッチを作るほどではないので sed で処理する。以下の行を追加します。

sed -i "s/\(.resume\s*=\s*i8042_pm_\)\(resume\)/\1restore/" drivers/input/serio/i8042.c

MAKEFLAGS をエクスポートして、同時に実行するジョブ数を指定する。 nproc で利用可能なプロセッサ数を調べたところ、4つだったので、以下のように指定する。

export MAKEFLAGS=-j4

以下のコマンドでパッケージをビルドします。

$ makepkg

makepkg したら bcxmlto の依存関係が解決できないと怒られた。ので、インストールする。

$ sudo pacman -S bc xmlto

ちなみに makepkg-s オプションつけると自動的に解決してくれるらしい。

気を取り直して再び makepkg する。ビルドにかかった時間は50分ほど。
HDD だった時は数時間かかっていた気がするので、やっぱり SSD 疾いなあと独り言。
出来上がったパッケージをインストールする。

$ sudo pacman -U linux-custom-3.13.8-1-x86_64.pkg.tar.xz

GRUB を更新する。 os-prober パッケージがインストールされていれば grub-mkconfig を実行するだけで OK.

$ sudo grub-mkconfig -o /boot/grub/grub.cfg

再起動すると GRUBlinux-custom-kernel のエントリが追加されているので選択して起動する。

コマンドラインからサスペンドしてみる。

$ sudo pm-suspend

うん、復帰してもキーボード使える。
なお pm-suspend コマンドが見つからない場合は pm-utils パッケージをインストールする。

Dropbox アイコンをクリックすると何故か Audacious が起動する

dropbox context menu

つい最近 Archlinux の Cinnamon 環境に乗り換えたところで,ただいま鋭意環境設定中です.今日は yaourt で Dropbox をインストールしました.インストールは問題なく終わりました.しかしトップバーの Dropbox アイコンをクリックして Dropbox フォルダーを開こうとすると,何故か Audacious が起動してしまいます.どうやらファイルの関連付けがおかしくなってしまっているようなのでそれを変更します.

xdg-mime default nemo.desktop inode/directory

Archlinux をお手軽デュアルブート (with Antergos)

いままで Ubuntu 系のディストロを使ってきましたが,AUR が便利そうで使ってみたかったので Archlinux 系のディストロに乗り換えてみることにしました.AUR (Arch User Repository) は OSX でいうところの Homebrew のようなもの(だと思います).Ubuntu にも PPA がありますが,AUR はそれに比べてレポジトリ数が圧倒的に多いです.

ただ Archlinux はシンプルであることが理念なのでグラフィカルインストーラがありません.コマンドライン上ですべてのインストール作業を行わないといけないので情弱の私には正直大変です.なので Archlinux ベースのユーザーフレンドリーなディストロを使ってみます.

2つ見つけました.Manjaro Linux と Antergos .なお, Antergos は元は Cinnarch という名前だったらしいです.事前に両方のディストロをグラフィカルインストーラで VirtualBox 上にインストールしてみたところ,自分の環境ではManjaro Linux はうまくいかなかったので,今回は Antergos を採用することにしました.

まずは Antergos の公式サイトから LiveCD のイメージをダウンロードします. USB の方が速いのでイメージを dd コマンドで USB に書き込みます.書き込む前にあらかじめ lsblk コマンドで USB フラッシュがマウントされていないことを確認します.

dd bs=4M if=/path/to/antergos.iso of=/dev/sdx && sync

/dev/sdxx はインストールするドライブのものに書き換えてください.私の場合は sdb でした.

USB を挿して再起動するとインストーラが表示されます. “Graphical Installer” を選択します.

cnchi installer

言語の選択画面になります.日本語も選べますが,インストール中に文字化けしたら嫌なので英語にしておきます.

language selection

area selection

System check

デスクトップ環境が選べます.私は Cinnamon を選択しました.

Choose Your Desktop

Cinnamon 用の追加のソフトウェアが選択できるようです.

Cinnamon - Feature Selection

以前の環境では Windows と Ubuntu のデュアルブート構成でした. Ubuntu がインストールされていたボリュームに Antergos をインストールするため,アドバンストモードでインストールします.

Installation Type

私の環境ではsda1 から sda5 は Windows 用ボリューム. sda6 が Ubuntu のシステム用のボリューム. sda7 が swap 用ボリューム.なので sda6 に Antergos のルートパスをマウントするよう設定します.

Advanced Installation Mode

以下のパーティションを書き換えるがよろしいか? とダイアログが出るので,間違いがないことを確認して OK をクリック.

これ以降はタイムゾーンの選択,キーボードレイアウトの選択,ユーザー名とパスワードの設定があるが,手順は Ubuntu と同じ.

Select Your Timezone

Select Your Keyboard Layout

Create Your User Accout

インストールが終わったら再起動して完了.すべて GUI で作業できたので Ubuntu と変わらない手軽さでインストールが終わりました.