2015年1月9日金曜日

VivoTab Note 8 で遊ぶ - ArchLinux インストール


先日、VivoTab Note 8 の OS 無しを手に入れたので、とりあえず ArchLinux を突っ込んだ。



結論から言うと、本当に起動するだけで残念ながら常用からは程遠い。

起動
グラフィック
サウンド×
タッチパネル×
Wacom デジタイザ×
WiFi×
Bluetooth×
電池残量表示×



必要な物

  • Linux がインストールされたコンピュータ
  • microUSB ホストケーブル
  • USB ハブ
  • USB メモリ
  • USB キーボード
  • USB 有線 LAN または無線 LAN アダプタ(Linux での対応報告のある物が望ましい)


手順


※ 注意 ※
以降の内容は VivoTab Note 8 の SSD に OS を含めたデータが一切何も入っていないという前提で記述している。
インストール構成は Windows 8.1 と Arch のデュアルブートではなく Arch のシングルブートなので、OS の入った VivoTab で以下の内容を行うと Windows 8.1 が消去される点に注意して頂きたい。
また、この作業は通常の使用範囲を超えた改造なのでメーカーの保証は消滅する。
作業によって本体その他が故障しても責任は負わない。


1. BIOS 設定


VivoTab Note 8 本体に USB キーボードを接続する。

Windows 8.1 がインストールされている場合は、音量キー下を押しながら電源をオンにする事で Windows が回復モードで起動する。そこから「詳細オプション」→「UEFI ファームウェアの設定」を選択することで BIOS の設定画面に入ることが出来る。

本体 SSD が空の場合は、電源を投入すると自動的に BIOS の設定画面に入る。

設定画面より「Fast Boot」と「Secure Boot」を無効化する。





設定を変更したら、保存して終了する。


2. インストールメディアの作成


Windows 7 世代までのコンピュータは BIOS による起動が一般的であったが、Windows 8 世代より BIOS に代わり UEFI による起動が用いられるようになった。その為、Win8 世代のマシンにインストールするブートローダーは UEFI に対応している必要があり、Linux においてブートローダーとして一般的に採用されている GRUB も UEFI による起動をサポートしている。

しかし、普通は UEFI は 64bit の物が用いられるのだが、最近流行りの BayTrail Atom 搭載タブレットは 32bit の UEFI が使用されている。
(CPU自体は 64bit 命令に対応しているにも関わらず、である)

インストールメディアに使用されいている GRUB はデフォルトで 64bit の UEFI にしか対応していないため、ArchLinux や Ubuntu を含むほとんどの Linux 系 USB ブートディスクはタブレットに挿入して電源を入れるだけでは起動しない。その為、インストールメディアに少々細工を施す必要がある。


2.1.
Arch Linux - Downloads
より、archlinux-年.月.日-dual.iso をダウンロードする。


2.2.
ISO イメージを展開する。

$ mkdir archiso
# mount -o loop archlinux-年.月.日-dual.iso ./archiso


2.3.
ISO イメージは読み取り専用でマウントされるため、内容を別のディレクトリにコピーする。

$ mkdir customiso
$ cp -a ./archiso/* ./customiso
# umount archlinux-年.月.日-dual.iso


2.4.
[FAQ] Asus T100: Installing custom OS (andro… | Windows 8, RT Development and Hacking | XDA Forums
より、bootia32.efi をダウンロードする。


2.5.
ダウンロードした bootia32.efi を ./customiso/EFI/boot にコピーする。


2.6.
./customiso/boot/grub/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.7.
USB メモリを GPT で初期化し、EFI パーティション (EF00) を作成する。
この作業により USB メモリの内容は全て消去される。
また、gdisk の引数の sdは、USB メモリのデバイス名で置き換える。
lsblk で予め確認すること。
OS の入っているドライブを指定しないように!

# gdisk /dev/sdX
o # Create a new empty GPT
y # Proceed
n # New partition
# Default partition number
# Default first sector
# Default last sector
EF00 # Bootable efi partition
c # change partion's name
w # Write modifications on the disk
Y # Proceed


2.8.
作成したパーティションを FAT32 でフォーマットする。
OS の入っているドライブを指定しないように!
# mkfs.vfat -v -F 32 -n ARCHISO /dev/sdX1



2.9.
改変した Arch インストールメディアのファイルをUSB メモリにコピーする。
$ mkdir ./usbdrive
# mount /dev/sdX1 ./usbdrive
# cp -r ./customiso/* ./usbdrive
# umount /dev/sdX1


3. インストール


VivoTab Note 8 に作成したインストールメディアとキーボード、LANアダプタを接続する。


3.1.
VivoTab Note 8 の BIOS 設定画面もしくは Windows 8.1 の回復モードを使い USB メモリよりブートを行う。


3.2.
Arch Linux i686 を選択する。


3.3.
GPT でパーティションを切る。

# cgdisk /dev/mmcblk0

UEFI なので、以下のようにパーティションを切った。

役割パーティションタイプサイズデバイスファイル
EFI System PartitionEF00512 MB/dev/mmcblk0p1
Swap82003 GB/dev/mmcblk0p2
/8300残り/dev/mmcblk0p3




3.4.
それぞれのパーティションをフォーマットする。

# mkfs.fat -F32 /dev/mmcblk0p1
# mkswap /dev/mmcblk0p2
# swapon /dev/mmcblk0p2
# mkfs.ext4 /dev/mmcblk0p3


3.5.
マウントする。

# mount /dev/mmcblk0p3 /mnt
# mkdir /mnt/boot
# mount /dev/mmcblk0p1 /mnt/boot


3.6.
Beginners' Guide (日本語) - ArchWiki
に沿ってインストールを進める。



3.7.
GRUB を 32bit EFI でインストールする。

# 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


3.8.
祈りながら再起動する。
# reboot



うまく行けば Arch Linux が起動するので、ユーザーを作成したりデスクトップ環境を入れたりといった作業を行う。
起動後すぐ BIOS の設定画面に突入する場合は、GRUB のインストールに失敗している可能性が高いので、Arch インストールメディアから GRUB を入れ直す。

ただ、最初にも書いた通り現時点では入れた所で本当に何も出来ない。
せめてタッチパネルさえ動作してくれれば…とも思ったが、タッチパネルとデジタイザは I²C で接続されており認識の為には茨の道は避けられそうにない。
Linux カーネルが BayTrail タブレットの各種ハードウェアにちゃんと対応するのを待つ方が良いかもしれない。

2 件のコメント:

  1. スティックPCにインストールするのにお世話になったのでブログ記事中で引用(リンク)させていただいてもいいでしょうか?

    返信削除
    返信
    1. はい。引用の際は記事名、URLの明記をお願いします。

      削除