coLinux日記

coLinuxはフリーソフトを種として、よろずのシステムとぞなれりける。

Raspberry Pi の浮動小数点演算の性能

2013-07-27 01:35:31 | Raspberry Pi

Pidora の設定が一応終わったので、いろいろ試していこうと思います。 まず、Raspberry Pi の浮動小数点演算の性能を見るために昔行った姫野ベンチを試してみます。比較のためにプログラムはその時のものを使います。Fortranコンパイラは標準ではインストールされていないのでインストールします。

# yum install gcc-gfortran.armv6hl
.............
Installed:
  gcc-gfortran.armv6hl 0:4.7.2-2.fc17.a6

Dependency Installed:
  libgfortran.armv6hl 0:4.7.2-2.fc17.a6

Complete!
# which gfortran
/usr/bin/gfortran

早速プログラムをコンパイルしてみます。

$ gfortran -O3 himenoBMTxp.f90
himenoBMTxp.f90:131.7:

  pause
       1
Warning: Deleted feature: PAUSE statement at (1)
$

コンパイルできました。これを実行してみます。

$ ./a.out
 Select Grid-size:
 Grid-size=
            XS (64x32x32)
            S  (128x64x64)
            M  (256x128x128)
            L  (512x256x256)
            XL (1024x512x512)
XS
  mimax=          65  mjmax=          33  mkmax=          33
  imax=          64  jmax=          32  kmax=          32
  Time measurement accuracy : .10000E-02
  Start rehearsal measurement process.
  Measure the performance in 3 times.
   MFLOPS:   36.0227814       time(s):  0.15800000000000000        6.22747932E-03
 Now, start the actual measurement process.
 The loop will be excuted in        1139  times.
 This will take about one minute.
 Wait for a while.
  Loop executed for         1139  times
  Gosa :   3.48486265E-06
  MFLOPS:   36.3105049       time(s):   59.512000000000000
  Score based on Pentium III 600MHz :  0.438320935
PAUSE
To resume execution, type go.  Other input will terminate the job.
go
RESUMED
$

S も試してみます。

$ ./a.out
 Select Grid-size:
 Grid-size=
            XS (64x32x32)
            S  (128x64x64)
            M  (256x128x128)
            L  (512x256x256)
            XL (1024x512x512)
S
  mimax=         129  mjmax=          65  mkmax=          65
  imax=         128  jmax=          64  kmax=          64
  Time measurement accuracy : .10000E-02
  Start rehearsal measurement process.
  Measure the performance in 3 times.
   MFLOPS:   36.3792992       time(s):   1.3580000000000001        3.28862783E-03
 Now, start the actual measurement process.
 The loop will be excuted in         132  times.
 This will take about one minute.
 Wait for a while.
  Loop executed for          132  times
  Gosa :   1.96013972E-03
  MFLOPS:   36.4830971       time(s):   59.582000000000001
  Score based on Pentium III 600MHz :  0.440404385
PAUSE
To resume execution, type go.  Other input will terminate the job.
go
RESUMED
$

Fortranプログラムの結果は残念なもので、浮動小数点演算は遅いようです。しかし、Raspberry Pi にとっては Fortran プログラムをコンパイルできて動作したということで満足です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Pidora の設定 ntpdate とアップデート

2013-07-24 00:26:51 | Raspberry Pi
Raspberry Pi で、Pidora 18 を使い始めましたが、日付が狂っていましたので修正します。

# ntpdate プロバイダ提供のntpサーバ名

ntpd を動かしたいところですが、頻繁にブートするので、ここではブート時だけ ntpdate を実行することにします。
/etc/sysconfig/ntpdate を次のように修正しました。(後で分かりますがこの修正は不要です。)

OPTIONS="-p 2”
RETRIES=2
SYNC_HWCLOCK=yes

ここではNTPサーバ名の指定は無く、別のところで行っているようです。

ブート時に ntpdate を実行するために systemctl で enable にします。

# systemctl enable ntpdate.service
ln -s '/usr/lib/systemd/system/ntpdate.service' '/etc/systemd/system/multi-user.target.wants/ntpdate.service'
#

これでリブートして /var/log/messages を見ると、ntpdate-wrapper というものが実行されているようです。これは、

/usr/libexec/ntpdate-wrapper

です。中身を見ますと、/etc/ntp/step-tickers で指定されたものか、 /etc/ntp.conf の server 行と peer 行で指定されているサーバのうち、127.127.1.0 を除いたものをサーバとして使うようです。また SYNC_HWCLOCK=yes にすると、hwclock を実行するようです。しかし、

