Alert users of non-free hardware

Componente:Live System
Categoría:petición de característica
Asignado:No asignado

I just tried running Trisquel on my girlfriend's lappy and couldn't make the wireless work. After a bit of fooling around I found out that the Intel chip requires non-free firmware...

I think it would be in line with Trisquel's mission to (at request) scan users' hardware and report any it recognizes as free and non-free. This way it would be easy for anybody to find out whether their hardware is supported or not.

I guess such a system would be rather easy to do, just checking lspci output against a list of known devices.

Sáb, 07/17/2010 - 02:07

It remembers me microsoft windows's message "You may be a victim of software falsification". I think it could be interesting, but the fact that hardware doesn't work with free software is a time matter and the same hardware could work with free software in the future. It is possible that some one has not internet access and the program says him a wrong sentence.

Sáb, 07/17/2010 - 02:08

It remembers me MS Windows's message "You may be a victim of software falsification". I think it could be interesting, but the fact that hardware doesn't work with free software is a time matter and the same hardware could work with free software in the future. It is possible that some one has not internet access and the program says him a wrong sentence.

Vie, 08/13/2010 - 09:21

IIRC when the Linux-libre version of the kernel tries to load a non-free firmware/software (for hardware) it sends *DEBLOBBED* messages to the system if the hardware uses non-free software.Using dmesg helps to find out, so the system can use dmesg to know non-free issues on the computer  instead of comparing lists of hardware. Either way i'm not a programer.

Sáb, 08/14/2010 - 23:22

I think that this is an excellent idea. I have started work on a C program to do this. Currently, it redirects stdout to a temporary file, executes "lspci -m" and then un-redirects stdout again before loading the output file into the program as a space-separated-values spreadsheet. The next step is to use this table of values to populate a graphical interface, which I intend to create using GTK+ 2.0. Currently, the table of hardware is simply exported to an HTML5 file, which confirms that the current code seems to work correctly, at least. I would appreciate assistance in translating the GUI into other languages and compiling a list of Free hardware. I would suggest that hardware be categorised in three ways: Green (fully free), Amber (partially free, such as graphics cards that do not support 3D) and Red (Unsupported). Please respond with your thoughts. EDIT: I have now created the basic GTK program. It compares the output of lspci against a "database" file of known hardware devices, each with a short comment and a rating from 1 to 3 (1=unsupported, 2=partially supported and 3=fully supported). Devices not listed on the file (or which use values other than 1, 2 and 3) are rated as zero for "Unknown". It's currently hard-coded to use en-US as the language, but I intend to make it multi-lingual at some point. I can email the x86 binaries and source code to anyone who is interested - just be aware that the "database" currently consists of the hardware installed on my current desktop machine and nothing else.

Lun, 08/16/2010 - 21:23

Wow!, anyway to try this.Any help needed (non-code related) on it?. Can this be added to the wiki to keep an eye on it?Best regards

Mar, 08/17/2010 - 19:59

I've attached the most recent version (as of 17th August 2010) here (in .iso format, since .tar.gz is not allowed). Note that the included binaries are for 32-bit, x86 systems. The current implementation has a few things missing:

  • No i18n support - text strings need to be read from UTF-8 files.
  • Devices are currently matched by name only - the type and manufacturer fields should be checked too, since there are some different devices with the same name string.
  • Searching (using the keyboard) doesn't work. You can type things in, but this has no effect.
  • Columns aren't sorted when clicked on.
  • The database is still rather small...
  • In the future, The Right Thing would be to allow users to submit ratings to a central database, where the master ratings file can be updated. This would automate the process.

The database file can be loaded in as a space-separated values file. If you would like to append or modify ratings, then here is what you need to know:

  • Running the program dumps the output of lspci in the /tmp/ folder to a file called "lspciout.txt" - this is also just a space-separated values file, and can be opened in
  • The ratings "database" file is currently not very complex. To add to it, you simply need to add a new line in the format [Rating], [Comment], [Device Name], [Device Type], [Manufacturer] and save it. Ratings are from 0 to 3, with 0 being unknown, 1 being non-functional, 2 being partially working and 3 being fully compatible. I'm not sure how the program should handle multi-lingual comment fields just yet.
  • Since the temporary lspci file is not deleted when the program runs, you can simply load it up and copy/paste the necessary details into the database file. Just be careful not to create any duplicate entries - you can avoid this by sorting the device name field alphabetically.

