パソコンを使っていて困ったときにするべきこと10選

パソコンを使っていると困ったことがよく起こりますよね。自分も昨日ちょっと困ったことがありましたがこの方法で解決しました!

  1. 日本語でググる。
  2. 英語でググる。
  3. OSを再インストールする。問題の99%ぐらいは解決します。
  4. Yahoo! 知恵袋などに「OSを再インストールしましたが解決しません」と添えて投稿する。

皆さんもこの方法で楽しいパソコンライフを送りましよう!

ThinkPad X240 の ClickPad と TouchPoint の設定をいじって使いやすくする

だいたい ClickPad の話なので、5ボタンタッチパッドが搭載されてる ThinkPad (T440 とか T440s とか T440p とか) にも適用できる……かも。

X240のここがクソポイント

  • TrackPoint 用のクリックボタンが廃止されて、その代わり上端部分がクリックできる ClickPad が搭載された
  • ClickPad で思ったように左クリックも右クリックもできない
  • これは ClickPad そのもののせいじゃないけど、センターボタンホールド + TrackPoint でのスクロールができない
  • ClickPad は普通のタッチパッドとしても使えるがために TrackPoint でポインティングしてるつもりが手の平に ClickPad があたってポインターがブレる
  • クリックボタンが死んでいるということは TouchPoint を使った操作はまともにできない

悲しいですね。僕は ThinkPad USB Keyboard を常に持ち歩き、ThinkPad につなげるという運用でカバーしていました。慣れればどうということはない。
……が、電車の中でも ThinkPad USB KeyBoard をつないで作業するのはちょっと辛かったりするので、真面目に対処します。

環境と目指す姿

  • 環境はみんな大好き Arch Linux (KDE)
  • 要は旧来の TrackPoint + TrackPoint 用のクリックボタンだけ、みたいな形にできたら嬉しい
  • ついでにセンターボタンをスクロールだけではなく中クリックとしても使えるようにする (実はWindows用ドライバーではできない)
  • ClickPad のタップによるクリックは無効、ポインティングにも一切使用しない

clickpad

作業

素の evdev だと TrackPoint + センターボタン でスクロール、というのができないので AUR から xf86-input-evdev-trackpoint を引っ張ってきます。

/etc/X11/xorg.conf/90-evdev-trackpoint.conf

重要なのは8行目と11行目だけ。

Option "SoftButtonAreas" "65% 0 0 0 50% 64% 0 0"

は最初の4つが右クリックの領域(左から左右上下の境界, 0は端まで)で、後ろの4つが中クリックの領域(同左)です。
物理的な配置と逆の順番になっています。
この場合、X軸方向の50-64%の領域は中クリック、X軸方向の65%より右の領域は右クリックになっています。
上下の境界は中・右クリックともに 0 を指定しているため、一番上から下までクリック可能です。

Option "TouchpadOff" "1"

は ClickPad のタップによるクリックとスクロールを完全に無効化するオプション(押し込んでクリックは有効)。

TrackPoint の感度と速度の設定

あとでかく

Linux でノートパソコンのフタを開いた時にスリープから復帰しないようにする

ノートパソコンをスリープにしたつもりで数時間持ち歩いて、次に開いた時は本体が激熱、バッテリーが残り5%みたいな事象、たまによくあって非常に厄介ですよね。
あれはなにかのきっかけで勝手にスリープから戻ってしまっていて、バッテリーが残り5%になった時に電源管理がまたスリープにしてくれてる、という感じだと思っていたので、電源ボタンを押したとき以外は一切スリープから戻らないようにします。

acpid とかが必要かもしれない。それと Arch Linux / KDE な ThinkPad X240 でしか検証してない。

だいたい使えそうな方法

/proc/acpi/wakeup を見てみると

Device  S-state   Status   Sysfs node
LID       S4    *enabled 
SLPB      S3    *enabled 
IGBE      S4    *enabled   pci:0000:00:19.0
EXP2      S4    *disabled  pci:0000:00:1c.1
XHCI      S3    *enabled   pci:0000:00:14.0
EHC1      S3    *enabled   pci:0000:00:1d.0

