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

HPCメモ

HPC(High Performance Computing)に関連したりしなかったりすることのメモ書き

VMwareからUSBメモリへの移行(その3)

さて、前回まででほぼインストール&環境設定は終わりなのですが、2つほど後回しにしていたものがあるので、落穂拾いを。

ネットワークの設定

インストール後の設定の時は手動でdhcpcdを立ち上げてましたが、なんせUSBメモリにインストールしてるので、起動する度に挿さってるNICが違うなんて可能性も高いわけです。
そうすると、立ち上げる度にNICを調べてdhcpcdを立ち上げてって作業が必要になって、面倒なので自動化してしまいましょう。
といっても、色々な環境に対応するのは面倒なので、とりあえずVMwarePlayerの有線LAN(エミュレータ)と今つかってるThinkpad無線LANだけ設定します。*1

必要なパッケージのインストール

pacman -S wpa_actiond ifplugd iw wpa_supplicant netctl

色々と入れてますが、ネットワークの設定はnetctlで行ないます。
https://wiki.archlinux.org/index.php/Netctl_(%E6%97%A5%E6%9C%AC%E8%AA%9E)

有線、無線ともに

  1. 載ってるNICの確認
  2. netctlの設定ファイルをコピー
  3. 設定の変更

の順で設定していきます。

有線LANの設定

まずは、NICの確認

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:de:26:12 brd ff:ff:ff:ff:ff:ff

ens160が居ることが分かります。
注:この例は既に設定済なのでUPになってますが、未設定でこのコマンドを実行するとDOWNになってるはずです。

続いて、netctlの設定ファイルをコピーしてきます。
有線接続かつDHCPの場合の雛形は/etc/netctl/examples/ethernet-dhcpにあるのでこれを/etc/netctlの下にコピーします。
NIC毎に設定を変える必要があるけど、dhcpじゃない環境に行くことはまず無いので、ethernet-{NIC名}という命名ルールにしました。

$ cd /etc/netctl
$ cp examples/ethernet-dhcp ethernet-ens160

最後に設定ファイルを修正します。
といっても、Interface行をeth0からens160に変更するだけです。
*2
あとは、他のマシンで立ち上げた時に使ったことが無いNICが必要になったら、この設定を繰り返していきます。
*3

無線LANの設定

NICの確認方法は同じです。
WPAな無線LANに接続する時の雛形は、/etc/netctl/examples/examples/wireless-wpaにありますが、有線の時と違って、接続先によってSSIDやらKeyやらが変わるので、wireless-{NIC名}-{接続先のネットワーク識別子}という命名ルールで/etc/netctlの下にコピーします。

例えば自宅無線LAN用なら

$ cp examples/examples/wireless-wpa wireless-wlp1s0-home

みたいな感じです。
有線LANと同じくInterface行を書き換えたら、下の方にあるESSIDとKeyの行に接続先アクセスポイントのSSIDとKeyを書きます。
平文で保存されるファイルに鍵を書くのはちょっと・・・という場合はwpa_supplicantパッケージに含まれる
wpa_passphraseを使って暗号化した上でKeyを書くこともできます。*4


自動起動の設定

最後に、自動的にnetctlが有効になるように、次のsystemctlの設定を行なって終わりです。
のところは上で設定した正しいNIC名を指定してください。

# systemctl enable netctl-auto@<interface>.service 
# systemctl enable netctl-ifplugd@<interface>.service  

これを設定したNIC全てに対して行なえば、有線の抜き差しをしたり、無線LANの電波状況が変わった時に自動で切り替えてくれます。


日本語入力の設定

私はかれこれ10年以上前からのskkユーザーなので、uimを入れて辞書を入れて.xinitrcの設定をすればほぼ終わりです。
たぶん、ほとんどの人に役に立たないと思いますが、一応手順を・・・
パッケージをインストールします。

# pacman -S uim
resolving dependencies...
looking for inter-conflicts...

Packages (5): anthy-9100h-3  libotf-0.9.13-1  m17n-db-1.6.4-1  m17n-lib-1.6.4-2
              uim-1.8.6-1

Total Download Size:    8.54 MiB
Total Installed Size:   42.49 MiB

:: Proceed with installation? [Y/n]

辞書をインストールします。
openlabのwebページにアクセスして・・・と思ったら、なぜか辞書はcommunityリポジトリに入ってるようです。
https://www.archlinux.org/packages/community/any/skk-jisyo/
というわけで、再びpacman

# pacman -S skk-jisyo
resolving dependencies...
looking for inter-conflicts...

Packages (1): skk-jisyo-20120902-2

Total Download Size:    2.37 MiB
Total Installed Size:   8.57 MiB

:: Proceed with installation? [Y/n]

.xinitrcに以下の内容を追記します。

GTK_IM_MODULE=uim ; export GTK_IM_MODULE
QT_IM_MODULE=uim ; export QT_IM_MODULE
uim-xim &
XMODIFIERS=@im=uim ; export XMODIFIERS

Xを立ちあげてUimPrefから
https://code.google.com/p/uim-doc-ja/wiki/UimSkk#使い方
に書かれている設定を行います。
といっても
f:id:n_so5:20130729233341p:plain
こんな感じで、SKKをデフォルトのインプットメソッドに選ぶだけです。

f:id:n_so5:20130729232545j:plain

これで、SKKから日本語が入力できるようになりました。


こんな感じで作ったArch USB keyですが、ほぼ毎日会社と家を往復して複数台のPCに突っこんで遊んでますが、今のところ特にトラブルもなく快適な生活です。

*1:他の環境に行った時はこの設定をもっかいやれば良いわけだし・・・

*2:ネットワークカードが変わった時にeth0が挿すカードが変わるのが困るという理由で、ユニークなネットワークデバイス名が採用されたらしいんだけど、この場合逆にどのネットワークカードが来てもeth0の方がありがたいんだが・・・

*3:頑張れば自動化できるんだろうけど、よくわからんネットワークにいきなり繋ぐのは危険だしなぁ・・・

*4:入力例を書いてうっかりSSIDとKeyを全世界に公開しても困るのでこの段は例無しです。