/etc/udev/rules.d の下に udev ルールを追加することで PCI デバイスを削除できます:
ACTION=="add", KERNEL=="0000:00:03.0", SUBSYSTEM=="pci", RUN+="/bin/sh -c 'echo 1 > /sys/bus/pci/devices/0000:00:03.0/remove'"
0000:00:03.0
を置き換えます 削除したい PCI デバイスのアドレス
答えのどれも私の同様の問題を解決しませんでしたが、それらは私を解決への道に導きました!
私の syslog エラー:
[ 334.940158] hub 1-0:1.0: unable to enumerate USB device on port 7
これは、私が持っていない Bluetooth オプション用の内部 USB ハブ ポートです。
pci デバイスへのバインドを解除すると、ハブが別のハブ (私の場合は 5) としてポップアップし、syslog がさらにフラッディングされます。
たまたま /sys/bus/usb/drivers/hub
の下に unbind 構造があることに気付きました .上記の例を使用して、rc.local に以下を追加しました:
echo "1-0:1.0" > /sys/bus/usb/drivers/hub/unbind
結果は syslog サイレンスです!ここで、kshurig の電源管理用のスクリプトの例を追加します。これで、私は金色になるはずです。
最近、複数の USB デバイスを使用して xen ボックスを構成しているときに、この問題に遭遇しました。 1 つを Dom-0 で使用し、もう 1 つを VM で使用したかったので、デバイスを xen-pciback で使用できるようにする必要がありました。ただし、usb ドライバーはカーネルに組み込まれていたため、ドライバーを単にブラックリストに登録することはできませんでした。私の解決策は、起動プロセスの非常に早い段階で特定の pci ポートのバインドを解除するカスタム initramfs スクリプトを作成することでした。
これは Ubuntu 2016.04 ですが、以前のバージョンでも動作するはずです。
関連する 3 つのファイルがあります。特定のユースケースに合わせて名前を付けましたが、ymmv:
/etc/unbindpci
という名前の最初のファイル pci デバイス番号とドライバーの単純な csv であるファイル (必要に応じてここで構成):
0000:08:00.0,xhci_hcd
0000:03:00.0,radeon
2 番目のファイル /etc/initramfs-tools/hooks/xenfiles
、上記の構成を initramfs にコピーします。
#! /bin/bash
if [ -f /etc/unbindpci ]; then
cp -pP /etc/unbindpci $DESTDIR/etc/unbindpci
fi
3 番目のファイルは、起動時に機能するもので、 /etc/initramfs-tools/scripts/init-top/unbind-early-pci
に配置しました :
#!/bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
# This only executes if in a xen Dom-0.
# Edit if that's not your use case!
if [ -f /sys/hypervisor/uuid -a -f /etc/unbindpci ]; then
if [ $(cat /sys/hypervisor/uuid) = "00000000-0000-0000-0000-000000000000" ]; then
echo "Unbinding pci ports..."
IFS=,
while read addr driver; do
if [ -f /sys/bus/pci/drivers/$driver/unbind ]; then
echo "Unbinding $addr, device $driver"
echo $addr > /sys/bus/pci/drivers/$driver/unbind
fi
done < /etc/unbindpci
fi
fi
最後に、update-initramfs -k all -u
を実行します そして再起動してください。
構成ファイルにコメントのサポートを含めることができます。ここで行うクリーンアップはたくさんありますが、私にとってはうまくいきます。