Я могу сообщить по крайней мере несколько деталей, хотя и не могу полностью объяснить, что происходит.
Как описано, например, здесь , ЦП связывается с контроллером шины PCIe с помощью пакетов уровня транзакций(TLP ). Аппаратное обеспечение определяет, когда есть неисправные,и ядро Linux сообщает об этом в виде сообщений.
Параметр ядра pci=nommconf
отключает память -Mapped PCI Configuration Space, которая доступна в Linux, начиная с ядра 2.6. Грубо говоря, все устройства PCI имеют область, описывающую это устройство (, которую вы видите с lspci -vv
), и первоначальный метод доступа к этой области включает в себя использование портов ввода-вывода, в то время как PCIe позволяет сопоставлять это пространство с памятью. для более простого доступа.
Это означает, что в данном конкретном случае что-то идет не так, когда контроллер PCIe использует этот метод для доступа к пространству конфигурации конкретного устройства. Это может быть аппаратная ошибка в устройстве, в корневом контроллере PCIe на материнской плате, в конкретном взаимодействии этих двух или в чем-то еще.
При использовании pci=nommconf
доступ к конфигурационному пространству всех устройств будет осуществляться первоначальным способом, и изменение методов доступа решает эту проблему. Так что, если хотите, он и разрешает, и подавляет его.
Предполагая, что вы разместили свой скрипт в том виде, в каком он есть на самом деле, эта команда:
`cd ./$dirname1${iloop}`
использует подстановку процесса. Галочки
`
в начале и конце - это старый синтаксис для того, что при новой типизации выглядит как $ ()
. Хотя копирование файлов имеет длительные последствия как внутри, так и без замены, если вы cd
в процессе подстановки или подоболочки, смена каталога действительна только в этом контексте. После того, как вы вернетесь в базовую оболочку, вы вернетесь туда, где были раньше.
Сравните эти два из командной строки:
$(cd /bin) && pwd
и
cd /bin && pwd