こんな感じのイカニモなリストが出てくる。今回の目的は LID ただそれだけ、なのでそれを書き換えてやる。
書き換えかたは root で

echo LID > /proc/acpi/wakeup

ってやってあげると LID の Status がトグルされる。実行結果は

Device  S-state   Status   Sysfs node
LID       S4    *disabled
SLPB      S3    *disabled
IGBE      S4    *disabled  pci:0000:00:19.0
EXP2      S4    *disabled  pci:0000:00:1c.1
XHCI      S3    *disabled  pci:0000:00:14.0
EHC1      S3    *enabled   pci:0000:00:1d.0

なぜか LID 以外もほとんど disabled になってしまった。理由は分からん。
多分これでうまく行くはず。

XHCI / EHCI は USB まわりの何かだった気がするけど、SLP8, IGBE, EXP2 は見たことも聞いたこともないのでご存知の方教えてください……。

あなたが systemd を溺愛している場合に使えそうな方法

systemd はなんでもできるからね。

この方法に関しては GNOME とか KDE みたいなマシマシWMを使ってる場合はそいつらが systemd の電源管理を “inhibit” して、無効にしてるらしい、ので使えないらしい。
Power Management – ArchWiki に2行ぐらい書いてる。

/etc/systemd/logind.conf の中で

HandleLidSwitch=ignore

にして、systemd-logind を restart するだけ。自分の環境では効かなかった。

下の方に LidSwitchIgnoreInhibited がコメントアウトされていたが、こちらも特に効果はなかった。

カレーを作れた

カレーを作れた。curryingではない。カレーだ。
カレーと言えば小学校のキャンプで作るような簡単な料理だという記憶があるので、カレールーの裏に書いてあるレシピを見て挑戦することにした。
まあ簡単だろうし。ね?

起承転

ことは論理的4日前で物理的4日前の7/7、日付が変わってからの時間に遡る。

心意気やよし、やる気全開だ。カレー作ったことないけど頑張るぞ。

この時、おしょーゆは20分後に訪れる悲劇のことは知る由もなく、レシピ通り20分間鍋に火をかけてれば良い感じになると思い、キッチンから離れだらだらSkypeで通話していた。

現実は厳しい。

果たして何が起こったのか。そう、煮込みを強火でしていたのだ。料理をほとんどしたことがないおしょーゆは煮込みは弱火でやるものだと露知らず、グツグツ煮えたぎり、猛烈な勢いで湯気を吐き出す鍋を気に留めることもなく高校の友人との通話を楽しんでいたのである。

レシピに示された20分後――。おしょーゆを迎えたのは、セットしてもいないキッチンタイマーの音ではなく、ガスコンロの高温警報であった。
いや待てよ、なんでお湯が入ってるのに警報がなるほど高温になるんだ……? そう思いながら鍋をのぞき込むと、そこにはあるはずのお湯はなく、じゃがいもが黒くなっていて、人参が焦げ、タマネギに至ってはもはや原型をとどめていない、文字通りの地獄が待ち受けていたのであった。

というわけでカレーに再挑戦した。

CTF for Beginners #ctf4b に参加しました + Write-up

第1回 CTF for Beginners に参加してきました。新しく学べたことが非常に多く、有意義な感じで Very Happy です。
こんな良いイベントにタダで出れていいのか。

まあ長々と書いてもアレですし、多分他の人が書いてくれているので3行でまとめます。

  • Binary ほとんど知らなかったのでとても良かった。x86読めるようになりたいよね
  • Network の話も Wireshark の色々な filter とかを駆使して怪しいデータを探し出す、みたいな話で興奮した
  • Web はとてもワクワクする話だった。Blind SQLi は全く知らない話だったし、1bitの情報しか得られないのにパスワードを文字列長を割り出す + 1文字ずつ前方一致で判定することで reveal 出来る、というのが最高に面白かった

小学生並みの感想ですね。たくさんの情報が詰まっている講義資料を頂けたのが個人的には非常に嬉しかったです。

