ジャンル不定の日記です。

再度 Arch Linux+KDE のインストールまとめ

メイン環境もArch Linuxにしちゃおうと思ってインストール準備中なんだが、
先日から何回かArch Linuxのインストール手順まとめてるが、今回はベースシステムインストール後はインストールしたシステム上でネットワーク接続して作業を継続しようと思うんで、手順に変更があるのと、
環境構築完了まではメイン機でまとめるの難しいんで、先にインストール手順まとめとく。

流れは大きく分けて、
  1. ベースシステムのインストール
  2. 再起動してKDEインストールとネットワーク設定
  3. 再起動してGUI環境での設定
grubのインストール後はインストールCD使わないで済むようにする。



ベースシステムをインストール

Arch Linuxのインストールisoを用意してCDから起動する。
パスワード無しでrootログインとなる。

日本語キーボードにする
loadkeys jp106
loadkeysコマンドはシャットダウンまでの一時的な設定だが、初期状態で英語キーボードなのでjpキーボードにしないと記号が入力できなかったりして困るので設定する。

無線LANの場合
wifi-menu
コマンドを使うと、アクセスポイントをスキャンしてくれて、選択してパスワードを入力するだけで回線が利用できる。
有線(DHCP)の環境の場合は何もせずにネットワークは利用可能になっている。

パーティションの作成
GPTというのが推薦のようなので、fdiskではなくgdiskで作成する。
gdisk /dev/sda
で1番目の物理ディスクにパーティションを作る。
?でコマンド一覧を確認できるが、
o コマンドで全てのパーティションを消してパーティションテーブルを作成。
n コマンドでパーティションの作成
w コマンドで書き込んで終了
という流れになる。
p コマンドを使うとパーティションテーブルを確認できる。
nコマンドでのパーティション作成は、1番目のパーティションはそのままEnterすると開始セクタが2048で最後までのパーティションとなる。
パーティションタイプを指定せずそのままEnterするとLinux用のパーティションになる。
その後2番目のパーティションを作成すると34-2047の1007KBのパーティションが作成できるが、
grub用のパーティションが必要なので、パーティションタイプef02で作成してブート用の領域にする。
/dev/sda1がルートの方がわかりやすいと思うんで、1番目のパーティションをLinux用、ブート領域は2番目にした。
スワップ領域は要らない派なんで作らない。
タイプef02のパーティションを作成するのは、メイン領域はファイルシステムにbtrfsを利用しgrubがbtrfsをロードできないのでef02の領域を作らないとgrubがインストールできない。

フォーマット
mkfs -t btrfs /dev/sda1
流行りのようなんでext4ではなくbtrfsでフォーマットする。
もしbtrfsでフォーマット済みの場合、エラーが出て上書きできないので、その場合は、
mkfs.btrfs -f /dev/sda1
で初期化できる。

インストールする領域をマウント
mount /dev/sda1 /mnt

日本のミラーの変更(省略可)
nano /etc/pacman.d/mirrorlist
この手順は省略可能だが、初期状態だとアメリカの鯖からダウンロードになると思うのでJapan優先にする。
テキストエディタはnanoが利用可なので、nanoで/etc/pacman.d/mirrorlistを開いて、Japanの箇所を探してカットして先頭にペースト。
nanoは下にショートカットキーの一覧が表示されるので使いやすいが、
Ctrl+Kでカット、Ctrl+Uでペースト。Ctrl+Xで終了で、変更している場合は保存確認が出るのでYでEnterすると保存して終了となる。

ベースシステムをインストール
pacstrap /mnt base
これでベースシステムのパッケージがダウンロードされて/mntにインストールされる。
ソースコードからArch用のパッケージを作るためのArch Build System (ABS)、
一般ユーザーがABSで作成したパッケージが配信されるArch User Repository (AUR)、
これらがArch Linuxの売りのようで、これらを利用するためには、baseだけでなくbase-develも入れる必要があるのだが、
後から入れることはできるので、今回はできるだけ最小構成を目指したいのでbaseだけ入れる。
AURを使いたいときにbase-develを入れると覚えておく。
baseの後にスペース区切りでパッケージ名を指定すればこの時点で入れられる。

