Work to improve Netgear Stora with Debian installed. March 05, 2020 11:23AM |
Registered: 4 years ago Posts: 39 |
Re: Work to improve Netgear Stora with Debian installed. March 06, 2020 10:03PM |
Admin Registered: 13 years ago Posts: 18,853 |
Quote
6) How to activate the Netgear Stora Power On/Off button since it is now necessary to pull the power wire out of the socket to turn the Stora off, which is not quite convenient
shutdown -h now
Re: Work to improve Netgear Stora with Debian installed. March 07, 2020 05:44PM |
Admin Registered: 13 years ago Posts: 18,853 |
Quote
2) Does the system have a graphical interface enabled as in Netgear Stora via a browser? And if there is a way to enter there and how to use it (instruction)
Quote
Debian Desktop
XFCE desktop Pogoplug Debian
Pogoplug Debian with XDM display manager
Re: Work to improve Netgear Stora with Debian installed. March 07, 2020 05:48PM |
Admin Registered: 13 years ago Posts: 18,853 |
Quote
1) How do I update my system on Stora? How did you and I install via usb rootfs or is it possible over the Internet?
Quote
5. Done. Take this USB rootfs to your plug and cold start. After booted into Debian, see Note1 and Note2 below. It is very important that you do Note1 steps to secure your box.
Note1:
After logging in this rootf the first time, remember to generate new SSH key to make it your own unique rootfs. And also update your rootfs to get the latest Debian package security updates:
rm /etc/ssh/ssh_host*
ssh-keygen -A
apt-get update
apt-get upgrade
Warning: Watch the apt-get upgrade progress. If the apt-get upgrade results in a new initramfs, the log would shows this message:
update-initramfs: Generating /boot/initrd.img-5.2.9-kirkwood-tld-1
Then you need to regenerate the uInitrd boot file:
cd /boot
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs-5.2.9-kirkwood-tld-1 -d initrd.img-5.2.9-kirkwood-tld-1 uInitrd
Re: Work to improve Netgear Stora with Debian installed. March 07, 2020 08:31PM |
Registered: 4 years ago Posts: 39 |
Quote
Установите кнопку питания, чтобы сделать это:
[url]https://forum.doozan.com/read.php?2,32460[/url], 32467#msg-32467
Или SSH в Stora и выключите его вручную:
shutdown-h now
[/
quote]
InstalledthenQuote
apt-get install esekeyd
thenQuote
POWER:/usr/bin/logger -s -i "POWER button pushed"
RESTART:/usr/bin/logger -s -i "RESTART button pushed"
COPY:/usr/bin/logger -s -i "COPY Button pushed
all Netgear Stora turned off without pressing the button, with the power wire on. Then I press the Netgear Stora power button. Next time, I press the on/off button to power up. Nothing happens until I use theQuote
shutdown-h now
command again in SSHQuote
shutdown-h now
Edited 2 time(s). Last edit at 03/08/2020 12:07AM by cergei.
Re: Work to improve Netgear Stora with Debian installed. March 08, 2020 07:10PM |
Admin Registered: 13 years ago Posts: 18,853 |
shutdown -h now
Re: Work to improve Netgear Stora with Debian installed. March 09, 2020 02:25AM |
Admin Registered: 13 years ago Posts: 18,853 |
POWER:/usr/bin/logger -s -i "POWER button pushed" RESTART:/usr/bin/logger -s -i "RESTART button pushed" COPY:/usr/bin/logger -s -i "COPY Button pushed
POWER button pushed
POWER:/sbin/shutdown -h now
Re: Work to improve Netgear Stora with Debian installed. March 09, 2020 11:05AM |
Registered: 4 years ago Posts: 39 |
Recorded is not true, it actually happens because I use a text translator and the translator when gives me translated text as a rule changes spaces, I also noticed it and try to copy teams in the English register. Then everything is correctQuote
shutdown -h now
root@debian:~# cat /etc/esekeyd.conf POWER:/usr/bin/logger -s -i "POWER button pushed" root@debian:~#And the file/etc/esekeyd.conf looks like this:
Re: Work to improve Netgear Stora with Debian installed. March 09, 2020 05:59PM |
Admin Registered: 13 years ago Posts: 18,853 |
POWER:/sbin/shutdown -h now
Re: Work to improve Netgear Stora with Debian installed. March 09, 2020 11:34PM |
Registered: 4 years ago Posts: 39 |
Quote
Сделайте swapfile размером 384 Мб
# dd if= / dev / zero of= / swap BS=1024 count=393216
# chown root:root / swap
# chmod 0600 / swap
# mkswap / swap
# swapon / свопlogin as: root root@192.168.1.42's password: Linux debian 5.2.9-kirkwood-tld-1 #1 PREEMPT Sat Aug 17 15:00:56 PDT 2019 armv5tel The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Mar 9 12:23:01 2020 from 192.168.1.34 root@debian:~# dd if=/dev/zero of=/swap bs=1024 count=393216 dd: failed to open '/swap': Text file busy root@debian:~# chown root:root /swap root@debian:~# chmod 0600 /swap root@debian:~# mkswap /swapmkswap /swap mkswap: invalid block count argument: '/swap' root@debian:~# swapon /swap swapon: /swap: swapon failed: Device or resource busy root@debian:~# nano /etc/fstab: root@debian:~# cat /etc/fstab: /swap none swap sw 0 0 root@debian:~# swapon -s Filename Type Size Used Priority /swap file 393212 21248 -2
Created the file of pumping
[
/quote]
uploadQuote
apt-get install gparted
apt-get install firmware-realtek
apt-get install task-lxde-desktop
apt-get install kde-full
apt-get install xfce4-desktop
apt-get install xfce4-goodies
login as: root root@192.168.1.42's password: Linux debian 5.2.9-kirkwood-tld-1 #1 PREEMPT Sat Aug 17 15:00:56 PDT 2019 armv5tel The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Mar 9 20:26:14 2020 from 192.168.1.47 root@debian:~# apt-get install gparted Reading package lists... Done Building dependency tree Reading state information... Done gparted is already the newest version (0.32.0-2). The following packages were automatically installed and are no longer required: python-crypto python-dnspython python-ldb python-samba python-tdb samba-common samba-common-bin tdb-tools Use 'apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. root@debian:~# apt-get install firmware-realtek Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package firmware-realtek root@debian:~# apt-get install task-lxde-desktop Reading package lists... Done Building dependency tree Reading state information... Done task-lxde-desktop is already the newest version (3.53). The following packages were automatically installed and are no longer required: python-crypto python-dnspython python-ldb python-samba python-tdb samba-common samba-common-bin tdb-tools Use 'apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. root@debian:~# apt-get install kde-full Reading package lists... Done Building dependency tree Reading state information... Done kde-full is already the newest version (5:102). The following packages were automatically installed and are no longer required: python-crypto python-dnspython python-ldb python-samba python-tdb samba-common samba-common-bin tdb-tools Use 'apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. root@debian:~# apt-get install xfce4-desktop Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package xfce4-desktop root@debian:~# apt-get install xfce4-goodies Reading package lists... Done Building dependency tree Reading state information... Done xfce4-goodies is already the newest version (4.12.6). The following packages were automatically installed and are no longer required: python-crypto python-dnspython python-ldb python-samba python-tdb samba-common samba-common-bin tdb-tools Use 'apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. root@debian:~#Further I do not understand how I in my file/etc/alternatives/vncserver, change the geometry if this file I have looks like this:root@debian:~# cat /etc/alternatives/vncserver #!/usr/bin/perl # # Copyright (C) 2004-2006,2008-2009 Ola Lundqvist <opal@debian.org> # Copyright (C) 2002-2003 Constantin Kaplinsky. All Rights Reserved. # Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved. # # This is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This software is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this software; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, # USA. # # # vncserver - wrapper script to start an X VNC server. # # This file was heavily edited by # Ola Lundqvist <opal@debian.org> # Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de> # Clean option by Dirk Eddelbuettel <edd@debian.org> # Please report all errors to Debian and not to ORL. # # First make sure we're operating in a sane environment. # &SanityCheck(); # # Global variables. You may want to configure some of these for your site. # #$geometry = "1024x768"; $geometry = "1920x1080"; $depth = 24; $desktopName = "X"; if (-d "/usr/share/tightvnc-java") { $vncClasses = "/usr/share/tightvnc-java"; } $vncUserDir = "$ENV{HOME}/.vnc"; #$fontPath = "unix/:7100"; $authType = "-rfbauth $vncUserDir/passwd"; # Here is another example of setting the font path: # $fontPath = "/usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/"; # X colors database path is optional, uncomment and edit to use: # $colorPath = "/usr/lib/X11/rgb"; # You might wish to make your vnc directory under /tmp, to make sure # passwords are always kept on the local filesystem. To do that, just # uncomment the line below. Note that in this case Xtightvnc's .Xauthority # file will be searched in the same $vncUserDir directory by default, # and $ENV{HOME}/.vncstartup will be executed instead of usual # $vncUserDir/xstartup. # # $vncUserDir = "/tmp/$ENV{USER}-vnc"; $defaultXStartup = ("#!/bin/sh\n\n". "xrdb \$HOME/.Xresources\n". "xsetroot -solid grey\n". "#x-terminal-emulator -geometry 80x24+10+10 -ls -title \"\$VNCDESKTOP Desktop\" &\n". "#x-window-manager &\n". "# Fix to make GNOME work\n". "export XKL_XMODMAP_DISABLE=1\n". "/etc/X11/Xsession\n"); $xauthorityFile = "$ENV{XAUTHORITY}"; ######## Adding configuration possibility ################ $Config_file = "/etc/vnc.conf"; &ReadConfigFile(); $Config_file = "$ENV{HOME}/.vncrc"; &ReadConfigFile(); if (!$XFConfigPath) { foreach ("/etc/X11/xorg.conf", "/etc/X11/XF86Config-4", "/etc/X11/XF86Config" ){ $XFConfigPath = $_; last if ( -e $XFConfigPath ); } } if (!$fontPath) { &ReadXFConfigFont; } if (!$fontPath) { $fontPath = "/usr/share/fonts/X11/misc/,". "/usr/share/fonts/X11/Type1/,". "/usr/share/fonts/X11/75dpi/,". "/usr/share/fonts/X11/100dpi/" } if (!$colorPath) { &ReadXFConfigColor; } if (!$colorPath) { foreach ("/etc/X11/rgb", "/usr/share/X11/rgb", "/usr/X11R6/lib/X11/rgb"){ $colorPath = $_; last if ( -e "${colorPath}.txt" ); } } ########################################################## $vncUserDirUnderTmp = ($vncUserDir =~ m|^/tmp/.+|) ? 1 : 0; $xstartup = ($vncUserDirUnderTmp) ? "$ENV{HOME}/.vncstartup" : "$vncUserDir/xstartup"; $xstartup = $vncStartup if ($vncStartup); unless ($xauthorityFile) { if ($vncUserDirUnderTmp) { $xauthorityFile = "$vncUserDir/.Xauthority"; } else { $xauthorityFile = "$ENV{HOME}/.Xauthority"; } } chop($host = `uname -n`); # Check command line options &ParseOptions("-geometry",1,"-depth",1,"-pixelformat",1,"-name",1,"-kill",1, "-help",0,"-h",0,"--help",0, "-clean",0, "-fp",1, "-alwaysshared",0, "-nevershared",0, "-httpport",1,"-basehttpport",1); &Usage() if ($opt{'-help'} || $opt{'-h'} || $opt{'--help'}); &Kill() if ($opt{'-kill'}); $useClasses = 0; if (defined $vncClasses) { if(! -d $vncClasses) { die "VNC class files can not be found at $vncClasses."; } $useClasses = 1; } # Uncomment this line if you want default geometry, depth and pixelformat # to match the current X display: # &GetXDisplayDefaults(); if ($opt{'-geometry'}) { $geometry = $opt{'-geometry'}; } if ($opt{'-depth'}) { $depth = $opt{'-depth'}; $pixelformat = ""; } if ($opt{'-pixelformat'}) { $pixelformat = $opt{'-pixelformat'}; } if ($opt{'-fp'}) { @fontPathElements = split(/\s*,\s*/, "$opt{'-fp'}"); $fontPath = ''; foreach $i (0.."$#fontPathElements") { $tempFontPath = $fontPathElements[$i]; if ($tempFontPath !~ m!^[^/]*/[^/]*:\d+$!) { $tempFontPath =~ s/:unscaled$//; if (-r "$tempFontPath/fonts.dir") { $fontPath .= "$fontPathElements[$i],"; } } else { $fontPath .= "$fontPathElements[$i],"; } } chop $fontPath; } &CheckGeometryAndDepth(); if ($opt{'-name'}) { $desktopName = $opt{'-name'}; } # Create the user's vnc directory if necessary. unless (-e $vncUserDir) { unless (mkdir($vncUserDir, 0700)) { die "$prog: Could not create $vncUserDir.\n"; } } ($z,$z,$mode) = stat("$vncUserDir"); if (!-d _ || !-o _ || ($vncUserDirUnderTmp && ($mode & 0777) != 0700)) { die "$prog: Wrong type or access mode of $vncUserDir.\n"; } # Make sure the user has a password. ($z,$z,$mode) = stat("$vncUserDir/passwd"); if (-e _ && (!-f _ || !-o _)) { die "$prog: Wrong type or ownership on $vncUserDir/passwd.\n"; } if (!-e _ || ($mode & 077) != 0) { warn "\nYou will require a password to access your desktops.\n\n"; system("vncpasswd $vncUserDir/passwd"); if (($? & 0xFF00) != 0) { exit 1; } } # Find display number. if ((@ARGV > 0) && ($ARGV[0] =~ /^:(\d+)$/)) { $displayNumber = $1; shift(@ARGV); unless (&CheckDisplayNumber($displayNumber)) { die "A VNC server is already running as :$displayNumber\n"; } } elsif ((@ARGV > 0) && ($ARGV[0] !~ /^-/)) { &Usage(); } else { $displayNumber = &GetDisplayNumber(); } $vncPort = 5900 + $displayNumber; $desktopLog = "$vncUserDir/$host:$displayNumber.log"; unlink($desktopLog); # Make an X server cookie - use as the seed the sum of the current time, our # PID and part of the encrypted form of the password. Ideally we'd use # /dev/urandom, but that's only available on Linux. srand(time+$$+unpack("L",`cat $vncUserDir/passwd`)); $cookie = ""; for (1..16) { $cookie .= sprintf("%02x", int(rand(256))); } system("xauth -f $xauthorityFile add $host:$displayNumber . $cookie"); system("xauth -f $xauthorityFile add $host/unix:$displayNumber . $cookie"); # Now start the X VNC Server $cmd = "Xtightvnc :$displayNumber"; $cmd .= " -desktop " . "edString($desktopName); if ($useClasses) { $cmd .= " -httpd $vncClasses"; print ("Found $vncClasses for http connections.\n"); if ($opt{'-httpport'}) { $cmd .= " -httpport $opt{'-httpport'}"; print ("Listening to $opt{'-httpport'} for http connections.\n"); } elsif ($opt{'-basehttpport'}) { my $v = $opt{'-basehttpport'} + $displayNumber; print ("Listening to $v for http connections.\n"); $cmd .= " -httpport $v"; } } $cmd .= " -auth $xauthorityFile"; $cmd .= " -geometry $geometry" if ($geometry); $cmd .= " -depth $depth" if ($depth); $cmd .= " -pixelformat $pixelformat" if ($pixelformat); $cmd .= " -rfbwait 120000"; $cmd .= " $authType"; $cmd .= " -rfbport $vncPort"; $cmd .= " -fp $fontPath" if ($fontPath); $cmd .= " -co $colorPath" if ($colorPath); $cmd .= " -alwaysshared" if ($opt{'-alwaysshared'}); $cmd .= " -nevershared" if ($opt{'-nevershared'}); foreach $arg (@ARGV) { $cmd .= " " . "edString($arg); } $cmd .= " >> " . "edString($desktopLog) . " 2>&1"; # Run $cmd and record the process ID. $pidFile = "$vncUserDir/$host:$displayNumber.pid"; system("$cmd & echo \$! >$pidFile"); # Give Xtightvnc a chance to start up sleep(1); unless (kill 0, `cat $pidFile`) { warn "Couldn't start Xtightvnc; trying default font path.\n"; warn "Please set correct fontPath in the $prog script.\n"; $cmd =~ s@-fp [^ ]+@@; system("$cmd & echo \$! >$pidFile"); sleep(1); } unless (kill 0, `cat $pidFile`) { warn "Couldn't start Xtightvnc process.\n\n"; open(LOG, "<$desktopLog"); while (<LOG>) { print; } close(LOG); die "\n"; } warn "\nNew '$desktopName' desktop is $host:$displayNumber\n\n"; # Create the user's xstartup script if necessary. unless (-e "$xstartup") { warn "Creating default startup script $xstartup\n"; open(XSTARTUP, ">$xstartup"); print XSTARTUP $defaultXStartup; close(XSTARTUP); chmod 0755, "$xstartup"; } # Run the X startup script. warn "Starting applications specified in $xstartup\n"; warn "Log file is $desktopLog\n\n"; # If the unix domain socket exists then use that (DISPLAY=:n) otherwise use # TCP (DISPLAY=host:n) if (-e "/tmp/.X11-unix/X$displayNumber") { $ENV{DISPLAY}= ":$displayNumber"; } else { $ENV{DISPLAY}= "$host:$displayNumber"; } $ENV{VNCDESKTOP}= $desktopName; system("$xstartup >> " . "edString($desktopLog) . " 2>&1 &"); exit; ############################ Debian functions ################################# # I thank Manoj for the code below. # # ReadConfigFile reads in a config file and sets variables according to it. # sub ReadConfigFile { open(CONFIG, "$Config_file") || return; my $lineno = 0; while (<CONFIG>) { chomp; $lineno++; s/\#.*//og; next if /^\s*$/og; $_ .= ";" unless /;\s*$/; if (/^\s*([^=]+)\s*=\s*(\S.*)$/o) { my $ret = eval "$1=$2"; if ($@) { print STDERR "Error parsing config file $Config_file!\n"; print STDERR "$lineno:$_\n"; } } } } sub ReadXFConfigFont { open(CONFIG, "$XFConfigPath") || return; my $lineno = 0; while (<CONFIG>) { chomp; $lineno++; s/\#.*//og; next if /^\s*$/og; if (/^\s*FontPath\s*"(\S.*)"\s*$/o) { $fontPath .= "," if $fontPath; $fontPath .= $1; } } } sub ReadXFConfigColor { open(CONFIG, "$XFConfigPath") || return; my $lineno = 0; while (<CONFIG> && !$colorPath) { chomp; $lineno++; s/\#.*//og; next if /^\s*$/og; if (/^\s*RgbPath\s*"(\S.*)"\s*$/o) { $colorPath = $1; } } } ########## End of debian functions ########### ############################################################################### # # CheckGeometryAndDepth simply makes sure that the geometry and depth values # are sensible. # sub CheckGeometryAndDepth { if ($geometry =~ /^(\d+)x(\d+)$/) { $width = $1; $height = $2; if (($width<1) || ($height<1)) { die "$prog: geometry $geometry is invalid\n"; } while (($width % 4)!=0) { $width = $width + 1; } while (($height % 2)!=0) { $height = $height + 1; } $geometry = "${width}x$height"; } else { die "$prog: geometry $geometry is invalid\n"; } if (($depth < 8) || ($depth > 32)) { die "Depth must be between 8 and 32\n"; } } # # GetDisplayNumber gets the lowest available display number. A display number # n is taken if something is listening on the VNC server port (5900+n) or the # X server port (6000+n). # sub GetDisplayNumber { foreach $n (1..99) { if (&CheckDisplayNumber($n)) { return $n+0; # Bruce Mah's workaround for bug in perl 5.005_02 } } die "$prog: no free display number on $host.\n"; } # # CheckDisplayNumber checks if the given display number is available. A # display number n is taken if something is listening on the VNC server port # (5900+n) or the X server port (6000+n). # sub CheckDisplayNumber { local ($n) = @_; socket(S, $AF_INET, $SOCK_STREAM, 0) || die "$prog: socket failed: $!\n"; eval 'setsockopt(S, &SOL_SOCKET, &SO_REUSEADDR, pack("l", 1))'; #unless (bind(S, pack('S n x12', $AF_INET, 6000 + $n))) { unless (bind(S, sockaddr_in(6000 + $n, &INADDR_ANY))) { close(S); return 0; } close(S); socket(S, $AF_INET, $SOCK_STREAM, 0) || die "$prog: socket failed: $!\n"; eval 'setsockopt(S, &SOL_SOCKET, &SO_REUSEADDR, pack("l", 1))'; #unless (bind(S, pack('S n x12', $AF_INET, 5900 + $n))) { unless (bind(S, sockaddr_in(5900 + $n, &INADDR_ANY))) { close(S); return 0; } close(S); if (-e "/tmp/.X$n-lock") { warn "\nWarning: $host:$n is taken because of /tmp/.X$n-lock\n"; warn "Remove this file if there is no X server $host:$n\n"; return 0; } if (-e "/tmp/.X11-unix/X$n") { warn "\nWarning: $host:$n is taken because of /tmp/.X11-unix/X$n\n"; warn "Remove this file if there is no X server $host:$n\n"; return 0; } return 1; } # # GetXDisplayDefaults uses xdpyinfo to find out the geometry, depth and pixel # format of the current X display being used. If successful, it sets the # options as appropriate so that the X VNC server will use the same settings # (minus an allowance for window manager decorations on the geometry). Using # the same depth and pixel format means that the VNC server won't have to # translate pixels when the desktop is being viewed on this X display (for # TrueColor displays anyway). # sub GetXDisplayDefaults { local (@lines, @matchlines, $width, $height, $defaultVisualId, $i, $red, $green, $blue); $wmDecorationWidth = 4; # a guess at typical size for window manager $wmDecorationHeight = 24; # decoration size return unless (defined($ENV{DISPLAY})); @lines = `xdpyinfo 2>/dev/null`; return if ($? != 0); @matchlines = grep(/dimensions/, @lines); if (@matchlines) { ($width, $height) = ($matchlines[0] =~ /(\d+)x(\d+) pixels/); $width -= $wmDecorationWidth; $height -= $wmDecorationHeight; $geometry = "${width}x$height"; } @matchlines = grep(/default visual id/, @lines); if (@matchlines) { ($defaultVisualId) = ($matchlines[0] =~ /id:\s+(\S+)/); for ($i = 0; $i < @lines; $i++) { if ($lines[$i] =~ /^\s*visual id:\s+$defaultVisualId$/) { if (($lines[$i+1] !~ /TrueColor/) || ($lines[$i+2] !~ /depth/) || ($lines[$i+4] !~ /red, green, blue masks/)) { return; } last; } } return if ($i >= @lines); ($depth) = ($lines[$i+2] =~ /depth:\s+(\d+)/); ($red,$green,$blue) = ($lines[$i+4] =~ /masks:\s+0x([0-9a-f]+), 0x([0-9a-f]+), 0x([0-9a-f]+)/); $red = hex($red); $green = hex($green); $blue = hex($blue); if ($red > $blue) { $red = int(log($red) / log(2)) - int(log($green) / log(2)); $green = int(log($green) / log(2)) - int(log($blue) / log(2)); $blue = int(log($blue) / log(2)) + 1; $pixelformat = "rgb$red$green$blue"; } else { $blue = int(log($blue) / log(2)) - int(log($green) / log(2)); $green = int(log($green) / log(2)) - int(log($red) / log(2)); $red = int(log($red) / log(2)) + 1; $pixelformat = "bgr$blue$green$red"; } } } # # quotedString returns a string which yields the original string when parsed # by a shell. # sub quotedString { local ($in) = @_; $in =~ s/\'/\'\"\'\"\'/g; return "'$in'"; } # # removeSlashes turns slashes into underscores for use as a file name. # sub removeSlashes { local ($in) = @_; $in =~ s|/|_|g; return "$in"; } # # Usage # sub Usage { die("TightVNC Server version 1.3.9\n". "\n". "Usage: $prog [<OPTIONS>] [:<DISPLAY#>]\n". " $prog -kill :<DISPLAY#>\n". "\n". "<OPTIONS> are Xtightvnc options, or:\n". "\n". " -name <DESKTOP-NAME>\n". " -depth <DEPTH>\n". " -geometry <WIDTH>x<HEIGHT>\n". " -httpport number\n". " -basehttpport number\n". " -alwaysshared\n". " -nevershared\n". " -pixelformat rgb<NNN>\n". " -pixelformat bgr<NNN>\n". "\n". "See vncserver and Xtightvnc manual pages for more information.\n"); } # # Kill # sub Kill { $opt{'-kill'} =~ s/(:\d+)\.\d+$/$1/; # e.g. turn :1.0 into :1 if ($opt{'-kill'} =~ /^:\d+$/) { $pidFile = "$vncUserDir/$host$opt{'-kill'}.pid"; } else { if ($opt{'-kill'} !~ /^$host:/) { die "\nCan't tell if $opt{'-kill'} is on $host\n". "Use -kill :<number> instead\n\n"; } $pidFile = "$vncUserDir/$opt{'-kill'}.pid"; } unless (-r $pidFile) { die "\nCan't find file $pidFile\n". "You'll have to kill the Xtightvnc process manually\n\n"; } $SIG{'HUP'} = 'IGNORE'; chop($pid = `cat $pidFile`); warn "Killing Xtightvnc process ID $pid\n"; system("kill $pid"); unlink $pidFile; ## If option -clean is given, also remove the logfile unlink "$vncUserDir/$host$opt{'-kill'}.log" if ($opt{'-clean'}); exit; } # # ParseOptions takes a list of possible options and a boolean indicating # whether the option has a value following, and sets up an associative array # %opt of the values of the options given on the command line. It removes all # the arguments it uses from @ARGV and returns them in @optArgs. # sub ParseOptions { local (@optval) = @_; local ($opt, @opts, %valFollows, @newargs); while (@optval) { $opt = shift(@optval); push(@opts,$opt); $valFollows{$opt} = shift(@optval); } @optArgs = (); %opt = (); arg: while (defined($arg = shift(@ARGV))) { foreach $opt (@opts) { if ($arg eq $opt) { push(@optArgs, $arg); if ($valFollows{$opt}) { if (@ARGV == 0) { &Usage(); } $opt{$opt} = shift(@ARGV); push(@optArgs, $opt{$opt}); } else { $opt{$opt} = 1; } next arg; } } push(@newargs,$arg); } @ARGV = @newargs; } # # Routine to make sure we're operating in a sane environment. # sub SanityCheck { local ($cmd); # # Get the program name # ($prog) = ($0 =~ m|([^/]+)$|); # # Check we have all the commands we'll need on the path. # cmd: foreach $cmd ("uname","xauth","Xtightvnc","vncpasswd") { for (split(/:/,$ENV{PATH})) { if (-x "$_/$cmd") { next cmd; } } die "$prog: couldn't find \"$cmd\" on your PATH.\n"; } # # Check the HOME and USER environment variables are both set. # unless (defined($ENV{HOME})) { die "$prog: The HOME environment variable is not set.\n"; } unless (defined($ENV{USER})) { die "$prog: The USER environment variable is not set.\n"; } # # Find socket constants. 'use Socket' is a perl5-ism, so we wrap it in an # eval, and if it fails we try 'require "sys/socket.ph"'. If this fails, # we just guess at the values. If you find perl moaning here, just # hard-code the values of AF_INET and SOCK_STREAM. You can find these out # for your platform by looking in /usr/include/sys/socket.h and related # files. # chop($os = `uname`); chop($osrev = `uname -r`); eval 'use Socket'; if ($@) { eval 'require "sys/socket.ph"'; if ($@) { if (($os eq "SunOS") && ($osrev !~ /^4/)) { $AF_INET = 2; $SOCK_STREAM = 2; } else { $AF_INET = 2; $SOCK_STREAM = 1; } } else { $AF_INET = &AF_INET; $SOCK_STREAM = &SOCK_STREAM; } } else { $AF_INET = &AF_INET; $SOCK_STREAM = &SOCK_STREAM; } }I found only one parameter < # $geometry = "1024x768" > And I inserted next to < $geometry = "1920x1080" > if I did the right thing I don 't know.As a result, VNC viewer does not connect to ip 192.168.1.42 This is visible in the attached file
Re: Work to improve Netgear Stora with Debian installed. March 22, 2020 01:59AM |
Registered: 4 years ago Posts: 39 |