Bear in mind that it's really just a proof-of-concept right now. That said, I hope that you all find this useful.

Mar, 08/17/2010 - 20:01

"The selected file ismyhwok_17thAug2010.iso could not be uploaded. The file is 626 KB which would exceed your disk quota of 1 MB." Hmm, looks like I'll need another way to get this to you all...

Mié, 08/18/2010 - 04:07

Send it to me, i'll upload it to my home server. (mail: ark at switnet dot org) or submitting a SF, Savannah project could be a good idea too.

Jue, 08/19/2010 - 12:50

It took me longer that i wanted but here it is:!

Jue, 08/19/2010 - 19:29

After my first attempt, I've had a few ideas about how to improve the program.

  • Instead of using lspci -m, the -n option can be used to get a device type as a number (thanks to the individual on the Trisquel IRC channel who pointed out that this was possible).
  • This can then be used to look up the manufacturer and device name strings in /usr/share/misc/pci.ids.
  • It can also be used as a primary key for retrieving ratings and comment information from tables in a database.
  • The database could use one table for ratings (in the format [pci_id],[rating]) and one table for each language (in the format [pci_id], [comment]). It might be beneficial to consider using SQLite for this.

The problem here is that a user who only cares about, for example, French-language descriptions would also be forced to download the data for English, German and Spanish comments if all languages were stored in one file.

In any case, I shall continue working on this project when I have time (I'm rather busy with my day job during the week).Also: Perhaps it would be useful to include the output of lsusb?

Sáb, 08/21/2010 - 09:37

I just recall that i had seen something like it before:


Jue, 08/26/2010 - 07:04

Here the new version released by gobusto


Sáb, 08/21/2010 - 17:21

Here is how to edit the comma-separated values files:

  • pci_en-US.csv contains comments for lspci devices in the format [id][comment]
  • usb_en-US.csv contains comments for lsusb devices in the format [id][comment]
  • pci_ratings.csv contains ratings from 0 to 3 for lspci devices in the format [id][rating]
  • usb_ratings.csv contains ratings from 0 to 3 for lsusb devices in the format [id][rating]

You can edit any of these files using or gEdit. I have actually been adding more device ratings this afternoon, mostly for USB devices, and so I might deliver a slightly larger database sometime in the near future.

Mar, 08/24/2010 - 21:08

Just a progress report to let you know that I am still working on this. I won't bother putting the new version up for download just yet - I'll wait until it is a bit more complete.

  • I've removed the About and Close buttons from the bottom the the program to save space. Their functionality is still accessible, though, because...
  • The interface now has a menu bar. Options to export the output of the program as HTML or CSV files are shown on this menu, but they don't work yet.
  • The program now displays slightly more system information, using uname (kernel, version and architecture).
  • The program now looks in the local directory if it can't find the main pci.ids or usb.ids files where they are supposed to be.
  • More devices have been added to the database.

The program has also had the code tidied up a bit and I have managed to get it to compile and run on Windows. It works correctly, except that it fails to run lspci or lsusb and so the interface is blank. When the program is more mature, I plan to try and emulate those programs using WIndows-specific code, but that's not a very high priority for now. I would also like to do this for other platforms, such as MacOSX, so that potentially interested users don't even need to use a LiveCD to check their system for compatibility.

Mié, 08/25/2010 - 12:44

I've just came across this project:

Jue, 08/26/2010 - 02:42

Here the new release of Hardware Tool (v0.3.0) by gobusto


Vie, 08/27/2010 - 04:33

I can't seem to be able to access it now.

Vie, 08/27/2010 - 19:00

The term non-free hardware is not optimal. Hardware is difficult to copy, share or make changes. It's good to know that devices are compatible with free software that makes optimum use of the device freely. Good references are Lemote devices. And companies support this initiative. Make a software like the one here will help to really arises when purchasing a computer. But I think it's more fun to go through overcoming the hardware does not publish specifications.

Sáb, 08/28/2010 - 11:54

Works now, nevermind.

Dom, 08/29/2010 - 09:21

Ask and you may be answered :)

Thanks to the h-node project

Dom, 08/29/2010 - 10:47

