Мы разрабатываем встраиваемую систему, подключенную к хосту ПК с Linux через PCIe.Прямо сейчас, на этапе реализации и отладки, мне часто нужно выключать и включать устройство или пробовать разные платы.Это вызывает проблему с Linux (Ubuntu или Debian), работающим на ПК Intel.
Обычно ПК загружается, когда мне нужно вставить тестируемое устройство.Как и ожидалось, Linux не находит устройство, и приложение не может с ним общаться.Если я сделаю «lspci -v», то это не перечисляет наше устройство.Наше приложение использует libpci (программы, созданные с -lpci), чтобы получить доступ к единственному BAR, предоставляемому нашим устройством, которое затем называется «mmap» через наш модуль ядра, который выполняет page_remap.Наш обходной путь - перезагрузить компьютер, после чего устройство станет видимым и включенным.
Я ищу решение, при котором мне не нужно перезагружать компьютер так часто (десятки раз в день).Не могу ли я подключить устройство, а затем запустить какой-нибудь код, чтобы ядро Linux обнаружило и включило BAR нашего устройства?Я надеялся найти некоторую документацию по использованию библиотеки поддержки PCI и примеры, но не смог.Любые указатели приветствуются.Возможно, есть вызовы вроде pci_enable_device () или pci_find_device () и т. Д., Которые я могу выполнить в своем коде?Я не могу понять, хотяЯ могу написать модули ядра, а также пользовательский код, чтобы это работало, т.е. у меня нет никаких ограничений относительно того, есть ли у меня root-доступ или нет.
Большое спасибо за ваши советы и советы, Guraaf