带有MIDI输入的Beaglebone Black(通过USB) - >无法检测到正确的端口

时间:2015-01-15 15:07:50

标签: port midi beagleboneblack usbserial qtembedded

几天前我写了关于MIDI和ALSA的问题,但我已经解决了问题并遇到了新的问题。

简短的背景:

我有一个带有debian 7.5的Beaglebone Black。

我的主机是32位Ubuntu 14.10安装。

我正在使用Qt4.8.6进行手臂交叉编译。

我正在尝试创建一个使用触摸屏并从键盘读取MIDI输入的应用程序。我已经使用以下教程(http://embedded.von-kannen.net/2014/05/21/qt-4-8-6-on-beaglebone-black/)来安装Qt嵌入式,因此我可以交叉编译到我的beaglebone(教程需要一些修复,如果有人需要,我已准备好'固定'doc)以及下面的一个编译ALSA以在ARM MPU上使用:omappedia.org/wiki/ALSA_Setup

基本上,在我最终完成程序构建并部署到我的beaglebone black之后,它无法找到接收MIDI信号所需的端口。

我正在使用MidiMate II将我正在使用的MIDI设备连接到我的Beaglebone Black中的HUB上的USB端口。

我有以下代码来检查可用端口( C ++ ):

RtMidiIn  *midiin = 0;
// RtMidiIn constructor
try {
  midiin = new RtMidiIn();
}
catch ( RtMidiError &error ) {
  error.printMessage();
  exit( EXIT_FAILURE );
}
// Check inputs.
unsigned int nPorts = midiin->getPortCount();
qDebug() << "\nThere are " << nPorts << " MIDI input sources available.\n";
std::string portName;
for ( unsigned int i=0; i<nPorts; i++ ) {
  try {
    portName = midiin->getPortName(i);
  }
  catch ( RtMidiError &error ) {
    error.printMessage();
    delete midiin
  }
  std::cout << "  Input Port #" << i+1 << ": " << portName << '\n';
}

我可以确认MidiMate与Ubuntu正常运行。在桌面上运行应用程序接收值就好了。我不确定BeagleBone的Debian功能。

上面的代码告诉我在Beaglebone上运行时没有可用的输入源,而不是在Ubuntu和Windows桌面上运行时有2个可用的输入源。

我的问题: 如何让Beaglebone检测到读取实时MIDI输入所需的端口?


编辑:

将midimate插入beaglebone会在/ dev / list中生成 midi1 条目。 但是我不知道该怎么做以及怎么做。

我使用的RtMidi函数只能接受无符号整数作为输入,所以我不能提供字符串“midi1”作为参数:(

1 个答案:

答案 0 :(得分:0)

您的发行版在启动时不会加载snd-seqsnd-seq-midi内核模块,也没有按要求加载它们的机制。

将它们添加到/etc/modules文件。