Page 3 of 4

Re: BIG REQUEST: Donate for USB !

Posted: Fri Mar 26, 2010 7:14 pm
by Haos
I read that by sheer number of developers, Firefox is beating ReactOS 10x-100x:
Kinda lame to compare browser with an OS...

Re: BIG REQUEST: Donate for USB !

Posted: Fri Mar 26, 2010 10:41 pm
by Icy EyeG
Has anyone heard about
They are a non-profit organization that host bounties for software development. ATM they are targeting AROS, but according to their page, they intend to target other operating systems.
I don't know if it would be possible for ReactOS to join it, but Power2People has helped AROS to progress and get a lot of new features. So, their system works.
Well, at least it could serve of some inspiration for implementing an efficient bounty system for ReactOS ;)

Re: BIG REQUEST: Donate for USB !

Posted: Fri Mar 26, 2010 11:52 pm
because it has a charm of ... FreeDOS. I really like to play with it; but no, it is NOT my main desktop OS.
You should, at least since many years you would have access to NTFS partitions, USB and since one year open source USB an WIFI for two common kind of cards.
You can also launch some Win32 apps under HX DOS extender (in one single window).
You can even launch a lot of OSes because of Qemu.
You can even launch Colinux under DOS and use it from another machine where you have an X server.

Re: BIG REQUEST: Donate for USB !

Posted: Sat Mar 27, 2010 3:06 am
by livestrong2109
Your bounty is only going to force current developers to focus on items outside of their specialty in the hunt for the cash prize. I honestly believe it would hurt in the near term. If we where to some how bring in something like $500,000 a year then this plan might be successful. If we are only bringing in $30,000 though we will simply cannibalize our current development team and give away money while slowing development.

I do feel that the linux community should back Ros, though most sight their lack of support in NT, and an Alpha level project. We need to stabilize the os and meet our beta goals. Other wise we wont ever see any donations or real support.

Additionally you all should really attempt to learn how to code. You all do allot of complaining without trying to develop on your own. Don't give me this we don't know how junk. Learn, there are tutorials all over the web, on youtube, and dear I suggest 'legal torrents...'. Yes there aren't enough developers so, go and learn how to be one, and maybe you too will sympathize with the rest of us. Its not like we are building Firefox or Webkit. This is a full blown OS, that must be fully compatible with windows, no exceptions. It sure isn't easy.

Re: BIG REQUEST: Donate for USB !

Posted: Sat Mar 27, 2010 3:55 am
by bugboy
livestrong2109 wrote:Your bounty is only going to force current developers to focus on items outside of their specialty in the hunt for the cash prize. I honestly believe it would hurt in the near term.
What's wrong with a developer changing focus and learning something outside of his/her speciality if that area is more important/needed?
I did not know a thing about USB. But I'm learning and will continue to make progress on our drivers.

Also, I'm for Any thing that could possibly increase are developers.


Re: BIG REQUEST: Donate for USB !

Posted: Sat Mar 27, 2010 8:23 am
by Aeneas
I actually think when the amounts are low enough, this would work. Yeah, it may sound paradox... But I mean, if you have a prize of, let us say, 500 to 2000 EUR on a given thing, surely nobody would "drop everything" to gain it, but those who were doubtful could actually be more motivated; and last but not least, such a prize could also be seen as an hounour, like the Fields Medal in mathematics. It too, has some funding, but it is not the real reason you want it.

So I think if you award prizes over, let us say, 3000 EUR but still under, let us say, 15000 EUR, indeed you have to take care that no disruption occurs. But under it, nobody will let himself be distracted unduly, and over it, it is worth maybe even for small companies and would thus be helpful again.

So, the solution might be to set out a rule, for the beginning, let us say, "no project can be attributed more than 2000 EUR; donations directed to such projects if already more than EUR 2000 have been granted will instead be used for Project X", where Project X can be general maintenance, or some "community budget" that can be attributed by vote of the community's members.

