16 Screen Wall: Difference between revisions

From NURDspace
No edit summary
No edit summary
 
(17 intermediate revisions by 6 users not shown)
Line 2: Line 2:
|Name=16 Screen Wall
|Name=16 Screen Wall
|Skills=Linux, X,
|Skills=Linux, X,
|Status=Active
|Status=Dead
|Niche=Video artsy stuff
|Niche=Video artsy stuff
|Purpose=Fun
|Purpose=Fun
Line 51: Line 51:
Image:16screens-YDXJ1396.jpg
Image:16screens-YDXJ1396.jpg
Image:16screens-YDXJ1397.jpg
Image:16screens-YDXJ1397.jpg
Image:IMG_20170226_231222.jpg


</gallery>
</gallery>
== Power on and off ==
[[File:16_screen_power_button.jpg|thumb|Power Button]]
There is a power button on the bottom left that'll shutdown all machines when they're on, and power on all machines when they're off. The master node is key.
=== Power on ===
Button powers on master node, and this will do a wake-on-lan for the other machines.
=== Power off ===
Masternode powers off the other machines via ssh, and then will power down itself.
== Machines ==
Default user on the master node is ''display''. You can ssh as root into the master node on 16-wall-1.nurdspace.lan and ssh into the rest from there (192.168.255.x).
=== Machines ===
Head node
* Raspberry Pi v3
Others:
* Raspberry Pi v1
== Switch ==
* HP 1910-24G JE006A
* Switch IP: 192.168.0.254 on VLAN1 (and default config)
* VLAN1 (Internal)
  - Ports 1-22
  - Port 24 WHEN TAGGED
* VLAN2 (External)
  - Ports 23-24
Master machine does DHCP on eth0.1 to range 192.168.0.0/24 for the workers, then set up forwarding between eth0.1 and eth0.




== Machines ==
== Current Status ==
=== 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 ===
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.
* HP Compaq dc7700p Convertible Minitower
* Core2 6300 @ 1.86GHz
* 1GB DDR2 533MHz (2x512MB) (max 4x2GB)


=== Machine 4 ===
The screen setup script has been improved to:
* Asus 5S800-VM/Vintage
<nowiki>
* Celeron D 2.66GHz running @ 2.8GHz
#!/bin/bash
* 2GB DDR (2x 1GB, no slots free)
export DISPLAY=:0
export XAUTHORITY=~/.Xauthority
DISP1=VGA-1 #sometimes VGA-0
DISP2=DVI-I-1 #sometimes DVI-0
x=1280
y=1024


=== Machine 5 ===
function setscreens() {
* HP Compaq dc7600 Ultra-slim
xrandr --newmode "$x"x"$y"_c 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -Hsync +Vsync
* Pentium 4 3GHz
xrandr --addmode "$DISP1" "$x"x"$y"_c #Could be VGA0 - check xrandr
* 2GB DDR2 533MHz (2x 1GB) max 3x 1GB
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
}


=== Machine 6 ===
function readscreens() {
* HP Compaq dc7600 Ultra-slim
raw=$(xrandr | sed 's/primary //' | grep 'connected' | cut -d ' ' -f 1,3|tr ' ' '.')
* Pentium 4 3GHz
for q in $raw ; do
* 1GB DDR2 (2x512MB, one slot free, max 3GB)
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
}


=== Machine 7 ===
setscreens
* HP d330 uT (DG285T)
sleep 1
* Pentium 4 2.6GHz
while ! readscreens ; do
* 2GB (4x512MB, no slots free)
setscreens
sleep 1
done
</nowiki>


=== Machine 8 ===
Quick discovery when I eventually rewrite this: XdmX will _not_ accept screens starting with numbers - they must start with a letter! So all remote screens have to resolve from the master correctly.
* Dell Optiplex GX270
* Pentium 4 * 2.8GHz
* 2GB DDR RAM (4x512MB, no slots free)


== Switch ==
* HP 1910-24G JE006A


== Current Status ==
=== asciiflut ===
(unfinished)
http://github.com/nooitaf/asciiflut
asciiflut can be started on the screen by starting with:
<nowiki>./run-asciiflut.sh</nowiki>


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 script does some terminal magic (set font size and use settings from .Xresources).


* Internal IP range: VLAN1, 192.168.0/24, set untagged on #2-#8, tagged on #1
You can connect to the server on port 1234 and send your pixels
* External VLAN: 2, set untagged on the external port and #1
There is also a mjpeg stream you can watch on port 1235 but it will slow down the machine massively :S
* 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.
http://16-wall-1.nurdspace.lan:1235

Latest revision as of 21:58, 7 March 2020

16 Screen Wall
16screen-thingy.jpg
Participants Nooitaf, User:zmatt
Skills Linux, X
Status Dead
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.



Power on and off

Power Button

There is a power button on the bottom left that'll shutdown all machines when they're on, and power on all machines when they're off. The master node is key.

Power on

Button powers on master node, and this will do a wake-on-lan for the other machines.

Power off

Masternode powers off the other machines via ssh, and then will power down itself.

Machines

Default user on the master node is display. You can ssh as root into the master node on 16-wall-1.nurdspace.lan and ssh into the rest from there (192.168.255.x).

Machines

Head node

  • Raspberry Pi v3

Others:

  • Raspberry Pi v1

Switch

  • HP 1910-24G JE006A
  • Switch IP: 192.168.0.254 on VLAN1 (and default config)
  • VLAN1 (Internal)
 - Ports 1-22
 - Port 24 WHEN TAGGED
  • VLAN2 (External)
 - Ports 23-24

Master machine does DHCP on eth0.1 to range 192.168.0.0/24 for the workers, then set up forwarding between eth0.1 and eth0.


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:

#!/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

Quick discovery when I eventually rewrite this: XdmX will _not_ accept screens starting with numbers - they must start with a letter! So all remote screens have to resolve from the master correctly.


asciiflut

(unfinished) http://github.com/nooitaf/asciiflut asciiflut can be started on the screen by starting with: ./run-asciiflut.sh

The script does some terminal magic (set font size and use settings from .Xresources).

You can connect to the server on port 1234 and send your pixels There is also a mjpeg stream you can watch on port 1235 but it will slow down the machine massively :S

http://16-wall-1.nurdspace.lan:1235