Group :: System/Configuration/Hardware
RPM: firmwarekit
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: alt_usb2.patch
Download
Download
diff -ruN linuxfirmwarekit-orig/tests.c linuxfirmwarekit/tests.c
--- linuxfirmwarekit-orig/tests.c 2007-01-05 09:32:47 +0300
+++ linuxfirmwarekit/tests.c 2007-03-29 16:46:28 +0400
@@ -199,8 +199,8 @@
void dump_results(void)
{
- dump_xml(all_tests, "results/results.xml");
- dump_xml_resources("results/resources.xml");
+ dump_xml(all_tests, "/var/log/firmwarekit/results.xml");
+ dump_xml_resources("/var/log/firmwarekit/resources.xml");
show_results_ui(all_tests);
}
void dump_xml_results(void)
diff -ruN linuxfirmwarekit-orig/usb.c linuxfirmwarekit/usb.c
--- linuxfirmwarekit-orig/usb.c 2006-11-01 21:57:31 +0300
+++ linuxfirmwarekit/usb.c 2007-03-29 17:16:52 +0400
@@ -33,6 +33,31 @@
#include <glib.h>
#include "biostest.h"
+int is_mounted(const char *device, char *mnt_point)
+{
+ FILE *fp;
+ char buf[512];
+ char dev[512];
+ char dev_mnt_point[512];
+ int ret = 0;
+
+ if ((fp = fopen("/proc/mounts", "r")) == NULL) {
+ return -1;
+ }
+ while (!feof(fp)) {
+ if (fgets(buf, sizeof(buf), fp) == NULL)
+ break;
+ if (sscanf(buf, "%s %s", dev, dev_mnt_point) != 2)
+ continue;
+ if (!strcmp(dev, device)) {
+ ret = 1;
+ strcpy(mnt_point, dev_mnt_point);
+ break;
+ }
+ }
+ fclose(fp);
+ return ret;
+}
void save_on_usb(void)
{
@@ -41,13 +66,15 @@
FILE *file;
int devcount = 0;
char *c;
+ char path[4096];
+ char buffer[4096];
+ char mnt_point[512];
+ char cmd[1024];
dir = opendir("/sys/block");
if (!dir)
return;
do {
- char path[4096];
- char buffer[4096];
entry = readdir(dir);
if (!entry)
@@ -73,27 +100,34 @@
readlink(path, buffer, 4096);
if (strstr(buffer, "usb")==NULL)
continue;
+
/* ok so we have a removable device with USB in the device string. Assume it's an USB key */
- sprintf(buffer, "/bin/mount /dev/%s1 /usbkey &> mountlog", entry->d_name);
- if (system(buffer)!=0) {
+ sprintf(buffer, "/dev/%s1", entry->d_name);
+ if( !is_mounted(buffer, mnt_point) ) {
/* no cookie; maybe there was no partition table */
- sprintf(buffer, "/bin/mount /dev/%s /usbkey &> mountlog", entry->d_name);
- if (system(buffer)!=0)
+ sprintf(buffer, "/dev/%s", entry->d_name);
+ if( !is_mounted(buffer, mnt_point) )
continue;
}
- system("/bin/cp results/* /usbkey &> /dev/null");
- system("/bin/cp acpidump /usbkey &> /dev/null");
- system("/bin/cp DSDT.* /usbkey &> /dev/null");
- system("/bin/umount /usbkey &> /dev/null");
+
+ sprintf(cmd, "/bin/cp /var/log/firmwarekit/*.xml %s > /dev/null 2>&1", mnt_point);
+ system(cmd);
+ sprintf(cmd, "/bin/cp acpidump %s > /dev/null 2>&1", mnt_point);
+ system(cmd);
+ sprintf(cmd, "/bin/cp DSDT.* %s > /dev/null 2>&1", mnt_point);
+ system(cmd);
+ sprintf(cmd, "/bin/sync");
+ system(cmd);
devcount ++;
+ sprintf(buffer, "Test data successfully saved to %s", mnt_point);
+ simple_ok_dialog("Save to USB", buffer);
} while (entry);
- if (devcount) {
- c = "Test data successfully saved";
- } else {
+ if (!devcount) {
c = "No USB keys found; data not saved";
+ simple_ok_dialog("Save to USB", c);
}
- simple_ok_dialog("Save to USB", c);
+
closedir(dir);
}