fstabの作成
genfstab -p /mnt >> /mnt/etc/fstab
これでfstabが自動的に作られる。

インストールしたシステムにchroot
arch-chroot /mnt

GRUBのインストールと設定
pacman -S grub
grub-install --target=i386-pc --recheck --debug /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
pacmanでgrubパッケージをインストールして、grubのコマンドで/dev/sdaに入れる。

pacmanコマンドはUbuntuで言うところのaptだが、なにかインストールする際は、
pacman -S パッケージ名
で入れる。
pacman -Ss 文字列
で検索できる。

無線LAN環境の場合、インストールの際にwifi-menuを利用したと思うが、
wifi-menuはGUIと変わらない簡単さでCUIで無線LANが利用できるが、dialogパッケージの追加インストールが必要。
pacman -S dialog
でパッケージを入れておくと再起動後も簡単にネットワーク設定ができる。


KDEが起動してネットワークが使えるようにする。

ここからの作業は、ベースシステムとgrubを入れた後に、HDDから起動しての作業です。

日本語キーボードにする
loadkeys jp106
システムのキーボードは設定していないので、またキーボード設定。
KDE上のキーボード設定はGUIでできるので、システムのキーボード設定は不要。

ネットワークのの設定
baseパッケージに含まれるnetctlでネットワークが利用できる。
netctlは、/etc/netctl/以下にプロファイルを置き、
netctl start プロファイル
でネットワークが有効になる。
サンプルプロファイルが、/etc/netctl/examples/以下に、サンプルがあり、
有線DHCP環境ならethernet-dhcpを/etc/netctl/にコピーだが、
デバイス名がudevによって書き換えられるのでeth0ではない。うちの場合はenp4s0だった。
dmesg|grep eth0
[    3.587546] systemd-udevd[180]: renamed network interface eth0 to enp4s0
dmesgコマンドで確認できる。
サンプルプロファイルはインターフェイス名がeth0になっているのでenp4s0に修正した。

無線環境なら wireless-wpa等をコピーだが、修正の必要があるので、
wifi-menu -o
でスキャンされて選択してパスワードを入力すればプロファイルが作成されるので楽。
wifi-menuコマンドの利用には、ベースシステムのインストールの際にdialogパッケージも入れている必要がある。

これで一時的にネットワークが利用可能になるが、システム再起動後に自動的に接続されるようにするには、有線ならifplugdパッケージが必要。
pacman -S ifplugd
systemctl enable netctl-ifplugd@インターフェイス.service
インストールしてサービス自動起動設定で、LANケーブルが刺さったらネットワークが有効になる。
無線の場合はwpa_actiondパッケージ。
pacman -S wpa_actiond
systemctl enable netctl-auto@インターフェイス.service
とインストールしてしてサービスを自動起動させる。
インターフェイスはプロファイルのファイル内やdmesgコマンドで確認できる。

netctlを自動起動させず、
pacman -S kdeplasma-applets-plasma-nm
でKDEのパネル用NetworkManagerアプレットを入れ、
systemctl enable NetworkManager
でnetctlではなくNetworkManagerを起動させれば、KDE上でユーザー権限で回線の切り替えができる。
モバイル端末ではGUI上で簡単に回線の切り替えができたほうがいいと思うが、手持ちのノートではNetworkManagerで無線接続するとKDEアプリが全て起動不可になる症状が出て、諦めてnetctlを利用した。
今回の場合は有線のデスクトップなので回線切り替えは不要なのでnetctlにする。

rootパスワードの設定とユーザーの作成
passwd
useradd -m user
passwd user
KDEをインストールしようとしているわけだが、KDEにrootでログインしようとすると怒られる。
KDE上でroot権限が必要な際、Ubuntuなら現ユーザーのパスワードが要求されsudoするが、Archではrootパスワードが要求されsuとなる。
というわけで、rootパスワードを設定して、一般ユーザーを作成する。
ユーザー名を省略してpasswdコマンドを使うとrootパスワードの設定になる。
useraddコマンドの-mオプションで、ユーザーの作成と同時にホームディレクトリが作られる。
passwdコマンドで作成したユーザーのパスワードを設定。

