在Windows中将Ubuntu设备检测为MIDI键盘/接口

在Windows中将Ubuntu设备检测为MIDI键盘/接口,windows,driver,embedded-linux,midi,odroid,Windows,Driver,Embedded Linux,Midi,Odroid,我正在用Ubuntu15.04Lite在我的ODROIDXU3上创建一个小的实验应用程序。 设备(Odroid)通过一个键盘接收midi作为输入,该键盘通过一个可用的USB主机端口连接(此部分正常),并向计算机发送一些其他midi指令(也通过USB,但USB OTG),以创建和声(此部分不正常) 用例是: 您可以在midi键盘上播放一些音符,odroid接收到它们,嵌入式应用程序代码分析它们,找到新的音符(midi指令)并将它们发送到Windows PC,您可以将它们根目录到您选择的VST 我

我正在用Ubuntu15.04Lite在我的ODROIDXU3上创建一个小的实验应用程序。

设备(Odroid)通过一个键盘接收midi作为输入,该键盘通过一个可用的USB主机端口连接(此部分正常),并向计算机发送一些其他midi指令(也通过USB,但USB OTG),以创建和声(此部分不正常)

用例是: 您可以在midi键盘上播放一些音符,odroid接收到它们,嵌入式应用程序代码分析它们,找到新的音符(midi指令)并将它们发送到Windows PC,您可以将它们根目录到您选择的VST

我的问题是,为了实现这一点,我需要Odroid设备在Windows中显示为MIDI键盘,人们可以在数字音频工作站中添加该设备

市面上出售的大多数midi控制器都有自己的驱动程序,但有些是与类兼容的设备

如何使Windows检测到这个Odroid板和midi键盘?如果我需要为此编写特定的驱动程序,从哪里开始

编辑:找到g_midi驱动程序,但未找到usb_f_midi

odroid@odroid:/lib/modules/3.10.72-23/kernel/drivers/usb/gadget$ ls -al
total 628   
drwxr-xr-x 2 root root  4096 May 23 21:28 .   
drwxr-xr-x 8 root root  4096 May 23 21:27 ..  
-rw-r--r-- 1 root root 37544 May 23 21:11 g_acm_ms.ko  
-rw-r--r-- 1 root root 17468 May 23 21:11 g_audio.ko  
-rw-r--r-- 1 root root 24164 May 23 21:11 g_cdc.ko  
-rw-r--r-- 1 root root 44488 May 23 21:11 g_ether.ko  
-rw-r--r-- 1 root root 63552 May 23 21:11 g_ffs.ko  
-rw-r--r-- 1 root root 16672 May 23 21:11 g_hid.ko  
-rw-r--r-- 1 root root 37084 May 23 21:11 g_mass_storage.ko  
-rw-r--r-- 1 root root 17468 May 23 21:11 g_midi.ko  
-rw-r--r-- 1 root root 69752 May 23 21:11 g_multi.ko  
-rw-r--r-- 1 root root 28164 May 23 21:11 g_ncm.ko  
-rw-r--r-- 1 root root 35396 May 23 21:11 g_nokia.ko  
-rw-r--r-- 1 root root 20944 May 23 21:11 g_printer.ko  
-rw-r--r-- 1 root root  9016 May 23 21:11 g_serial.ko  
-rw-r--r-- 1 root root 26628 May 23 21:11 g_webcam.ko  
-rw-r--r-- 1 root root 11408 May 23 21:11 g_zero.ko  
-rw-r--r-- 1 root root 25380 May 23 21:11 gadgetfs.ko  
-rw-r--r-- 1 root root 45940 May 23 21:11 libcomposite.ko  
-rw-r--r-- 1 root root 15244 May 23 21:11 u_serial.ko  
-rw-r--r-- 1 root root  9972 May 23 21:11 usb_f_acm.ko  
-rw-r--r-- 1 root root  8060 May 23 21:11 usb_f_obex.ko  
-rw-r--r-- 1 root root  6928 May 23 21:11 usb_f_serial.ko  
-rw-r--r-- 1 root root 14584 May 23 21:11 usb_f_ss_lb.ko  
第二次编辑:感谢CL 尝试g_midi驱动程序

odroid@odroid:/proc/asound$ cat cards
0 [odroidaudio ]: odroid-audio - odroid-audio odroid-audio 
1 [MPK225 ]: USB-Audio - MPK225 Akai MPK225 at usb-12110000.usb-1.2, full speed 
2 [K61 ]: USB-Audio - Keystation 61 M-Audio Keystation 61 at usb-12110000.usb-1.3, full speed.

$ modprobe g_midi in_ports=1 out_ports=1
错误:

modprobe : ERROR : could not insert 'g_midi' : Device Or Ressource busy.
其他端口(3、4等)出现相同错误

卸下Midi键盘时:

odroid@odroid:/proc/asound$ cat cards
0 [odroidaudio ]: odroid-audio - odroid-audio odroid-audio 

$ modprobe g_midi in_ports=1 out_ports=1
同样的错误:

modprobe : ERROR : could not insert 'g_midi' : Device Or Ressource busy.

只需加载
g_midi
模块:

$ modprobe g_midi in_ports=1 out_ports=1
(1和1是默认值。)

这将创建一个与类兼容的USB MIDI接口,与普通声卡一样在Odroid上可见:

$ cat /proc/asound/cards
 0 [whatever       ]: ...
 1 [gmidi          ]: MIDI Gadget - g_midi
                      MIDI Gadget

。。。并且可以通过普通的Linux MIDI API访问。

Linux有一个USB MIDI的小工具驱动程序(
USB\u f\u MIDI.ko
),但我不知道它是否在Ubuntu中启用。谢谢你的回答。它和以前的版本一样吗?
g_midi
。但是您首先需要一个实际启用了它的内核。谢谢CL。我将首先尝试使用我的实际内核,看看它是否已启用。使用找到的一些驱动程序编辑了文章。编辑了我的第一篇文章。设备或资源忙错误我不知道XU3的OTG控制器的限制。是否
g_serial
g_ether
工作?modprobe g_serial不返回任何错误,而modprobe g_ether返回:无此类设备。我不明白的是如何定位OTG端口(Odroid作为从端口)而不是USB主机端口(用作键盘的主机输入,Odroid作为主端口)。在我键入modprobe g_serial并通过USB/USB OTG将Windows PC连接到Odroid后,Windows似乎正在尝试安装驱动程序。Gadget Serial v2.4可以在Windows中的未知设备中找到。在设备的属性上,它的写入端口为#0003 Hub#0001(在Windows上)