Projetcs/MandrivaHardwareCompatibilityList
From Mandriva Community Wiki
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

