YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-04-24 (水)


[一語一絵/IT系]

fplug_for_linux / 2014-05-23 (金)

先日調達した[External]富士通ビー・エス・シー[External]F-PLUG(エフプラグ)

F-PLUG
F-PLUG

データの取得は一般公開されている[External]F-PLUG メッセージ一覧に従って一般的なRFCOMMの接続手順をベースに実装すれば良いのだが、まずは動作確認を含めて[External]OBDNマガジン[External]goto2048/fplug_for_linuxを利用してみた。

電力は期待通り採れたので動作確認はOKとしたのだが、fptest温度(Temperature)が採れない事がある事に気付いて調べてみたところ、応答メッセージが[External]F-PLUG メッセージ一覧の仕様と違って1バイト短い事がわかった。湿度、照度は大丈夫そうなのだが、ひとまずデータの最後から2バイトに注目するように改修した。

yano@ML110G7:~/software/fplug_for_linux$ sudo fptest
1.Get Temperature
2.Get Humidity
3.Illumination
4.Watt(Realtime)
5.Exit
Input command no ->1
Temp Command:10,81,00,00,0E,F0,00,00,11,00,62,01,E0,00,
ret size=15
Temp Status:10,81,00,00,00,00,0E,F0,00,72,01,E0,02,0E,01,
Temperature=27.0

1.Get Temperature
2.Get Humidity
3.Illumination
4.Watt(Realtime)
5.Exit
Input command no ->4
ret size=16
Realtime Wattmeter:10,81,00,00,00,22,00,0E,F0,00,72,01,E2,02,73,02,
Watt(Realtime)=62.7W

fpstatusもsensors.cronからデータを取得できるよう同様に改修してみたのだが、応答メッセージの受信以前に要求メッセージの送信がうまくいかない事が多い事がわかった。調べてみると"Transport endpoint is not connected"が発生しているので、ENOTCONNの場合はwriteをリトライするように対処。

ついでに一度の接続で電力、温度、湿度、照度を立て続けに取得できるように改造。

#include <stdint.h>
#include <errno.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>
#include <time.h>
#include <string.h>

#include "fplug.h"

#define DEOJ_TOKEN "\x0E\xF0\x00\x72"
#define DEOJ_TOKEN_LEN 4
static unsigned char *
memmem(unsigned char *a, size_t a_len, unsigned char *b, size_t b_len)
{
    int i;

    for (i = 0; i < (a_len - b_len); i++ ){
        if ( a[i] != *b )
            continue;
        if ( !memcmp(&a[i], b, b_len) )
            return &a[i];
    }
    return NULL;
}

static void dump_message( char *mes, unsigned char *buf, int size  )
{
/*
    int cnt;
    printf( "%s", mes );
    for ( cnt=0; cnt<size; cnt++ ) {
        printf( "%02X,", buf[cnt] );
    }
    printf( "\n" );
*/
    return;
}

int fp_main( int, int );

int main(int argc, char *argv[])
{
    int fd;
    struct termios oldtio, newtio;
    char *cmd;

    if ( argc == 1 ) {
        printf("Usage: fpstatus <option>\n");
        return(0);
    }
    if ( *argv[1] == '-' ) argv[1]++;

    fd = open(SERIAL_PORT, O_RDWR);
    if ( fd < 0 ){
        perror("open(/dev/rfcomm0)");
        return 0;
    }

    tcgetattr( fd, &oldtio );
    newtio = oldtio;
    newtio.c_cflag = B9600 | CS8 | CLOCAL | CREAD;
    tcsetattr(fd, TCSANOW, &newtio);

    for ( cmd = argv[1]; cmd && *cmd; cmd++ )
        fp_main(fd, *cmd);

    printf( "\n");

    tcsetattr(fd, TCSANOW, &oldtio);
    close(fd);

    return 0;
}