I have been considering the possibility of linking with h-node for a while now, which is why I added the uname data for kernel and version information.

  • Submission of data could be done using a GTK Link Button, making new h-node submissions as easy as pressing a single button.
  • Retrieval of data could use TinyXML to parse the XML file provided by h-node.

I don't think that this hardware tool should be h-node specific, though. Instead, I'd like to have a "submit" option on the menu bar that allows you to submit the information to various sites, such as h-node, the FSF hardware page, etc.

EDIT: It looks like the XML file provided by h-node doesn't contain PCI/USB IDs for hardware, which would be necessary for the data to work with the Hardware Tool. I'll ask the site admin whether this data could be added to the database.

Lun, 08/30/2010 - 08:46

Of course that making this tool design to one site wouldn't be the goal, but by making it compatible with one web site it establish the format/standard/way to interact with others sites/projects. Helping to define the format to exchange data to hardware detection and compatibility. Either way, it would be great to join the efforts from two different sides to achieve one goal.

Lun, 08/30/2010 - 08:28

Thanks for considering the project!I've added the VendorId_ProductId in the xml file of the database (the tag is named <vendorId_ProductId>).New types of hardware will be added in the next future (printers will be the next one, see this discussion ).We are trying to choose the useful entries for each type of hardware.Perhaps some standard names for the form entries could be decided, the one chosen by could be a starting point.

Mar, 08/31/2010 - 17:40


Version 0.4.0 has a few new menu options, such as Print and Submit, and
a Link Button for the h-node website, along with a few minor adjustments
to the About dialog.

Internationalisation has finally begun: The program now uses the system
language settings to determine which comments files to load, rather than
assuming that everyone lives in the USA. The actual interface is still
hard-coded in English, unfortunately - it's on my to-do list.

I've also taken the time to document how the program works. There is now
a doc/ directory that contains some useful information in ODT and PDF

As a side note, the program needs an icon. If someone can create an SVG
image for the program, I can credit them as an Artist in the About

 HTD - 0.4.0 by gobusto

Vie, 09/03/2010 - 08:52

Good! I think I will try it today. Do I have to install some libraries in order to get the program working? Do I have simply to use the bin/ismyhwok file (./ismyhwok )? I've modified a bit the xml file of the database: now the description entry has the strings <![cdata[ and ]]>. This shouldn't be a problem (it is foreseen in the xml standard)

Vie, 09/10/2010 - 16:06

I can't run the program. I've tried with both a double click on the binary file and by means of the terminal. Can you please give me some indications on how to compile the software from source?

Sáb, 09/18/2010 - 13:02

Sorry for the delay, I've been busy with other things recently. The archive should contain a Code::Blocks project file - install Code::Blocks using Synaptic and open the .cbp file with that. You can then choose the build target you want and it should compile as-is. (EDIT: Also, you need to rename the CSV files to en_US (or whatever) instead of en_GB.)

Dom, 09/26/2010 - 04:03

Here the latest release by gobusto:

Please find attached a slightly updated version of the Hardware Tool.

  • I've removed the (non-functional) printer code for now.
  • I've changed a few minor things (such as using a stock GTK "About" option on the menu bar and altering the layout of the labels/buttons at the bottom of the main window).
  • The version number now uses an Ubuntu/Code::Blocks version numbering scheme (i.e. today's date in YY.MM.DD format).

Not a huge number of changes, but it tidies things up a bit.

Now available here at the h-node project website.

Lun, 09/27/2010 - 05:36

this reply is 4 all above i`m a newbie to this Trisquel... i`m testing it in VMware so far it seems ok....but the really test will be when i`m back at home....since just learning Linux,,, mainly a win7 enterprise fan with all the bells and other things.... i wonder if a programmer one will incorprate like driver genuis or drivermax to device files. not the whole program but, more like a search tool to help loading the driver files so people that r new to Linux, Unix, and other ssh files get pissed off at the system.. and quest wat we loose more open-source people..and back to Microsoft they go.... i mean to make a speech out of this but being NEWBIE TO lINUX I GUEST THAT GIVES ME THE RIGHT 2. but i am plan to run netopia usb adaptor on my system my question is this has any1 tryed this adaptor before and any advice would be helpfull.......

CrazyKevo from Dallas,Tx.

Mié, 07/20/2011 - 17:12

Will you make a deb package please?