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

にほんごのれんしゅう

日本語として伝えるための訓練を兼ねたテクログ

ASUS X205TAにArchLinuxをインストールして使うまで

2015年現在最強のコスパを誇るサブノートとしてX205TAが叫ばれて久しいが、Linuxを入れるのがめんどくさい
  インテルの2015年度のモバイル向けアーキテクチャとして、Baytrailを発表し、各社タブレットネットブック業界を沸かせている。
  Baytrailアーキテクチャの素晴らしい点は、CPUという半導体の中に、本来はサウスブリッジが果たすべき役目であるSDカード、SDIO、EMMCコントローラを内蔵し、ダイサイズの4分の1に相当する面積をメモリのバス帯域に使用している。
  このため、ワンチップにコンピュータを動作させる上で必須の殆どの機能郡を統合し、X-Bridgeアーキテクチャの同一の思想のリングバス構造をひとつのチップ内部で完結させている。
  ユーチューブなどの高圧縮動画をさくさく再生できるのは、CPU内部のVideoDecoderの効果が大きい。
  実メモリもそんなに積まなくても、EMMCと蜜に結合しているので、スワップで補えば良い。そのため、低容量の2ギガのメモリでも使い物になるのである。使い物になるユーザー体験をこのCPUで提供できてしまう点がそもそも凄い。
  さて、このモデルにはいくつか欠点がある。Atomアーキテクチャなのだ。。。Atomといえば、Celeron以上に凶悪で劣悪なパフォーマンスである。RISCの複雑な命令を一クロックで捌くという高度な芸当ができないのが痛すぎるが、それ以上に素晴らしいネットブックタブレット体験を経験させてもらえるのでやむ無しと言ったところか。
  もうひとつの欠点は、OSがWindowsなこと。WindowsはエクセルでなんちゃってCRMを組むときや、最終的なデータ出しで重宝しているのだが、タブレットネットブックは非力なのでそんなのいらない。で、あるならばLinuxのほうがマシである。X205TAはネットブックなのだからぜひともLinuxを入れたい。特にArchLinuxを。
  
ArchLinuxに出会って気づいたこと
  ずっとCentOSUbuntuユーザだったのだが、SELinuxKVMなど日々進化するカーネルに上に乗っかっているGUIが振り回されて統合できていないイメージが強い。UbuntuのUnityは日々商業主義を拡大し、ユーザビリティの名の下、商品をレコメンドしてくる。お金ないのでいらない。CentOSは本家のRedHat、OracleLinuxが強い商業主義なのでこれも違う。ユーザビリティというよりビジネスユースであり、デスクトップ環境はオモチャ感が強い。私はOracleのようなSEであり保険屋でもあるという兼業をできるほど器用な人格でもない。
  そんなわけで、Ubuntuをしばらく使っていたのだが、半年に一回のメジャーアップデートがなんともめんどくさい。いろいろ入れ替えるわけであるが、Unityの依存関係が壊れてログインできなくなったり、最悪のケースではCUIでの対処も面倒なことになったりした。
  ArchLinuxはそんな「もう、Ubuntuだめかも。。。」に見事答えてくれた。リッチなUIはいらない。ミニマリズムが流行っていて、マテリアルデザインが流行っている昨今、無駄なエフェクトは目の疲れにしからない。
  ArchLinuxはカーネルや最低限の基盤は共通で、好きなGUIソフトウェアは好きに乗っけろというご方針である。ありがたい。ちなみにMATEが楽で軽くて、使い勝手がよいのでMATEを入れている。
  

ArchLinux、Ubuntuなどを普通にインストールできないんだが。。。
  Baytrailアーキテクチャの制限らしいのだが、UEFIというソフトウェア的なBIOSが32ビット制限があるんそうだ。そのため、通常のインストールCDイメージではインストールできない。
  方法としては、ISOイメージをUSBスティックに変換して、/boot/EFI/grub/bootia32.efiというefiファイルを入れてあげる必要がある。
  bootia32.efiGITHUBで最新のものを公開している人のものをダンロードして設置すれば問題ない。
  GRUBによる起動であるが、GRUBの基本コマンドを理解している必要があるので留意されたい。

  USB起動ディスクに/boot/grub/grub.cfgを作成する。
  grub.cfgの中身は以下のようになる。

menuentry 'Arch Linux i686'{
echo 'Loading Linux core repo kernel ...'
linux /arch/boot/i686/vmlinuz noefi nomodeset archisobasedir=arch archisolabel=ARCHISO
echo 'Loading initial ramdisk ...'
initrd /arch/boot/i686/archiso.img
}
menuentry 'Arch Linux x86_64'{
echo 'Loading Linux core repo kernel ...'
linux /arch/boot/x86_64/vmlinuz noefi nomodeset archisobasedir=arch archisolabel=ARCHISO
echo 'Loading initial ramdisk ...'
initrd /arch/boot/x86_64/archiso.img
}
  以上を記述しておくと、問題なく指定のビット数で起動できる。
  今回は特に理由がないのだが、2ギガという制約上、32bitアーキテクチャi686を選択し、インストールした。
  GRUBは必ず32bitである必要があるので、以下のようなインストールをしなければならない。
# pacman -S grub dosfstools efibootmgr
# grub-install --target=i386-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck
# mkdir /boot/EFI/boot
# cp /boot/EFI/arch_grub/grubia32.efi /boot/EFI/boot/bootia32.efi
# grub-mkconfig -o /boot/grub/grub.cfg

  この状態でも起動できCUIは満足に扱えるが、GUIがレスキューモードになってしまい扱えない。そのため、UUIDでの参照エラー(どのデバイスブロックが起動なのか分からない状態になっている)ので、/etc/fstabを編集して、UUIDを削除して/dev/emcc0p1 /boot/EFIのような直接的な記述をしないと正常に起動しない。
 ここまで来ると、あとは普通のArchLinuxと一緒で好きなように好きなソフトを入れられる。

mozcがコンパイルできないんだが。。。
 i686でyaourtでモズクを入れようとすると、最後のPython スクリプトでエラーで終了するかと思う。
 何度か目の施行で、python2のバージョンを古くすると問題なくコンパイルすることができることを突き止めた。Atomプロセッサなのでコンパイルとかとても遅い。
 後学のためにi686アーキテクチャのmozcとibus-mozcをコンパイルしパッケージ化したものをフリーダウンロードにしておく。コンパイル時間がとてつもなくかかるため、利用していただけると早いし幸いである。


i686のmozc
mozchttps://drive.google.com/open?id=0B3sKfMUBNYmvc0diUEVqMWZLeWs
ibus-mozchttps://drive.google.com/open?id=0B3sKfMUBNYmvc0diUEVqMWZLeWs