[patch] wireless patch, take 2
david at fubar.dk
Wed May 26 14:22:05 PDT 2004
On Wed, 2004-05-26 at 16:47 -0400, Nick Penwarden wrote:
> Kristian Høgsberg wrote:
> > Why should you be able to set the ESSID through HAL? I thought the
> > primary purpose of HAL was discovery, device specific control happens
> > through direct access to the device file or similar out-of-band
> > mechanism.
> The ESSID should be able to be set through HAL because HAL is a Hardware
> Abstraction Layer. The purpose of a HAL is to allow applications to use
> a generic type of device without regard to the specifics of how the card
> operates or how the underlying operating system works. Allowing the
> ESSID to be set through HAL makes sense to me; it enables me to write an
> application to set the ESSID disregarding the target operating system.
> However (unless this has been thoroughly discussed before) perhaps the
> scope of HAL should be more clearly defined. If we allow the ESSID of a
> wireless card to be set through HAL, do we also allow the IP address of
> an ethernet card to be set through HAL (maybe it already does this, I
> honestly don't know)? What other settings?
> From the HAL 0.2 spec (emphasis mine):
> "This is a specification of a hardware abstraction layer (HAL) that
> allows applications to enumerate and *use* devices present in a typical
> desktop system, in an operating system independent way."
> "Furthermore, hooks for non-generic operations (such as retrieve
> pictures from a camera) is also provided."
> So, what is the intended scope of HAL? What should it be?
Yeah, this should probably be clarified a bit in the spec - it was
written 6 months ago, needs a lot of updateing :-).
The scope is as Kristian points out mainly device discovery, however
integration is an important thing. Integration should happen at two
1. OS level
The OS vendor can use the HAL callouts to configure the device and
the surrounding system. Or rather to assist in doing this as most
OS'es does this today. Configuring IP addresses when the link status
changes, updating the fstab when storage is added/removed would
happen here. Stuff in this category is OS vendor dependent - it
would probably look different on Red Hat, Debian, SUSE etc.
2. Application level
Desktop level apps uses HAL to discover the device. The thinking
here is a) that there already exists a lot of libraries/apps for
using devices (think Xorg, libgphoto, esd, CUPS, ...) that can be
patched to use HAL for device discovery and change notification
etc.; and b) a lot of apps can use HAL to get rid of that "Select
device file" dialog in their user interfaces
So the idea is really to build on top of existing software, make it
easier for application programmers to get things done; and finally to
provide enough infrastructure such that hardware just works!
Hope this helps,
hal mailing list
hal at freedesktop.org
More information about the Hal