2015/12/30

"POST MODE"からの回復(IP電話機Fanvil C56)

IP電話機 Fanvil C56 を久しぶりに使おうと思い電源を入れたところ、"POST MODE"とLCDに表示されたまま動かない。電源を入れなおしてみたり、色々なキーを押してみたが改善しなかった。 google先生に聞いてみたところ、以下の情報を発見。 試しにやってみたところ、無事に回復できました。

用意するもの

  • PC (IPアドレスを192.168.10.100に変更できるもの)
  • C56のファームウェア(ここから入手する)
  • FTPサーバ (PCで兼用可能、別に用意してもよい。私はRaspberry PiをFTPサーバとして用意した)

手順

  1. FTPサーバのIPアドレスを192.168.10.101に変更する
  2. FTPサーバにC56のファームウェアを格納する。格納場所はFTPでログインするディレクトリの直下にする
  3. PCのIPアドレスを192.168.10.100に変更する。
  4. PC、C56、およびFTPサーバをLANケーブルで接続する。(C56はLAN用RJ45を使用)
  5. PCから192.168.10.1にtelnetする
  6. telnet接続が成功するとメニューが表示される。(login, passwd不要)
  7. メニューから"3: Clear Configration"を選択
  8. メニューから"2: Update firmware via FTP"を選択
  9. "Input Server address"と表示されるのでFTPサーバのIPアドレス"192.168.10.101"を入力する
  10. "Input image name"と表示されるのでFTPサーバに格納したファームウェアのファイル名を入力する
  11. "Input user name"と表示されるのでFTPのユーザ名を入力する
  12. "Inout password"と表示されるのでFTPのパスワードを入力する
  13. ファームウェアの更新作業が行われるので終わるまで待つ。"Update success!"と表示されればOK
  14. メニューが表示されるので、"4: Exit and Reboot"を選択
  15. C56が再起動し、"Wait logon"と表示されれば成功

上記手順により工場出荷状態に戻るので後は普通に設定すればOK。ちなみにC56の基本設定はここが分かりやすい。

以上です。

2015/11/23

モニタ、キーボードなしでRaspberryPiにraspbianをインストールする

最新のraspbian Stretchでは、仕様変更があり下記方法ではインストールできません。改訂版を用意しましたのでこちらをご覧ください。

RaspbanをインストールするにはモニタとキーボードをRaspberryPiに接続する必要があります。しかし、つなぐのは面倒なのでSSH経由でraspbianの初期設定する方法を試してみましたので備忘録を兼ねて紹介します。

■用意するもの

  • Linuxマシン
  • SDカードリーダ

■OSイメージをダウンロード

Linuxマシン上での作業です。
まずはOSイメージをミラーサイトからダウンロードします。
$ wget http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2015-09-28/2015-09-24-raspbian-jessie.zip
$ sha1sum 2015-09-24-raspbian-jessie.zip
d8d4880cd0e4f155f343984725d5bd94c1f86023  2015-09-24-raspbian-jessie.zip

■イメージファイルをマウントする

Linuxマシン上での作業です。
raspbianのIPアドレスを固定するため、イメージファイルをマウントして設定ファイルを書き換えます。
$ unzip 2015-09-24-raspbian-jessie.zip
$ sudo fdisk -l 2015-09-24-raspbian-jessie.img

Disk 2015-09-24-raspbian-jessie.img: 4325 MB, 4325376000 bytes
255 heads, 63 sectors/track, 525 cylinders, total 8448000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xba2edfb9

                         Device Boot      Start         End      Blocks   Id  System
2015-09-24-raspbian-jessie.img1            8192      122879       57344    c  W95 FAT32 (LBA)
2015-09-24-raspbian-jessie.img2          122880     8447999     4162560   83  Linux

$ sudo mount -o loop,offset=62914560 2015-09-24-raspbian-jessie.img /mnt/

オフセットの値はfdisk中の122880にセクタサイズ512を掛けた値。

■ネットワーク関係のファイルを変更