As to voting, if more influence of the developers is desired, you could attribute them simply more than one vote in the scheme, e.g. two. This way, they would still have more influence than normal users, but would probably not have the power to countervene the complete community's funding wishes, but rather swing around the decision into their direction if e.g. the community's vote is a bit undecisive and voting somewhere, let us say, 40:60 and the developers prefer the project getting so far 40.

Re: BIG REQUEST: Donate for USB !

Posted: Sat Mar 27, 2010 5:18 pm
by wildschwein
Yeah, I see the problems of donation. Nobody of possible donators don't want to put pressure on the developers ! In NO WAY !

But there must be a way to collect the money and use it with sense, that some donators want to spend from there inner heart, because they want help.

I read all the pros and cons, but i think we should think and discutate more about this theme.

There are a lot of Reactos Fan who DON'T moan every week "when are you ready ? " "or, when is release xyz ready ?". And they only want to help with some money - not much, but many mickles makes a muggle....

Perhaps fireball should think about this discussion and also say something about.

For me, it would be faszinating to see some "donation bars" on web page, and to see how they raise and raise.

sorry for my bad englisch by the way....

Re: BIG REQUEST: Donate for USB !

Posted: Fri Apr 02, 2010 11:24 pm
by avatarpatch
Hey at least the guy is enthusiastic... I mean there is a TON of nay sayers here....

I check the reactOS site now ohh about a few times a year compaired to my daily following a few years ago.

I honestly think that people working on the project are happy with the progress pace of this project. Its just a shame that the rest of us including myself start to wonder if the thing will ever reach beta.

Hell if someone wants to try and get you donations so that perhaps you can get a full time developer then why the hell not.

Re: BIG REQUEST: Donate for USB !

Posted: Sat Apr 03, 2010 10:57 am
Your are driving me mad:
* The code for USB driver under Windows was already written several times. For example there is two examples in every DDK: The toaster USB composite example and the USB FX2 kit driver
* The code for the USB FX2 kit is here:
* There are many discussions how to implement USB on Windows, for example:
* If one want to implement other devices, the code abound -- for example in LInux-- and this as nothing to do with WDM and Windows.
* There are even automatic tools to do it without any knowledge like Jungo's one.

There are so many other examples, how can one still claim there is no WDM USB drivers when even Microsoft provides one?

Re: BIG REQUEST: Donate for USB !

Posted: Sat Apr 03, 2010 1:20 pm
by Haos
This is not about WDM USB Drivers availability, but the USB stack in which those drivers are being functioning.

Re: BIG REQUEST: Donate for USB !

Posted: Sat Apr 03, 2010 7:05 pm
Hi Haos and thanks for the reply.

But this is not an answer:
There are several USB stacks on Windows and if you want to provide one of them, the best is to provide at least the simplest of them in a first step, i.e. this would be much better than providing nothing because as time goes the more the gap between Reactos and Windows widened:

* In Windows 2K, the application fills a system call with an IOCTL code for the USB driver.
Usbd.sys transforms these IOCTL in URBs.
URBs are used to exchange data and commands between the hub and the device.
USB FX2 driver just do that for this little device as if it was an usbd.sys. So it's easy to transform it in usbd.sys.

* In Windows XP things are a little more complicated but basically if you have a Usbd.sys working in Win 2K mode it will be easier to transform it in Usbport.sys than if you have nothing.
In WIndows XP there is also the notion of classes.

* Windows Vista saw the new KDMF driver framework and user mode drivers (UMDF) such as Winusb driver.

* In Windows 7 things are again different in the USB stack.

Re: BIG REQUEST: Donate for USB !

Posted: Sun Apr 04, 2010 12:54 am
by bugboy

Haos is exactly right. The issue is we dont have a windows compliant usb stack.
So the list of example wdm usb drivers you provided in a previous post is only useful when we have that working usb stack.
That is more than implementing usbd or usbport. Its also implementing drivers usbehci, usbohci, usbuhci for different usb version communicating with host controllers; ushhub that sits on top of these that facilitates communication between client drivers and host controller drivers. And the only related example code for these that I could find on the INTERNET was the xen pvdrivers which is written using a framework we do not have.