# /sbin/hwclock --systohc
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --debug option to see the details of our search for an access method.
#

のようにエラーになるので、Raspberry Pi でこの設定は無効です。(/dev/rtc が無いので)

というわけで、ブート時に 自分で指定した ntpサーバを指定して ntpdate を実行するためには、 /etc/sysconfig/ntpdate は修正せずに、/etc/ntp/step-tickers を修正するか、すべてコメントにして、/etc/ntp/ntp.conf を新たに作成します。/usr/libexec/ntpdate-wrapper によれば /etc/ntp/step-tickers の#で始まる行は無視されますので、次のように修正します。

#cat /etc/ntp/step-tickers
# List of servers used for initial synchronization.

# 0.fedora.pool.ntp.org
プロバイダの提供するNTPサーバ
........
#

リブートして、/var/log/messages を確かめますと、

Jul 23 ..:..:.. raspi ntpdate[...]: step time server .................

のようになってうまくいきました。

次はアップデートを試してみます。

# yum update
..................................
Updating:
pidora-logos noarch .................
pidora-release noarch .................
raspberrypi-headless armv6hl .................
raspberrypi-vc-demo-source armv6hl .................
raspberrypi-vc-firmware armv6hl .................
raspberrypi-vc-libs armv6hl .................
raspberrypi-vc-libs-devel armv6hl .................
raspberrypi-vc-static armv6hl .................
raspberrypi-vc-utils armv6hl .................

Transaction Summary
====================================================
Install 2 Packages
Upgrade 9 Packages

Total download size: 46 M
Is this ok [y/N]: y
.....................................................
Complete!
#

普通の Fedora と変わりないですね。

おもちゃのような Raspberry Pi ですが、ネットワークに接続すれば他のコンピュータと区別は付かないわけですから、こうしたアップデートは怠らないようにしたいものです。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Raspberry Pi Pidora の設定

2013-07-23 00:22:33 | Raspberry Pi
前回までで、Raspberry Pi で Pidora を利用できるようになりました。

このまま利用してもよいのですが、coLiunx の代替として考えた場合、そもそもディスプレイは不要で、ssh でログインできればOKです。こうすれば、本体にネットワークケーブルと電源ケーブルだけ繋げば使うことができます。早速その設定をします。Fedora14 から急に Pidora18(Fedora18) に変えた結果、設定が大きく変わったのでここで一応まとめておきます。

最初に X window のサーバを動作させないために runlebel 5 から runlebel 3 に変更します。従来の init の代わりに systemd が動作していますので以下のようにします。
# cd /etc/systemd/system
# rm default.target
# ln -s /lib/systemd/system/multi-user.target  default.target

さらに、IPアドレスを固定します。 ここは従来通り /etc/sysconfig/networking-scripts/ifcfg-eth0 を修正すればOKです。例えば、192.168.1.101/24 で、ゲートウェイが 192.168.1.1 だとすれば、

IPADDR=192.168.1.101
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
GATEWAY=192.168.1.1
DNS1=ネームサーバのIPアドレス
DNS2=2つめのネームサーバのIPアドレス

を追加して、

ONBOOT=yes
# BOOTPROTO=dhcp

のようにdhcpを抑制します。これで、リブートすると NetworkManager によって、/etc/resolv.conf が自動的に修正されます。 ホスト名は、/etc/hostname を修正します。ついでに /etc/hosts も修正します。例えば、次のようになります。

# cat /etc/hostname
raspi
#
# cat /etc/hosts
127.0.0.1     localhost localhost.localdomain raspi.local 
192.168.1.101 raspi
  (以下省略)
#

のように修正しました。

ssh は最初から sshd が動作しており利用可能です。インターネットに直接接続するような場合は、rootでログイン出来ないようにしておきます。
/etc/ssh/sshd_config の中の

#PermitRootLogin yes

を、

PermitRootLogin no

にします。

ここでシャットダウンして、ネットワークケーブル以外の全てのケーブルをはずして、再度電源を入れますと、ボードに付いている5つのランプの左から4つが点灯します。これで準備完了です。さすがに X Windows を止めて runlevel 3 にすると立ち上がりが coLinux 並に速いです。

ランプは、ボードの横から見て左から、黄、緑、緑、赤、緑 ですが、動作中は、左から4つが点灯し、一番右がついたり消えたりですが、shutdown すると、最終的に左から4番目の赤ランプだけが点灯します。この状態で電源ケーブルを抜いても安全だと思います。またネットワークケーブルが外れると、左の3つのランプが消えます。モニタをつながない場合これらは覚えておくとよいかと思います。

