#!/usr/bin/perl # edit_hdparm.cgi # Edit an IDE parameters for some disk require './fdisk-lib.pl'; &ReadParse(); @dlist = &list_disks_partitions(); $d = $dlist[$in{'disk'}]; &can_edit_disk($d->{'device'}) || &error($text{'edit_ecannot'}); &ui_print_header($d->{'desc'}, $text{'hdparm_title'}, ""); if ( ! &has_command( "hdparm" ) ) { print "<p>$text{ 'edit_ehdparm' }<p>\n"; &ui_print_footer( "", $text{ 'index_return' } ); exit; } %hdparm = ( 'A', "1", 'K', "0", 'P', "0", 'X', "0", 'W', "0", 'S', "0" ); @yesno = ( "1", $text{ 'hdparm_on' }, "0", $text{ 'hdparm_off' } ); foreach $argument ( 'a', 'd', 'r', 'k', 'u', 'm', 'c' ) { $out = `hdparm -$argument $d->{'device'}`; if ($out =~ /\s+=\s+(\S+)/) { $hdparm{ $argument } = $1; } #( $_, $line ) = split( /=/, `hdparm -$argument $d->{'device'}` ); #$line =~ s/ {1,}//; #( $hdparm{ $argument } ) = split( / /, $line ); } # Javascript for slider print( "<script type=\"text/javascript\" src=\"range.js\"></script> <script type=\"text/javascript\" src=\"timer.js\"></script> <script type=\"text/javascript\" src=\"slider.js\"></script> <link type=\"text/css\" rel=\"StyleSheet\" href=\"winclassic.css\" />"); # Form header print &ui_form_start("apply_hdparm.cgi"); print &ui_hidden("drive", $d->{'device'}); print &ui_table_start($text{'hdparm_label'}, "width=100%", 4); # Transfer mode print &ui_table_row(&hlink($text{'hdparm_conf_X'}, 'X'), &ui_select("X", $hdparm{'X'}, [ [ "0", $text{ 'hdparm_conf_X_defaut' } ], [ "1", $text{ 'hdparm_conf_X_disable' } ], [ "9", "PIO mode 1", ], [ "10", "PIO mode 2" ], [ "11", "PIO mode 3" ], [ "12", "PIO mode 4" ], [ "32", "Multimode DMA 0" ], [ "33", "Multimode DMA 1" ], [ "34", "Multimode DMA 2" ], [ "64", "Ultra DMA 0" ], [ "65", "Ultra DMA 1" ], [ "66", "Ultra DMA 2" ] ], 1, 0, 1)); # Sector count print &ui_table_row(&hlink($text{'hdparm_conf_a'}, 'sector_count'), &ui_textbox("a", $hdparm{'a'}, 2)); # Other yes/no options foreach $o ('d', 'A', 'W', 'u', 'k', 'K', 'r', 'P') { if ($o eq 'k') { print &ui_table_row(&hlink($text{'hdparm_conf_'.$o}, 'keep_settings'), &ui_yesno_radio($o, $hdparm{$o})); } else { print &ui_table_row(&hlink($text{'hdparm_conf_'.$o}, $o), &ui_yesno_radio($o, $hdparm{$o})); } } # Standby timeout (slider) print &ui_table_row(&hlink($text{'hdparm_conf_S'}, 'S'), &p_slider( "S", 0, 251, 0), 3); # 32-bit I/O support print &ui_table_row(&hlink($text{'hdparm_conf_c'}, 'c'), &ui_radio('c', $hdparm{'c'}, [ [ 0, $text{'hdparm_disable'} ], [ 1, $text{'hdparm_enable'} ], [ 3, $text{'hdparm_enable_special'} ] ]), 3); # Sector count for multiple sector I/O print &ui_table_row(&hlink($text{'hdparm_conf_m'}, 'm'), &ui_radio('m', $hdparm{'m'}, [ [ 0, $text{'hdparm_disable'} ], [ 2 ], [ 4 ], [ 8 ], [ 16 ], [ 32 ] ]), 3); print &ui_table_end(); print &ui_form_end([ [ 'action', $text{'hdparm_apply'} ], [ 'action', $text{'hdparm_speed'} ] ]); &ui_print_footer( "", $text{ 'index_return' } ); # Javascript for slider print "<script type=\"text/javascript\"> var sliderEl = document.getElementById ? document.getElementById(\"S-slider\") : null; var inputEl = document.forms[0][\"S\"]; var s = new Slider(sliderEl, inputEl); function format_time(t_sec) { if ( t_sec >= 3600 ) { var t_hour = (t_sec - (t_sec % 3600))/3600; return t_hour + \" hours \" + format_time(t_sec % 3600); } else if ( t_sec >= 60 ){ var t_min = (t_sec - (t_sec % 60))/60; return t_min + \" minutes \" + format_time(t_sec % 60);; } else if ( t_sec > 0 ){ return t_sec + \" seconds \"; } else { return \" \"; } }; s.onchange = function () { var flag = s.getValue(); var t_sec = 0; if (flag < 241) { t_sec = flag * 5; } else { t_sec = (flag -240) * 30 * 60; } if (t_sec == 0) { document.getElementById(\"S-text-id\").value = \"always on\"; } else { document.getElementById(\"S-text-id\").value = format_time(t_sec); } }; s.setValue(0); s.setMinimum(0); s.setMaximum(251); </script>"; # Returns a slider sub p_slider { my ( $name, $min, $max, $default ) = @_; local $out; $out .= "<div class=\"slider\" id=\"". $name ."-slider\" tabIndex=\"1\">"; $out .= "<input class=\"slider-input\" id=\"".$name."-slider-input\""; $out .= " name=\"".$name."\"/></div>"; $out .= "<input type=text name=\"".$name."-text\" id=\"".$name."-text-id\" readonly value=\"This field is not used\" >"; return $out; }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 1.92 KB | 0644 |
|
acl_security.pl | File | 958 B | 0755 |
|
apply_hdparm.cgi | File | 1.17 KB | 0755 |
|
blink.cgi | File | 384 B | 0755 |
|
cgi_args.pl | File | 483 B | 0755 |
|
config | File | 13 B | 0644 |
|
config.info | File | 144 B | 0644 |
|
config.info.bg | File | 235 B | 0644 |
|
config.info.ca | File | 167 B | 0644 |
|
config.info.de | File | 148 B | 0644 |
|
config.info.fr | File | 167 B | 0644 |
|
config.info.nl | File | 138 B | 0644 |
|
config.info.no | File | 151 B | 0644 |
|
defaultacl | File | 26 B | 0644 |
|
edit_disk.cgi | File | 4.91 KB | 0755 |
|
edit_hdparm.cgi | File | 4.36 KB | 0755 |
|
edit_part.cgi | File | 8.26 KB | 0755 |
|
edit_relabel.cgi | File | 1.32 KB | 0755 |
|
fdisk-lib.pl | File | 48.16 KB | 0755 |
|
feedback_files.pl | File | 115 B | 0755 |
|
fsck.cgi | File | 604 B | 0755 |
|
fsck_form.cgi | File | 700 B | 0755 |
|
index.cgi | File | 2.41 KB | 0755 |
|
log_parser.pl | File | 1.53 KB | 0755 |
|
make_tags.pl | File | 210 B | 0755 |
|
mkfs.cgi | File | 820 B | 0755 |
|
mkfs_form.cgi | File | 832 B | 0755 |
|
module.info | File | 238 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 153 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 209 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 249 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 236 B | 0644 |
|
module.info.ca | File | 119 B | 0644 |
|
module.info.ca.auto | File | 29 B | 0644 |
|
module.info.cs | File | 40 B | 0644 |
|
module.info.cs.auto | File | 130 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 149 B | 0644 |
|
module.info.de | File | 131 B | 0644 |
|
module.info.de.auto | File | 26 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 299 B | 0644 |
|
module.info.es | File | 38 B | 0644 |
|
module.info.es.auto | File | 112 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 146 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 233 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 149 B | 0644 |
|
module.info.fr | File | 35 B | 0644 |
|
module.info.fr.auto | File | 133 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 188 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 160 B | 0644 |
|
module.info.hu | File | 79 B | 0644 |
|
module.info.hu.auto | File | 26 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 152 B | 0644 |
|
module.info.ja | File | 58 B | 0644 |
|
module.info.ja.auto | File | 179 B | 0644 |
|
module.info.ko | File | 36 B | 0644 |
|
module.info.ko.auto | File | 137 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 163 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 167 B | 0644 |
|
module.info.ms | File | 120 B | 0644 |
|
module.info.ms.auto | File | 23 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 153 B | 0644 |
|
module.info.nl | File | 39 B | 0644 |
|
module.info.nl.auto | File | 111 B | 0644 |
|
module.info.no | File | 38 B | 0644 |
|
module.info.no.auto | File | 112 B | 0644 |
|
module.info.pl | File | 38 B | 0644 |
|
module.info.pl.auto | File | 120 B | 0644 |
|
module.info.pt | File | 37 B | 0644 |
|
module.info.pt.auto | File | 116 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 162 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 157 B | 0644 |
|
module.info.ru | File | 60 B | 0644 |
|
module.info.ru.auto | File | 185 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 166 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 155 B | 0644 |
|
module.info.sv | File | 28 B | 0644 |
|
module.info.sv.auto | File | 116 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 303 B | 0644 |
|
module.info.tr | File | 34 B | 0644 |
|
module.info.tr.auto | File | 123 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 245 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 266 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 187 B | 0644 |
|
module.info.zh | File | 27 B | 0644 |
|
module.info.zh.auto | File | 104 B | 0644 |
|
module.info.zh_TW | File | 33 B | 0644 |
|
module.info.zh_TW.auto | File | 110 B | 0644 |
|
range.js | File | 4.7 KB | 0644 |
|
reboot.cgi | File | 261 B | 0755 |
|
relabel.cgi | File | 417 B | 0755 |
|
save_part.cgi | File | 3.75 KB | 0755 |
|
slider.js | File | 14.48 KB | 0644 |
|
timer.js | File | 2.86 KB | 0644 |
|
tunefs.cgi | File | 689 B | 0755 |
|
tunefs_form.cgi | File | 722 B | 0755 |
|
winclassic.css | File | 1.72 KB | 0644 |
|