ファイルのオーナがrootなのでrootになって作業します。
("xxx"部分は自分のネットワーク環境に合わせて適宜書き換える)

# vi /mnt/etc/network/interface

・変更前
 auto eth0
 allow-hotplug eth0
 iface eth0 inet manual

・変更後
 auto eth0
 allow-hotplug eth0
 #iface eth0 inet manual
 iface eth0 inet static
 address xxx.xxx.xxx.xxx
 netmask 255.255.255.0
 network xxx.xxx.xxx.0
 broadcast xxx.xxx.xxx.255
 gateway xxx.xxx.xxx.xxx

# vi /mnt/etc/resolv.conf

・変更前
 nameserver 8.8.8.8

・変更後
 nameserver xxx.xxx.xxx.xxx

# umount /mnt

■SDカードに書き込む

LinuxマシンからSDカードにイメージファイルを書き込みむ。("/dev/sdb"は自分の環境に合わせて適宜書き換える)

# dd bs=4M if=2015-09-24-raspbian-jessie.img of=/dev/sdb

■Raspberry PiにSDカードを挿入して起動する

ssh経由でログインする。(user=pi, passwd=raspberry, ip addressは先に設定したもの)
各種設定をする。
pi@raspberrypi ~ $ sudo raspi-config

これで完了です。

2015/04/11

Raspberry Piで円周率の計算をやってみた

ラズベリー・パイで円周率πの計算(100万桁)をしてみました。

(1)実行環境について


マシン:Raspberry Pi B+
O S:RASPBIAN(2015-02-16版)

(2)円周率計算プログラムについて


GMPの「Compute billions of digits of π using GMP!」にあるgmp-chudnovsky.cを使用させて頂きました。

(3)GMPライブラリと円周率計算プログラムのダウンロード、コンパイル


作業フォルダ"pi"を作成し、そこにGMPライブラリと円周率計算プログラムをダウンロード、コンパイルします。

$ mkdir pi
$ cd pi
$ wget https://ftp.gnu.org/gnu/gmp/gmp-6.0.0a.tar.xz
$ tar xvf gmp-6.0.0a.tar.xz
$ cd gmp-6.0.0/
$ ./configure
$ make -j4
$ make -j4 check
$ cd ..
$ wget https://gmplib.org/download/misc/gmp-chudnovsky.c
$ cc -Wall -static -o gmp-chudnovsky gmp-chudnovsky.c -Igmp-6.0.0 -Lgmp-6.0.0/.libs -lgmp -lm
raspbianデフォルトの状態では"m4"が入っていないためconfigureがエラー終了します。その場合は"sudo apt-get install m4"でm4をインストールします。その後、もう一度./configureを実行します。

GMPのコンパイルは小一時間かかります。(Raspberry Pi B+の場合)

(4)円周率計算プログラムの実行


・円周率1,000桁

円周率表示ありで0.03秒でした。

$ time -p ./gmp-chudnovsky 1000 1
#terms=70, depth=8
sieve   time =  0.000
...................................................

bs      time =  0.010
   gcd  time =  0.000
div     time =  0.000
sqrt    time =  0.000
mul     time =  0.000
total   time =  0.010
   P size=1334 digits (1.334000)
   Q size=1327 digits (1.327000)
pi(0,70)=
0.314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019894e1
real 0.03
user 0.01
sys 0.00
・円周率100万桁
円周率表示なしの計算のみで14.74秒でした。

$ time -p ./gmp-chudnovsky 1000000
#terms=70513, depth=18
sieve   time =  0.150
..................................................

bs      time = 10.910
   gcd  time =  0.000
div     time =  1.800
sqrt    time =  0.970
mul     time =  0.730
total   time = 14.580
   P size=1455608 digits (1.455608)
   Q size=1455601 digits (1.455601)
real 14.74
user 14.58
sys 0.09

【備忘録】時系列データの編集方法(R言語, tidyverse)

TimeSeries.knit 1 サンプルデータ作成 2 日付単位に集計する 2.1 月毎集計 2.2 四半期毎集計 ...