Xとグラフィックドライバのインストール
pacman -S xorg-server xf86-video-vesa
Xのグラフィックドライバは、VESAドライバを入れておけば普通はKDEの起動はできるはず。
なんだが、手元のノートPCの際はxf86-video-vesaではKDEの起動ができず、nvidia-304xxを入れる必要があった。
また、今回はAMDのハード(AMD 790GX)なんで、この時点でxf86-video-atiを入れておく。

KDEのインストール
pacman -S kdebase-plasma
kdebase-workspaceを入れればKDEが起動できる最小構成でインストールできるようだが、plasma入れないとWidgetとか使えないと思うのでkdebase-plasma入れとく。kdebase-plasma入れればkdebase-workspaceも入る。
kdebase-workspaceだけだとアプリが何も入っていない状態で、何かコンソールがないとKDE上でのパッケージインストールすらできないので、
pacman -S kdebase-konsole
で、Konsoleも入れておく。
KonsoleさえあればKDE起動後にpacmanコマンドが利用できるので、他のアプリはあとで入れればいい。

KDEをインストールしたらkdmサービスを起動すればその時点でGUIのログイン画面となる。
systemctl enable kdm
システム起動時にkdmが自動起動するように設定する。


GUI環境での設定

KDEをインストールしてkdmを起動すればGUIログイン画面になり、KDEにログインできます。
もしGUIのログイン画面にならなかったら、グラフィックドライバがダメ。

Konsoleをインストールしたので、
スタートメニューのApplications > System > Terminal(Konsole)
からコンソールが利用できる。

システム言語とタイムゾーンの設定
以前の手順では、言語とタイムゾーンのシステム設定はせずKDE上でだけ設定したが、システムの設定もしないと日本語化されないアプリがあるのと、
今回はメイン環境なのでタイムゾーンは設定しておいたほうがいいので設定する。
Konsole上で、
su
nano /etc/locale.gen
ja_JP.UTF-8の行をアンコメント
Ubuntuならsudoで管理者権限で実行するが、コマンド1回ならsuよりsudoの方が楽ではあるが、suが利用できるのにわざわざsudo設定することもないと思うのでsuでrootログインする。
locale-gen
localectl set-locale LANG="ja_JP.UTF-8"
でシステム言語が日本語になる。
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
言語に続いてタイムゾーン設定
設定したら再起動。

GUIのパッケージマネージャをインストール
Konsoleを開いて、
su
pacman -S apper
apperってのが人気ありそうなGUIパッケージマネージャなんでこれ入れる。
Ubuntuならsudoで実行するところだが、sudo設定してないんでsuでrootログインして入れる。

以後はコンソールでpacmanせずにGUIのapperでパッケージ管理する。
スタートメニューのApplications > Settings > Software Management(apper)
検索が初期状態で"Find by name"となってて、説明文から検索したい場合は"Find by description"しないとダメ。といっても、説明文がUbuntuと違ってショボイんでパッケージ探すのは難しいかも・・・
検索してインストールしたいパッケージの"Action"の"Install"をクリックして、"Apply"でインストールされる。

KDEの日本語パッケージを入れる
apperで"kde-l10-ja"を探してインストール。

スタートメニューのApplications > Settings > Settings SystemでLocaleをクリック。
Country Japan
Languages Japanese
を設定してApply。
再起動(再ログイン)すればKDEが日本語優先表示になる。といっても、Ubuntuに比べて日本語化がしょぼいので、あまり期待しないほうがいい。

日本語入力をインストール
apperで"mozc"を検索して"fcitx-mozc"をインストール。
UbuntuでもおなじみのGoogle製IMだが、他に、"fcitx"で検索して、
"kcm-fcitx","fcitx-gtk2","fcitx-gtk3","fcitx-qt4","fcitx-qt5"
も入れる。
kcm-fcitxはKDE用のfcitx設定ツール。パネルとかからfcitxを設定するのに必要。
gtkアプリとか、別々にfcitx入れないとダメなようで、gtkとqtのやつ別々に入れる。
再起動(再ログイン)するとパネルのシステムトレイにfcitxが表示される。

