2012年8月21日火曜日

Ubuntuで無線LANにログイン前接続する

私のデスクトップPCは無線でネットワークにつながってるんですが、Ubuntuで無線LANを使おうと思ったら、何もしてないとログイン後に無線LANのアクセスポイントにつながりますよね。

私はデスクトップPCのデータは使いたいけど、他の部屋でノートPCで作業したいという時があります。
そういうときは、電源を押してUbuntuが起動して、ログイン前に無線LANがつながってるほうがいいはずです。

  • 「電源ボタン押すなら、有線LANにしてWake on LANで起動できるようにしとけばそんなこと悩まずにすむんじゃねーのか」ってツッコミはなしの方向で。
    • すでにLANの口がボロンちょサーバーで埋まってるので仕方ないんです。
  • あと、無線のついた古いノートにサーバー版を入れてる時とか使うんじゃないですかね?
  • Intelの無線LANのアプリは「ログイン前接続」とかそんな名称があったんで、「Ubuntu wifi ログイン前接続」ってやっても出て来なかったんで、こういうタイトルの記事にしました。
    • wpa_supplicantを知ってたらそれそれって探せますけど、知らないとちょっと遠回りだろうし、という配慮。

というわけで、やってみました。
(記事の鮮度に関する情報:Ubuntu 12.04 LTS デスクトップ版)

