No edit summary |
No edit summary |
||
Line 101: | Line 101: | ||
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. | 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: | |||
<code type=bash> | |||
#!/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 | |||
</code> | |||
* Internal IP range: VLAN1, 192.168.0/24, set untagged on #2-#8, tagged on #1 | * Internal IP range: VLAN1, 192.168.0/24, set untagged on #2-#8, tagged on #1 |
Revision as of 23:13, 10 March 2016
16 Screen Wall | |
---|---|
Participants | Nooitaf, User:zmatt |
Skills | Linux, X |
Status | Active |
Niche | Video artsy stuff |
Purpose | Fun |
Tool | No |
Location | Space |
Cost | |
Tool category |
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:
- !/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.