2012年8月21日火曜日

U24EにWindows8を入れてみた

ASUS U24EにWindows8 Proを入れてみたメモ。
合わせてSSDへの換装を行っています。

1.バックアップをとる

まぁ、好きな様にとればよろしいかと。今回はディスク差し替えてオリジナルディスクを残すので本当に重要と思われるデータのみバックアップをとっています。

 

2.インストールディスクを作る

このノートPCは光学ドライブがついていないのでUSBメモリ(今回使用したのは4GB)にWindows8のインストールイメージを焼きます。焼くのはMS純正の「Windows 7 USB/DVD ダウンロード ツール」をMSのサイトから落としてきてインストール。ツールを立ち上げてイメージデータとドライブを指定するだけ。

 

3.SSDに換装する

本体の電池を外し、裏側のネジを一本とったらパキパキっと蓋を開けるとHDDとメモリ等が見える状態になるのでネジを3本外してHDDのマウンタを引っこ抜く。そして四隅のネジを外して換装します。この際接着されたスポンジが切れるけどまぁキニシナイ。あとは元に戻して終了。

 

4.USBメモリで起動

USBメモリを差してACアダプタつないだら電源ON。Modern UI(旧Metro)なアイコンが出たら正常にUSBから起動出来ている証拠。あとは画面に従ってインストールしましょう。

 

5.USBメモリを抜く

一回PCが再起動した際にUSBメモリをさっと抜きます。そうしないとインストーラが再度立ち上がると思います。まぁインストーラが立ち上がったとこで抜いてリセットしてもOK。あとは本体側から立ち上がってセットアップ終了。

 

6.不足したドライバを入れる

デバイスマネージャを確認したらBluetoothとメモリカードリーダのドライバが?マークになっていました。というわけで不足分を自分で入れます。

  • Bluetooth
こちらはデバイスマネージャで?になっているものを右クリックして「ドライバーソフトウェアの更新」を選択すると勝手にネットからドライバを入れてくれます。
  • カードリーダ
ASUSのU24Eのドライバのサイトからダウンロード
  • タッチパッドドライバ
タッチパッドそのものは動くのですがジェスチャー系を動かすためにおそらく必要という事でカードリーダと同じところからインストール。

とりあえずこれで全部見た目動いているように見えるのでOK。不足分がありそうだったら追記します。

7.ユーティリティを入れる

これは好みが分かれると思うので参考までに。現状ガジェット系とか動かないものもあったのでWin8に正式対応するまで様子見たほうが良いかも?


  • ASUS Splendid Video Enhancement Technology
モニタの色温度を設定するユーティリティ(まぁ色にこだわらなければいらない)
  • ASUS PowerWiz
バッテリ状態を表示するガジェット
  • ASUS USB Charger Plus
PCの電源を切った状態でUSB給電の設定をするユーティリティ
  • ATKACPI driver and hotkey-related utilities
ホットキー(Fnキー)を有効にするドライバ、ユーティリティ

2012年8月8日水曜日

python-ldapをWindows環境に入れる

メールサーバのアカウント管理をLDAPでやっているけど管理ツール無しでLDAPクライアントからいじるのが苦痛になってきたのでpythonで簡単な管理プログラムを作ってみることに。

ある程度の骨組みは出来たのでLDAPとのコミュニケーション部分に着手しようと開発環境にpython-ldapを入れようとしたらこんなエラーが。

ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:22:14) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ldap
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\app\Python27\lib\site-packages\ldap\__init__.py", line 22, in <module>
    from ldap._ldap import *
ImportError: DLL load failed: %1 は有効な Win32 アプリケーションではありません。
dllの問題らしいという事まではすぐわかったんだけど、その先がさっぱりわからなかったんだけどふと64bit版のpythonを使っていることが問題ではないかという事に気付く。

python-ldapをオフィシャルな配布元にはWindowsの64bit版が無い気がするので下記の場所からamd64版を入手して問題なくインストールが完了。感謝。

http://www.lfd.uci.edu/~gohlke/pythonlibs/

Codecとかでもそうだったけど64bitと32bitの問題はしばらくはまりそうだねぇ。

2012年8月7日火曜日

Greylistingの落とし穴

メインサーバ(廃棄予定)+構築中のサーバ(次期主力。SPAM対策だけ未構築)の構成で動作確認をするのも兼ねてMXを両方登録。この状態でしばらく忙しくて放置プレイしていたのですが、一息ついたので設定を再開。最後に残っていたGreylistingのサーバの選定、設定してMXの優先度の切り替えを実施。Thunderbird君に新しいサーバの設定を作ってつなぐと・・・。

・・・一気に数千通のメールが。

いや、今DNS切り替えたばかりだしそんな馬鹿な・・・。もしかしてメインサーバが瞬断していてセカンダリになっていた構築中のサーバにデータが流れていた?(アカウント情報は全て移行済みだったのでメールが来たら受けられてしまう状況)

よくよく見てみると割とコンスタントにメールが届いている様子。一日だけとか集中しているのであれば上の状況かもしれないがオカシイ。

・・・もしかしてGreylistingのせい!?

