raspberry piで計測


raspbianのUSBTMC
raspbianのkernelを再構築することによって、USBTMCを組み込むことに成功した。これで、raspberry piを計測装置との通信マシンとして本格的に使うことができる。参考に、その手順を簡単にメモしておく。まず、必要なパッケージをインストールしたり、ソースをダウンロードしたりする。

sudo aptitude install kernel-package
cd /usr/src
git config --global http.proxy http://proxy:8080/
sudo git clone --depth 1 https://github.com/raspberrypi/linux.git
sudo ln -s linux linux-3.6.11+
cd linux
zcat /proc/config.gz >~/config.bak
sudo cp ~/config.bak .config
sudo ln -s /usr/src/linux /lib/modules/3.6.11+/build

次に、USBTMCを有効にするために、.configを編集する。具体的には、 CONFIG_USB_TMCについてのコメントがあるので、そこに

CONFIG_USB_TMC=y

と書いておいた。モジュールにしても良いのだが、モジュールの組み込みが面倒かなと思ってyにした。そして、Makefile中のEXTRAVERSIONに、TMCなどと必要に応じて名前をつける。そして、コンパイルである。

sudo make oldconfig
sudo make clean
sudo make
sudo make modules_install
sudo make install

makeは、7時間か8時間ぐらいかかるようである。熱暴走しないように注意する必要があるらしい。そして、kernelイメージを作って、置換する。

cd ..
sudo git clone --depth 1 https://github.com/raspberrypi/tools.git
cd /usr/src/tools/mkimage
sudo python imagetool-uncompressed.py ../../linux/arch/arm/boot/zImage
sudo mv /boot/kernel.img /boot/kernel.img.bak
sudo cp kernel.img /boot

また、/boot/config.txtにkernel=vmlinuz-3.6.11TMC+などという行を加えた。最後の方は、必要のないことをしているかも知れないが、再起動して装置をつないだら/dev/usbtmc0ができていたので、これで大丈夫なようだ。さらに、2012/4/15に書いたようなpermission関係の設定をしたら、無事にusbtmcで通信ができるようになった。現在、usbtmcとusb-serialを使って、装置を通信テストをしているが、今のところ問題無いようである。

2015.3.13追記 SDが死んで、またUSBTMCを使わないといけなくなったので、過去のメモを参考にして、やってみた。まず、3.18.5+に変わっていた。また、bcが無いと言われたので、sudo aptitude install bcをした。調べてみると、ここに書いてあることが他の人の役にも立っているようで、メモしておいてよかったと思う。

2021.5.20追記 /proc/config.gzが無い場合には、sudo modprobe configsとするとできる。また、gitで特定のbranchをcloneするときには、sudo git clone –depth 1 –branch rpi-4.1.y https://github.com/raspberrypi/linuxなどとする。