Der für viele Dell-Notebooks unter alternativen Betriebssystemen lebensnotwendige Lüftersteuerungsdienst DellfanD lief bisher nur unter GNU/Linux. Nicht mehr! Ich habe ihn nach Solaris (genauer gesagt OpenSolaris) portiert. Sollte der Maintainer sich dazu entschließen, meine Veränderungen nicht offiziell in sein Programm aufzunehmen, werde ich den vollständigen Quellcode meiner Version noch veröffentlichen. Wer darauf nicht warten möchte, kann den denkbar minimalen Patch gegen die offizielle Version 0.7 des Daemons verwenden:
--- dellfand.cc.orig 2006-12-22 10:19:36.000000000 +0100
+++ dellfand.cc 2007-06-27 21:43:44.000000000 +0200
@@ -19,7 +19,14 @@
*/
/*************************************************************/
+#if defined (__SVR4) && defined (__sun)
+#include <sys/types.h>
+#include <sys/sysi86.h>
+#include <ia32/sys/psw.h>
+#else
#include <sys/io.h>
+#endif
+
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
@@ -86,16 +93,22 @@
}
int set_ioperms( void )
{
+#if defined (__SVR4) && defined (__sun)
+ int err = sysi86(SI86V86, V86SC_IOPL, PS_IOPL);
+#else
int err = ioperm(0x84,1,1);
- if ( err != 0 ) {
+#endif
+ if ( err < 0 ) {
puts( "error: syscall ioperm failed: probably you're not running as root." );
return SYSTEM_ERROR;
}
+#if !(defined (__SVR4) && defined (__sun))
if ( ( err = ioperm(0xb2,1,1) ) != 0 ) {
puts( "Error: syscall ioperm failed: odd that." );
return SYSTEM_ERROR;
- }
+ }
+#endif
return 0;
}
Comments
Submit a comment
Note: This website uses a JavaScript-based spam prevention system. Please enable JavaScript in your browser to post comments. Comment format is plain text. Use blank lines to separate paragraphs.