/etc/network/interfacesを次のような感じで書き換えます。(コピーとっとくといいでしょう)
auto lo
iface lo inet loopback
#↑ここまでは最初からあったの
#↓ここからが追加
auto wlan0
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface wlan0 inet dhcp
で、この中で読みに行くように指定されている/etc/wpa_supplicant/wpa_supplicant.confを作ります。(この記事ではSSIDをfoo、パスフレーズをhogehogeとしてます)
$ sudo sh -c "wpa_passphrase <SSID> [パスフレーズ] > /etc/wpa_supplicant/wpa_supplicant.conf"
wpa_passphrase <SSID> [パスフレーズ]で実行してみればわかりますが、ズラーっと設定の一部が出力されるのでそれを目的の場所にリダイレクトしてます。
sudoはリダイレクトをそのまま扱えないのでshに一旦渡してます。
(参考: 「suとsudoについて - Ubuntu Japanese Wiki」 中「sudoを使用することの短所」https://wiki.ubuntulinux.jp/UbuntuTips/Others/RootSudo#sudo.2BMJJPf3UoMFkwizBTMGgwbnftYkA-)
で、開きます。
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
geditとかGUIなのがお好みなら
$ gksudo gedit /etc/wpa_supplicant/wpa_supplicant.conf
(参考: 前掲文書中「グラフィカルなsudo」https://wiki.ubuntulinux.jp/UbuntuTips/Others/RootSudo#A.2BMLAw6TDVMKMwqzDrMGo-sudo)
削って足します。(取り消し線の部分を削って、赤字を足します。黒字はwpa_passphraseによる生成物。)
network={
ssid="foo"
#psk="hogehoge" #←これはパスフレーズの平文なので消します
scan_ssid=1
proto=WPA
key_mgmt=WPA-PSK
psk=901d5bab8954963ebf1c01a9e93c25235ca0d9df5510126c257ac8ba829300c9 #←これがパスフレーズを難読化?判読不能?ハッシュ?したもの
}

~/.bash_historyのコマンド履歴やvimを使った場合の~/.viminfoからパスフレーズの削除もお忘れなく。
再起動します。動くはずです。

前に試したときはNetworkManagerが全く効かなくなったので、VPNを地味に使う身としてはためらわれたところなんですが、記憶が曖昧なだけかもしれませんが、今回は当該の無線LANのみが管轄外となっただけで、有線LANやVPNなど、設定を行ってないところ以外はNetworkManagerがちゃんと動いてくれてます。これで安心です。

(参考: 続々・Ubuntuで無線LAN。 佐野部屋・巡業中/ウェブリブログ http://michito.at.webry.info/200901/article_6.html)

2012年8月9日木曜日

tmpfs上でカーネルをビルドしてみた

PCの総合的能力を見るための個人的指標としてカーネルのビルド時間を使っているのですが、tmpfsでやったらどれくらいかかるんだろうってことでやって見ました。

結論:敗北

物理メモリ8GB中6GBをtmpfsとしてマウント(スワップ領域は確保してないので確実です)。そこでカーネルをビルドしてみたけど、容量不足でコンパイルが途中で止まりました。

SSD(Intel 330 Series 120GB/SATA 6G接続)にビルドした時がだいたい35分くらいで、今回tmpfsの場合で止まった所までで31分くらいでした。

止まったところは多分最後の最後のあたり(ドライバモジュールのビルド第2段階?)だったので、あと2〜3分ってところだったんでしょうか。

2〜3分足した所で33分くらいなので、SSDとあまり大差無いですね。てか、SSD速すぎ。ちなみにメモリは1333MHzです。2nd Generation Core i3だからね。

というか、所詮、Core i3なので、ビルドスピードのボトルネックはCPUってことでしょうね。

多分、tmpfsとして8GB割り当てられる環境ならたぶん問題ないと思うので、より高性能なCPU+莫大なメモリを搭載したPCをお持ちの方は試してみてSSDとの比較で記事にしていただけると楽しいかもです。

2012年8月8日水曜日

sudo rm / -rfをやってみた

Twitterのタイムラインで、Windowsのお話が流れてたので、Linuxのそれに相当する、sudo rm / -rfを実際にやってみました。

KVMでUbuntu Server 12.04 LTSを入れてるので、まずクローンして起動。
当然、起動するわけで、ログインして、早速実行
パスワードを入力して…
よろしくおねがいしまーす!(※サマウォ観てない勢)
エラーが出ました。全然、よろしくなかった。要約すると、「さわるなきけん」
しゃあないので、`rm / -rf --no-preserve-root`とオプションを付けて実行。
エラーがでるでる。
出る出るエラー。
さーて、エラーが出終わったので再起動しますかー。
sudoも消えてました。仕方が無いので強制的に仮想マシンの電源を切って再起動
当然ながら起動しません。
2chのネタ?か何かで「Linux入れたけど何したらいい?」「suしてから、rm / -rf」という流れは自然にはいかんようですが、オプションつければ、システムであろうとなかろうと一気に削除するってのはまだあるようです。
糸冬

2012年8月7日火曜日

うれしがりだから自作PCのこと書いてみる

どうにも辛抱たまらなくなったので、PCを自作しました。
スペック
CPU:Intel Core i3 i3-2120 3.3GHz 3M LGA1155
M/B:ASUS P8H77-M LE
メモリ:Transcend JetRam PC3-12800(DDR3-1600) 8GB KIT(4GB×2)
電源:Jumper450B
SSD:Intel SSD 330 Series Maple Crest 60GB MLC
HDD:SSDに取って代わられたネットブックのHDD(250GB Hitachi製かな)
光学ドライブ:SH-222BB+S
無線LAN:Atheros AR5416
ケース:GIGABYTE GZ-M1 ZGM1B9R(黒)
ディスプレイ:acer S221HQLbid
OS:Ubuntu 12.04 LTS (64bit)

あとは、ことの成り行きをつれづれなるままに書くので、あれです。

よく考えればまともなPCを1台も持ってなかった(Atom N270なの1台、N570なの1台、と、数世代前のPentium Mなの1台)のでまともなのが欲しくなったのと、Atomのは取り回しがしやすくて便利なんだけど、当然ながらディスプレイが小さすぎるので、ってことでPCを買うか、組むかしようと決意。

15インチとかのゴツイノートPC(「移動可能なデスクトップPC」と呼んでる)は勘弁だったし、ノートならAtomなのがあるんで、デスクトップに。

で、置く場所もあんまないし、ゴツイのはかわいさのかけらも無いので、最初はmini-ITXとかでちっさいPCが欲しかったんだけど、マザボ見ても当然のことながら、なんかいまいちなのが多いのでm-ATXくらいかなという結論に。

どこかに書いてあった「自作PCは電子機械工作からの延長線上にあって、物好きのおっさんがやる趣味なので、ケースにかわいさというのはあまり考慮されてません」という言葉の通り、かわいいケースはあまりなくて、アビーなケースが比較的かわいかったんだけど、お値段が…。

しろろさんが半年前くらいに組んでるので話を伺ったところ、需要と供給の関係でそこそこのサイズなケースがいい値段で売ってるとのこと。まぁ、当然だけど、非常に参考になりました。

ってことで、このケースに。まだ、見た目もいいほうかなぁ。せっかく自作するなら将来性を取って、ATXなケースでというしろろさんの助言もあったけど、やっぱり置く場所が無いので、m-ATXに落ち着いた。(しろろさんの変態ケースもあれはあれで魅力的なわけですが。)

CPUはインテル入ってるなのって決めてたんだけど、何にするかは非常に悩んだ。
最初は、Core i5 3475Sを狙ってたんだけど(省電力版だし、Intel HD Graphics 4000載ってるし、VT-d載ってるしと楽しそう)、どうやら、BOXなのは少なくとも近々は出ないっぽい(そして、ずっと出ないのかも)。そもそも、よく考えたら、そんなに資金なかった。

でi3にするかCeleronにするかという方向に。結論は冒頭の通り。
SandyなCeleronはすごいって話を聞いていたし、実際試してみたい感もあったし、9月になったらIvyなi3が出るらしいので、それまでCeleron刺しといて、それで事足りればそのまま、足りなければ新しいのが出たら差し替えればいいかぁってのも考えた。
でも、今ならi3が10k切るところが、9月に出た当初だと12kくらいになりそうな気がするし、そこにCeleronの3k足したら差額5kかぁ、とか、逆に値段が10kくらいに落ち着く頃まで待てるのかとかいろいろ考えたら、「パーツの買い時は欲しいと思った時」という格言に従って、今、Sandyなi3を刺してしまったほうがいいね、って結論です、はい。

将来性を考えて、メモリもM/BもIvy対応な感じで選んでみました。
M/BはUSB3.0とHDMIに対応したのを選んで、あとは信頼できるメーカーでとやっていったらこれに。価格.comとかでレビューとかがついてなかったのでちょっと不安だったけど。

SSDは先に、Atomに刺す用に120GBを買っていたので、そっちを新PCに刺して、Atomに入れるために60GBのを購入。

電源は350Wとかで充分足りるなぁってことでその辺を狙ってたんだけど、450Wのほうが安いし、この電源は静からしいので、選びました。で、実際静かです。
父の昔使ってた(そして、未だに妹により使われている)PCというかワークステーションがめっちゃうるさかったので、あんなのは嫌だなってことで当初より静音はかなり意識してパーツは選んでます。

部屋のLANコンセントはすでに埋まってたので、無線LANを。最初はインテルなPCIeのカードを狙ってたんだけど、これもなかなか手に入らなさそうなので、Linuxで動くことは友人のPCで確認済みなAtheros社製チップのカードを。

光学ドライブは安いのを。(「光学ドライブは消耗品」らしい。へー)

ディスプレイは、コスパで選びました。まぁ、色の再現性なんて全く求めてないし、そもそも、私の目に色の厳密性はありませんので(中度の色弱)。

で、これでお値段弾きだすと53418円也(送料・手数料込みの実際の購入価格。計算した段階ではちょっと誤差があったと思うけど、55kくらい)

で、これと似た構成でBTOの見積もりを取ってみたところ、自作する方が安い(し楽しい)だろうという結論になったので、パーツをAmazonとTSUKUMOとの2ヶ所から取り寄せ。

個々で見たら別だけど、総合的に見たらAmazonは安いし信頼できるねと改めて確認。

で、組み立てたわけですが、CPUが思ったより小さかったです。
私が小2くらいのころに父が266MHzのAMDなCPUを買ってきた時に見たのはもっと大きかった気がしました。自分のサイズが変わっただけかな…。
持ってみたら、小ささの割にずっしり重くて驚きました。

CPUの固定レバーが考えてたより硬くて、CPU割れるんじゃないのかって恐怖がありましたが、CPUは強かった。

メモリ刺したりとかはつつがなく終わったんだけど、マザボをケースに入れるときが大変だった。
ネットで調べたらIOシールドを先につけとけみたいな感じだったので付けてたんだけど、そこにマザボがはまらないはまらない。m-ATXなケースなのであんまり余裕もないし、シールドの引っかかってる部分をちょっと手で曲げてやって強引に入れました。
しろろさんの「ATXの方が広々として組みやすい」という言葉が頭を駆け抜けて行きました。

やっとこさで、マザボを入れて、電源をどんどん刺していきます。が、ケースがm-ATXなのと電源がプラグインじゃないのを買ったので、結構苦労しました。
しろろさんの「ATXの方が広々として組みやすい」という言葉が頭を駆け抜けて行きました。
しろろさんの「プラグイン電源のほうがいいよ」という言葉が頭を駆け抜けて行きました。

ディスクアクセスとかのランプにつなぐケーブルが小さいんで、ミスりそうだなぁって思ってたら、案の定、ミスってて光りませんでした。

ストレージはSSDだけをつないだ段階で仮起動させたら、Xubuntu 12.04 (32bit)が起動したのでヤター。32bitじゃ8GBを生かしきれないので、64bit版をUSBから入れました。
が、起動しない。結論から言えば、UEFIってややこしいのね。BIOSでUEFI起動を無効にして、USBメモリから起動してインストールしたらスムースに行きました。

あとは問題なく進んだかなぁ。一番の心配だった無線LANも思ってたとおりあっけなく認識してくれたので。

Virtualboxで仮想マシン動かしたけどスムース、スムース。

起動もめちゃ早い。bootchartの結果を貼っておきます。
そうそう、PCのホストネーム決めるときに、どうしよっかなーって思ってたら、近くに若き日のマリア・テレジアの肖像画があったのでTheresiaってつけたんだけど、ちょっとかわいらしくないから何とかしたい。

というわけで、ヒジョーに満足の行くPCが組めました。こうしてブログ記事を書いてるんですが、柄にもなくだらだらと書けてるのは、大きなディスプレイと高性能なCPUやメモリのおかげです。
長っ!

2012年7月11日水曜日

Ubuntu 12.04のログイン画面(LightDM)から電源系のボタンを取り除く

Ubuntu 12.04のLightDMのログイン画面からシャットダウン、再起動のボタンを消したい事情が発生したので、検索かけてたら、あたったので翻訳。
http://askubuntu.com/questions/137336/how-do-i-remove-the-shutdown-button-only-on-the-login-screen

原文
Even if you cannot hide the buttons, you can configure your system so that the lightdm user does not have permissions to shutdown or restart the system. Since the greeter runs as the lightdm user, this should solve your issue. Create two new files in /var/lib/polkit-1/localauthority/50-local.d, call them disable-lightdm-shutdown.pkla and disable-lightdm-restart.pkla and apply the contents as below. Note: You can also stick these into one file.

Shutdown:
[Disable Shutdown]
Identity=unix-user:lightdm
Action=org.freedesktop.consolekit.system.stop
ResultAny=no
ResultInactive=no
ResultActive=no

Restart:
[Disable Restart]
Identity=unix-user:lightdm
Action=org.freedesktop.consolekit.system.restart
ResultAny=no
ResultInactive=no
ResultActive=no
訳文
それらのボタンを隠せなかったとしても、lightdm ユーザーにシャットダウン・リブートの権限を与えないようにシステムを設定することが可能である。greeter[多分ログイン画面のこと]はlightdm ユーザーで動いているので、これで問題は解決するはずだ。
/var/lib/polkit-1/localauthority/50-local.dの中に、2つのファイル、disable-lightdm-shutdown.pklaとdisable-lightdm-restart.pklaとを作り、中身は以下のようにする。
1つのファイルにしてもいける。
[以下略]
なるほどねー。ログイン画面はlightdmユーザーとして起動してるのかぁ。ってそりゃそうか。

2012年7月7日土曜日

UTF-8なtexファイルをEUCなplatexを通してコンパイルするMakefile

なんか、Twitterの方で、ぜひ教えて欲しい的な声が上がったので、ちょっと恥ずかしいけどあげときますね。
初期版
#Makefile
F=report
$F.pdf:$F.euc.dvi
    dvipdfmx -o $F.pdf $F.euc.dvi
$F.euc.dvi:$F.euc.tex
    platex --kanji=euc $F.euc.tex
$F.euc.tex:$F.tex
    nkf -e $F.tex >$F.euc.tex
clean:
    rm $F.euc.dvi $F.pdf $F.euc.log $F.euc.aux $F.euc.tex

12.07.07改訂版
#Makefile
F=report
$F.pdf:$F.dvi
     dvipdfmx -o $F.pdf $F.dvi
$F.dvi:$F.euc.tex
     platex --kanji=euc $F.euc.tex
     mv $F.euc.dvi $F.dvi
$F.euc.tex:$F.tex
     nkf -e $F.tex >$F.euc.tex
clean:
     rm $F.dvi $F.pdf $F.euc.log $F.euc.aux $F.euc.tex
使い方(改訂版)
  • スペースでインデントしてあるところはタブのインデントに置き換えてね。
  • 対象のtexファイルと同じディレクトリに`Makefile'として設置します。
  • あとは $ make としたらreport.dvi/report.pdfが生成されます。
  • $ make clean で生成ファイル、一時ファイルが削除されます。
  • texファイルの中身は生成してくれません。頑張って書いてください。
一応、説明(改訂版)
  • F=reportの部分は、texファイル名の本体部です。必要に応じて変えてください。
  • nkfで、UTF-8なtexファイルのreport.texをEUCなtex一時ファイルのreport.euc.texを生成。
  • 生成されたreport.euc.texをEUCな感じでplatexに通して、report.dviを生成。
  • dvipdfmxでreport.dviからreport.pdfを生成します。
  • "(ひだり):(みぎ)"の部分は、(ひだり)が(みぎ)に依存してるってことだったと思います。

2012年6月12日火曜日

xubuntuでキーボードレイアウトを切り替える

レジュメでスウェーデン語の文字を入力する必要があったので、
メニュー→設定→設定マネージャ→キーボード→レイアウト
でスウェーデン語を追加したけど、切り替え方がわかりませんでした。
ぐぐっても切り替え方が見つからなかったのでメモしておきます。
上の(実際どこでもいいんだけど)パネルを右クリックして、
パネル→新しいアイテムの追加→キーボードレイアウト
で、フツーなUbuntuで言うところのインジケータみたいなのが出てきて、切り替えられるようになります。設定も右クリックからプロパティでできます。
レイアウトオプションの変更は左右Shift同時押しにしておきました。