follow me

Codama, raspberrypi-kernel 1.20190517-1での問題


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を古いものを利用する方法
  1. 2019-04-08のイメージを利用する
  2. ※codamaのセットアップ手順には記載があるが、絶対に以下はしてはいけない。
    $ sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
  3. kernelバージョン確認 (1.20190401-1までのバージョンであること)
  4. $ dpkg -l | grep raspberrypi-kernel
    ii  raspberrypi-kernel              1.20190401-1                 armhf        Raspberry Pi bootloader
    
  5. 絶対にkernelバージョンを上げないこと (apt-get upgradeで上がらないようにpinする)
  6. $ 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バージョン上げれてしまうので注意、絶対に上げない)
  7. バージョン確認 (1.20190401-1までのバージョンであること、2つが同じバージョンであること)
  8. $ 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
    
  9. holdになっていること
  10. $ dpkg --get-selections | grep raspberrypi-kernel
    raspberrypi-kernel                              hold
    raspberrypi-kernel-headers                      hold
    
  11. /etc/modules-load.d/modules.conf に "i2c-dev" を追記

  12. あとは通常手順でOK
  13. codamaのドキュメントにある $ ./setup.sh vocalfusion を実行していく。
    (※ apt-get install でkernelバージョンを上げてしまわないこと、apt-get upgradeはholdされる設定を追加しただけなので、明示的にkernelを上げる事はできてしまうので注意)

2. kernelは最新に上げてi2c-gpio-overlayを利用する方法
  1. kernelを最新化する。
  2. $ sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
    or
    $ sudo apt-get update; sudo apt-get upgrade
    のどちらでもかまわない。動作確認は 4.19.42-v7+ (1.20190517-1) で取っています。
  3. XMOSのコードを取得します
  4. $ git clone https://github.com/xmos/vocalfusion-rpi-setup/
    
  5. 以下パッチを適用
  6. Remove_i2c-gpio-param.patch
    $ 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.patch
    
    i2c-gpio-paramは使用できない為、外しています。
  7. i2c-gpio-overlayを設定
  8. /boot/config.txt に以下を追記
    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
    
  9. codama_i2c, codama_dfu_i2cを使用する場合
  10. バイナリエディタで、"/dev/i2c-1" な箇所を "/dev/i2c-3" に修正する。
    i2c-gpio-overlayを使用すると、I2CのBus Noに1を指定できなくなる。
Codama, raspberrypi-kernel 1.20190517-1での問題 | 0 件のコメント | アカウント登録
サイト管理者はコメントに関する責任を負いません。