Browse Source

README.ASIC: Document how to use Monarch in a PCI-Express arrangement on Linux

Luke Dashjr 12 years ago
parent
commit
59df08bc25
1 changed files with 34 additions and 0 deletions
  1. 34 0
      README.ASIC

+ 34 - 0
README.ASIC

@@ -195,6 +195,40 @@ make AR=arm-angstrom-linux-gnueabi-ar
 
 
 BFGMiner has also been incorporated into an unofficial firmware by uski01 called Bertmod this can be found on the kncminer forum.
 BFGMiner has also been incorporated into an unofficial firmware by uski01 called Bertmod this can be found on the kncminer forum.
 
 
+
+MONARCH
+-------
+
+The Butterfly Labs Monarch devices can be used as either USB devices, or in a
+PCI-Express slot. As USB devices, they are essentially plug-and-play. If you
+wish to use them via PCI-Express, however, you must first load the proper
+driver. BFGMiner can work with either Linux uio (2.6.23+, requires root access)
+or Linux vfio (3.6+, requires IOMMU support).
+
+To enable uio on your cards, you may need to do:
+    sudo modprobe uio_pci_generic
+    echo 1cf9 0001 | sudo tee /sys/bus/pci/drivers/uio_pci_generic/new_id
+
+Enabling vfio is similar, but more complicated, but allows you to run BFGMiner
+without root privileges. First, load the kernel module and tell it to accept the
+Monarch:
+    sudo modprobe vfio-pci
+    echo 1cf9 0001 | sudo tee /sys/bus/pci/drivers/vfio-pci/new_id
+Next, identify what the device ids are for your card(s):
+    lspci -D | grep 1cf9  # the first number of each line is the device id
+From that, you can identify its IOMMU group, and list all devices sharing that
+group:
+    readlink /sys/bus/pci/devices/<device_id>/iommu_group
+    ls /sys/kernel/iommu_groups/<iommu_group>/devices/
+All of the devices listed (other than the Monarch), if any, will need to be
+disabled and unbound! To do that, use:
+    echo <device_id> | sudo tee /sys/bus/pci/devices/<device_id>/driver/unbind
+If you want to run BFGMiner as a normal user:
+    chown <username> /dev/vfio/<iommu_group>
+Depending on your system, you may also need to do:
+    echo 1 | sudo tee /sys/module/vfio_iommu_type1/parameters/allow_unsafe_interrupts
+
+
 ---
 ---
 
 
 This code is provided entirely free of charge by the programmer in his spare
 This code is provided entirely free of charge by the programmer in his spare