Greylistingでお預けを食らった際にサーバがダウンしていると判断してMXの二番目にいっちゃっているのが原因な気がしてきた・・・。これって単純に二台構成の二重化してると常にそういう状況が起きてしまいそうな予感。ちょっと勉強不足で正しい挙動がどうなのかはわからないけど、実際にそういう動きをする人たちがいるのであればマズイ。これは・・・どうしたらいいんでしょ!?

もちろん二番目にもGreylistingの設定をしていればそっちでもお預け食らうわけですがそのままバックアップサーバ側に配信されてしまっても困るわけで二重化の仕方をもう少し考えないといけない気がしてきた。

個人的な理想のバックアップサーバはメインサーバがダウン中に受信だけして、メインが復帰後受信したものをメインに送りつけてくれるという動きをしてくれるとクライアントは一か所のPOP/IMAPの設定で良いし幸せだと思うんだけど、メインサーバがぶっ壊れた時に主力として動ける必要もあるわけで・・・世の中のメールサーバはどういう風に二重化しているんだろうか。

2012年6月20日水曜日

vimにGUI関連はいらない

vimを普通にmake installしてしまうとGUIな物たちが勝手に入ってしまうのを防ぐ方法

cd /usr/ports/editors/vim
sudo make WITHOUT_X11=1 install
sudo make clean

で良いらしい。サーバ用途に設定する場合はいらんコンポーネント入れたくないのでもっとお手軽にmake configで指定できるようにして欲しいなぁ。

依存関係をチェックした感じ正しいかわからないけど上のオプションを設定するとportsにあるvim-liteと同等になる様なのでこちらを使って入れるべきなのかもしれないネ。

とりあえずインストール前に

make all-depends-list
 
を習慣づけるのが良いかも。もしくは
 
http://www.freebsd.org/ja/ports/index.html
 
で確認するとかかな。

2012年5月2日水曜日

メールサーバを更新

色々資産?を整理という事でメールサーバを縮小化する計画のメモを残す事に。基本思いついた事、やった事を忘れないように書いたメモなので読み物としてまとめる気はありません。

まずは能書き編。

今まで長らくメールサーバは専用サーバを借りて運用していたけどVPSの安サーバに全面移行する事にした。これには色々背景があって専用サーバを借りた当時は自分で隅々まで管理出来るメールサーバを建てるにはこれしかなかったというのが大きく、またVPS自体は色々なサービスを試してみたがなんとなくメールの様なインフラをまかせるには信頼度という面で疑っていた部分もあって移行できずにいた。これには根拠になるデータがあるわけではなかったのでデータ取りの意味でも移行をしてみようというのが今回のストーリー。

ぶっちゃけgmailの様にある程度完成されていてSPAMも少ないサービスをベースにするのも考えてはいたのですが、もともと自前で全部やろうとした背景には自分自身のスキルアップというものもあったので100%移行するのもどうかと思っている次第。

あとはメールサーバみたいなものは基本的に設定を一回してしまえばセキュリティ的なパッチ以外は手を加えない事が多いので色々設定した内容を忘れてしまうというのもこうしてメモを残す背景の一つだったりする。

方針としてはまず

  1. postfix、dovecotをベースに考える
  2. SPAM対策もそれなりに行う(ここが一番変化する部分かも)
  3. 管理コストを最小限に減らす
  4. 今後の引越しがしやすい様にする

1) postfix、dovecotをベースに考える
こちらは結局smtpdの現状のデファクト・スタンダードは相変わらずpostfixの様だというところからです。pop3/imap4に関しては長年使っているdovecotから乗り換える理由も無いかなと。未だにqmailの方が扱いやすいと思っている人間なので(様々な理由で戻る気はありませんが)そこら辺をなんとか克服したいトコロ。たんに勉強と経験不足なだけですけどね。

個人的にはもう少し違う世代のサーバプログラムがあるならいじってみたいところだと思っていますが・・・Lamsonとか色物な感じはしますが面白そうな気もしています。求めているものが全て1パッケージになっていると楽ではあるんですが、ある程度の軽さと容易さを兼ね備えたものってナカナカ無いし・・・。

2) SPAM対策もそれなりに行う
SPAM対策に関しては別エントリーで書きます。長年色々な用途に使い続けすぎて現状完全にハニーポット状態なのでまぁ、いい加減SPAMを消すのにも飽き飽きしているしスマホで受ける事を考えると必要な物だけ来て欲しいというのもあるので。永遠の課題なのかもしれませんが、逆にメールサーバをいじっていて一番楽しいところなのかも・・・w

3) 管理コストを最小限に減らす
もともと面倒くさがりなので出来る限り簡単に管理出来る様にしたいところ。また、VPSにする事によってコストが非常にさがるので二重化も考えたいと思っています。二重化するという話になった途端に色々と問題点も出てくるのでその辺りもノウハウとして一個一個潰していきたいと思っています。

