Heijastin

Ceni and Network Manager

不便は嫌だが、それは常に悪ではない。

Aptosid の固有ツール Ceni は TUI 版の Network Manager といった趣きがあるが、初期状態ではまさかの DHCP 利用不可。せっかく CUI 環境で使えるツールなのに NM 代替とは到底成り得ない。しかし、その不便さが試行錯誤による知識と経験の獲得に繋がった。

初期状態では DHCP が使えない Ceni

Aptosid には Ceni という TUI の接続設定ツールが存在している。これは CUI/GUI どちらの環境からも当然利用可能で Enter キーの連打による簡単設定を実現している。つまり CUI 環境であっても Ceni のおかげで手軽に Wi-Fi 接続が出来る…はずなのだが、致命的なことに Ceni では DHCP の利用が不可能だ。DHCP 設定の項目自体は存在しているが、これがまったく機能しない。その理由は後述するが、ともかく IP Address 及び DNS 取得が不可能な状況では Wi-Fi 接続を自由に行うことはままならない。

CUI 環境では利用不可能な Network Manager

上記の理由で Tethering, Hotspot を利用した Wi-Fi 接続を主体とする場合 Ceni は何の役に立たない。そこで、僕は Network Manager を併用している。Network Manager は高性能かつ手軽なツールで、僕はこれほど便利なツールを他で見たことがない。ただひとつ CUI 環境では使えないという制限があるが、これは一般的には制限の部類に入らないだろう。「CUI 環境限定で Wi-Fi 接続」という状況は、容易には想像出来ないからだ。しかし、これが起こるのが Aptosid なのだ。

dist-upgrade においては CUI 環境で Wi-Fi 接続もあり得る

Aptosid では dist-upgrade 作業を X Window Sysytem を停止した init 3 で実行する必要がある。ここで Ceni が使えないという不具合が響いてくる。通常 CUI 環境から接続を確立するには2つの選択がある。ひとつは可能であれば ifconfig で有線接続に切り替えること。もうひとつは iwconfig を使うことだ。

iwconfig による設定

ip link set wlan0 up
iwconfig wlan0 essid 名前 key s:パスワード
参照:Wireless Setup – ArchWiki

なお "s:" のコロンとパスワードの間には「空白を入れない」ことに注意。それにしても、今の時代において、こんな原始的な方法を取るなんて非効率も甚だしい。しかも、作業の度にこれではやってられない。そこで /etc/init.d/networking を利用した wlan0 の自動起動という案が浮かぶのが普通だろう。自動起動の場合、記載する内容は以下。Binary の場合 "s:" は不要。

/etc/network/interfaces

auto wlan0
iface wlan inet dhcp
	wireless-essid	名前
	wirelss-key	s:パスワード
参照:WL:Wifi Configuration – gc-linux

しかし、こちらの方法を採ると Network Manager が利用不可能になるという馬鹿げた Rebate を支払うことになる。つまり iwconfig も auto wlan0 も非現実的なのだ。この状態では、有線接続の接続先固定しか選択肢はない。init 3 でしか dist-upgrade 出来ない OS だから、ということで Ceni が用意されたと思うのだが DHCP が使えないという無情。Aptosid には「固定 IP の固定環境でのみ Upgrade 可能」という制約があると考えても良いだろう。実際 Upgrade 作業なんて自室以外でやることはないし、それはそれで間違っちゃいないのだろうが…

Ceni の DHCP 問題解決も Tethering は不可能

そもそも、なぜ DHCP が使えないのか?そういえば Debian には Proprietary の徹底排除という主義がある。もしや Wi-Fi 用の Firmware が必要だとか?しかし Network Manager なら、何の問題もなく DHCP が利用出来るし Nokia N9 でのTethering も問題ない…

sudo apt-get install firmware-linux-nonfree firmware-linux-free

実行してみたところ、結果的に Ceni の場合は Firmware 導入が必須だった。これで Ceni の DHCP 問題は「一応のところ」解決。一応というのは、やはり Ceni では Nokia N9 での Tethering が不可能だからだ。

Network Manager と Ceni の併用

通常は Network Manager を使い CUI 環境でのみ Ceni を使う。ただし CUI 環境では Tethering 不可能(僕は MeeGo しか所持してないので Android, iOS ではどうか知らない)なので CUI 環境での Wi-Fi は利用は Hotspot 限定。多少の制限は残るが、この条件で良好と言えるだろう。僕は常時 CUI 環境でないと困るということもない。しかし瑣末な問題が残っている。一度 Ceni で Wi-Fi 設定を行ってしまうと Network Manager から接続可能なスポットが発見出来なくなるのだ。これの解消法がまた原始的。まずは Ceni を起動して Wi-Fi 設定を削除。次いで Network Manager を再起動する。こう書くと単純だが、この結論に辿り着くまでは結構な試行錯誤があったのだ。

sudo /etc/init.d/network-manager restart

場合によっては /var/run/wpa_supplicant/ ないしは /var/run/wpa_supplicant.wlan0.pid を削除する必要に駆られることもある。ともかく、スマートさに欠ける作業であることは間違いない。

試行錯誤の余白が発展途上 Distro の醍醐味

要するに Ceni が Network Manager を代替出来れば丸く収まるのだが…なかなか、そう上手くは行かない、一筋縄では行かないのが面白いところ。なんでも出来てしまう Ubuntu 系や Linux Mint は、やっぱり魅力的だが…何かにつけ、自分なりに解決策を考える、打開策を練る、という「試行錯誤の余白」は発展途上 Distro ならでは。「頭を使って、自分で考えてこその Linux じゃないか!」という僕なりのこだわりがあるのだ。「あえて挑んで、自力で成功」させれば、どんな小さな事でも達成感を得られるし、それはひとつの成長だ。そもそも、絶対マシン自作派で DIY 派の僕が Aptosid のような Distro を選ぶ理由は、そこにもある。

Tags