LoginSignup
3
2

More than 5 years have passed since last update.

Ubuntu+ZynqでUSB-HOSTが機能しないときの解決方法

Posted at

環境

トラブルが起きた環境は以下の通り。
- Petalinux v2018.2 (v2015.4でも同様にエラー)
- Zybo Z7-20

ZYBO-Z7を用いたLチカ(Ubuntu16.04編)を参考にZybo上でUbuntuをSDブートで起動、Lチカの動作まで確認した。

最終的な目標はOpenCRボードをZynqに接続してTurtlebot3を動作させることだが、OpenCRを認識しなかった。試しにUSBメモリを接続したところ、給電すらされていないことがわかった。
sudo fdisk -l を実行してもUSBメモリを認識しない。

対処方法

Zynq Linux USB Device Driver
Zybo+PetalinuxでUVCカメラを使う
これらを参考にデバイスツリーを編集する。ユーザが定義するデバイスツリーはプロジェクト名/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dstiにある。

system-user.dsti
/include/ "system-conf.dtsi"

/{
    usb_phy0: usb_phy@0 {
        compatible = "ulpi-phy";
        #phy-cells = <0>;
        reg = <0xe0002000 0x1000>;
        view-port = <0x0170>;
        drv-vbus;
    };
};

&usb0 {
    compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2";
    status = "okay";
    clocks = <0x1 0x1c>;
    dr_mode = "host";
    interrupt-parent = <0x4>;
    interrupts = <0x0 0x15 0x4>;
    reg = <0xe0002000 0x1000>;
    usb-phy = <&usb_phy0>;
};

編集しおわったらpetalinux-buildコマンドでビルドし直せばUSBに給電・USBメモリは認識される。
USBカメラなどを使うにはカーネルの設定が更に必要らしい。

Kernel Configurationの表示方法

Zynq Linux USB Device DriverにはKernel Configurationという項目がある。
このメニューは
petalinux-config -c kernelで表示させることができる。(今回はデフォルトでOK)

解決までに参照したリンク

このあたりの問題は解決されているらしい? OTGを切れと書いてあるけど別に切らなくてもデバイスツリーを編集すれば解決した。
Zynq 7000 USB with mainline kernel is broken
Petalinux 2015.2.1 usb not working

次はOpenCRとUSBカメラを動作させる。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2