ひこぽんのーと

覚書と雑記です。

Arch Linux ArmにUPNPメディアレンダラーを立てるのこと

以前、Raspberry Pi上にUPNPメディアレンダラーを立てる記事を書いた。
nagamitsu1976.hatenadiary.jp
これと同じことをArch Linux Armでやった時、
gmrender-resurrectのビルドに多少手間取ったので記録を残しておく。

GMRenderのビルド

クローン

GitHubからソースを取得する。
https://github.com/hzeller/gmrender-resurrect.git

依存ライブラリのインストール

Arch Linux AURにgmrender-resurrect-gitとして登録されていたので、
依存関係はここを見て確認した。
https://aur.archlinux.org/packages/gmrender-resurrect-git
見たところ、必要なパッケージはlibupnp、gst-plugin-good, gst-plugin-baseだったので、
これらをインストールした。

$ pacman -S libupnp # vlcをインストールしたから入ってた(多分)
$ pacman -S gst-plugins-good
$ pacman -S gst-plugins-base
ビルド

Configure, make, make installを実行。

$ ./autogen.sh
$ ./configure
$ make
$ make install
テスト

gmrender-resurrectのReadmeを参照して、
手順通りに起動し、音声が再生できればOK。

Arch Linux Armでラジオを鳴らすのこと

以前、Raspberry PiRadikoを聴く件について書いた。
nagamitsu1976.hatenadiary.jp
あれと同じことをArch Linux Armでやってみたら
存外ハマったので記録を残しておく。

ALSAの設定

音声出力設定

alsa-utilパッケージのインストールと/boot/config.txtに下記を設定する。

dtparam=audio=on
hdmi_drive=2 # HDMIで音を出す場合に設定
audio_pwm_mode=2 # ステレオ端子で音を出す場合に設定

詳しくはArch Linux Armのサイトの手順を参照。
Raspberry Pi | Wiki | Arch Linux ARM

aplay -Lでデバイスが見つからない場合

root以外のユーザで上記の設定をしていても
バイスが見つからないことがある。
その場合は、ユーザをaudioグループに追加するとデバイスが参照できる。

再起動でボリュームが初期値に戻る

Arch Linuxの時と同じ対処方法をとればOK。

$ sudo alsactl -f /var/lib/alsa/asound.state store
$ sudo alsactl restore

SWFTools(swfextract)のビルド

Arch Linux Arm用にビルドされたSWFToolsが無いので、ソースからビルドする必要がある。
作業内容については、この記事を参考にした。
radikoの録音・再生(ArchLinux) | まっつんぶろぐ

ソースの取得

SWFToolsのサイトから最新ソースをダウンロード。
http://www.swftools.org/

依存ライブラリのインストール

SWFToolsのサイトから情報を引きたかったのだが、参照できなかったので、
先のブログ様の記事の通り、ライブラリをインストールした。

$ pacman -S pdflib zip fftw zziplib ruby
ビルド

ソースを展開してビルド開始。
先のブログ様の記事の通り、途中でエラーが発生し、ビルドが中断するが、
srcディレクトリ内を参照し、swfextract.oができていればOKとする。

$ ./Configure
$ make
# swfextractができていれば
$ make install

その他パッケージのインストール

必要なもの

rtmpdumpとvlcが必要なのでインストールする。

$ pacman -S rtmpdump vlc

これで大体、Raspbianの時と同じ環境となり、
以前作成したシェルを実行したら、うまくRadikoが聴けた。

Raspberry Piに Arch Linux Armをインストールするのこと

Arch Linux Arm on Raspberry Pi

RaspbianからArch Linux Armに載せ替えてみた。
GUIなどはインストールしなかった分、起動は早かった……ような気がする。
以下に手順を残しておく。

ガイドに従ってインストール

サイトの指示に従ってインストールする。
ガイドは作業PCがLinux前提で書いてあるけど、
Windowsだったらどうするんだろうなぁ。
Raspberry Pi | Arch Linux ARM

環境設定

以下はArch Linuxをインストールした時と同じ手順で行えた。
初期起動時点でsshdは起動しているのでリモートで作業できる。
nagamitsu1976.hatenadiary.jp

GW-900Dのドライバ導入

うちのRaspberry Piは初期型なのでWifiはドングルを使っている。
このドングルはドライバが用意されていないので、
ソースからビルドする必要があるのはRaspbianと変わらない。

ビルド環境の準備

ビルド環境とgitをインストール

$ pacman -S base-devel
$ pacman -S linux-raspberrypi-headers
$ pacman -S git
RTL8812au ドライバの作成&インストール
$ cd [適当なworking directory]
$ git clone https://github.com/gnab/rtl8812au.git
$ cd rtl8812au
$ nano Makefile
# ターゲットCPUをi386からarmに変更
$ make
$ cp 8812au.ko /lib/modules/extramodules--raspberrypi/kernel/drivers/net/wireless/
$ depmod
$ reboot

再起動したらlsmodとdmesgでドライバがロードされているか確認。*2
ip linkでネットワークインターフェイス名を確認し、wifiのI/Fが確認できればOK。

Pacmanフックの追加

カーネルが更新されるとwifiドライバもビルドし直しとなる。
手動ビルドも面倒なので、Pacmanフックを使って自動化してみる。
Pacmanフックを設定するには/etc/pacman.d/hooks配下にhookファイルを配置する。
Arch Linuxwiki Pacmanフックの項を参考に作ってみたhookファイルはこんな感じ。

/etc/pacman.d/hooks/rtl8812au.hook
……
[Trigger]
Operation = Upgrade
Type = Package
Target = linux-raspberrypi
Target = linux-raspberrypi-headers

[Action]
Depends = linux-raspberrypi-headers
Depends = make
Depends = gcc
When = PostTransaction
Exec = /usr/local/src/rtl8812au/8812au_make.sh
……

カーネルカーネルヘッダの更新をトリガーとして、
それらが更新された後にExecで指定したmake用のシェルを実行する、
といった感じ。ドライバのビルドにはカーネルヘッダが必要なので
依存条件にカーネルヘッダが入れてある。*3

wpa_supplicantの設定

接続情報の設定

wpa_passphreseでssidのパスワードを自動生成しておく。
/etc/wpa_supplicant/wpa_supplicant-wlan0.confを新規作成し、以下の内容を記述する。

ctrl_interface=/run/wpa_supplicant
update_config=1
network={
	ssid="XXXXXXXXXXX"
	proto=RSN
        key_mgmt=WPA-PSK
	pairwise=CCMP
	group=CCMP
	#psk="xxxxxxxxxxxxx"
	psk=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901
	scan_ssid=1
}
wpa_supplicant起動パラメータの編集

このまま起動するとこんな感じで、ドライバー未サポートのエラーが出る。

Successfully initialized wpa_supplicant
nl80211: Driver does not support authentication/association or connect commands
wlan0: Failed to initialize driver interface

Arch Linuxwikiにあるwpa_supplicantの項に対処方法が書いてあるので、
wikiに従って対処する。
WPA supplicant - ArchWiki

$ nano /usr/lib/systemd/system/wpa_supplicant@.service
……
# ExecStartの行の最後に「-Dnl80211,wext」を追加する。
ExecStart=/usr/bin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I -Dnl80211,wext
……
wpa suppliantサービスの有効化

wpa suppliantサービスの有効化を行う。

$  systemctl start wpa_supplicant@wlan0
$ systemctl status wpa_supplicant@wlan0
# ステータス確認で問題なければenableする。
$ systemctl enable wpa_supplicant@wlan0

IPアドレスの割り当て

IPアドレスはsystemd-networkdが管理しているようなので*4、以下を編集する。
ファイルの書き方はここを参照。*5

Ethernetポートの場合

/etc/systemd/network/eth0.networkを編集

[Match]
Name=eth0

#[Network]
#DHCP=yes
[Address]
Address=192.168.10.32/24

