リモートでブラウザからRaspberry PiのLEDを制御する。 同時にストリームでRaspberry piから動画をストリーミングする。Raspberry pi上のHTTPサーバとして1) node.js 2) MJPG-Streamerを導入。 ポートがぶつからないように それぞれの待ち受けポートを 1…
ELECOMのWDC-150SU2MをRaspberry piにつなぐが認識されず。 ドライバがないものと思われる。ネットをあさって、ドライバのインストールをやってみるが、やはり認識せず。 断念し手元にあったBUFFALOのUSBドングルをつなぐ。こちらは何も苦労せずに…
/etc/rc.local に実行したい処理を記述すれば、起動時に自動的に実行してくれる。
forever のインストール $ npm install -g foreverプログラムの起動 $ forever start server.jsこれで、server.jsが落ちても自動的に再起動され、常駐化される。常駐化の解除 $ forever stop server.js
node.jsのRaspberry piへのインストール ダウンロード $ wget http://node-arm.herokuapp.com/node_latest_armhf.debインストール $ sudo dpkg -i node_latest_armhf.deb確認 $ node -v v0.10.31
RaspberryでCTRLキーとcaps lockを入れ替えるには/etc/default/keyboardにてXKBOPTIONS="ctrl:swapcaps"とする。 既にXKBOPTIONSに他の設定がある場合はカンマ区切りで並べる。 ex. XKBOPTIONS="terminate:ctrl_alt_bksp,ctrl:swapcaps"
Raspberry pi にリモートログインするにはPC上のLinux(Virtual Box)からの場合、$ ssh pi@192.168.11.2※192.168.11.2はRaspberry piのIPtelnetはデフォルトでは開いていない模様。
デフォルトではrootのパスワードは設定されていない模様。$ sudo passwd rootで設定。ユーザアカウントは USER : pi PASSWORD : raspberry がデフォルトで設定されている。
/etc/default/keyboardXKBMODEL="jp106"に変更。 (raspi-configで設定しても、何故か、設定できなかった)
ParsecをRubyに移植したおのがRParsecである。Parsecはコンパイラコンビネータであり、lex.yaccなどとは異なり、ライブラリ形式でコンパイラ作成をサポートしてくれる。解析方法は再帰下降型。左再帰が解析できないとのこと。■インストール方法 https://ruby…
再帰的にディレクトリを辿りインデントしつつ、ファイルを表示する。 実行は以下のように入力する。 引数が表示したいパス> dirtree.rb c:\work def print_file_list(fpass, level) Dir.chdir(fpass) Dir.glob('*'){ |f| level.times{ print " " } print f, …
8女王問題の解法その2 1つの列には1つ以上女王を置けず、かつ1つは女王を置かないといけないという事実からのアルゴリズム。 その1よりかなり効率的。 但し、回転や反転対称は重複して解として出力する。 #!/usr/local/bin/ruby # -*- coding: utf-8 -…
8女王問題。 単純な(力技の)実装 セルを順番に試しておければ置いてみて、全て置ければ表示する。 全てのセルを試してみてダメだったら、1つ戻って(1つセルを取り除いて)リトライする。 アルゴリズムはsolveメソッドで実装している。・・・但し重複を検出…
Rubyのオブジェクトはdupでコピーされるが、参照先のオブジェクトまで辿ってはコピーしてくれない。 一方、Rubyでは配列は1次元配列しかない。多次元配列は配列の配列という形で定義していく必要がある。 これらより2次元配列をコピーするには各行について…
Windows上でC++のビルドをするためEclipseの Eclipse IDE for C/C++ Developers をhttp://www.eclipse.org/downloads/からダウンロード。 ビルドにはCygwinを使用する。ビルドを実行すると multiple target patterns. Stop. とのエラーが出る。 調べると、ど…
setitimerを用いたタイマ使用のサンプル 下記では1秒周期でシグナルが発生する。 // timer.c #include <stdio.h> #include <signal.h> #include <time.h> #include <sys/time.h> void alarm_handler(int signo); int counter = 0; int main(void) { struct itimerval delay; int ret; signal(SIGALRM</sys/time.h></time.h></signal.h></stdio.h>…
Hexダンプライブラリ 指定された領域の指定された長さ分のデータを Hexダンプする。合わせASCII表示も行う。 出力先は標準出力 //----------------------------------------- void yydump(char *p, int length) { int address = (int)p; char data[17]; int …
ソケットに対するioctlを用いてネットワークインタフェイスに関する情報を取得する。 参考資料:UNIXネットワークプログラミング16章ifconfigのソースでも同様のことをやっている。表示をなるべくifconfigに近づけた。 但し、こちらはダウンさせたインタフェ…
netfilterフックルーチンその2 以下の4箇所のフックポイントでフックしパケットの内容をmessagesに出力する。 ・PRE_ROUTING ・POST_ROUTING ・LOCAL_IN ・LOCAL_OUT あくまで解析/デバッグ用。ログ吐きすぎ。ビルドの方法などは以下参照。 http://d.hatena.…
■ Linux Kernelビルド方法 ■ 【参考】 http://www.nina.jp/server/redhat/kernel/kernel-rebuild-2.6.html 1. カーネルソースを適当なディレクトリに展開する。 カーネルソースはhttp://www.kernel.org/からダウンロードする。2. カーネルビルド環境を初期化…
基本的な手順①Linuxインストール ②Windowsインストール ③Linuxインストール上記①でLinuxをインストールするのは、パーティションを切るため。 ③で再度Linuxをインストールするのは②でWindowsをインストールすると MBRが上書きされてしまうため。・FDISK /MBR…
カーネルソースのルートで$ find . -name '*.[chsS]' -print | etags -とすると巨大なTAGSファイルが生成される。 (kernel3.6.6で約76MB) 後はemacs上でESC + . で検索したい文字列を入力すると その定義に飛んでくれる。
インストール $ sudo yum groupinstall XFCE設定はログイン画面でセッションの中からxfceを選択する。
grubで起動するデフォルトのOSを変更するには /boot/grub2/grub.cfgの中の上から10行目付近の set default="0" の数値を変更すればよい。 0オリジンでgrubの表示に現れるOSを指し示す。 上記ファイル(grub.cfg)のmenuentryでOSの一覧の上からの順番に一致す…
Linuxのnetfilterフック関数の作成ソースファイル(exp_netfilter1.c) /* * exp_netfilter1.c */ #include <linux/types.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/skbuff.h> #include <linux/netfilter.h> #include <linux/netfilter_ipv4.h> #include <linux/ip.h> #include </linux/ip.h></linux/netfilter_ipv4.h></linux/netfilter.h></linux/skbuff.h></linux/init.h></linux/kernel.h></linux/module.h></linux/types.h>
DebianのサイトからISOイメージをダウンロードdebian-6.0.6-amd64-DVD-1.isoVirtualBoxのVMを新規作成し、上記ISOファイルをストレージに設定。 インストール。GuestAdditionのインストールに失敗している模様。 どうやらDebianを普通にインストールするとgc…
Linuxカーネルモジュールの作成、インストール方法 ※参考「Linuxデバイスドライバ 第3版」カーネルモジュールの作成、インストール方法 Cソース(hello.c) #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_</linux/module.h></linux/init.h>…
http://www.kernel.org/ からカーネルソースをダウンロード Latest Stable Kernelとあるもの。 ここでは3.6.6linux-3.6.6.tar.bz2このファイルを適当なところに置く。 → /usr/src/kernel/現在使用しているカーネルビルドのコンフィグファイルをコピーする。 …
仮想マシン(Virtual Machine) 独自に設計した仮想マシン(VM) 機械語の命令セットを定義し、そのアセンブラを flex, bisonで実装。 また仮想マシン自体はC言語で実装。 VMの状態をリアルタイムで観察できるようにXでの表示を行った。上記のようにベースのV…
コマンドラインで10進、16進の変換を行う。 /* * radixtrans.c * * hex -> dewcimal * decimal -> hex * */ #include <stdio.h> /*----------------------------------------------------------*/ main(int argc, char *argv[]) { char str[32]; int number; while(1)</stdio.h>…