USB 2.0とUSB 3.0はコネクタは一体になっていますが信号的な物理層は別物です。
USBにはコネクタタイプがいろいろありますが、ハードロジックを作るのには必要ないので調査は割愛する。
私はすべてUSB-Cに統一しつつあります。
USBコネクタがある場合、USB-C以外の機器は購入しないというのが最近の基本スタンスです。
Tweet write: 2024/05/05/ 00:00:00
USBはつぎの転送レートがあります。
それぞれの最大転送レートはつぎのようになっています。
このうち、Low/Full/Hi SpeedがUSB 2.0に含まれ、Super SpeedがUSB 3.0です。
USB 2.0が出てきたときに、Low/Fullの上にHi Speedなんだって、USBの規格団体ってネーミングセンスが悪いなぁと思ってた。
Fullの上はなしだろうと思うのは私だけかな?
Tweet write: 2024/05/04/ 00:00:00
USBのハードウェア化を検討しているけど、USBのすべての機能を実装する必要はないと思っています。
今回の目的はUSBカメラを扱いたいだけなのでUVCに必要な機能のみ実装すればよいと思っているけど、これがどのぐらいの工数になるかまだわかっていません。
いちばん、端折れるのはlibusbの部分だと思っています。
今後はlibusb、つまりUSBの制御部分を中心に調べていこうと思います。
Tweet write: 2024/05/03/ 00:00:00
USB UVCをハードウェア化できないか検討しています。
Linuxではlibuvcがあるのでそれを元に作業を行っていくとして、ハードウェアまでどういうソフトウェアでつながっていくか調査しました。
ざっくり、描くとつぎのようなつながりになります。
Tweet write: 2024/05/02/ 00:00:00
すごくひさびさにブログを書いています。 ここ数年はSNSへ細かく投稿してたのですがじょじょにブログへ戻していこうと思っています。
さてさて、4/25にUbuntu 24.04LTSがリリースされたので早速アップグレードしました。 Ubuntu 22.04LTSからのアップグレードを行ったのですがストレートに24.04LTSにアップグレードはできません。 これは7月にリリースされる24.04.1LTSで対応されるのだろうと思います。
そこで、まずは23.10にアップグレードしてから24.04LTSへアップグレードを行います。
/etc/update-manager/release-upgrades
のPrompt=lts
をnormal
に変更して23.10に、lts
に戻して24.04LTSへアップグレードします。
特に問題なくアップグレードが行えます。
24.04LTSにすると問題が発生するかなと思ったら、XSIMでつぎのようなエラーが発生しました。
$ /opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/g++ -Wa,-W -O -fPIC -m64 -shared -o "xsim.dir/work/xsc/dpi.so" "xsim.dir/work/xsc/sample.lnx64.o" -L/opt/Xilinx/Vivado/2022.2/lib/lnx64.o -lrdi_simulator_kernel -lrdi_xsim_systemc -std=c++11 -L/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/Default -B/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: /lib/x86_64-linux-gnu/libm.so.6: unknown type [0x13] section `.relr.dyn'
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: skipping incompatible /lib/x86_64-linux-gnu/libm.so.6 when searching for /lib/x86_64-linux-gnu/libm.so.6
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: cannot find /lib/x86_64-linux-gnu/libm.so.6
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: /lib/x86_64-linux-gnu/libm.so.6: unknown type [0x13] section `.relr.dyn'
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: skipping incompatible /lib/x86_64-linux-gnu/libm.so.6 when searching for /lib/x86_64-linux-gnu/libm.so.6
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: /lib/x86_64-linux-gnu/libmvec.so.1: unknown type [0x13] section `.relr.dyn'
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: skipping incompatible /lib/x86_64-linux-gnu/libmvec.so.1 when searching for /lib/x86_64-linux-gnu/libmvec.so.1
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: cannot find /lib/x86_64-linux-gnu/libmvec.so.1
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: /lib/x86_64-linux-gnu/libmvec.so.1: unknown type [0x13] section `.relr.dyn'
/opt/Xilinx/Vivado/2022.2/lib/lnx64.o/../../tps/lnx64/gcc-6.2.0/bin/../../binutils-2.37/bin/ld: skipping incompatible /lib/x86_64-linux-gnu/libmvec.so.1 when searching for /lib/x86_64-linux-gnu/libmvec.so.1
collect2: error: ld returned 1 exit status
Vivadoはbinutilsの2.37をかならず要求するようです。 Ubuntu 24.04LTSのbinutilsは2.42です。 そこでVivadoのbinutilsを2.42に入れ替えてしまいます。
$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.bz2
$ tar xvf binutils-2.42.tar.bz2
$ cd binutils-2.42
$ ./configure --prefix=/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.42/
$ make
$ make install
$ cd /opt/Xilinx/Vivado/2022.2/tps/lnx64
$ sudo mv binutils-2.37 binutils-2.37.org
$ sudo mv binutils-2.42 binutils-2.37
または
$ cd /opt/Xilinx/Vivado/2022.2/tps/lnx64
$ sudo mv binutils-2.37 binutils-2.37.org
$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.bz2
$ tar xvf binutils-2.42.tar.bz2
$ cd binutils-2.42
$ ./configure --prefix=/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/
$ make
$ make install
これでXSIMが正常にコンパイルできシミュレーションが実行できます。
Tweet write: 2024/05/01/ 00:00:00