ラズパイのアップデート


ラズパイのアップデートに関するメモ

一般的なパソコン上の Debian であれば、カーネルも含めて、下記のコマンドでアップデートできます。

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

Raspbian (Debian for Raspberry Pi) の場合は、カーネルのアップデートには、別のコマンドが必要です。

(コマンドのインストール)
# apt-get install rpi-update
(アップデート)
# rpi-update

rpi-updateにて、ブートローダー(bootcode.bin)、GPUファームウェア(start*.elf)、カーネル(kernel*.img) などのバイナリが更新されます。

参考
How do I update software and firmware?
An easier way to update the firmware of your Raspberry Pi
Raspberry Pi Firmware


ラズパイのブートプロセス


ラズパイのブートプロセスを調べてみた。
簡単にはこういう流れらしい。

(1) 電源オンでGPUが起動する
(2) GPUが、内蔵ROMの1段目のブートローダーを読み込む
(3) ブートローダーが、SDカードの2段目のブートローダー (bootcode.bin) を読み込む
(4) bootcode.bin が、SDカードのGPU ファームウェア (start.elf) を読み込む
(5) start.elf が、SDカードのカーネル (kernel.img) を読み込む
(6) kernel.img が、SDカードのファイルシステム (rootfs) を読み込む

昔の資料では、3段ブートローダとなってますが、今は2段のようです。

GPU が介在するのは、???という感じだが。
GPU には、SDRAMコントローラーやDMAコントローラーも含まれているで、チップ全体のコントローラーも兼務しているということなのだろう。

参考
Raspberry Piのブートプロセスメモ
Raspberry Pi の環境構築(失敗談)
piでベアメタルプログラミング
How does Raspberry Pi boot?
Raspberry Pi boot process


MAC : GNU Octave


GNU Octave は、主に数値解析を目的とした高レベルプログラミング言語である。

インストール

$ brew tap homebrew/science
$ brew install octave

環境設定

$ echo export FONTCONFIG_PATH=/opt/X11/lib/X11/fontconfig >> .bash_profile

確認
バージョン

$ octave --version
GNU Octave, version 4.0.0

ヒストグラムをプロットする

$ octave
octave:1> w = 10 + sqrt(10)*(randn(1,10000));
octave:2> hist(w)
octave:3> exit

20160327_octave

参考
OctaveをMac OS X Yosemiteへインストール
MacでOctaveを使いたい!
Octave for MacOS X


MAC : transfig fig2dev


transfig は、LaTeX の図のための make ファイルを作成するコマンド
fig2dev は、図のコードを様々なグラフィックス言語に変換するコマンドで、transfig に含まれる

インストール

$ brew tap mistydemeo/homebrew-xfig
$ brew install homebrew/x11/imake

transfig の make ファイルを変更する

$ brew edit transfig

inreplace に下記を追加する

inreplace "fig2dev/dev/genibmgl.c", "static set_width(w)", "static void set_width(w)"

transfig のインストール

$ brew install transfig

参考
GNU Octaveのインストール
Fig2dev not installed as part of transfig


MAC : gnuplot


gnuplot は、2次元もしくは3次元のグラフを作成するためのオープンソースのアプリケーションソフトウェアである。

表示ウィンドウとして、下記のいづれかが必要です。
AquaTerm (推奨)
XQuartz X11サーバー

インストール

(いったん削除する)
$ brew uninstall gnuplot
(AquaTerm と X11 を指定してインストールする)
$ brew install gnuplot --with-aquaterm --with-x11

確認
バージョン

$ gnuplot --version
gnuplot 5.0 patchlevel 3

サインカーブのプロット

$ gnuplot
gnuplot> set terminal aqua
gnuplot> plot sin(x)
gnuplot> quit

下図が表示される
20160324_gnuplot

参考
gnuplot を Homebrew からインストールするときの手順


MAC : AquaTerm


20160323_aqua_term

AquaTerm は、Mac OS X の Aqua ウィンドウ環境にベクトルグラフィックスを表示するフロントエンドアプリケーションです。

インストール
SourceForge – AquaTerm からダウンロードする

参考
wikipedia – Aqua (コンピュータ)
Aquaとは、アップルが Mac OS X で採用した一連のGUIのデザインの名称である。


VBoxManage


VBoxManage は、VirtualBox のコマンドラインインターフェースです。

コマンドの例
仮想マシン (Virtual Memory System) の一覧

$ VBoxManage list vms

仮想マシンの起動

$ VBoxManage startvm "vm名"

仮想マシンの電源オフ

$ VBoxManage controlvm  "vm名" poweroff

参考
VBoxManage
VBoxManageコマンド


socat


socat とは ソケット通信を連結するコマンドで、SOcket conCATenate の略のようです。

インストール

$ brew install socat

使用例
基本的な構文

$ socat <address1> <address2>

ターミナル1で、70000番ポートを標準出力に連結する

$ socat tcp-listen:70000 stdout

ターミナル2で、標準入力を70000番ポートに連結する

$ socat tcp-connect:localhost:70000 stdin

ターミナル2に入力した文字が、ターミナル1に出力される。
20160320socat

参考
socat – Multipurpose relay
socatを使ってソケットテストする
socat を使うと各種ソケットの操作が捗りまくる件