typedef unsigned char uchar;
size_t fplug_request(int fd, uchar *req_buf,size_t req_len,uchar *res_buf, size_t bufsiz)
{
    struct timespec tmspec = { 0, 1000 * 1000 };
    int ret, i;

    dump_message( "Command:", req_buf, req_len);
    for (ret = i = 0;i < 10; i++ ) {
        tmspec.tv_nsec = i * 100 * 1000 * 1000;
        ret = write(fd, req_buf, req_len);
        if ( ret == req_len )
                break;
// printf("write()=%d,errno=%d\n", ret, errno);
        switch ( errno ){
        case ENOTCONN :
                nanosleep(&tmspec, NULL);
                break;
        }
    }
    ret = read(fd, res_buf, bufsiz);
    dump_message( "read:", res_buf, ret );
    return ret;
}

int fp_main( int fd, int mode )
{
    int cmd;
    int cnt;
    int a=0;
    double f;
    int ret;
    int i=0;
    unsigned char buf[BUFSIZ];
    time_t timer;
    struct tm *t;

    switch(mode) {
        case 't':
            while (1) {
                ret = fplug_request(fd, Temp, sizeof(Temp), buf, BUFSIZ);
                if (memmem(buf, ret, DEOJ_TOKEN, DEOJ_TOKEN_LEN)) break;
                if ( i++ >10 ) return(0);
            }
            a = *(int16_t *)&buf[ret-2];
            printf( "FP_TEMP=%.1f;", (float)a / 10);
            break;
        case 'h':
            while (1) {
                ret = fplug_request(fd, Humid, sizeof(Humid), buf, BUFSIZ);
                if (memmem(buf, ret, DEOJ_TOKEN, DEOJ_TOKEN_LEN)) break;
                if ( i++ >10 ) return(0);
            }
            a = *(uint16_t *)&buf[ret-2];
            printf( "FP_HUMID=%d;", a );
            break;
        case 'i':
            while (1) {
                ret = fplug_request(fd, Illum, sizeof(Illum), buf, BUFSIZ);
                if (memmem(buf, ret, DEOJ_TOKEN, DEOJ_TOKEN_LEN)) break;
                if ( i++ >10 ) return(0);
            }
            a = *(uint16_t *)&buf[ret-2];
            printf( "FP_ILLUM=%d;", a );
            break;
        case 'w':
            while (1) {
                ret = fplug_request(fd, RWatt, sizeof(RWatt), buf, BUFSIZ);
                if (memmem(buf, ret, DEOJ_TOKEN, DEOJ_TOKEN_LEN)) break;
                if ( i++ >10 ) return(0);
            }
            a = *(uint16_t *)&buf[ret-2];
            printf( "FP_WATT=%.1f;", (float)a / 10);
            break;
        default:
            break;
    }
}
更にread待ちにならないようにpselect監視を挟んでみたのだが、期待通りに受信してもpselectでキャッチできないので、素直にwriteできたらreadするよう着地。あとrootでないと/dev/rfcomm0が"Permission denied"になるのでseteuidするようにしてみたのだが、うまくいかないという問題が残っているものの、取り敢えず期待通りに温度、湿度、照度を含めてデータは採れるようになった。

【参照】
●富士通ビー・エス・シー http://www.bsc.fujitsu.com/
F-PLUG(エフプラグ)
F-PLUG メッセージ一覧
●OBDNマガジン http://obdnmagazine.blogspot.jp/
富士通ビー・エス・シー F-PLUG [AX3][A6] 2013年3月25日
●ロードバイクときどきiPad/Airなblog http://blogs.yahoo.co.jp/beachinside
F-PLUG(電力/明るさ/温度/湿度測定プラグ)を買って来た 2013年8月13日
●Amazon.co.jp https://www.amazon.co.jp/
富士通BSC F-PLUG115 電力・温度・湿度・照度測定機能つきプラグ ホワイト BSCESFP0103 4,900円


[一語一絵/IT系]

ASKA逮捕の余波 / 2014-05-22 (木)

4月に発表された[External]『宮崎駿監督作品集』が、[External]ASKA逮捕の余波で発売延期になった模様。

『宮崎駿監督作品集』
[External]宮崎駿監督作品集より

しかし、[External]『宮崎駿監督作品集』の「特典ディスク」に含まれるプロモーションフィルム『On Your Mark』(約7分)まで問題視し排除するというディズニーのスタンスには激しく納得がいかない