Re: BIG REQUEST: Donate for USB !

Posted: Sun Apr 04, 2010 6:37 am
by vicmarcal
JPLR, if you want some info about it read this entry( translate it to English):
Here is explained is short words how does the struct work.
As you can see USB device drivers just can be loaded if all the other Drivers works.Work that is currently in process by mjmartin.

Re: BIG REQUEST: Donate for USB !

Posted: Sun Apr 04, 2010 11:21 am
by Pesho
Thanks, it was very helpful... And it's yet another example why we need an english version of that blog. :|

Re: BIG REQUEST: Donate for USB !

Posted: Sun Apr 04, 2010 11:55 am
Thanks for the replies, VicMarcal and MjMartin.

First: the picture in your blog Vic comes from Microsoft and it explains the Windows XP stack not the other stacks, please refer to MSDN for the other schematics. And your answer is not related to what I said: That it's possible to achieve enough user compatibility by implementing the Windows 2K USB stack.

Second: I would say that the main difference between Windows usbehci.sys and usbohci.sys is related to the fact that the controller is not the same. The role of those drivers is simply -- as I said-- to transform IOCTsL in URBs, if the hardware device on the motherboard is different then the driver (here usbehci.sys) is different. It was the case in the transition from USB 1 to USB 2 for PC motherboards, but per se it's not related to the USB standard. In fact USB 2.0 devices could go at USB 1.1 low speed also and ohci and uhci are examples of the same USB 1.1 standard but incompatible implementation.

Third: the role of the hub is not to manage different classes of devices. Its role consists to enumerate devices that are connected to the hub. Indeed if you have more than one device connected to a hub you must have some way to route your URBs to the one device that you are interested in and not the other. This need arise from the fact that USB didn't use a bus architecture design but instead a more complicated tree architecture design.
Each route to a specific device is known as a USB pipe.
Then how do the hub knows how many devices are connected and which they are? It simply send a call on the tree for devices and it gather answers and compares it to the last census to detect new devices and also devices which left. Devices have different USB names: The USB serial number together with the Product Identification (PID) and Vendor ID (VID) so it's possible to uniquely identify them.

Fourth: the role of the usbport.sys is very vague in your description "the usbport is responsible to perform common tasks". In fact the usbport.sys must attach the devices to the internal naming system of Windows, thus making it "visible" for userland applications. It means that an application can use the standard userland calls like "DeviceIoControl" to dialog with USB drivers with names like "\\comp01 "SanDisk Cruzer" " or even a drive letter "F:\".

Fifth: the HID topic is only remotely connected to the USB topic. HID means that an HID application will interact with an HID device which have a specific naming system. An application using a USB device doesn't have to be a HID application (think about the file explorer). It's messy because the USB standard defines also classes that are very similar in names to the HID classes but it's only remotely related.

Sixth: The power management of USB devices has nothing to do with HID. The power management is done in the device driver (I mean the portable device linked to a hub either internal or external) by calling the kernel power management calls.

Seventh: Compound devices are not related to HID (sorry it was too easy ;-) ). In Windows WDM framework there are everything needed to manage compound devices. The role of usbccgp.sys is to manage USB device that have several personalities. Each personality have a different serial number (see the third point above), so usbccgp have to create and manage several userland interfaces (see fith point above). Basically usbccgp.sys is a usbport.sys for compound devices.

Eighth: It is said in the "MjMartin section that he is trying to create a usbehci.sys. As the role of it is very simple, thanks to the architect of Windows and the USB standard body, why can't you use the code from the drivers that already do that? You receive well described messages (IOCTL) and produce well described messages (URB). As I have said it many times there are several implementation open source doing it. There is a clear and easy to understand implementation in NDISWrapper in this function: static USBD_STATUS wrap_process_nt_urb(PIRP irp)

As I am an old engineer, when I state something it's well thought, I would appreciate that before one answer he or she invests as much time in it as the few hours than I generally spent on it. You can perfectly call me an old fart, but please be precise and accurate on technical subjects.