0484名無しさん@編集中 (ワッチョイ 7602-qVat)
2023/08/13(日) 15:46:24.59ID:yjcQXPEh0原因はわかったけど正しい修正方法がわからない
一応パッチを作ったのでlibusb-1.0版recfriioでなくても動くはず
https://pastebin.com/KQRHSQUy
recfrio-master以下で
$ wget https://pastebin.com/raw/KQRHSQUy
$ patch -p1 < KQRHSQUy
でパッチを当ててビルドして
原因はkernel 6.0からinclude/linux/usbdevice_fs.hの
struct usbdevfs_iso_packet_desc iso_frame_desc[0];
が
struct usbdevfs_iso_packet_desc iso_frame_desc[];
に変更されたから
https://github.com/torvalds/linux/commit/94dfc73e7cf4a31da66b8843f0b9283ddd6b8381
これと同じ問題
https://github.com/nmeum/android-tools/issues/74
recfriioのRingBufがFlexible array memberにうまく対応できていないので、パッチでは
struct usbdevfs_urbの代わりにFlexible array memberを使っていないstruct _usbdevfs_urbを
作ってこちらを利用するよう修正している
たぶんもっと正しい対応方法があるはず
自分の技量だとわからないのでC++に詳しい人お願いします