16 Screen Wall

From NURDspace
Revision as of 00:13, 11 March 2016 by Talloak (talk | contribs)
16 Screen Wall
16screen-thingy.jpg
Participants User:zmatt
Skills Linux, X
Status Active
Niche Video artsy stuff
Purpose Fun
Tool No
Location Space
Cost
Tool category

16 Screen Wall

16screen-thingy.jpg {{#if:No | [[Tool Owner::{{{ProjectParticipants}}} | }} {{#if:No | [[Tool Cost::{{{Cost}}} | }}

Since 9 screens are obviously not enough (see 9 Screen Wall 1), Petraea built a 16 screen one.




Machines

Machine 1

  • HP Compaq dc7600 Ultra-slim
  • Pentium 4 3GHz
  • 2.25GB DDR2 533MHz RAM (2x 1 GB and 1x 256MB), max 3x1GB

Machine 2

  • HP Compaq dc7600 Ultra-slim
  • Pentium 4 3Ghz
  • 1GB DDR2 533MHz (1x512MB and 2x256MB) Max 3x1GB

Machine 3

  • HP Compaq dc7700p Convertible Minitower
  • Core2 6300 @ 1.86GHz
  • 1GB DDR2 533MHz (2x512MB) (max 4x2GB)

Machine 4

  • Asus 5S800-VM/Vintage
  • Celeron D 2.66GHz running @ 2.8GHz
  • 2GB DDR (2x 1GB, no slots free)

Machine 5

  • HP Compaq dc7600 Ultra-slim
  • Pentium 4 3GHz
  • 2GB DDR2 533MHz (2x 1GB) max 3x 1GB

Machine 6

  • HP Compaq dc7600 Ultra-slim
  • Pentium 4 3GHz
  • 1GB DDR2 (2x512MB, one slot free, max 3GB)

Machine 7

  • HP d330 uT (DG285T)
  • Pentium 4 2.6GHz
  • 2GB (4x512MB, no slots free)

Machine 8

  • Dell Optiplex GX270
  • Pentium 4 * 2.8GHz
  • 2GB DDR RAM (4x512MB, no slots free)

Switch

  • HP 1910-24G JE006A

Current Status

Most of the scripting has been copied over from [9 Screen Wall 1] and is semi-working. In order to complete things properly, the internal networking needs finishing.

The screen setup script has been improved to:

  1. !/bin/bash

export DISPLAY=:0 export XAUTHORITY=~/.Xauthority DISP1=VGA-1 #sometimes VGA-0 DISP2=DVI-I-1 #sometimes DVI-0 x=1280 y=1024

function setscreens() { xrandr --newmode "$x"x"$y"_c 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -Hsync +Vsync xrandr --addmode "$DISP1" "$x"x"$y"_c #Could be VGA0 - check xrandr xrandr --addmode "$DISP2" "$x"x"$y"_c #Could be DVI0 - chrck xrandr xrandr --output "$DISP1" --mode "$x"x"$y"_c --rotate normal --output "$DISP2" --mode "$x"x"$y"_c --above "$DISP1" --rotate normal }

function readscreens() { raw=$(xrandr | sed 's/primary //' | grep 'connected' | cut -d ' ' -f 1,3|tr ' ' '.') for q in $raw ; do ID=$(echo $q | cut -d '-' -f 1) DIMX=$(echo $q | cut -d '.' -f 2| cut -d 'x' -f 1) DIMY=$(echo $q | cut -d '.' -f 2| cut -d '+' -f 1| cut -d 'x' -f 2) POSX=$(echo $q | cut -d '+' -f 2) POSY=$(echo $q | cut -d '+' -f 3) if [ "$ID" == "VGA" ] ; then

 if [ "$POSY" == $y ] ; then
   VGA=1
 fi

fi if [ "$ID" == "DVI" ] ; then

 if [ "$POSY" == 0 ] ; then
   DVI=1
 fi

fi done if [ "$VGA" == 1 ] ; then

 if [ "$DVI" == 1 ] ; then
   return 0
 fi

fi return 1 }

setscreens sleep 1 while ! readscreens ; do setscreens sleep 1 done

  • Internal IP range: VLAN1, 192.168.0/24, set untagged on #2-#8, tagged on #1
  • External VLAN: 2, set untagged on the external port and #1
  • The switch is set up on 192.168.0.254

The current idea is to set up DHCP on #1 on interface eth0.1, set MASQ up between the two interfaces, and allow DNS forwarding over that.