先日、春日市の小学校の校長先生が覚せい剤所持容疑で逮捕されるというショッキングな事件があったが、その余波で作曲した校歌を変更する動きが出ているらしい。事件の余波で容疑者が儲かるような構図は許せないので、ASKA自身が中心となっている[External]「CHAGE and ASKA」作品やソロ作品を出荷停止というのは「相応の罰」として理解できるが、どんな経緯で「校歌が相応しくない」という考えになるのだろうか。事件によって[External]万里の河を始めとした名曲の数々が色褪せる事は全く無く、楽曲の良し悪しと作曲者や作詞者の人格なんて全く関係無いとさえ思うよ。

そういう観点でどうも社会的に「臭いものに蓋」をして取り敢えず収めてしまおうという風潮が蔓延しているような気がしてならない。悪い事をした人は「悪い人」で相応の罰を受けてしかるべきだが、「悪い人」が関係したものが全て「悪いもの」として片付けるのは、いかにも短絡的で稚拙な価値観と言わざるを得ない。

同様に覚せい剤所持で逮捕された[External]槇原敬之は更生してまた[External]世界に一つだけの花などの名曲を作っているが、[External]清水健太郎は覚せい剤やら脱法ハーブやらで4年に1度くらいのペースで逮捕されている。

校長先生だって聖人君子ではないし、TVでよく見る著名人や高名な識者であっても人間には弱い面があったり、失敗したりする事がある。立ち直れる人もいるし、立ち直れない人もいるが、それはその人だけの問題にすべきではなく、周囲を含めた社会としての課題とすべきではないだろうか。子供たちと一緒に前を見据えて「悪い事」と「そうでない事」を再認識する機会にすべきかと思う。

というわけで、安易な決断をしようとしているディズニーには再考を促したい。

それにしても「覚せい剤」には[External]酒井法子を含めて福岡に縁のある人間が多いなぁ。

【参照】
●西日本新聞 http://www.nishinippon.co.jp/
「親はどうすれば…」大谷小で保護者説明会 覚せい剤所持容疑で校長逮捕 2014年5月16日
校長逮捕に地域も揺れる 春日市の覚せい剤事件1週間 [福岡県] 2014年5月16日
歌手のASKA容疑者逮捕 覚せい剤所持容疑 2014年5月17日
ASKA容疑者逮捕、電話保留音の継続「是非を検討する」 福岡市長 [福岡県] 2014年5月21日
宮崎駿監督の作品集発売を延期 ASKA容疑者逮捕で 2014年5月21日
●AV Watch http://av.watch.impress.co.jp/
「カリ城」から「風立ちぬ」まで、宮崎監督の全11作収録BD-BOX発売。全作MGVC対応に 2014年4月1日
ASKA逮捕で「CHAGE and ASKA」作品やソロ作品を出荷停止。デジタル配信も停止 2014年5月19日
ASKA逮捕の余波で宮崎駿監督BD-BOXが発売延期に。「On Your Mark」を抜き7月2日発売 2014年5月20日
●ITmedia ニュース http://www.itmedia.co.jp/news/
ASKA容疑者逮捕で全タイトル出荷停止 「影響の大きさに鑑み」 2014年5月19日
「宮崎駿作品集」発売延期 チャゲアス「On Your Mark」収録中止のため 2014年5月21日
●ディズニー http://www.disney.co.jp/
ジブリがいっぱいCOLLECTION 『宮崎駿監督作品集』DVD/ブルーレイディスク 発売! 2014年4月1日
BD・DVD「宮崎駿監督作品集」発売延期ならびにDVD「ジブリがいっぱいSPECIALショートショート」出荷停止のお知らせ 2014年5月20日
●Wikipedia http://ja.wikipedia.org/wiki/
ASKA
CHAGE and ASKA
万里の河
On Your Mark


[一語一絵/IT系]

F-PLUG / 2014-05-21 (水)

2008年に調達した[External]サンワサプライのワットチェッカーPlus TAP-TST7

F-PLUG
F-PLUG

電気製品の消費電力計測に活用しているものの、いかんせん目で見るだけしかできず統計的なデータ処理にまで展開できないのがネックだったので、新サーバProLiant ML110 G7で管理できるよう、データ出力可能な新製品を物色。

最近は[External]ワットチェッカーTweet TAP-TST9[External]スマートプラグ TAP-TST13などWiFiに対応したモデルもあるが、わざわざインターネットにデータを出さなくても…と思うし、その為に1万円以上払うのもちょっと馬鹿げている。

トラディショナルなUSBタイプの[External]TAP-TST10も悪くなかったのだが、今回は温度、湿度、照度まで計測可能な上に[External]Bluetoothによる通信をサポートしている[External]富士通ビー・エス・シー[External]F-PLUG(エフプラグ)をチョイスした。

yano@ML110G7:~$ apt-get install bluez bluez-compat bluez-utils
yano@ML110G7:~$ hciconfig hci0
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:1B:DC:AA:BB:CC  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING PSCAN
        RX bytes:512 acl:0 sco:0 events:24 errors:0
        TX bytes:343 acl:0 sco:0 commands:23 errors:0

yano@ML110G7:~$ hcitool scan
Scanning ...
        B0:99:28:XX:YY:ZZ       F-PLUG
yano@ML110G7:~$ sudo bluetooth-agent 1234 B0:99:28:XX:YY:ZZ
Pincode request for device /org/bluez/19037/hci0/dev_B0_99_28_XX_YY_ZZ
Agent has been released
yano@ML110G7:~$ sudo l2ping B0:99:28:XX:YY:ZZ
Ping: B0:99:28:XX:YY:ZZ from 00:1B:DC:AA:BB:CC (data size 44) ...
0 bytes from B0:99:28:XX:YY:ZZ id 0 time 31.79ms
0 bytes from B0:99:28:XX:YY:ZZ id 1 time 22.40ms
0 bytes from B0:99:28:XX:YY:ZZ id 2 time 26.03ms
^C3 sent, 3 received, 0% loss
yano@ML110G7:~$ sudo rfcomm -r connect hci0 B0:99:28:XX:YY:ZZ &
[1] 3427
yano@ML110G7:~$ Connected /dev/rfcomm0 to B0:99:28:XX:YY:ZZ on channel 1
Press CTRL-C for hangup

yano@ML110G7:~$
yano@ML110G7:~/software$ git clone https://github.com/goto2048/fplug_for_linux.git
yano@ML110G7:~/software$ cd ~/software/fplug_for_linux/
yano@ML110G7:~/software/fplug_for_linux$ make fptest
cc     fptest.c   -o fptest
fptest.c: In function ‘testmenu’:
fptest.c:66:17: warning: unknown conversion type character 0xa in format [-Wformat=]
                 printf( "Humidity=%d%\n", a );
                 ^
fptest.c: In function ‘dump_message’:
fptest.c:96:5: warning: format not a string literal and no format arguments [-Wformat-security]
     printf( mes );
     ^
yano@ML110G7:~/software/fplug_for_linux$ make fpstatus
cc     fpstatus.c   -o fpstatus
yano@ML110G7:~/software/fplug_for_linux$ sudo ./fptest
1.Get Temperature
2.Get Humidity
3.Illumination
4.Watt(Realtime)
5.Exit
Input command no ->1
Temp Command:10,ffffff81,00,00,0e,fffffff0,00,00,11,00,62,01,ffffffe0,00,
ret size=16
Temp Status:10,ffffff81,00,00,00,11,00,0e,fffffff0,00,72,01,ffffffe0,02,fffffff0,00,
Temperature=24.0

1.Get Temperature
2.Get Humidity
3.Illumination
4.Watt(Realtime)
5.Exit
Input command no ->4
ret size=16
Realtime Wattmeter:10,ffffff81,00,00,00,22,00,0e,fffffff0,00,72,01,ffffffe2,02,00,00,
Watt(Realtime)=0.0W

1.Get Temperature
2.Get Humidity
3.Illumination
4.Watt(Realtime)
5.Exit
Input command no ->5
yano@ML110G7:~/software/fplug_for_linux$ sudo cp -p {fptest,fpstatus} /usr/local/bin/
yano@ML110G7:~/software/fplug_for_linux$

