投稿

ラベル(Debian)が付いた投稿を表示しています

Raspberry Pi のsleep時間測定

イメージ
RaspberryPiのGPIO出力波形にてsleep処理時間を測定してみました。 ◆sleep() while(1){     *(gpio_regs + 0x7) = (0x1 << portnum);     sleep(n);     *(gpio_regs + 0x0A) = (0x1 << portnum);     sleep(n); } n = 1 1秒から程遠い結果でした。原因は?? ◆usleep() while(1){     *(gpio_regs + 0x7) = (0x1 << portnum);     usleep(n);     *(gpio_regs + 0x0A) = (0x1 << portnum);     usleep(n); } n = 1 n = 10 n = 100 n = 1000 凡そ80μsecのディレイが発生するようです。 ------------------------------------------------------------------ 追加測定 ◆nanosleep() nano.tv_nsec = n; nano.tv_sec = 0; while(1){     *(gpio_regs + 0x7) = (0x1 << portnum);     nanosleep(&nano,NULL);     *(gpio_regs + 0x0A) = (0x1 << portnum);     nanosleep(&nano,NULL); } n=1~1000 n=10000 n=100000 nano.tv_nsec = 0; nano.tv_sec = 1; usleepと同様に約80use...

EclipseによるRasiberryPiのクロス環境

イメージ
DebianにインストールしたEclipse-cdt でRaspberryPiのクロス環境を試してみます。 ◆クロスコンパイラをgithubから落としてきます。 $git clone git://github.com/rspberrypi/tools.git ※ RaspberryPiのカーネルをビルド した時と同じですので、既にゲット済であれば不要です。 ◆HelloWorld ファイルメニューから新規プロジェクトを選択します。 Cプロジェクトを選択します。 プロジェクト名は適当に Hello World のプロジェクトを選択 ツールチェインはCrossGCCを選択 githubから落としてきたクロスコンパイラを指定します。 接頭部 arm-bcm2708-linux-gnueabi- パス ???/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin ビルド成功 RaspberryPiに実行ファイルを転送 正常に実行されました。

Debian Wheezyにeclipse等をインストール

イメージ
Wheezyに諸々インストールの備忘録 ◆emacsのインストール $sudo aptitude install emacs ◆terminatorのインストール $sudo aptitude install terminator ◆eclipseのインストール $sudo aptitude install eclipse ◆eclipse-cdtのインストール $sudo aptitude install eclipse-cdt ◆eclipseの日本語化 $sudo aptitude install pleiades $sudo emacs /etc/eclipse.ini 最終行に以下の1行を追記して保存 -javaagent:/usr/lib/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

Debian on Windows8 + VirtualBox

イメージ
先般はUSBブートのDebianをセットアップしましたが、使い勝手が悪いので仮想マシンとしてDebianをセットアップする事にしました。 従来はサーバー系OSでしか利用できなかった仮想環境 Hyper-V が、Windows8proでは利用可能との事で、システム要件を調べてみると、  ① Windows 8 Pro または Windows 8 Enterprise  ②64 ビット オペレーティング シ ステム  ③RAM 4 GB 以上  ④CPU が次の機能をサポートすること、またそれらが BIOS で有効化されていること   ◦ ハードウェア支援による仮想化機能 (HAV) - BIOS では Intel VT と表示されている場合があります。   ◦ データ実行防止または実行不可 (DEP/NX)   ◦ 第 2 レベルのアドレス変換 (SLAT) 残念ながら、①~③はクリアしてますが、CPUがCore2Quadなので④を満たさず走りません。 無償利用可能で、著名な仮想環境と言えば VmwarePlayer と VirtualBox がありますが、どちらが安定しているとも大差はなさそうなので、VirtualBoxにしてみました。 ホストOS Windows8 pro 64bit ゲストOS Debian Wheezy 32bit (RaspberryPi 向けコンパイラが64bitでは走らない為・・・) 1.Wheezyのインストーラをダウンロードしてきます。 DebianのWheezyサイト からi386(32ビット)のnetinstインストールイメージを落としてきます。 ちなみに、WheezyはまだRC1ですので、安定版じゃないと嫌な方はSqueezeのインストーラが こちら にあります。 2.VirtualBoxのインストーラをダウンロードしてきます。 VirtualBox 4.2.12 for Window...

Raspberry Pi のカーネルRaspbian再構築(ビルド後編)

◆ eLinuxのWiKiに記述されている手順 の続きです。 10.環境変数設定 $export MODULES_TEMP=~/raspi/modules/ 11.ビルドされたモジュールを MODULES_TEMP にコピーします。 $ARCH=arm CROSS_COMPILE=${CCPREFIX} INSTALL_MOD_PATH=${MODULES_TEMP} make modules_install 12.カーネルイメージを作成します。 $cd ~/raspi/tools/mkimage $./imagetool-uncompressed.py ${KERNEL_SRC}/arch/arm/boot/zImage 寄り道) Debianのインストールからお付き合い頂いている方は、 「 /usr/bin/env: python2: そのようなファイルやディレクトリはありません」 と文句を言われたと思います。 スクリプトファイルの頭を見てみますと、 $head imagetool-uncompressed.py −>「#!/usr/bin/env python2」と記述されています。 python2を探します。 $which python2  −> 見つかりません。 $which python  −> /usr/bin/python が見つかりました。 バージョンを確認してみます。 $python -V  −> Python 2.6.6 と返ってきましたので、/usr/bin/pythonを使えば良さそうです。 imagetool-uncompressed.pyの先頭行を「#!/usr/bin/env python」と書き換えても良いですが、python2 で python が呼ばれる様にリンクを張りました。 $sudo ln -s /usr/bin/python /usr/local/bin/python2 $./imagetool-uncompressed.py ${KERNEL_SRC}/arch/arm/boot/zImage  −> 今度はスクリプトが実行されて、kernel.img が作成されるはずです。 13.RaspberryPiに新しいカーネルイメージをコピーします。...

Raspberry Pi のカーネルRaspbian再構築(ビルド前編)

◆無事にDebianが起動したら、追加のセットアップをしておきます。 1)sudoを有効にする。 rootに入ったり出たりするのは(精神衛生的に)良く無いので、sudoで管理者コマンドを実行できるようにしておきましょう。 rootにログインした後、visudoコマンドでsudoresファイルに自分のユーザーアカウントを記述しておきます。 2)Debian を最新にしておく。 $sudo aptitude update $sudo aptitude upgrade 3)emacsをインストール(お好みで) テキストファイルやソースコードをイジったり。20年以上使ってますが最強でしょ!? $sudo aptitude install emacs ◆カーネルのビルド ググってみると色々出てきますが、私は純正と思われる eLinuxのWiKiに記述されている手順 を参考しました。 1)手順通りに進める為に必要となったものをインストールします。 $sudo aptitude install git gcc make libncurses5-dev 2)適当なディレトリを作成しておきます。 $mkdir raspi $cd raspi 以下WiKiの手順番号毎に記述します。 1.Raspbianのソースを頂きます。 $git clone git://github.com/raspberrypi/linux.git 2.環境変数設定 $export KERNEL_SRC=~/raspi/linux 3.クロスコンパイラを頂きます。 $git clone git://github.com/rspberrypi/tools.git 4.環境変数設定 $export CCPREFIX=~/raspi/tools/ arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi- 5.カーネルのコンフィグレーションを初期化 $cd linux $make mrproper 6.RaspberryPiから.configを持ってきます。 まだ、RaspberryPiでsshサーバーを走らせていない方は コチラ をご参考に。 ...

USBブートDebian(For Raspberry Pi)

イメージ
RaspberryPi上でカーネルを再構築しようとすると、コンパイルに4~5時間は掛かるそうですので、PCを使ってクロス環境を構築してみた。 RaspberryPi(ARM)のクロスコンパイラをググってみるとUbuntu上で走らせている人が多いようですが、RaspberryPiと同じDebianを選択しました。 また、Windows8になってLinuxとのデュアルブートが厄介になっている模様なので、USBメモリブートのDebianを作成する事としました。 インストーラをUSBメモリにインストール サイト からDebianのnetインストーラをダウンロードしてきます。  32ビットPC netinst iso [ debian-6.0.7-i386-netinst.iso ] ※当初は64ビット版Debianをセットアップしましたが、カーネルのコンパイル時のエラーにめげて32bit版Debianにしました。 ◆CDROMやUSBメモリ等にインストーラのisoファイルを書き込みます。 ライターソフトはお好みで。私は win32diskimager でUSBメモリに書き込みました。     ◆PCを再起動して、インストーラを書き込んだメディアから起動します。 USBメモリからの起動方法はBIOSによって異なります。(古~いPCだとそもそもUSBブート非対応ですので諦めてください・・・) DebianをUSBメモリにインストール ◆インストール先のUSBメモリを挿入しておきます。 CUIのみであれば8GB以上、GUI(デスクトップ)も含めるなら16GB以上のUSBメモリを用意します。 お好みで名前を付けます。 通常は空白のままや「localhost」でOKです。 セキュリティの為パスワードを設定しておきましょう。パスワードはお忘れなく。 適当に好きな名前を入れておきます。 Debianにログインする時のアカウント名です。 念のため設定しておきましょう。 今回はDebian専用にUSBメモリの全領域を割り当てます。 Windowsの入っているHDDやインストーラの入っているUSBメモリと間違わないように選択します。 パーティ...