Insanity? Or just clever shit?
Insanity?
Published by
hughsie
Richard has over 10 years of experience developing open source software. He is the maintainer of GNOME Software, PackageKit, GNOME Packagekit, GNOME Power Manager, GNOME Color Manager, colord, and UPower and also contributes to many other projects and opensource standards. Richard has three main areas of interest on the free desktop, color management, package management, and power management. Richard graduated a few years ago from the University of Surrey with a Masters in Electronics Engineering. He now works for Red Hat in the desktop group, and also manages a company selling open source calibration equipment. Richard's outside interests include taking photos and eating good food. View all posts by hughsie
teh ninja dude.
Ha! I was actually thinking of implementing something *very* similar to this, and was actually going to send you a mail about it soon. Maybe I might just do that later today.. :)
Very cool shit, provided it actually works! hehe
This is great, but shouldn’t be part of packagekit. This should be part of a tool that *uses* packagekit.
Remember the unix design philosophy of designing a small tool to do a job and do it well. Packagekit (so far) is a GREAT tool and something the open source desktop needs. Please don’t featurecreep it into nothingness.
What is wrong with Ubuntu’s jockey tool? It does exactly this same thing. http://packages.ubuntu.com/hardy/jockey-gtk
Screenshot:
http://www.ubuntu.com/files/u1/710_r-m-newdrivers.png
is it only the gui or does it already work together with /var/log/syslog hal or something?
well but for it to work, firmwares would have to be packaged in repos.
Careful there not to end up with a chicken&egg problem: “Firmware needed for networking to work. Click here to download it.” Oops… ;-)
It works with udev, so that when a firmware file is requested and not found, it is logged to a file. gpk-update-icon then sees this file, and prompts the user for firmware.
Obvs. only a good idea if said firmware actually exists.
Where exactly is udev logging this that it’s visible? /dev?
“Insanity? Or just clever shit?”
How about “Necessary evil”…
And I know I’m demented but I couldn’t help to laugh out loud at the comparison on the top of the page…
Bill,
Sure, we will only display that notification if we can get the firmware from the repos. For the udev logging I’ve used a custom udev rule and script to check for the existance of firmware when requested, and if not, log it to a special file in /var/run/PackageKit. It seems to work really well.
I am curious. What are the use cases you have envisioned for this? We install most of the things like wireless firmware by default because we can’t go grab the firmware from the repository if the repository is unreachable and in a controlled environment, users might not permission to install anything. Even if they do have permission, they might have other limitations like bandwidth.
Are you considering things like wireless firmware that are freely downloadable but not freely redistributable? Making those sort of things easier might be a real win atleast in the short term. The longer term win is of course getting it redistributable and with source.
One nit….
You may want to change the message to “Firmware Required” instead of “Additional Firmware Required”. The latter seems to imply that you have some, but you needs some more.
Rahul, we’ll only download firmware available in the repos, i.e. for fedora, it needs to be in rawhide before it’s suggested. I’m not going to whore the long term firmware opensourcing effort, it’s not on my agenda at all.
Im confused.
Are the options
1) “install firmaware” or “install firmware but dont tell me next time you have to install firmware” OR
2) “install firmaware” or “dont install firmware”
If #1 then why show anything at all? Both options give you firmware that is required to make something work.
If #2 then the “dont show next time” button does not give a clear indication if the firmware will be installed or not.
Is this needed ? Definitly yes !
But not sure that it should be the job of packagekit.
Where is the “Do one thing, do it well.” unix philosophy nowadays ?
Try explaining to my wife what “firmware” is. If she gets it, it’s ready to show to ordinary users. Good luck with that :)
Calum, got any better wording? I’m useless at this stuff.
If I were your fiancé, I’d not put up with comparisons like that ^_^
…there are some other adjectives that could come into play…
Check out Jockey, which is the Ubuntu restricted drivers manager rewritten to be more distro-friendly. https://code.launchpad.net/jockey
In what cases would I not want to install the firmware?
What jamesh said: while it’s definitely cool, the dialog seems to boil down to a slightly odd choice.
Mystic Shit Required
I have to do something to make things actually work.
[Make things work] [Leave them broken]
Ditto on what Corey Burger said. Jockey does a more thorough job explaining what firmware is, why it may be necessary, and that it isn’t open source. That may solve Calum’s problem too, plus it abstracts this part of the program to another project dedicated to solving those kinda problems.
If your program is so sure that the firmware is required, the display of and an accidental click on “do not show this notification again” will make your users go nuts while they try to find out how to install the firmware in a different way.
Since this firmware has to be installed anyway, why don’t you add it in the regular updates, perhaps with something to make it obvious that the package(s) contains firmware?
You should be careful with the notifications, they can be annoying…
It’s ok, but lacks “stop bugging me and just install everything automatically”. That’s what all the users want every single and eachtime anyways.
From the message alone, it’s not obvious what is the “hardware” you are referring to. It should be more precise, like “video card” or whatnot or notlob.
daniels got the semantics exactly right, but failed to capture the essence of the user experience for the 99% of people who have never heard the word “firmware”:
– Chris
Complete insanity if you do not convey to the user what exact piece of hardware (as in function, manufacturer & model) needs firmware.
The user needs to know what will stay broken if he chooses no and why this week’s popup is different from the last one (new hardware? broken firmware installer?)
+1
What’s ‘firmware’?
Why are you asking me whether I should install it?
What are the possible consequences of each decision?
>What’s ‘firmware’?
I know, I suck at words. Got any better ideas? :-)
Couldn’t this notification be integrated into the notification about system updates, somehow? A “Updates is available” with an additional “update contains packages to make z work (better). (firmware)”. One should perhaps have the choice of removing the firmware update, but I can’t really think of any situation where the user should opt out on firmware, and thus I don’t really see the point in it being a separate notification.
I love the idea, and everything that happens automatically is great. Keep up the good work!
So there has been some “don’t call firmware firmware” comments, but no better suggestions.
Some could be confused about the “install firmware”, and whether this means it is on the computer but needs to be installed, or whether it needs to be downloaded, installed, and set to automatically load on device insertion.
My attempt =================== tell em they need a driver…try to find it.
The following accessory device has been attached to this computer:
Remote Controlled Toaster by NTastia, model RCT-H7800.
The basic driver software required to enable this device to operate is not currently installed on this computer. An attempt to locate the basic driver within the $distribution software repositories has been started.
[ Cancel Search ] [ Hide ] [ Don’t show this information again ] [ Just do it ]
\============ / 84% complete
=============================
search succeeds, new popup:
============================= firmware found, does user want it ?
A basic driver for the following accessory device has been located in the $distribution software repository:
Remote Controlled Toaster by NTastia, model RCT-H7800.
Download and install the basic driver [ ntastia-rct-firmware.fw ] ?
[ Cancel ] [Download only] [ Download and Install ]
\========= / 56% complete
=============================
OK, the package containing that fw has been installed, new popup:
=============================
A basic driver for the following accessory device has been installed:
Remote Controlled Toaster by NTastia, model RCT-H7800.
The basic driver will be loaded if you remove and then re-attach the device to this computer.
or
The basic driver will be loaded next time you reboot your computer{, if that would be required}.
=============================
alternately, the fw isn’t packaged in the distro repo, tell them what they need:
=============================
A basic driver for the following accessory device could not be located in the $distribution software repository:
Remote Controlled Toaster by NTastia, model RCT-H7800.
Please check the device manufacturer’s manual, and or internet web site [link to http://www.ntastia.com] , to see if they provide an appropriate basic driver or firmware for the linux operating system.
The missing basic driver file is called ‘ntastia-rct-firmware.fw ‘, and will be autoloaded if it is placed in the following folder: /lib/firmware/. This would need to be performed as the administrative user.
——–
notes:
– the popups would need to stay up until user action {not autohide}.
– “been attached” changes to “installed in” if that can be reasonably assumed.
– enable was “operate” in my first iteration.
– “activated” has connotations of ms software license activation, perhaps run, booted, started, loaded ?
– if no internet, still get a dialog similar to the first so that the user knows that at least the device X has been detected.
– ask the user if they have a driver disk …. to insert the fw from.
– sometimes rebranding of identical devices could be confusing eg insert a fred 101 DVB tuner and get notified about the base product instead george gh-456 DVB tuner.
– if the user sticks the appropriate driver in manually, this dialogs should not be show at all.
it seems like a bit of a strange option – who is going to say “actually no I don’t want my hardware to work”?
you’d need to say “btw you’re sacrificing freedom and babies if you click install” for them to care and that’s getting into a very long winded and tedious notification bubble ;)
err, not that you actually are sacrificing freedom, you’re just helping vendors who are too lazy to put some firmware flash on their hardware.
don’t get me wrong, sure it would be nice if someone could hack on the firmware for my wireless card, but it’s nowhere near as important as being able to hack on the software that uses the wireless card.
Having said that I would love to be able to write my own CPU microcode. I just don’t see the argument about firmware blobs being bad. It’s especially unhelpful in a distro whose job it is to make hardware work (yes you guessed it, I’m an Ubuntu user ;)
Instead of firmware, why not call it a package: A package needs to be installed for detected Logitech Quick Cam. [Install Now] [Install Later]
If install later, just add it to the list of package updates whenever that next happens
(maybe they want to dowload it later because they just plugged in their shiny new webcam to try it out, but have no network to pull updates from until the laptop gets home, etc.)