USB CD Support
James Peacock (318) 129 posts |
It sounds like it will be easier that ethernet was so you shouldn’t need to jump through all the hoops I did. Be interesting to see how it performs. |
Steffen Huber (91) 1953 posts |
A quick heads up before I go to bed… During the maybe most productive day in hubersn Software development history, I finally managed to get my BeagleBoard in action. With the help of the excellent Wiki article “How to get started with a BeagleBoard”, it is really easy – there were two or three minor niggles in the description which I will fix ASAP. Having a running BeagleBoard, I decided to try out CDFS and the CDFaker module. And since I didn’t have an isoimage to mount, I also decided to try to get CDVDBurn on the BeagleBoard to create one. The surprise was that everything worked. CDVDBurn created an isoimage of my complete BeagleBoard boot USB stick (and fast it was!), CDFaker mounted it, and CDFS showed the content. Getting CDFS to work was a bit fiddly because there seem to be resources missing, I had to copy them over from the IYONIX. Wow. I am not sure why CDVDBurn works (it is compiled with a specially-patched GNAT 3.03 which is in turn based on GCC 2.7.2), but I surely won’t complain. Anyway, many thanks to all the developers who made the BeagleBoard port possible. |
Trevor Johnson (329) 1645 posts |
Nice work! If anyone testing this fancies updating the Instal_CC on ARMv7 (local drive not CDFS) bug report (by trying an install direct from the CD-ROM) it may be useful. |
Rob Heaton (274) 515 posts |
Has any work been done recently on adding support for USB CD/DVD drives? |
Steffen Huber (91) 1953 posts |
Unfortunately, progress is nearly nil from my side of things. “Real world” work pressure meant that I have only a few hours per month to work on RISC OS stuff. Currently, I have a USB-capable CDVDBurn that seems to run on the BeagleBoard. It might or might not work with any USB CD/DVD/Blu-Ray drive you will throw at it. And you need a recent RISC OS image, Jeffrey did a lot of USB fixing to get it to work properly. The current version is only slightly more advanced than the one sent out to testers in 2010. The CDFaker module seems to work fine on BeagleBoard, this is at the moment the only released CD-related piece of software for the Beagle. My efforts to produce a USB-capable CDFSSoft module have stalled for reasons described above. I hope this will get better in July, but I hoped the same for the last few months. If someone is interested to help testing, mail me. Yes, I know there are still some unanswered CD related emails in my inbox. |
Rob Heaton (274) 515 posts |
Hi Steffen, I’ve just dropped you an Email. |
Dave Higton (281) 668 posts |
Steffen: I have a USB DVD writer, a USB analyser (sadly only full speed, but I also have a full speed only hub), and a BeagleBoard. This may put me in some position to help: either in logging the transactions that Windows makes with the drive, or in logging the transactions that my BeagleBoard and your experimental software make with the drive. Let me know what I can do. |
Steffen Huber (91) 1953 posts |
Hi Dave, sorry, a lot of people have offered help, but sadly I don’t even have enough free time to let me help! I promised Jeffrey a new test package which illustrates the problems I have encountered during development of CDVDBurn, mainly the error handling, but I have not yet got around to package it up properly :-( Jeffrey volunteered to try to produce a CDFSSoftUSB driver, and I’ll do my best to provide the necessary information. I hope to have a bit more free time mid-October. |
Jeffrey Lee (213) 6048 posts |
And there was me feeling bad for not doing anything these past few weeks! A while ago Steffen did send me a bunch of docs and one of Acorn’s old samples for how to write a SCSI CD driver. From the sound of things it should be pretty easy to write a SCSI/USB CD driver, but since I let myself get distracted by ArcEm I haven’t actually started work on anything yet. I think I’m now in the right kind of mood to start work on the CD driver; hopefully I’ll start reading through the docs and looking at source code sometime this week. Unfortunately things are starting to get a bit hectic at work, so I’m not sure how much time/energy I’ll have to be able to devote to it over the next few weeks. |
Dave Higton (281) 668 posts |
OK, Jeffrey, maybe I can help you instead of Steffen :-) |
Rob Heaton (274) 515 posts |
I’m also up for helping in any way I can, just let me know if I can help at all! |
Jeffrey Lee (213) 6048 posts |
The OMAP3 & 4 ROM images on the downloads page have now been rebuilt to contain the first version of the new SCSI/USB CD driver. Don’t be too surprised if it doesn’t work for you – so far it’s only been confirmed to work with one drive model. However I’ve now got my hands an IDE/SATA to USB adapter, so between myself and Steffen (and anyone else here) it shouldn’t be long before we iron out all the bugs. A few general usage notes:
Once I’ve had a change to test the module with all the IDE/SATA drives I’ve got I’ll probably upload a debug version of the module somewhere so people can help track down any issues with their drives. Plus I know that four of my IDE drives work with the ATAPI driver, so getting them to work with the SCSI driver would be a good step towards any future merge of the two drivers (or the production of a SCSISoftATAPI driver). |
Dave Higton (281) 668 posts |
Sadly it doesn’t work with my LG GE20NU11 drive. *usbdevices sees it; *devices sees 0:0.0 as “Read-only Unknown HL-DT-ST DVDRAM GE20NU11 CN01” But any click on the CD-ROM icon gives “CD-ROM drive not found”. Clearly this drive is much more than a CD-ROM drive. Anything else I can try that would help? |
Doug Webb (190) 1180 posts |
Also sadly doesn’t work with my Samsung DVD Writer model No SE-S084C/TSBS. USBInfo gives: New USB Device found: Anyway as Jeffrey says early days yet but great to see some progress. Doug |
Jeffrey Lee (213) 6048 posts |
I haven’t really fixed anything yet, but there’s now a debug version of CDFSSoftSCSI over here: http://www.phlamethrower.co.uk/misc2/cdfs.zip It’s using DADebug for debug output, so make sure you load that first otherwise you won’t get any of the debug output. After loading the new CDFSSoftSCSI you’ll also need to reinitialise the CD modules (e.g. by messing with the number of drives in Configure). If you’ve done it right, *dadprint should spit out a load of lines like the following, from where CDFSDriver is searching for drives: CDFSSoftSCSI: driver_code: Op Identify (30) on 2:1.2 CDFSSoftSCSI: driver_code: Op Identify (30) on 2:2.2 CDFSSoftSCSI: driver_code: Op Identify (30) on 2:3.2 If a SCSI device is present on any of the device IDs then the module should also spit out the inquiry response data. For CD/DVD/etc. drives the first byte of the data should be 05; this is how the module currently identifies CD drives. So if you’ve got a device connected but there’s no inquiry response data shown, or the first byte of the response data isn’t 05, then it’s possibly an issue where the device isn’t fully spec compliant. (And if you do have strange inquiry response data for a drive, then posting it here would help). It’s also possible that something else has already “claimed” the SCSI device ID that the device is attached to. E.g. looking at the CDFaker sources I can see that once it claims a device ID it won’t release it, even if a valid SCSI device starts using that ID. This means CDFSSoftSCSI might not even get called for the device. Note that *dadreset can be used to clear the debug log. For even more debugging, there’s also the ‘inquiry’ BASIC program. This loops through all the SCSI device IDs and issues inquiry comands in a similar way to CDFSDriver, and prints out the results. It tries three different buffer sizes for the response data – 36 bytes (which is what CDFSDriver currently uses), 96 bytes, and 512 bytes. So if you get response data for some sizes but not others then it suggests that it is a problem with the device not being fully spec compliant. I’ve also had a chance to do some quick testing with my IDE/SATA → USB adapter. One drive (‘98 CD-ROM from a RiscPC, model OPC-K101/4) worked OK, but the other (’04 DVD-RW, model TS-H552) causes the SCSI/USB stack to get stuck when issuing commands. The drive+adapter works OK when connected to my PC, so it must be a bug in RISC OS somewhere – so I’ll be concentrating on fixing that bug before I start tearing apart my machines to gain access to my other drives. |
Jess Hampshire (158) 865 posts |
I have quite a few CDROM drives (at least 6 IDE) If you are anywhere near (I’m in London next week) you are welcome to them. |
Doug Webb (190) 1180 posts |
Hi Jeffrey Output from my Samsung DVD writer. dadprint Doug |
Jeffrey Lee (213) 6048 posts |
Yes, that’s great, thanks. I think I can see what the problem is. |
Dave Higton (281) 668 posts |
Hi Jeffrey I’m going to condense the information, to save posting very long and repetitive logs here. Drive is an LG GE20NU11. The “inquiry” BASIC programme gives these lines for 0:0.0 to 0:0.7: Probing 0:0.0 36 byte inquiry: Error &2010E SCSI driver reservation error 96 byte inquiry: Error &2010E SCSI driver reservation error 512 byte inquiry: Error &2010E SCSI driver reservation error These lines for 0:1.0 to 0:7.7: Probing 0:1.0 36 byte inquiry: Error &20106 No hardware at this device ID 96 byte inquiry: Error &20106 No hardware at this device ID 512 byte inquiry: Error &20106 No hardware at this device ID And these lines for 1:0.0 onwards: Probing 1:0.0 36 byte inquiry: Error &20105 Invalid SCSI device ID 96 byte inquiry: Error &20105 Invalid SCSI device ID 512 byte inquiry: Error &20105 Invalid SCSI device ID The DADebug *dadprint only gave disc changed or Op_Identify lines; no response data at all, ever. Hope this helps. |
Jeffrey Lee (213) 6048 posts |
Dave – Does the drive show up in *devices at all? Because judging by what you’ve posted above, it looks like the drive isn’t being detected by SCSISoftUSB (the driver reservation errors would most likely be from SCSIFS claiming your USB stick/hard disc). If the drive isn’t showing up in *devices, can you post the *usbdevinfo and *usbconfinfo output for it, as that will help work out why SCSISoftUSB doesn’t like it. Doug – (and anyone else) – there’s now a new driver up on my site which should fix the problem that was stopping your drive from working, along with a couple of other bugfixes. I’ve also tweaked the debug output a bit so inquiry response dumps, etc. won’t take up so much space. |
Doug Webb (190) 1180 posts |
Hi Jeffrey Tried the new module but it still doesn’t read a disc with “Target Error – Illegal Request” messages. Output as per below: CDFSSoftSCSI: ****************************************************************** Doug |
Ronald May (387) 407 posts |
“Doug – (and anyone else) – there’s now a new driver up on my site” I am getting my Aopen DVDreader to show up on 0.0.0 using the BASIC inquiry program. It is an ide on a USB adapter at *USBDevices 7.1.2 Ron Iyonix 5.16 |
Jeffrey Lee (213) 6048 posts |
Ronald – What other CD drivers do you have loaded? It sounds like one of them is claiming 0:0.0 before CDFSSoftSCSI is given a look-in. Having the ATAPI driver loaded should be fine (it’s never given me any problems), but I believe CDFaker can cause problems because it will most likely claim 0:0.0 and then never release it. Maybe I should start having a think about a proper solution for dealing with device hot-plugging and reservation of device IDs by non-SCSI drivers. Doug – I’ll have another read of the docs and see if I can get a new driver out tonight. |
Dave Higton (281) 668 posts |
Well, to my amazement, after some strangenesses while booting up (and needing to reboot), tonight the driver is working and allowing me to read my old Photodesk CD! I’ve not even downloaded your new driver yet! I have no idea what persuaded things to behave differently, however I can observe that on Tuesday, as noted in my posting above, 0:0.0 was the CD/DVD drive (presumably 0:1.0 was the HDD, although I don’t have a record so that really is only a presumption), whereas tonight 0:0.0 is the HDD and 0:1.0 is the CD/DVD drive. |
Dave Higton (281) 668 posts |
More good news: it read a DVD+R too. “Dismount” and “Eject” work. To my astonishment, it has even made some sense of a DVD-RAM disc, though I don’t know how it’s formatted. |