English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
All categories

How complex is it to create a driver?

I was just wondering how complex it was to create a driver for a networking card. The reason being is that there is no Linux counterpart for the driver, and I am having somewhat of wicked issues with this WiFi card under NDISwrapper.

I would assume that each manufacture has somewhat their own version of the assembly language that they used. Personally what I am looking for here,

1) Programming Skill/Algorithm design...how hard, what skill
2) Will I need to know more than basic network termlogy from a college based course (in which where the OSI model was thoroughly discussed)
3)Anything else I should know, such as where to start.

2006-07-27 06:06:19 · 2 answers · asked by D 4 in Computers & Internet Programming & Design

Ok, for the people that don't understand. I'm not looking for an answer, saying learn programming. I already know C++ well, VB.net well, IBM PC370 well, and some Java. Read the question again.

2006-07-27 06:18:31 · update #1

2 answers

Well, let's go through the numbered items first:
1) C, x86 Assembler (Intel and AT&T syntax variants), C++,
modular procedural program design and have all white papers
for the device's hardware available. Note: Sometimes mfg.
cooperate and sometimes they don't, so lots of luck on the
white papers.

2) You shouldn't need to worry about those levels at all. The
purpose of the driver is simply to provide a standard stub for
the OS (will already be available as pre-written code, C I think)
that attaches to the hardware's routines (the part you need to
write!) at a low-level.

3) I'd search the Linux resources on the Internet thoroughly for a
driver and/or information on installing the card before I started
to learn this to get it to work, chances are someone is on it
already and at the least you could join forces with them and
learn as they write and perhaps offer opinions, support and
testing.

Footnotes: No, you usually don't need to know a "different assembler for each card manufacturer", since the card and its firmware are already designed to communicate with the bus in the PC. You do need to know assembler for the PC so you can
directly address and move information onto and off of that bus/address pair to a memory location reserved for the driver to use as a buffer. Then this information undergoes any formatting, addition of control codes, deletion of control codes and is passed to the OS via the stub code. The reverse must also hold true as far as data flow from the OS. In this way, the OS can communicate with the hardware at its lowest level efficiently. I hope that this helps you out, good luck.

2006-07-27 06:35:33 · answer #1 · answered by Anonymous · 0 0

learn programming coding

2006-07-27 06:16:36 · answer #2 · answered by Anonymous · 0 0

fedest.com, questions and answers