ダメ元で試してみた2008年調達[External]PLANEX:BT-MicroEDR2だが、あっさり使えたようだ。

yano@ML110G7:~/software/fplug_for_linux$ sudo fpstatus t
24.0
yano@ML110G7:~/software/fplug_for_linux$ sudo fpstatus h
34
yano@ML110G7:~/software/fplug_for_linux$ sudo fpstatus i
128
yano@ML110G7:~/software/fplug_for_linux$ sudo fpstatus w
0.0
yano@ML110G7:~/software/fplug_for_linux$

#
# RFCOMM configuration file.
#
rfcomm0 {
        # Automatically bind the device at startup
        bind yes;

        # Bluetooth address of the device
        device B0:99:28:XX:YY:ZZ;

        # RFCOMM channel for the connection
        channel 1;

        # Description of the connection
        comment "FUJITSU F-PLUG";
}
…な、/etc/bluetooth/rfcomm.confを作って
yano@ML110G7:~$ service bluetooth restart
としておけば
yano@ML110G7:~$ sudo fpstatus w
64.6
となるはずだ。

【参照】
●富士通ビー・エス・シー http://www.bsc.fujitsu.com/
F-PLUG(エフプラグ)
F-PLUG メッセージ一覧
●サンワサプライ株式会社 http://www.sanwa.co.jp/
TAP-TST10【ワットモニターUSB】
TAP-TST11【ワットモニターUSB PRO】
●OBDNマガジン http://obdnmagazine.blogspot.jp/
富士通ビー・エス・シー F-PLUG [AX3][A6] 2013年3月25日
●sunagae.net http://sunagae.net/blog/
F-PLUG (電力モニタ) をLinuxで使ってみた 2014年1月27日
●ロードバイクときどきiPad/Airなblog http://blogs.yahoo.co.jp/beachinside
F-PLUG(電力/明るさ/温度/湿度測定プラグ)を買って来た 2013年8月13日
●OSAKANA TAROのメモ帳 http://blog.osakana.net/
USB電力計 サンワサプライ TAP-TST10をLinuxで使ってみた 2013年7月17日
●GIGAZINE http://gigazine.net/
電力・温度・湿度・照度測定の4つを測定してグラフ化できるプラグ「F-PLUG」を使 ってみました 2013年5月9日
●家電 Watch http://kaden.watch.impress.co.jp/
家電製品ミニレビュー - 富士通「F-PLUG(エフプラグ)」 2013年2月22日
●Amazon.co.jp https://www.amazon.co.jp/
SANWA SUPPLY ワットモニターUSB 2P TAP-TST10 4,570円
富士通BSC F-PLUG115 電力・温度・湿度・照度測定機能つきプラグ ホワイト BSCESFP0103 4,900円


[一語一絵/IT系]

PC遠隔操作事件閉幕 / 2014-05-20 (火)

片山被告「私が真犯人」と認める
[External]NHKニュースより

2012年秋に起こった[External]遠隔操作ウイルス事件

結果的に無関係な市民を4人も誤認逮捕するという大失態を演じ、2013年1月にも挑発でコケにされた警察だが[External]2013年2月に男を逮捕[External]今年2月12日には舞台を東京地裁に移し初公判が開かれた。

逮捕、起訴された片山被告は無罪を訴え全面的に争う構えを見せていたが、保釈中に[External]真犯人名乗るメールを発信した形跡を警察に掴まれてしまい、一転して全面的に犯行を自供。何ともあっけない幕切れとなった。

