Projetcs/MandrivaHardwareCompatibilityList

From Mandriva Community Wiki

Jump to: navigation, search
Establishing a hardware compatibility list supplied by the community, users and corporates on many Linux Operating Systems

The hardware Compatibility List provides the full details of a system whether it works or not. The aim is to assist users and corporates on a hardware platform with any Linux OS. Beyond HCL, a full automated system is running to facilitate gathering hardware information from a machine. Mandriva is known as a user friendly Linux OS and its tool HCL is also built to make easier user's life .

Contents


[edit] Choosing technology

After studying different hardware reporting tools in Open Source, it has been deciding to collaborate with Frédéric LEPIED who is the foundator of hardware4linux (www.hardware4linux.info). It is a strategic choice, because his tool collecting all hardware information on many Linux platforms. The main aim of HCL project is to provide compatibility support on all Linux OS.

[edit] How does it work ?

The tool is designed to work at the very beginning step, that is to stay, in booting area. It has to be automatic in terms of collection information. The user has to say, yes I want to upload the settings or not. A report file, called report.tar.gz is sent to Mandriva's intern server. The file is processed and all hardware information is injected into the hcl database. Through a front end (hcl.mandriva.com), any user could make any research on a full system (laptop, desktop etc.) or on a particular hardware.

[edit] Mode Client/Server

The architecture is Client/Server.

Client= where a tool, already installed, gathers and sends hardware information to server.

Server= parsing system, database and server web (all the back end).


[edit] Client

The client is representing user's machine where the report file is already collected at the booting step.

The file is compressed with .gz format for a better compression. The tool which is generating that file is hclcollector.

hclcollector is located at /usr/bin/hclcollector, writtren in perl.

hclcollector is using the tool dmidecode, lspcidrake.

The file containing hardware information is formated in XML language.

[edit] Processing report.tar.gz

Here it is the explanation how to gather information, to send to Mandriva's server and to process information before presenting to the end user.

[edit] Collecting:

As you mas know, the tool hclcollector is launched when you boot the machine at the first time. The script at /usr/bin/hclcollector is in charge of starting the tools dmidecode and lspcidrake, generating the file report.tar.gz. The report file is placed at /tmp/

[edit] upload

In case, the network is up, LAN cable plugged : At the first boot, firsttime web is launched with the survey.

The last step included on firsttime, is hclcollector. If user has a "my" account, means email and password, he can fill up in each field, then upload his setting to the server.

[edit] Server

[edit] Parsing the report file

hclCustomParser :

[edit] Web backend

The php pages are developped with Zend Framework, a MVC tool.

application/configuration : directory used for settings the front end

  • config.ini : describes how the front must be configured
  • .htaccess : tells rights

application/controllers : this directory is the main gain through out, all the requests from client to front end, have been considered. Based on MVC model.

  • AuthenticationController.php : handles user login/logout, from GUI, through out the controller
  • ConfigurationController.php : allows any user (anonymous) to view all the configuration and make search on hardware or system
  • ErrorController.php :
  • IndexController.php : handles the index page and link with the controller
  • MyspaceController.php :
  • SearchController.php :

application/models/: models contain objects which aimed to handle data

application/models/components :

  • Architecture.php
  • Component.php
  • Configuration.php
  • Distribution.php
  • HclSystem.php
  • Kernel.php
  • Manufacturer.php
  • Mark.php
  • Module.php
  • Object.php
  • OComment.php
  • Os.php
  • Owner.php
  • Type.php

application/models/datasource:

  • configuration.php
  • DataSourceConfiguration.php
  • DataSource.php
  • DataSources.xml
  • MyAuthenticationAdapter.php

application/models/datasource/Drivers:

  • Driver.php

application/models/datasource/Drivers :

  • SqlDriver.php
  • SqlFactory.php

application/models/datasource/Drivers/Sql/php:

  • glpi-import.php
  • glpi-import.php

application/models/datasource/Drivers/Sql/php/phplib:

  • db_msql.inc
  • db_mysql.inc
  • db_oci8.inc
  • db_pgsql.inc
  • db_usql.inc
  • sqlquery-eric.inc
  • sqlquery.inc
  • VERSION

application/views/ : allow displays on the screen (user interface of the application)

application/views/render:

  • Render.php

application/views/scripts/authentication:

  • index.phtml
  • loged.phtml
  • login.phtml
  • logout.phtml

application/views/scripts/configuration:

  • index.phtml

application/views/scripts/error:

  • error.phtml

application/views/scripts/index:

  • index.phtml

application/views/scripts/myspace:

  • comment.phtml
  • configurationcheck.phtml
  • denied.phtml
  • hardwarecheck.phtml
  • index.phtml
  • mark.phtml
  • myconfiguration.phtml

application/views/scripts/search:

  • error.phtml
  • index.phtml

library/Zend:

log/:

  • hcl.log
  • .htaccess

public/css:

  • hcl.css
  • hcl_tmp.css
  • newstyle.css
  • reset-fonts-grids.css
  • style.css

public/css/images:

public/js:

  • autocomplete-3-2.html
  • autocomplete-3-2.js
  • sorttable.js

[edit] Injection into database

hclXmlToDatabase : inject into database user and his configuration

hclDBManager :

hcl.sql : hcl tables creation

init.sql : initialize the data base

mark.sql : notation for hardware

Personal tools