Hugo
a few thoughts from inexperience
0. pick something you want to use.
1. you must have a datasheet. reading other drivers for the same
h/w can be very misleading before you're done.
2. implement as few features as you need to get the hardware
working for your purposes. it's likely the other stuff will never
be needed,
3. set up an whole plan 9 environment which can pxeboot
your target machine. if you're like me, you'll be rebooting
quite a bit.
4, this is still true
The most effective debugging tool is still careful thought,
coupled with judiciously placed print statements.
-Kernighan, 1978
- erik
i think this confuses implementing a Dev interface with writing
a device driver. for many devices, the Dev interface is already
taken care of. for example, serial, ethernet, disk devices using
sd implement an interface to devsd, ethernet.
i don't buy the thesis that talking to hardware is always hard.
talking to some hardware can be hard. for exampe, the aoe driver
doesn't talk to hardware, it talks to the ethernet drivers. yet it's
the largest driver i've written, largely because it implements its own
dev interface.
i think it's a mistake to think hardware == hard, software interfaces
== easy.
- erik
i think the Dev interface is still the right place to start, in terms of
understanding things.
for the benifit of the original question, the Dev interface (that
common set of entry points i was talking about) is the common
kernel interface that all device drivers have to go through at some
point. i think part of erik's point (which is correct) is that many of
the things people are commonly writing drivers for - disk
controllers, ethernet cards, and vga cards being probably the most
common examples - already have that interface covered, and
there's a separate interface that the hardware-specific part needs
to talk to.
> i don't buy the thesis that talking to hardware is always hard.
> talking to some hardware can be hard. for exampe, the aoe driver
> doesn't talk to hardware, it talks to the ethernet drivers. yet it's
> the largest driver i've written, largely because it implements its own
> dev interface.
but working with Dev doesn't need to be so complex; it depends, at a
minimum, on what the job you're trying to do is. dup and env
both implement at least most of their own Dev interface (as opposed
to relying on many of the default stubs), but are reasonably short and
easy to understand. devaoe's hardly a fair comparison; it's not only
the largest driver you've written, it's the largest dev*.c in the system.
> i think it's a mistake to think hardware == hard, software interfaces
> == easy.
agreed. but it's also a mistake, at least in the context of Plan 9, to
assume that device drivers inherently involve hardware. about a third
of the things in section three of the manual don't.
anthony
Hugo
2008/4/15, a...@9srv.net <a...@9srv.net>:
probablly not. the usb stuff is all accessable from userland. usbd
runs in user space as do all the clients of usb -- usb/disk usb/mouse, etc.
- erik
So, this means that I never have to deal with usb interfaces?
Can you point me some documentation about this?
Hugo
it should be in the manul pages. try
; lookman usb
- erik
Great! thanks
Hugo
Did you do it? How did it go?
--
Tom Lieber
http://AllTom.com/
2008/9/3 Tom Lieber <all...@gmail.com>:
--
Saludos
Hugo