Konsoleで、
nano .xprofile
して、ホームディレクトリの.xprofile(存在しない)を編集。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
内容は3行。
これでfcitxを標準IMになる。
設定しないとXIMが標準になっちゃってて、IMを変更できるアプリ以外では日本語入力できない。

システムトレイのfcitx(キーボードアイコン)を右クリックして、"設定"をクリック。
入力メソッド > 入力メソッド選択 で "Mozc" を右に入れて、"適用"
でMozcが利用可能になる。
Mozcは2番目に置いて1番目は"キーボード - 日本語"にすれば初期状態で日本語キーボードでの半角入力でモード切り替えで日本語入力になる。
入力モードの切り替えは初期状態で「Ctrl+Space」なので、
全般の設定 > ホットキー > 入力メソッドのオンオフ を確認する。
左側が「Ctrl+Space」だが、右側が"Zenkaku Hankaku" になっていなかったら、クリックして「半角/全角」キーを押して設定して、"適用"
これで半角/全角キーでモード変更できるようになる。


メイン環境もArch Linuxにしちゃうか・・・

最近メインのUbuntu環境で脱Unityしたが、
移行したKDE以外にもXubuntuとかLubuntuとか入れたせいでアプリいっぱい。
Ubuntuの.debはメタパッケージ入れちゃうとアンインストール難しいようで、要らない環境とアプリの削除が厳しい。
というわけで、Archの方が入れたの消しやすいと思うし、ちょうど土日だしメイン環境もArchにしちゃおうか検討してる・・・
もしハードの問題でインストールに失敗しても、UbuntuのインストールDVDはあるから復帰できるし。

Archはパッケージの説明がしょぼいから、どんなパッケージが存在するかある程度わかってないとインストール難しいから、新しいアプリに出会うのが難しいと思うが、
メイン環境をArchにしたとしても、Ubuntu等のディストリビューションも最新版が出たら試すだろうから新しいアプリに出会うことはできると思う。

使うアプリは、たぶんJD以外Archの公式リポジトリで足りると思う。
JDとモナーフォントはAURから入れる必要がありそう。
他に最近LibreCADを使うことがあるんだが、これがArchの公式リポジトリになさそうなんだが、代用品は公式リポジトリにありそう。

ゲーム系は、ネイティブのはUbuntuの方が多そうだが、エミュレータ系はArchの方が多そうな感じ。
joystickがまだ試してないが、多分問題ない。

gFTPがArchのはFTPS対応ぽいのと、電子書籍の変換に使うCalibreなんかはArchのがバージョン新しいぽい。
最近はあまり使わないが、コミックビューワのComixは進化版?のmcomixってのがリポジトリにあった。
テスト鯖としてApache使うが、suexecのパッケージが見当たらないんだが、Ubuntuと違ってApache自体にsuexec入ってそうな感じ。
ApacheのバージョンはUbuntuの方が新しい。

Perl使うんで、モジュール類がいくつか公式リポジトリから入れられなそうだが、AURにはあると思うし、最悪CPANで・・・


そんなところかな。

Arch Linuxのタッチパッド設定

ノートPCにタッチパッドのドライバは入れてあったんだが、設定してなかったんで設定した。

PCのタッチパッドはSynaptics製なんで、ドライバは、
xf86-input-synaptics
で入る。
タッチパッドは国産機だとアルプス電気製を搭載しているハードが多いと思うが、
アルプス電気のドライバってのは見たこと無いが、アルプス電気のパッドもsynapticsドライバで行けるぽい?


タッチパッドの設定は、/etc/X11/xorg.conf.d/50-synaptics.conf
su
nano /etc/X11/xorg.conf.d/50-synaptics.conf
でいじる。

初期の設定内容は、
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
だけだったが、
Option "TapButton1" "2"
Option "TapButton2" "2"
Option "TapButton3" "3"
Option "VertEdgeScroll" "on"
こんな感じに。

パッドの右端にスクロールエリアがプリントされてるがスクロールが有効になってなかったんで有効に。