【参照】
●Yahoo!ニュース http://news.yahoo.co.jp/
遠隔操作ウイルス事件
●ITmedia ニュース http://www.itmedia.co.jp/news/
「無差別殺人」書き込みはなりすまし 起訴の男性を釈放 外部からPCを完全乗っ取り 2012年10月8日
なりすまし事件の不正プログラム、トレンドマイクロが解析 新種のバックドア型、掲示板通じ攻撃指示 2012年10月10日
「警察・検察をはめてやりたかった」 なりすまし事件、“犯行声明”メールがTBSに届く 2012年10月15日
なりすまし事件「犯行声明」、別の事件も示唆 被害者5人に 2012年10月17日
犯行声明、なりすまし犯が送信と断定 犯行予告・脅迫13件、実行を確認 2012年10月18日
トロイは「1から開発」、明大生事件はCSRF脆弱性突く――なりすまし事件“犯行声明”全文公開 2012年10月22日
PC遠隔操作事件、捜査本部がFacebookページ公開 ウイルスのコマンドなど明らかに 2012年12月21日
PC遠隔操作事件・犯人から元日に再びメール 「新しいゲームのご案内ですよー」 2013年1月1日
PC遠隔操作事件、男を逮捕 2013年2月10日
PC遠隔操作事件「真犯人」アカウントにログインの朝日・共同記者を書類送検 朝日「承諾されていた」 2013年6月25日
PC遠隔操作事件は全面対決 検察側「状況証拠」VS.弁護側「無罪」 (1/2) 2014年2月12日
遠隔操作ウイルス事件の真犯人名乗る「小保方銃蔵」からのメール、落合弁護士などに届く 2014年5月16日
「信憑性が高いと思う」 遠隔操作ウイルス事件“真犯人”メールに片山被告がコメント 2014年5月16日
遠隔操作事件、被告が記者会見に出席せず メール“自作自演”報道に弁護団「警察は勝負を賭けている」 2014年5月19日
片山被告、遠隔操作事件への関与認めたとの報道 2014年5月20日
詳報・遠隔操作事件・佐藤弁護士会見その1:「先生すみません。自分が犯人でした」 カギになった「onigoroshijuzo2」 2014年5月20日
詳報・遠隔操作事件・佐藤弁護士会見その2:「サイコパスは自分」 有罪なら送信タイマーでメールを送るつもりだった 河川敷では見られていないと思っていた 2014年5月20日
詳報・遠隔操作事件・佐藤弁護士会見その3:iesysを作るくらいのC#スキルはあった 「取り調べ可視化されていればもっと早く解決したのではないか」 2014年5月20日
●弁護士ドットコム - 無料法律相談や弁護士、法律事務所の検索 http://www.bengo4.com/
「自由というのはまぶしい」 遠隔操作事件・片山被告人が保釈会見(全文・前半) 2014年3月6日
「家族にありがとうと言いたい」 遠隔操作事件・片山被告人が保釈会見(全文・後半) 2014年3月6日
「佐藤弁護士が批判される理由はない」 ベテラン弁護士が語る「刑事弁護人」の心得 2014年5月20日
<PC遠隔操作事件>「あなたを見捨てないと伝えた」(佐藤博史弁護士会見詳報・上) 2014年5月20日
<PC遠隔操作事件>「お別れだよって、握手した」(佐藤博史弁護士会見詳報・下) 2014年5月20日
●IWJ Independent Web Journal http://iwj.co.jp/
【特集】PC遠隔操作事件
2013/03/04 「警察の暴走とメディアスクラム、影に潜む米国への配慮~PC遠隔操作事件の全貌に迫る!」 佐藤博史弁護士緊急インタビュー
【IWJブログ】「PC遠隔操作事件」直接証拠も無いまま公判へ 「不当な取り調べ」「個人データ収集」など捜査手法にも大きな問題が
2014/02/10 PC遠隔操作事件 逮捕から一年、12日に初公判
2014/03/05 PC遠隔操作事件の片山祐輔被告が保釈 「とにかく出てこれてよかった」
2014/03/07 「メディアは嘘のリークに騙されないで」 PC遠隔操作事件の片山祐輔被告と佐藤博史弁護士に岩上安身が緊急生インタビュー
2014/05/16 PC遠隔操作事件「真犯人」を名乗る人物からメール 片山氏「これをもって、この裁判を終わりにしてほしい」
2014/05/19 PC遠隔操作事件で急展開 片山祐輔被告と連絡取れず 佐藤博史弁護士が会見
2014/05/19 PC 遠隔操作事件 岩上安身による落合洋司弁護士インタビュー
【IWJブログ】「真犯人メールは片山氏の自作自演」を断定する検察とメディア (※記事は19日夜にアップしました)
●satoru.netの自由帳 http://d.hatena.ne.jp/satoru_net/
●Wikipedia http://ja.wikipedia.org/wiki/
遠隔操作ウイルス事件


