2012年9月7日金曜日

[FreeBSD] コンパイル時のオプション確認

portsのコンパイル時のオプション確認

目的のportsのディレクトリで

make showconfig

[FreeBSD] パッケージの衝突

php5インストール時にpkgconfigがインストールされているものより新しいバージョンが必要であった。

pkg-delete -f pkg-config-version


[port] 最新のソースをfetch

portsnapを使った方法

初めて使うとき

portsnap extract

2回目から

portsnap fetch update

[apache] 起動時のFQDNがしていされてないというメッセージ

apache起動時に

httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

とFQDNが指定されていないと言われる場合

httpd.confに

ServerName host-name:80

を追加

[FreeBSD] ログインシェル変更

chsh -s path-to-login-shell

なお、ここで指定するPATHは、/etc/shellsに指定されていなければいけない。

[ports] 習うより慣れろ

ということで apacheのインストールをしてみた。いくつか壁にぶつかったが本質的な問題は以下


  • ライブラリがインストールされない
  • ライブラリがインストールされているが古い
  • ライブラリがインストールされているがサーチパスに入っていない

まず一つ目 portsによるインストール方法

make config # コンパイルオプションの指定
make install clean # コンパイルしてコンパイル後に作業ファイルを削除

なお、依存関係のあるportsを再帰的にconfigしてくれる「make config-recursive」というおまじないも

追記: config-recusiveしたのを削除したいときは、
cd /var/db/ports
rm -rf *

次に2つ目
まず、古いバイナリを削除

make deinstall

そして、最新のソースを取得して、コンパイル
port fetch update
make install clean

Hint ) どこにどんなportsがあるかわからないときは、
本家サイトに行って検索

最後に3つめ

/etc/ld.so.conf

に望みのPathを追加後更新を反映するために下記を実施

ldconfig


また、portmasterというportsを管理するためのツールもあるらしい
まだまだ勉強が必要

2012年9月3日月曜日

Arduino始めました

今更感が果てしないですがArduino始めました
雑誌等で名前は聞いたことがあってこの度
あることをやりたくなってそれがArduinoでやるのが早そうなんで初めて見ました

そのあることは、だいぶ勉強が必要そうなので成功した折には、投稿するということで

秋葉原の千石電商に買いに行って来ました
事始めの課題としては、温度センサの値を「簡易Webサーバーから見れるようにする」です。

まず、買ってきたEthernetシールドのMACアドレスをメモします。
Arduino Uno上に実装してしまうと見えづらくなってしまうので注意が必要です。

こちらが、接続状況外観。Arduino Uno上にEthernetシールドを実装しております。温度センサには、「LM35DZ」(こちらは、秋月電子で購入)を使用。

こちらは、ブレッドボード側。
そして、こちらがArduino側。
きちんとLM35DZのデータシートを見て接続します。

次にArdunioのIDEのインストール。Arduinoのサイトより自分のプラットフォームの物をDLし、解凍。
なお、今回の開発は、Windowsで行なっています。次にArduinoとPCをUSBケーブルで接続します。ディバイスマニジャーを開き「不明なディバイス」と表示されているArduinoの項目を探して、プロパティより、「ドライバの更新」を選択。IDEのインストールディレクトリ内のdrivers\FTDI USB Drivers\を指定する。これでドライバのインストールは完了。ここで、セットされたCOMポートを確認しておく。

そして、\libraries\Ethernet\examples\WebServerディレクトリを自分の好きな開発用のディレクトリにコピーしてくる。これは、アナログポートの値を表示する簡易Webサーバーのサンプルである。
ここいらの情報は、適宜ググっていただきたい。

サンプルの変更ができたらいよいよ、プログラムをROMに書き込む。ここでIDEの「ツール-シリアルポート」ドライバインストール時に指定したCOMポートが選択されていることを確認する。

そして、ROMにプログラムを書き込み、Ethernetシールドに割り当てたIPアドレスにアクセスした結果が以下である。


analog input0が温度センサの出力である。Arduino のADコンバータは、量子化ビットが10bitである。そして、LM35DZは、今回の回路の場合0℃で0mV且つ10mV/℃で出力する。さらに入力電圧は、5Vである。

ゆえに温度は、

59/1024 x  5 x 1000 /  10 = 28.8 (℃)

となる。