[Route]
Gateway=192.168.10.1
Wifiの場合

/etc/systemd/network/wlan0.networkを編集。
ファイルがなければ/etc/systemd/network/eth0.networkをコピーしてリネームしてから編集する。

[Match]
Name=wlan0

#[Network]
#DHCP=yes
[Address]
Address=192.168.10.33/24

[Route]
Gateway=192.168.10.1

systemd-networkdのリロード

systemd-networkdをリロードして、
ip aでIPアドレスが設定通りか確認する。

$ systemctl restart systemd-networkd

再起動

再起動して、ネットワークが自動起動すればOK。

Congraturations!

初期設定はこんな感じでおしまい。

*1:日本のサイトが無いので台湾にした

*2:/lib/modules/extramodules--raspberrypiの配下であれば読み込んでくれるらしい

*3:rtl8812auのMakefileではuname -rの結果をターゲットバージョンとするので、Pacmanフックでビルドする場合は、ターゲットバージョンの取り方を書き換えておく必要がある

*4:http://archpi.dabase.com/

*5:https://wiki.archlinux.jp/index.php/Systemd-networkd

Arch Linuxのインストール手順のこと その4

How to use AUR

Ubuntuで言うPPAみたいなもの。
AURのリポジトリにはソースが置いてあるので、
ダウンロードしてきて、ビルド、インストールすると認識すればいい。
手でやるのは面倒だと思うけど、そこはそれ、
パッケージ名を指定するだけで導入できるツールがある。

Yaourtの導入

ヨーグルトと読むらしい。
これを導入すれば、AURも簡単に導入できる。

gitのインストール

インストールしたてのArch Linuxにはgitも入ってないので、これを追加する。

$ sudo pacman -S git
package-queryのインストール

yaourtで必要なpackage-queryをインストールする。
適当なディレクトリを作ってそこにcloneして、手順に従ってビルドする。

$ mkdir ~/.local/share/aur
$ cd aur
$ git clone https://aur.archlinux.org/package-query.git
$ cd package-query
$ makepkg -si
$ cd ..
yaourtのインストール

続いて、yaourtをcloneして、ビルドする。
ビルドが終われば導入完了。

$ git clone https://aur.archlinux.org/yaourt.git
$ cd yaourt
$ makepkg -si
$ cd ..

実験: Mate Tweakのインストール

AURパッケージ導入の実験として、Mate Tweakをインストールしてみる。
Ubutu MateにあったMate TweakはArch LinuxではAURに分類されているので、
まずは、Arch LinuxのAURのページへ行き、Mate Tweakのパッケージ名を調べる。
f:id:nagamitsu1976:20180621153107p:plain
いくつかあるが4つのうち3つは開発版だたりgtk2版だったりして違うようなので、
最上位にある「mate-tweak」をインストールしてみる。

$ yaourt -S mate-weak

手順としては上のコマンドを実行するだけ。
これで、ソースのダウンロードからビルド、インストールまで一括で行える。
コマンド実行中にビルドファイルの編集、ビルドされたパッケージの内容確認を聞かれるが
これは特にしなくても大抵は問題ない。
出来あったパッケージをインストールすれば、
コントロールセンターにMate Tweakが追加される。

That's all. This is end.

といったところで、Arch Linuxの導入はおしまい。
Arch Linuxをインストールしてみると、
Ubuntuの導入がいかに楽なのかがよく実感できる作業でした。

Arch Linuxのインストール手順のこと その3

Customize Mate Desktop Environment

とりあえず、デスクトップが表示されたけれど、
まだ、機能が足りない。
というわけで、環境構築の続き。
GUIのフォントが文字化けしている場合なんかは、
外観の設定で好きなフォントを設定しておいてください。

IMEの設定

キーボードレイアウトの設定。

キーボードレイアウトが初期ではUSになっているので、
コントロールセンターからキーボード設定を呼び出して、
レイアウトの設定を行う。
日本語レイアウトを追加してUSレイアウトを削除する。
合わせてキーボードの型式も設定する。
f:id:nagamitsu1976:20180621135729p:plain

