Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37750731
en ru br
ALT Linux repos
5.0: r2-alt1
4.1: r2-alt1
4.0: r2-alt1

Group :: System/Configuration/Hardware
RPM: firmwarekit

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: alt_usb2.patch
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);
 }
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin