投稿

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

LeapMotionのSDKが一般公開開始だぞ

イメージ
LeapMotion の出荷が7月22日に決定(もう延期は無いでしょう!)して、早く触ってみたくてウズウズしている方も多いでしょうね(笑) ところで、先ほどメールがやってきました。 Welcome to Our Community We're happy to let you know that the Developer Portal is now open. With a simple click, you’ll be a full member of the Leap Motion global developer community, with full access to our SDK. When you enter the Developer Portal, you can start by downloading the latest SDK. Next, take a few minutes to review our full API library, UX guidelines, knowledge base, tutorials, and more. 従来は法人などアプリ開発者に限定されていたDeveloperサイトへのアクセスが、私の様な一般人にも許可されるようになりましたので、早速訪問してみました。 ◆具体的な開発環境や実行環境の要件は以下の通り記載されてました。 Hardware requirements USB 2.0 or 3.0 port Supported operating systems Windows 7 and 8 Mac OS 10.6 and higher Ubuntu Linux 12.04 LTS and Ubuntu 13.04 Raring Ringtail Supported compilers and runtimes C++ on Windows: Visual Studio 2008, 2010, and 2012 C++ on Mac: Xcode 3.0+, clang 3.0+, and gcc Objective-C: Mac OS 10.7+, Xcode 4.2+ and clang 3.0+ C# for ...

RaspberryPiのデバイスドライバ(第1歩)

イメージ
以前、 RaspberryPi のGPIOレジスタを直接叩いてLEDを点灯 させてみましたが、ルート権限で実行させる必要があります。 そこで、まずはデバイスドライバのロード&アンロードを確認するだけのプログラムを試してみました。 ◆ VM上のEclipse を起動します。 ◆Eclipseが自動生成するMakefileでのビルドにチャレンジしましたがエラーが解決できなかった為、手入力したMakefileでビルドするように構成します。 Cプロジェクトの新規作成にて、Makefileプロジェクトの空のプロジェクト、他のツールチェインを選択します。 インクルードパスに Raspbian(Linux)のソース ツリーにあるIncludeディレクトリを追加 ※ビルドには無関係ですが、ソースコードの定義チェックなどが機能してくれるので定義しておきましょう。 ◆正常にビルド完了しました。 このEclipse(Ver3.8)では、printk()やmodule_init()、module_exit()でソースコードの構文解析でエラーがでてしまいますが、ビルドには支障はないようです。 ◆RaspberryPi上で動作確認します。 SCPで、main.koをRaspberryPiに転送。 SSHで、RaspberryPiにリモート接続。 insmodでmain.koをロードします。(特権ユーザーで) lsmodで、mainが正常にロードされた事が確認できました。 rmmodで、アンロード。 最後にdmesgで、ロード、アンロード時にKERN_ALARTに出力した文字列が残っているかチェックし、無事に実行された事が確認できました。 ---------------------------------- main.c #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> MODULE_DESCRIPTION("Hello driver"); MODULE_AUTHOR("777gunslinger"); MODUL...

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...

Raspberry Pi のGPIO信号波形

イメージ
RaspberryPiのGPIOにキャラクタLCDモジュールを接続します。 そこで、Cプログラムでインターフェイスタイミング信号を生成する為に、出力信号波形を観測してみました。 以前作成した LED点滅プログラム を以下の様にsleep関数をコメントアウトして観測 ※お安いPCオシロですので精度はあまり良くないですm(--)m while(1){     *(gpio_regs + 0x7) = (0x1 << portnum); //    sleep(1);     *(gpio_regs + 0x0A) = (0x1 << portnum); //    sleep(1); } CH1:電源電圧(テスターでの測定値は3.30Vでした) CH2:GPIO25(P22)

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メモリと間違わないように選択します。 パーティ...