[一語一絵/IT系]

dhcpd / 2014-05-20 (火)

自宅サーバのUbuntu 10.04 LTS@GT110bからUbuntu 14.04 LTS@ProLiant ML110 G7への移行作業。

sensors関連ツールの再整備に続いて、dhcp3-serverを入れようとしたのだが、代わりにisc-dhcp-serverが入った。
yano@ML110G7:~$ sudo apt-get install dhcp3-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'isc-dhcp-server' instead of 'dhcp3-server'
Suggested packages:
  isc-dhcp-server-ldap
The following NEW packages will be installed:
  isc-dhcp-server
0 upgraded, 1 newly installed, 0 to remove and 42 not upgraded.
Need to get 762 kB of archives.
After this operation, 2,138 kB of additional disk space will be used.
Get:1 http://jp.archive.ubuntu.com/ubuntu/ trusty/main isc-dhcp-server amd64 4.2.4-7ubuntu12 [762 kB]
Fetched 762 kB in 0s (989 kB/s)
Preconfiguring packages ...
Selecting previously unselected package isc-dhcp-server.
(Reading database ... 73354 files and directories currently installed.)
Preparing to unpack .../isc-dhcp-server_4.2.4-7ubuntu12_amd64.deb ...
Unpacking isc-dhcp-server (4.2.4-7ubuntu12) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for ureadahead (0.100.0-16) ...
Setting up isc-dhcp-server (4.2.4-7ubuntu12) ...
Generating /etc/default/isc-dhcp-server...
isc-dhcp-server start/running, process 7326
isc-dhcp-server6 stop/pre-start, process 7369
Processing triggers for ureadahead (0.100.0-16) ...
yano@ML110G7:~$

ちなみにdhcpdパッケージを選択すると[External]BusyBox由来のudhcpdが導入される模様。

yano@ML110G7:~$ sudo apt-get install dhcpd
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'udhcpd' instead of 'dhcpd'
The following packages were automatically installed and are no longer required:
  augeas-lenses libaugeas0 libbluetooth3 libbrlapi0.6 libfdt1 libnetcf1
  libnl-route-3-200 libseccomp2 libspice-server1 libusbredirparser1 libxen-4.4
  libxslt1.1 libyajl2 sharutils
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  udhcpd
0 upgraded, 1 newly installed, 0 to remove and 42 not upgraded.
Need to get 5,904 B of archives.
After this operation, 93.2 kB of additional disk space will be used.
Get:1 http://jp.archive.ubuntu.com/ubuntu/ trusty/universe udhcpd amd64 1:1.21.0-1ubuntu1 [5,904 B]
Fetched 5,904 B in 1s (5,209 B/s)
Selecting previously unselected package udhcpd.
(Reading database ... 73832 files and directories currently installed.)
Preparing to unpack .../udhcpd_1%3a1.21.0-1ubuntu1_amd64.deb ...
Unpacking udhcpd (1:1.21.0-1ubuntu1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for ureadahead (0.100.0-16) ...
ureadahead will be reprofiled on next reboot
Setting up udhcpd (1:1.21.0-1ubuntu1) ...
udhcpd: Disabled. Edit /etc/default/udhcpd to enable it.
Processing triggers for ureadahead (0.100.0-16) ...
yano@ML110G7:~$

【参照】
●Ubuntu Wiki https://wiki.ubuntu.com/
Releases
LucidLynx 10.04
NattyNarwhal 11.04
PrecisePangolin 12.04
RaringRingtail 13.04
TrustyTahr 14.04
●Ubuntu パッケージ検索 http://packages.ubuntu.com/
trusty のセクション一覧
trusty の dhcp3-server パッケージに関する詳細
trusty の isc-dhcp-server パッケージに関する詳細
trusty の udhcpd パッケージに関する詳細
●Wikipedia http://ja.wikipedia.org/wiki/
ubuntu
Dynamic Host Configuration Protocol