This is an old question, but the problem is still real in old lenses. What you need is a protocol interface that converts the camera's aperture change command to the lens. See my article in this link where the cause of the problem is found and its solution is described in detail http://butterflybikers.cz/index.php/cz/elektronika/item/1-canon-eos-protocol-convertor-for- old-sigma lens
For those who do not want to read the full article, I will try to describe the problem shortly. The old EOS cameras (at this time we can say that very old) used different digital commands on the SPI bus that tell the lens to adjust the aperture to some value. For some reason, Canon changed that command (old was 0x12 new is 0x13). The result is that your previous third-party lens cannot set the aperture, so you get ERROR 01 because the camera cannot set the aperture on the lens. The solution is easy, add a processor to the signal path that will convert the new command to the previous one so that the lens understands it. See the link above for more technical details, HW and SW sources.