4) 今後の引越しがしやすい様にする
個人的な印象ではVPSは浮き沈みが激しく、使用開始当時に良くても品質が落ちたり会社が潰れたりという事がよく起きます。また、専用サーバのハード依存なものとは違い、サービスの仕様が年を追う毎に良くなっていくのも特徴でマイグレーションのコストを下げることによってより良いサービスに移行出来る可能性を秘めているというのも特徴と思っています。これは3番の二重化の話しとほぼ同義だったりするかもしれません。

2012年2月13日月曜日

embedded開発はじめました その2



昨日GCCをビルドしたりシコシコやっていたわけだけど面倒くさがりが早くも顔を出し結局バイナリでインストールしてしまいました。ダウンロードも含めて5分ぐらいで終了。あれ!?簡単すぎた・・・。

いや、ちょっと色々先達の情報を見ていたらWindows環境の人はSourcery CodeBench Liteとかでさくっと環境作っている訳ですよ。他にも開発環境売っている会社いっぱいあって、お試し用の廉価版とかを出している所もいっぱいあるわけです。じゃあマックも何かあるんかい!と思って調べたら。

http://www.yagarto.de/index.html#downloadmac

ああ、これでいんじゃね?って事でダウンロードしてイメージファイルをマウント。インストーラをダブルクリックしたら・・・あら不思議。簡単にインストール完了!

・・・しなかったorz よくよくドキュメント読んだらインストール先にインストーラをコピーしろだとさ。なんか単なる自己解凍形式だったみたい。というわけで、適当な所に展開をすると

yagarto-4.6.2

なんてフォルダーが出来たのでなんとなく

/usr/local/yagarto/yagarto-4.6.2

ここに配置(sudoさん使って移動してね)。その後マニュアルに書いてある通りにパスを通しておしまい。

$ vi ~/.bash_profile


export PATH="$PATH:/usr/local/yagarto/yagarto-4.6.2/bin"

export PATH="$PATH:/usr/local/yagarto/yagarto-4.6.2/tools"


これで

$ arm-none-eabi-gcc --version

とかやって反応があったら一段落。一応M4にも対応しているのを確認して一安心。

開発環境なんぞさっさと揃えて先に進みたいからとりあえず今日はこれで良しとする。もっと最適化をしたいとか色々欲が出て来たら自前でビルドも考えようと言う事で今日は気持ちよく寝れそうです。

余談ですが昼休みに購買に行ったらinterfaceの新しい号の特集がuCLinuxで思わず購入してしまいました。ついでにカメラモジュールの記事があったトラ技も。なんかタイムリーにもほどがあるでしょ・・・。




2012年2月12日日曜日

embedded開発始めました



なんか本業そっちのけな見出しです。まぁ良かろう。

という訳で、マイコンボード上に勉強がてら一から積み上げた簡単なシステムを構築してやろうというところをゴールにすえます。現状、一般的に買い易い物はarm系という事でPandaやらBeagleやらがお買い得だしAndroidとかもモリモリ動いちゃうのですが、学習用という意味でもう少しシンプルな物という事で最初のターゲットをCortex-M4に定めてSTM32F4-Discoveryをお買い上げ。

まぁ、本業関連でM4自体はちょっとDSP的な処理も出来るマイコンというイメージだけど実際のところどのくらい性能出るんよ?ってのを検証したいというのが本当の目的だったりします。Cortex-A8/A9までは必要無いけどお安く程々に色々出来そうという期待も込めて。NetDuinoみたいにArduino互換でお手軽に使える様になるとHappyですね。

まずは開発環境を整えないといけないのでメインマシンのMacBookAir上にクロスコンパイル環境を構築してボード上で何かプログラムを実行出来るというところまで持って行くのを最初の目標にします。

まず、目標のイメージですけど

<図 後で埋める>

こんな感じかな?



  1. 開発環境(binutil/gcc/gdb)を用意する

  2. JTAG用にopenocdを用意する(今後の為に)

  3. 開発が楽な様にEclipseベースの環境を揃える

  4. 簡単なプログラムを作ってターゲット上で動かす

  5. 既存のOSをポーティングする




というわけでステップ1

コンパイラを用意しましょう。バイナリで配られている物もある様ですがとりあえず全部自分でビルドしていきます。自前ビルド自体に特に意味がある訳ではないですが。

用意したのは下記のバージョンのもの。

ビルド用(newlibはredhat、mpcはmpcのページ。その他はGNUのFTPから)



  • binutils-2.22

  • gcc-core-4.6.2

  • gcc-g++-4.6.2

  • gmp-5.0.4

  • mpfr-3.1.0

  • mpc-0.9

  • newlib-1.20.0




デバッグ用



  • gdb-7.4

  • openocd-0.5.0




ビルドの手順ですが最初下記のリンクを参照してGCC4.2.4のビルドをしたのですがヨクヨク調べてみたらM4で使うにゃ4.6以降じゃないとまずそうなのでしきり直します。基本的な流れ及びbinutil/newlib/gdbのビルドはコレに準拠でいきましょう。

http://www.ethernut.de/en/documents/cross-toolchain-osx.html

とりあえず今日は負けという事でorz

そういえばM4のドキュメントも入手せねば。DSPまわりとか良くわからないし。STMあたりにあるのかなぁ?