| Line 70: | Line 70: | ||
Source code for OTS Worker includes a reference implementation for ''customflasher'' in [http://gitorious.org/qa-tools/ots/blobs/dev_branch_0.1/ots.worker/ots/worker/conductor/defaultflasher.py defaultflasher.py] file. | Source code for OTS Worker includes a reference implementation for ''customflasher'' in [http://gitorious.org/qa-tools/ots/blobs/dev_branch_0.1/ots.worker/ots/worker/conductor/defaultflasher.py defaultflasher.py] file. | ||
| - | ==== Flashing without sudo === | + | ==== Flashing without sudo ==== |
It is possible to flash N900 device without having sudo/root access. | It is possible to flash N900 device without having sudo/root access. | ||
Contents |
An environment described in Quality/QA-tools/Autotest-guide
OTS Worker comes with a component named as Conductor. Conductor includes a command line interface that can be used to manually execute one or more test packages from Worker PC. The test result files are collected to a local folder (under ~/conductor/None) from where the user can examine them.
Here's an example how to process two test packages using Conductor from command line:
# sudo conductor -u http://my.build.host/image --dontflash -t mypackage1-tests,mypackage2-tests
The URL in above command is ignored.
The supported format for meego-ai-flasher is a tar.gz containing an image and a kernel. Ensure that the directory structure in meego_ai_conf is consistent with your tar.gz. So for:
For example notice the inclusion of the sub directories...
/tmp/n900/*/*mmcblk0p* /tmp/n900/*/*vmlinuz*
... in flash_command and post_flash_command in this meego_ai_conf:
flash_command: ls %s; IMAGE=$(ls /tmp/n900/*/*mmcblk0p*);sleep 5;dd if=${IMAGE} | nc6 192.168.2.15 500 -q 10:10; sleep 10; echo "/sbin/reboot -f" | nc 192.168.2.15 500
flash_timeout: 1800
post_flash_command: KERNEL=$(ls /tmp/n900/*/*vmlinuz*); /usr/bin/flasher-3.5 -b -l
The conductor takes the image from a URL. If you are running this locally you'll need a webserver handy (For example apache on ubuntu)
Conductor's main configuration file is /etc/conductor.conf and it holds all parameters that are needed for execution. There's one parameter called 'custom_config_folder' (default value is /etc/conductor) in conductor.conf file which specifies directory where user can put optional configuration files (files must have '.conf' suffix). With optional configuration files one can extend list type parameters like 'pre_test_info_commands'. 'pre_test_info_commands_debian' and pre_test_info_commands_rpm'.
Custom Flasher is a component responsible for setting up and preparing the test target for test execution from Worker PC. Typically this includes flashing the software image to hardware that is serving as the test target, and then booting up the hardware.
The user must implement his/her own Custom Flasher.
If Custom Flasher is not available at Worker PC, Worker skips the phase of preparing the test target. Typically this behaviour is useful only when running Conductor manually from command line (see above).
The user must implement Python module customflasher and have it available in PYTHONPATH in Worker PC. In that module, the user can define all the steps and maneuvers that are necessary before his/her test target is ready for test execution. Customflasher is required to leave test target in such a state that establishing an SSH connection from Worker PC to the test target will succeed.
Source code for OTS Worker includes a reference implementation for customflasher in defaultflasher.py file.
It is possible to flash N900 device without having sudo/root access.
Add new udev rule file:
sudo nano /etc/udev/rules.d/meego-n900.rules
SUBSYSTEMS=="usb", ATTR{idVendor}=="0421", ATTR{idProduct}=="0105", GROUP="<users group>", MODE="0664"
After this flasher-3.5 can be used without sudo.