Codama, raspberrypi-kernel 1.20190517-1での問題
2019年6月23日(日) 00:07 JST
閲覧数 38,457
Codama、raspberrypi-kernel 1.20190517-1での問題についてそろそろ書いておきます。
既に1ヶ月経ってる訳ですが。。。
Raspbianで apt-get upgrade してしまうとkernelが 1.20190517-1(4.19.42-v7+) に更新されてしまい、必要なモジュールがビルドできずセットアップできない問題。
気がついて1ヶ月経つので、自己解決している人は多いかと思います。
まだ放置している方も少ないけれどいると思われるので、少しだけ情報書いておきます。
raspberrypi-kernel 1.20190517-1になって問題になっているのは、XMOSが公開しているソフトウェア部分で、それをCodamaではそのまま流用している事で他の XMOS同様に影響を受けてしまっています。
本家のgithubにIssueは挙げている(挙がっている)ので、そのうち対策はされるとは思われます。
Can't build i2c-gpio-param #13
Add compatibility for the latest Raspian build #14
念のため、現状の回避方法を紹介しておく。
回避方法は2種類存在していて、使用したいkernel都合に合わせればよいかと。
- kernelを古いものを利用する方法
- kernelは最新に上げてi2c-gpio-overlayを利用する方法
1. kernelを古いものを利用する方法
- 2019-04-08のイメージを利用する ※codamaのセットアップ手順には記載があるが、絶対に以下はしてはいけない。
- kernelバージョン確認 (1.20190401-1までのバージョンであること)
- 絶対にkernelバージョンを上げないこと (apt-get upgradeで上がらないようにpinする)
- バージョン確認 (1.20190401-1までのバージョンであること、2つが同じバージョンであること)
- holdになっていること
- /etc/modules-load.d/modules.conf に "i2c-dev" を追記
- あとは通常手順でOK codamaのドキュメントにある $ ./setup.sh vocalfusion を実行していく。
$ sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
$ dpkg -l | grep raspberrypi-kernel ii raspberrypi-kernel 1.20190401-1 armhf Raspberry Pi bootloader
$ echo "raspberrypi-kernel hold" | sudo dpkg --set-selections $ sudo apt-get install raspberrypi-kernel-headers $ echo "raspberrypi-kernel-headers hold" | sudo dpkg --set-selections(※ apt-get install raspberrypi-kernel とかするとkernelバージョン上げれてしまうので注意、絶対に上げない)
$ dpkg -l | grep raspberrypi-kernel hi raspberrypi-kernel 1.20190401-1 armhf Raspberry Pi bootloader hi raspberrypi-kernel-headers 1.20190401-1 armhf Header files for the Raspberry Pi Linux kernel
$ dpkg --get-selections | grep raspberrypi-kernel raspberrypi-kernel hold raspberrypi-kernel-headers hold
(※ apt-get install でkernelバージョンを上げてしまわないこと、apt-get upgradeはholdされる設定を追加しただけなので、明示的にkernelを上げる事はできてしまうので注意)
2. kernelは最新に上げてi2c-gpio-overlayを利用する方法
- kernelを最新化する。
- XMOSのコードを取得します
- 以下パッチを適用 Remove_i2c-gpio-param.patch
- i2c-gpio-overlayを設定 /boot/config.txt に以下を追記
- codama_i2c, codama_dfu_i2cを使用する場合 バイナリエディタで、"/dev/i2c-1" な箇所を "/dev/i2c-3" に修正する。
$ sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernelor
$ sudo apt-get update; sudo apt-get upgradeのどちらでもかまわない。動作確認は 4.19.42-v7+ (1.20190517-1) で取っています。
$ git clone https://github.com/xmos/vocalfusion-rpi-setup/
$ cd vocalfusion-rpi-setup/ $ wget http://www.srchack.org/pub/codama/kernel_1.20190517-1/Remove_i2c-gpio-param.patch $ patch -p1 < Remove_i2c-gpio-param.patchi2c-gpio-paramは使用できない為、外しています。
dtoverlay=i2c-gpio,bus=3,i2c_gpio_sda=2,i2c_gpio_scl=3,i2c_gpio_delay_us=5,timeout-ms=100/etc/modules-load.d/modules.conf に以下を追記
i2c-dev
i2c-gpio-overlayを使用すると、I2CのBus Noに1を指定できなくなる。