これで coLinux と同様に、Windows から Tera Term 等でログイン出来るようになりました。

というわけで、今後このブログでは coLinux の代わりに、Raspberry Pi Model B で動作する Pidora 18 で実際に動作させた事を中心に記事を書いていきたいと思いますのでよろしくお願いいたします。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Raspberry Pi に Pidora をインストール

2013-07-21 09:35:41 | Raspberry Pi
前回作成したSDカードを使って、Raspberry Pi を動かしてみます。

本体にキーボード、マウス、ネットワークケーブル、HDMIケーブルにテレビまたはディスプレイを繋いで電源を入れておき、SDカードを差し込んでから本体と電源ケーブルを繋ぎます。(HDMIを使うかどうかは自動認識するようなのでモニタの電源が入っていないと後から電源をいれても全く表示されないようです。)すると画面に、

NOOBS v1.2.1 - Built: Jun 26 2013

というウィンドウが表示されます。一番下の Language を日本語にすると一部日本語で表示されます。この状態でインストールできるOSは、

Archlinux 、OpenELEC 、Pidora 、RISC OS 、RAspBMC 、 Raspbian[RECOMMENDED]

です。coLinuxでは、Fedora を使っていましたので、Pidoraをマウスでクリックして、メニューの「イメージの復元」をクリックすると、「確認」ウィンドウがでますから、「はい」をクリックすると、今のSDカードにイメージが書き込まれます。

書き込みが完了すると、「リストア完了」ウィンドウが表示されますので、「OK」をクリックします。するとリブートされて Pidora が動きます。

最初に、Welcome が表示されるので、順番に設定していきます。実はこの設定はあとから変更できるので、適当にやってOKです。ただしFilesystem Settings は、swap を作成するので重要です。

・「Forward」をクリックします。
License Informationで、「Forward]をクリックします。
Keyboard は、「Japanese]を選択して、「Forward]をクリックします。
Create User は、root 以外で使用するユーザ名(Username)を指定します。Full Name: 、 Username: 、Password: 、 Confirm Password を書き込んで、「Forward]をクリックします。
Root User Settings は、rootのパスワードを設定します。設定したら「Forward」をクリックします。
Date and Time は、そのまま「Forward]をクリックします。
Time Zone は、Asia の中からTokyoを選んで、「Forward」をクリックします。
Filesystem Setting は、そのまま「Forward]をクリックします。
System Settings は、Hostnameにホスト名を、Boot Type: は、coLinuxと同様にテキストベースで行うためにTextを選択したいところですが、今回は参考までにGraphical を選択しておきます。ここは後で修正します。Video Configurationは、一応日本でNTSCですから、

HDMI default, NTSC(Japna)fallback(Output to japanese composite video(NTSC-japan)if HDMI is not connected at boot.)

を選択しておきます。最後に「Finish」をクリックします。

すると再びリブートして、しばらく待っているとログイン画面がでます。このときのパスワード入力ではキーボード設定が問題になることがあるので最初の段階ではパスワードに英数字以外を使うとログイン出来なくて慌てることがあります。ログインすると、Panelウィンドウがでてくるので、「Use default config」をクリックします。これで通常画面が表示されて使えるようになります。キーボードがおかしい場合は、「Applications Menu」から、「Setting」の「Keyboard]をクリックします。「keyboard」画面から、「Layout]を選んで、「Use system defaults」のレ点をはずして、PC-98xx Series を選択しておきます。そして、Keyboard layoutから Japanese Japanese(OADG 109A)を選択しました。

このシステムではSDカード(8GB)は、/dev/mmcblk0 として認識されます。
# parted --list /dev/mmcblk0
Model: SD SA08G (sd/mmc)
Disk /dev/mmcblk0: 7969MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start  End    Size    Type     File system   Flags
 1     1049kB 1263MB 1262MB  primary  fat32         lba
 2     1267MB 7969MB 6702MB  extended
 5     1268MB 1320MB 52.4MB  logical  fat16         boot, lba
 6     1321MB 7969MB 6648MB  logical  ext4
 
# df -T
Filesystem     Type    1K-blocks    Used Available Use% Mounted on
rootfs         rootfs    6390888 2094016   3972300  35% /
/dev/root      ext4      6390888 2094016   3972300  35% /
devtmpfs       devtmpfs   223248       0    223248   0% /dev
tmpfs          tmpfs      223336       0    223336   0% /dev/shm
tmpfs          tmpfs      223336     900    222436   1% /run
tmpfs          tmpfs      223336       0    223336   0% /sys/fs/cgroup
tmpfs          tmpfs      223336      68    223268   1% /tmp
/dev/mmcblk0p5 vfat        51082   17588     33494  35% /boot
#