TapButton1は1本指タップ、TapButton2は2本指タップ。
右の値はマウスのボタン番号で、中ボタンが"2"。
標準で1本指タップは左クリックに設定されてるが、経験上、左クリックだと誤タップが反応してしまいウザイ。
パッドの下にボタンが2個ついてるから左クリックのエミュレートは要らない。
Linuxではセレクション&ペーストで中ボタンが重要だし、タップは全面有効で中ボタンにする。
3本指タップはさすがに誤タップしないと思うから、そのまま。

他にも細かく設定できるが、まあ使わない。
マウスも不要なボタンついてると誤クリックするし、不要な機能はつけんほうがいい。
今のマウスは4ボタン以上の製品が多いが、ホント3ボタンに退化して欲しい。

ONDA V719いいな

赤札天国が予約受け付けてるが、ONDA V719いいな。
MT8312 Cortex-A7 Dual Core 1.2GHzで3G,BT,GPS付きの7インチ中華タブ。
安心のONDA製で3G,BT,GPSのフル装備出ないかと思ってた。
お値段1万円弱と安い。

欲言うと3G,BT,GPSに加えて、神行者のパッドみたいにTVつきが欲しいが、
日本のガラパゴス地デジに対応した端末を海外メーカーが作るのはレアすぎだと思うし、
国内メーカー製は最近はワンセグじゃなくてフルセグだから、B-CASある以上中華には対抗できんしな。
B-CASは早いとこTPPで廃止になってほしい。


ファイル共有とか・・・

使ってなかったノートPCをArch Linuxで復活させていろいろいじってるが、
メイン機とのファイル共有。

確実に常時起動してるファイル鯖があればNFS鯖建てちゃえば簡単なんだが、
今は常時起動の端末置いてないんでメイン機直で共有したい。

というわけで昔から鬼門な感じするんだが、Sambaでファイル共有。

KDE環境なわけで、Dolphinに最初からネットワーク機能は搭載されているんだが、
"kdenetwork-filesharering"ってパッケージがあるとファイル(フォルダ)右クリックからSamba共有設定ができる。
Sambaが入って無ければここからSambaインストールできる。
kdenetwork-fileshareringは、Ubuntu機には最初から入っていたが、Arch機には入ってなかったんで入れた。


で、メイン機の方のフォルダを共有したんだが、見えない・・・
というわけで、かなりハマったんだが、Ubuntuファイアウォール使ってるんだった。
UbuntuファイアウォールのGUIツールは使い方わかれば簡単だと思うんだが、ハマった。
Inを全拒否した上でルール追加でSambaのInを許可すればいいわけだが、
これ、保存とか再起動とかしないで、即時有効になるんだよね。
久しぶりに使うと保存とか再起動のやり方がわからなくて迷うが、そんなもの無いw


これでDolphinのファイル共有はできたんだが、
Ubuntu使い始めた頃からでFedoraの頃は問題なかった気がするんだが、
以前からLinux機でSamba(Winも)を閲覧するとフォルダの表示がやたら遅い。
今はWin機全破損で使ってないが、逆にWin機でSambaを閲覧するのは問題なかった。
これ解決してなさそうなんだが、Dolphinはフォルダをキャッシュするんかな?一度目遅いが2度目は速いぽい。
以前よりは快適そう。


あと問題として、メイン機はシステムがSSDで容量の大きいHDDは電源切ってる。
シンボリックリンクでHDDも使えるようにしたいが、今のSambaはシンボリックリンクダメらしい。
調べたら、/etc/samba/smb.confの[global]セクションに、
unix extensions = no
wide links = yes
すれば解決するみたいな記事が多いんだが、ダメ。
というか、Dolphinでファイル共有の場合、共有フォルダ作っても/etc/samba/smb.conf書き換わらないんだよね。
別の設定ファイルがありそうな気がするんだが・・・

シンボリックリンクしないで自動マウントされるHDDを共有に追加してみたら共有フォルダ自体は見えるんだが、認証が必要で無理。


それと、基本の共有フォルダは読み取り専用にして、書き込み可能な箇所を用意したいんだが、フルコントロールにしてもファイルの作成ができない。
これはまあ、逆からも共有すればいいけど、Samba1台で済むならその方がいいよな・・・