ところで講義(?)が終わったあとは総まとめとして50分のCTF体験会があって、こんな結果になりました。6位です。

この先は雑な Write-Up があるので、来週の第2回 CTF for Beginners に参加する人にはネタバレになってしまうかもしれません
続きを読む

ThinkPad X240 で 64 bit guest を使う

ThinkPad X240 に VirtualBox を突っ込んだら Guest Types のリストに (x86) しか現れなかったので。

このX240はカスタマイズして i7-4600u なので、VT-xもVT-dも対応してるのに、デフォでは両方とも無効な模様。残念すぎる。
UEFI の設定画面で Security > Virtualization で設定項目を両方 Enabled にする。おわり。

#tkbctf3 Writeup

5/4 12:00 – 5/5 06:00 (JST) 開催の #tkbctf3 に参加してました。tkbctfは初めて……どころか、CTFに参加すること自体初めてなので、@shaman_univ と @sadi_gear と (めんどくさいチーム名で) チームを組んで以来 ksnctf でちょこちょこ練習してました。
昼間は所用で出かけていて、実際にコンテストページを開いたのが20時ぐらい、といった調子だったのですが、途中から @KOBA789 先生が参加してくれたことで一気に加速、最終的に1203pts.で7位になりました。

15-Puzzle (Misc 250)

ひと通り問題を見て(うへぇ……これトータル0点あるかも……)って思ったので、とりあえず15パズルを解くだけの全く頭を使わない問題を解くことにした。
はじめに拾ってきたソルバーが A* で探索するもので、遅すぎたので IDA* で探してくれるソルバーを見つけて、解かせた。

が、結局FLAGを得るまでに30分ぐらいかかってしまって非常につらかった……。どうせ大した数の問題は出てこないと踏んで、telnetと整形ツールとソルバーの間を全く自動化せずに、繰り返しコピペしたせいで数回入力ミスで死んでしまった。さらに、拾ってきたソルバーがクセモノで、手数が増えてくると15%ぐらいの確率(体感)で最短でない解を出してきてしまうので、そこでも何度か死んでしまった。最後の問題で死んでしまった時は泣きたくなった(自動化しろ)

最後の問題でWrong Answer.が返された時のスクショ
スクリーンショット 2014-05-05 1.01.52

まあそんな感じ。つらかったけど実際は何もしてない。

miocat (Web 250)

tkbctf.com, http://tkbctf.com を渡した時に出てくる結果が全然違うぞウワーッって思ってたら、数十分前に参加した @KOBA789 がディレクトリトラバーサルができることを発見し、Miocat.exe を落としたりしてた。自分としては ls の結果が見たいなー、ということで http://../../ls| とかを渡したりしてたけど、PerlでもRubyでも無いことを思い出し断念。

その後 @KOBA789 が .bash_history を読めることに気づいて、「面白すぎる」とか言ってた、が、 /etc/passwd を編集してるhistoryがあることには気づかなかったようで、そっちのほうが面白かった。

/etc/passwd を覗くと
miocat:x:1001:1001:Miocat,,,Read /home/miocat/flag:/home/miocat:/bin/bash
という感じでいかにも /home/miocat/flag を見てくれ! という感じのアレがあったので http://../../../home/miocat/flag を引っ張ってきておしまい。

それにしてもmiocat、何をするWebアプリケーションだったんだ……。

game (Binary 500)

クイズの方は Q. Appolo 11 landed in this site と Q. With much “Gravity”, this young fellow of Trinity became the Lucasian Professor of Mathematics in 1669 はいろいろ試したが通らなかった。問題は quizXX (だっけ?) を相対パスで呼び出してるなー、というところまでは気づいたが、だからといって flag が読めるわけでもないし、できることはなかった。

まとめ

15-Puzzleは拾ったソルバーに手動で問題を食わせただけだし、miocatは人の成果に乗っかっただけなので人権がない。が、CTF初参加でも楽しめたし、いろんな問題を解ける能力がほしいのでがんばります。おしまい。