インプットメソッドフレームワークのインストール

Ubuntu Mate 16.04でも採用されていたfcitx-mozcをインストールする。

$ sudo pacman -S fcitx-im fcitx-mozc fcitx-configtool

ホームディレクトリに.xprofileを作成し、下記を追加する。

$ nano ~/.xprolie
……
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

一旦、ログオフし再ログインすると、fcitxが立ち上がる。
(通知スペースにキーボードのアイコンが出る)
fcitxの設定パネルからアドオンタブを開いて、advancedチェックをON。
Fcitx XIM Frontendを選択して、ダイアログのチェックボックスをONにする。
fcitxを再起動。
f:id:nagamitsu1976:20180621140800p:plainf:id:nagamitsu1976:20180621140805p:plain

XDGユーザディレクトリの作成

XDGユーザディレクトリというのは、ユーザのホームディレクトリ配下にある
「デスクトップ」とか「ダウンロード」などのディレクトリのこと。
初期のMateではパッケージがインストールされていないので作られていない。
手順は以下の通り。

xdg-user-dirsパッケージのインストール
$ sudo packman -S xdg-user-dirs
xdg-user-dirs-updateの実行

デフォルトで良ければ、xdg-user-dirs-updateを実行する。
英語が良ければ、LC_ALL=C xdg-user-dirs-updateを実行する。

$ xdg-user-dirs-update
or
$ LC_ALL=C xdg-user-dirs-update

デフォルト以外のパスを使いたければ~/.config/user-dirs.dirsを作成し、
中身を記載してから、xdg-user-dirs-updateを実行する。

$ nano ~/.config/user-dirs.dirs
……
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_TEMPLATES_DIR="$HOME/.Templates"
XDG_VIDEOS_DIR="$HOME/Videos"

gvfsマウントルールの追加

ファイルマネージャでディスクをマウントする際、認証を求められることがある。
それを回避するために以下の設定を行う。

storageグループにユーザを追加
$ usermod -aG storage [user-name]
10-enable-mount.rulesの作成

/etc/polkit-1/rules.d/10-enable-mount.rules

$ nano /etc/polkit-1/rules.d/10-enable-mount.rules

# 下記を追加
polkit.addRule(function(action, subject) {
	if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("storage")) {
	    return polkit.Result.YES;
	}
});

音量がリセットされる場合の対処

ボリュームコントロールからボリュームを設定したのに、
再起動するとリセットされている場合に実施する。

alsa-utilsパッケージのインストール
$ sudo pacman -S alsa-utils
ALSA設定の保存&レストア

この状況の場合、ALSA 設定ファイル/var/lib/alsa/asound.stateが存在しない……と思うのでコマンドを使って強制的に設定を保存し、レストアする。

$ sudo alsactl -f /var/lib/alsa/asound.state store
$ sudo alsactl restore

Congraturations!

日本語が入力できるようになれば、おめっとさん。
あとは自由にカスタマイズできるでしょう。

……って、ここで終わられても、まだAURを使ってない。
というわけで、その4へ続く。

Arch Linuxのインストール手順のこと その2

Install Mate Desktop on Arch Linux

その1の続き。
私はヘタレLinuxユーザーなのでGUIが無いと何もできません。
というわけで、GUI導入までの手順を残す。
LinuxデスクトップではダントツのMate推しなので、
Mate Desktopの導入となります。

CUI環境の整備

コンソールの文字化け対策

前回のインストール時にロケールをja_JP.UTF-8としたので、
今のコンソールではメッセージが化けまくっている。
そこで、tty環境(alt+ctrl+F1〜F6)ではLANG=Cとなるように、Bashの定義を追加する。
追加後、再度ログインすれば、メッセージは英語で表示される。

$ nano /etc/bash.bashrc
 ……
#下記内容を末端に追加
# tty force LANG=C
(tty|fgrep -q 'tty') && export LANG="C"
 ……

ちなみに、コンソールに日本語を表示する方法として、
fbtermとかKMSCONとかを導入するって方法があったけど、
どっちも試した結果、どちらもしっくり来なかった。
解像度とか、描画の美麗さ、反応速度とか色々。
で、結局、文字化けしなければ英語で十分、という判断になった。

タブ補完の強化
$ pacman -S bash-completion
multilibリポジトリの有効化

64bitOSなので32bitのライブラリは不要だけれど、
wineを使いたいので32bitライブラリもインストールできるように
multilibリポジトリを有効化しておく。
/etc/pacman.confの[multilib]の項目とパスを有効化

$ nano /etc/pacman.conf
$ pacman -Syu
ユーザ追加
$ useradd -m -G wheel -s /bin/bash [username]
$ passwd [username]
sudo設定の追加

sudoで権限委譲できるuserを追加する。

$ visudo
……
# User privillege specificationの項に下記を追加((グループ全体を適用する方法もある。))
[username] ALL=(ALL) ALL
……
日本語フォントのインストール

これはお好みで。

$ pacman -S noto-fonts noto-fonts-cjk

GUI環境の構築

X Window Systemのインストール
$ pacman -S xorg-server xorg-apps xorg-server-xephyr
グラフィックドライバのインストール

lspciコマンドを使ってVGAバイスの確認を行う。

$ lspci | grep -e VGA -e 3D

確認できたグラフィクカード(or チップ)に合わせてドライバをインストールする。
wikiXorgの項目にインストールべきドライバについて記載がある。*1
うちのPCはnVidia GeForce GTS 250なのでnvidiaのレガシードライバをインストールした。

$ pacman -S nvidia-340xx nvidia-340xx-utils lib32-nvidia-340xx-utils

nvidia-settingsというツールでグラッフィクボードの状態を見たり、Xorgの設定が行えるのだが、
GUI表示させた場合、下記のパッケージが無いとエラーがでるので、
気になる場合はインストールしておく。

$ pacman -S gtk2 gtk-engines

nvidiaドライバが更新された時、initramfsのアップデートが必要となる。
ドライバ更新時のinitramfsの再作成を自動化するため、
/etc/pacman.d/hooks/nvidia.hookファイルを作成しておく。

$ nano /etc/pacman.d/hooks/nvidia-340xx.hook

[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia-340xx

[Action]
Depends=mkinitcpio
When=PostTransaction
Exec=/usr/bin/mkinitcpio -p linux
ディスプレイマネージャのインストール

ディスプレイマネージャにも色々あり、何を選ぶかは自由となっているが、
Ubuntu Mate 16.04で採用されていたLightDMを選んだ。

$ pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings

あとで気づいたことだけど、Mate導入後にjournalログを見たらこんなエラーが出てた。

6月 20 11:04:19 catharina lightdm[479]: Error getting user list from org.freedesktop.Accounts: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Accounts was not provided by any .service files

ここに少しやり取りがあり、accountsserviceパッケージが無いと発生するらしいが、
動作には問題が無い模様。*2
でも、気になるのでインストールをしておく。

$ pacman -S accountsservice
MATEデスクトップのインストール
$ pacman -S mate mate-extra
ディスプレイマネージャの自動起動On
$ systemctl enable lightdm
コンポジットマネージャのインストール

ウィンドウ装飾のことらしいんだけど、
Mateで採用されているウィンドウマネージャのMarcoには、
ソフトウェアコンポジットの機能があるので、なにもしなくてもウィンドウの装飾は行われる。
とはいえ、これはLinux
実はこの装飾を行うプログラムであるコンポジットマネージャも好きに選べる。
ということで、comptonというコンポジットマネージャも入れてみた。

$ packman -S compton

起動するには自動起動するアプリケーションに下記のように追加するだけ。
ただし、起動する際はMarcoのコンポジット機能をOFFにしておく必要がある。

$ compton -b
起動時NumLock On

ディスプレイマネージャ起動時にNumLockをOnにする方法。
デフォルトOffでも構わないのだけれど、
NumLockがOnのままログオフするとNumLockのランプがついているけれど、
内部ではNumLockがOFFという奇妙な状態になるので、
デフォルトOnとなるようにしておいた。
当然、ディスプレイマネージャによってやり方は異なる。
LightDMの場合は、numlockxパッケージをインストール後、
/etc/lightdm/lightdm.confを編集する。

$ pacman -S numlockx
$ nano /etc/lightdm/lightdm.conf
……
# greeter-setup-scriptの行を有効にしてnumlockxのコマンドを記述する
[Seat:*]
greeter-setup-script=/usr/bin/numlockx on
……

ネットワークマネージャのインストール

dhcpcdが動いているので今のままGUIを起動してもネットワークには繫がる。
ただ、Mateの通知パネルに通知が上がってこないのでわかりにくい。
そこで、ネットワーク設定をNetworkManagerにやらせることにする。

インストール
$ pacman -S networkmanager network-manager-applet gnome-keyring
NetworkManagerの自動起動On
$ systemctl enable NetworkManager
dhcpcdの自動起動Off
# systemctl disable dhcpcd

Windows Network 共有

ファイルマネージャ(caja)で共有サーバを覗くだけなら
gvfs-smbパッケージをインストールするだけでOK。
だめだったらsamba smbclient cifs-utilパッケージもインストールする。

	$ pacman -S gvfs-smb
	# だめだったら後からこれもインストール。
	$ pacman -S samba smbclient cifs-util

再起動

$ reboot

Congraturations!

再起動後、ログイン画面が出たらおめっとさん。
新しく作ったユーザでログインできたらおつかれさん。

……って、ここで投げ出されても、まだツラい。
というわけで、その3へ続く。

Arch Linuxのインストール手順のこと その1

Install Arch Linux

Ubuntu Mate 18.04がいまいちだったのでArch Linuxに入れ替えた。
Arch Linux公式サイトにはインストール手順やドキュメントが充実しているので、
基本は手順通りに行えば良いのだが、それでも迷うところがちらほらあった。
念のために、以下に手順を残す。
今回はBIOSモード、MBRGRUBをインストールするレガシーなパターンです。

インストールメディアの準備

公式サイトからインストールイメージをダウンロード。
Ubuntuのディスクイメージライターを使って、USBメモリにレストアした。

パーティション

UbuntuのLive CDで予め作成した。
とはいえ、LVMを使うのでGUI操作よりコンソール操作が多かった。

バイス マウントポイント フォーマット サイズ 用途
/dev/mapper/mate--vg-lvswap - SWAP 16G スワップ
/dev/mapper/mate--vg-lvroot / ext4 100G ルート領域
/dev/sdb1 /boot ext2(boot ON) 1G ブート領域
/dev/mapper/mate--vg-lvfile /usr/files/ ext4 残り全部 ユーザデータ用

nagamitsu1976.hatenadiary.jp

インストールの準備

PCをUSBブートしてArch Linuxインストールメディアを起動。
メニューからインストーラーを起動。

キーボードレイアウトの設定
$ loadkeys jp106
パーティションの確認

インストールするディスクのデバイス名を確認する。

$ fdisk -l
ルートパーティションのマウント
$ mount /dev/mapper/mate--vg-lvroot /mnt
マウントポイントを作成
$ mkdir /mnt/boot 
$ mkdir -p /mnt/usr/files
残りパーティションのマウント
$ mount /dev/sdb1 /mnt/boot
$ mount /dev/mapper/mate--vg-lvfile /mnt/usr/files
スワップ有効化
$ swapon /dev/mapper/mate--vg-lvswap
ネット接続の確認

wifi接続の場合、接続設定を行う必要があるので、
有線接続での作業が楽です。
wifi設定はOSインストール後なら、NetworkManagerを使うなりなんなりで、
手軽にできるからです。

$ ping www.google.com
システムクロックの変更
$ timedatectl set-ntp true

OSのインストール

ミラーの選択

mirrorlistファイルを開いてリストから国内のサーバーを検索する。
見つかった国内サーバーのURLをファイルの上位にカット&ペーストする。
国内のサーバーもいくつかあるので、
どんな順番にするかは下のページを見ると参考になる。
https://www.archlinux.jp/mirrors/status/

とはいえ、Jaist筑波大学のサイトを上位にすればいいと思う。

$ nano /etc/pacman.d/mirrorlist
ベースシステムのインストール
### $ pacstrap /mnt base base-devel [old] ###
$ pacstrap /mnt base linux linux-firmware
fstabの生成
$ genfstab -U /mnt >> /mnt/etc/fstab

システム設定

以降は、システムの基本設定を行う。
タイムゾーンロケール、ホスト名などなど。

ルートディレクトリ変更

インストールしたベースシステムにルートを変更する。

$ arch-chroot /mnt
タイムゾーン設定
$ ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ hwclock --systohc --utc
ロケール設定

/etc/locale.genを編集してからlocale-genを設定する。
有効にするのはen_US.UTF-8 UTF-8とja_JP.UTF-8 UTF-8でOK

$ nano /etc/locale.gen
$ locale-gen

/etc/locale.confにロケールを定義する

$ echo LANG=ja_JP.UTF-8 > /etc/locale.conf
キーマップの設定
$ echo KEYMAP=jp106 > /etc/vconsole.conf
ホスト名の設定
$ echo myhostname > /etc/hostname
$ nano /etc/hosts

同じ名前を/etc/hostsにも記載。

127.0.0.1	localhost
::1		localhost
127.0.1.1	myhostname.localdomain	myhostname
ネットワーク設定

baseシステムではdhcpcdを使い、
あとでNetworkManagerをインストールして使う算段なので、
ここではdhcpcdを有効化する。

$ systemctl enable dhcpcd@[network-interface-name].service
もしくは
$ systemctl enable dhcpcd

インターフェイス名を確認するには、ip link*1を使う。

initramfsの生成

lvmを使っている場合(ルートパーティションが論理ボリュームの場合)
/etc/mkinitcpio.confを編集する。

$ nano /etc/mkinitcpio.conf
……
# HOOKSの行に[lvm2]を追加する。
HOOKS=(base udev autodetect modconf block lvm2 filesystems keyboard fsck)
……
# mkinitcpio -p linux
rootパスワード設定
$ passwd

ブートローダーの設定

最初に書いた通り、ここではBIOSモードでMBRGRUBをインストールする。

exFatNTFSのサポート

Windowsとのデュアルブートのために、exFatNTFSを扱えるようにする。
デュアルブートでなくても入れておいたほうが無難か。

$ pacman -S exfat-utils ntfs-3g
GRUBのインストール

grub-installでMBRに書き込むデバイスを間違えないように注意する。
ここでWindowsのインストール先ディスクに書いてしまったら……*2

$ pacman -S os-prober grub
$ grub-install --target=i386-pc /dev/sdb
$ grub-mkconfig -o /boot/grub/grub.cfg
マイクロコードアップデート設定

Intel製CPUを使っている場合は、更にintel-ucodeパッケージをインストールする。
amd製CPUだったらamd-ucodeパッケージをインストールする。

インストール後、再度、grub-mkconfigを行う。

$ pacman -S intel-ucode
$ grub-mkconfig -o /boot/grub/grub.cfg

再起動

exitで一旦抜けたあと、
ルートパーティションをアンマウントし再起動する。
ブート前にインストールメディアを抜いておくのを忘れずに。

$ exit
$ umount -R /mnt
$ reboot

Congraturations!

ディスクから起動するとGRUBが立ち上がり、
Linuxが起動すれば、インストール成功。
これでCUILinuxが使えます。
おつかれさまでした。

……って、ここで投げ出されてもツラい。
というわけで、その2へ続く。

*1:ifconfigを含むはnet-toolsはもう過去のものになってるようだ。

*2:Windowsブートローダーが壊れます。