参考までにこのSDカードを後で、Windows で見ると、Linux のパーティション6は参照できず変更がないように見えます。書き込みは危なそうですが、参照だけはできます。FAT16 のパーティション5からブートするようです。

Pidora のインストール方法は、pidora-18-r1c.zip を使う方法もあります。その場合は、ダウンロードのページで解説されているとおり、ダウンロードしてSHA1のチェックサムを確認してから展開すると pidora-18-r1c.img が得られます。このファイルの md5のチェックサムも確認しておきましょう。そして、おすすめの Win32DiskImager をインストールして、SDカードにイメージをコピーすれば完了です。

この方法の場合、FAT16のパーティションが作成され、前述の初期設定終了後、こちらをWindowsで見ると、以下のようなファイルが入っています。

 grub\splash.xpm.gz
 lost+found\
 bootcode.bin
 cmdline.txt
 config.txt
 config.txt.hdmi_nooverscan
 config.txt.hdmi_overscan
 config.txt.ntsc_japan
 config.txt.ntsc_northamerica
 config.txt.pal
 config.txt.pal_brazil
 config-3.6.11-5.20130415git197d15b.rpfr18
 fixup.dat
 kernel.img
 kernel-3.6.11-5.20130415git197d15b.rpfr18.img
 start.elf
 start.elf.desc

別の 16GB のSDカードで試した場合のパーティションは以下のようです。

# parted --list /dev/mmcblk0
Model: SD SU16G (sd/mmc)
Disk /dev/mmcblk0: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 53.5MB 52.4MB primary fat16 boot, lba
2 53.5MB 15.9GB 15.9GB primary ext4
#

Windows で見えていたのは最初のパーティションで、やはり FAT16 のパーティション1からブートするようです。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Raspberry Pi

2013-07-20 13:00:34 | Raspberry Pi
久しぶりの投稿です。

coLinux を Windows7 Professional にインストールしようとしたところ、実行すると Windows ごとダウンしてうまく動作しません。最近 coLinux の更新が滞っているため当分使えない状況です。

代替案として、Windows Virtual PC を考えましたが、これだと将来 coLinux に戻れなくなる可能性があります。といって普通のPC等を使うとメモリが大きすぎて現状と大きく異なってしまいこれもよくありません。

ところが最近非常に安価なボード型のコンピュータ Raspberry Pi が入手可能になりました。Linuxが動作し、小さいし、メモリも 512MB と手頃で、SDカードを変えると別のシステムにすぐに変更できるなど便利そうです。とりあえず coLinux が復活するまでこちらを使うことにします。

購入は、通販の他、秋葉原等でも可能になりましたが、ハードに強くない場合は専用ケースも一緒に購入することをお勧めします。電源は携帯充電用のものが使えますが、5V 1000mA(添付資料によると、Model B は 700mA - 1200mA) の物を使うことにしました。実際のものはものすごく軽くて小さいのでこのへんも coLinux 的なかんじです。

さっそくSDカード(class 4 以上で4GB以上の容量)にOSをインストールします。

http://www.raspberrypi.org/downloads

の [ quick start guide ] のリンク先の pdfファイル(印刷する時には、1ページ目だけ「横」で印刷する必要があります。)の説明の通りに、作業を行います。

まずは、SD Association's Formatting Tool を入手します。(SDFormatter4exe.zip)
Windowsにインストールして、SDFormatter を実行します。
SDカードのドライブを選んで、「オプション設定」をクリック、「消去設定」を念のため「上書きフォーマット」にして、「論理サイズ調整」を「ON」にして、「OK」をクリック、元の画面で、「フォーマット」をクリックしてフォーマット行います。

先ほどのダウンロードページの、NOOBS_v1_2.zip をクリックしてファイル(ここでは、NOOBS_v1_2_1.zip ) をダウンロードします。SHA-1のチェックサムは必ずチェックしましょう。

展開するとこうなります。

 images\
 slides\ (インストール時に表示される画像ファイルが入っています。)
 bootcode.bin
 BUILD-DATA
 recovery.cmdline
 recovery.elf
 recovery.img
 recovery.rtf
 RECOVERY_FILES_DO_NOT_EDIT
 riscos-boot.bin

実際の各種OSのイメージファイルは、images\ の下に xz で圧縮されて入っています。これらのファイルを全て、先ほどフォーマットした、SDカードにコピーします。

これでSDカードの準備ができました。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする