Commit f0a5d58c authored by Diego Pasqualin's avatar Diego Pasqualin
Browse files

le-multiterminal: Trying to make a .deb solution for userful multiseat


Signed-off-by: default avatarDiego Pasqualin <dpasqualin@c3sl.ufpr.br>
parent fdc47050
Package: le-multiterminal
Priority: important
Section: main
Version:
Version: 0.0.7
Maintainer: LE Maintainer <le-maintainer@c3sl.ufpr.br>
Description: Userful multiplier for Linux Educacional 5
Architecture: i386
Pre-Depends: le-users (>=0.0.12)
Pre-Depends: le-users (>=0.0.12), userful-multiseat
Depends: fakeroot, dkms, xserver-xorg-video-fbdev, xserver-xorg-video-dummy,
xserver-xorg-input-void, python-crypto, python-gudev, python-psutil,
pulseaudio, gstreamer0.10-pulseaudio, libpulse-mainloop-glib0, libpulse0,
pulseaudio-esound-compat, pulseaudio-module-x11, pulseaudio-utils,
libqt4-gui, libxcb-image0, liblightdm-gobject-1-0,
userful-xorg-dl-driver, userful-xorg-evdev, userful-x-server, wcpatch-dkms,
xf86-video-smsc, xorg-x11-drv-uvdd
......@@ -27,4 +27,33 @@ if ! grep -q "plugin.disable_full_page_plugin_for_types" $PREFFILE; then
echo 'user_pref("plugin.disable_full_page_plugin_for_types", "application/pdf,video/mp4,application/ogg,audio/x-ms-wma,audio/midi,audio/mpeg,audio/ogg,video/x-ms-wvx,audio/x-wav,video/x-ms-wmv,video/mpeg,video/ogg,video/webm");' >> $PREFFILE
fi
# Copy dconf config file to add "Activation Area" into gnome3 panel
# - New to LE5 final
# - Not a ideal solution, but it's not easy to fix it in a proper way.
# FIXME: copy it to all users, not just the default ones.
DCONFFILE="/etc/userful/dconf/user"
if [ -f $DCONFFILE ]; then
if [ -d /etc/skel/.config/dconf ]; then
cp -f $DCONFFILE /etc/skel/.config/dconf/
fi
if [ -d /etc/le/home_alunos/.config/dconf ]; then
cp -f $DCONFFILE /etc/le/home_alunos/.config/dconf/
fi
if [ -d /home/professor/.config/dconf ]; then
cp -f $DCONFFILE /home/professor/.config/dconf/
fi
if [ -d /home/admin/.config/dconf ]; then
cp -f $DCONFFILE /home/admin/.config/dconf/
fi
fi
# Activate multiseat
/usr/sbin/userful-umx --enable --silent
/usr/sbin/userful-hotplug --enable
/usr/sbin/userful-xorgd --enable
/usr/sbin/userful-resources --enable
/usr/sbin/userful-db --enable
/usr/sbin/userful-controllers --enable
/usr/sbin/userful-assignment --enable
exit 0
#!/bin/bash
#
# Copyright (C) 2004-2010 Centro de Computacao Cientifica e Software Livre
# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
#
# This file is part of le-multiterminal
#
# le-multiterminal 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 program 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 program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.
# Paths
USERFULETC=/etc/userful
# List of files to divert
divertList="
$USERFULETC/ucc.conf \
$USERFULETC/devices_settings.conf \
$USERFULETC/monitor_info.conf \
"
# Divert files
if [[ "$1" != "upgrade" ]]; then
for file in $divertList; do
if test -e $file.real; then
rm -f $file
dpkg-divert --package le-multiterminal --remove --rename \
--divert $file{.real,}
fi
done
fi
#!/bin/bash
# Copyright (C) 2011-2012 Centro de Computacao Cientifica e Software Livre
# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
#
# This file is part of le-multiterminal
#
# le-multiterminal 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.
#!/bin/bash
# This program 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 program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.
# Paths
USERFULETC=/etc/userful
# List of files to divert
divertList="
$USERFULETC/ucc.conf \
$USERFULETC/devices_settings.conf \
$USERFULETC/monitor_info.conf \
"
# Divert files
for file in $divertList; do
dpkg-divert --package le-multiterminal --add --rename \
--divert $file{.real,}
done
# -*- mode: python -*-
# ex: set syntax=python:
# ColorDepth - int
# RecommendedColorDepth - int
# RecommendedResolution - resolution
# CurrentResolution - resolution
# Resolution = (1280, 1024, 60)
# SupportedColorDepths = [8, 16, 24, 32]
# SupportedResolutions
# Where:
# resoultion - (int, int, int) - (width, height, refresh_rate)
video_defaults = \
dict(
MX='XORG',
SX='XORG',
UseXRANDR = True,
ColorDepth = 24,
RecommendedColorDepth = 24,
RecommendedResolution = (1024, 768, 60),
CurrentResolution = (1024, 768, 60),
Resolution = (1024, 768, 60),
SupportedColorDepths = [16, 24],
SupportedResolutions = [ # should be in order of preference
# 4:3
(1280, 960, 60),
(1152, 864, 60),
(1024, 768, 60),
(800, 600, 60),
(640, 480, 60),
# 5:4
(1280, 1024, 60),
# 16:9
(1920, 1080, 60),
(1600, 900, 60),
(1366, 768, 60),
(1360, 768, 60),
(1280, 720, 60),
(852, 480, 60),
# 16:10
(1920, 1200, 60),
(1680, 1050, 60),
(1440, 900, 60),
])
DEVICES = {
# Here, devices are matched to rules.
#
# Any device plugged into the system can match a rule that has specific
# configuration options for that device.
#
# The device is specified by giving a key in the following syntax:
# (device_type, vendor_id, product_id, subvendor_id, subdevice_id)
#
# The most exact match is considered first, followed by more general matches.
# If you specify 'any' in one of the fields, it means that any value will match.
#
# So, to set the 'enabled' flag for any cdrom device, do:
# ('cdrom', any, any, any, any) : dict(enabled = False)
#
# To create a whitelist, allowing only certain cdrom devices, do:
# ('cdrom', any, any, any, any): dict(enabled = False), # By default, disable all cdrom devices
# ('cdrom',0x13fd, 0x842, any, sny): dict(enabled = True), # Enable CD-ROM device with vendor 13fd and product 842
#
# You can get the vendor and product codes by running lsusb with the device inserted.
#
# USB Devices
# SMSC
('video', 0x0424, any, any, any) : dict(video_defaults,
ColorDepth = 24,
SupportedColorDepths = [16, 24]),
# ATrust
# ATrust provides both SMSC and DL based devices
# M300
('video', 0x1bdd, 0x100b, any, any) : dict(video_defaults,
ColorDepth = 24,
SupportedColorDepths = [16, 24]),
# M302
('video', 0x1bdd, 0x100c, any, any) : dict(video_defaults,
ColorDepth = 24,
SupportedColorDepths = [16, 24]),
# M303
('video', 0x1bdd, 0x100d, any, any) : dict(video_defaults,
ColorDepth = 24,
SupportedColorDepths = [16, 24]),
# ViewSonic
# ATrust provides the access device to ViewSonic with SMSC chipset
('video', 0x1bdd, 0x2b74, any, any) : dict(video_defaults,
ColorDepth = 24,
SupportedColorDepths = [16, 24]),
# HP
('video', 0x03F0, any, any, any) : dict(video_defaults,
ColorDepth = 24,
SupportedColorDepths = [16, 24]),
# Display Link
('video', 0x17e9, any, any, any) : dict(video_defaults,
ColorDepth = 16,
SupportedColorDepths = [16, 24, 32]),
# MCT
('video', 0x0711, any, any, any) : dict(video_defaults,
ColorDepth = 16,
SupportedColorDepths = [16, 24, 32]),
# VGA devices
# ATI
('video', 0x1002, any, any, any) : dict(video_defaults,
SX='XORG', MX='OLDX',
UseXRANDR = False),
# ATI Radeon HD 4250
('video', 0x1002, 0x9715, any, any) : dict(video_defaults,
CurrentResolution = (1360, 768, 60),
Resolution = (1360, 768, 60),
ColorDepth = 24,
SupportedColorDepths = [16, 24],
UseXRANDR = False),
# Disable xrandr for cards that we know has problems.
#('video', 0x1002, 0x791f, any, any) : dict(video_defaults, UseXRANDR = False),
#('video', 0x1002, 0x9710, any, any) : dict(video_defaults, UseXRANDR = False),
#('video', 0x1002, 0xaa68, any, any) : dict(video_defaults, UseXRANDR = False),
# Radeon HD 5400
#('video', 0x1002, 0x68e0, any, any) : dict(video_defaults, UseXRANDR = False),
# NVIDIA
('video', 0x10de, any, any, any) : dict(video_defaults,
SX='XORG', MX='OLDX', UseXRANDR = False),
# Matrox
('video', 0x102b, any, any, any) : dict(video_defaults),
# Savage
('video', 0x5333, any, any, any) : dict(video_defaults),
# Intel
('video', 0x8086, any, any, any) : dict(video_defaults),
# Intel Sandy Bridge Integrated Graphics Controller
('video', 0x8086, 0x0102, any, any) : dict(video_defaults,
CurrentResolution = (1360, 768, 60),
Resolution = (1360, 768, 60),
ColorDepth = 24,
SupportedColorDepths = [16, 24],
UseXRANDR = False),
# Intel Ivy Bridge Integrated Graphics Controller
('video', 0x8086, 0x0152, any, any) : dict(video_defaults,
CurrentResolution = (1360, 768, 60),
Resolution = (1360, 768, 60),
ColorDepth = 24,
SupportedColorDepths = [16, 24],
UseXRANDR = False),
# SiliconMotion
# TN-750
('video', 0x126f, 0x0750, any, any) : dict(video_defaults,
SX='OLDX', MX='OLDX',
CurrentResolution = (1360, 768, 60),
Resolution = (1360, 768, 60),
ColorDepth = 24,
SupportedColorDepths = [16, 24],
UseXRANDR = False),
# TN-502
('video', 0x126f, 0x0501, any, any) : dict(video_defaults,
SX='OLDX', MX='OLDX',
CurrentResolution = (1280, 720, 60),
Resolution = (1280, 720, 60),
ColorDepth = 16,
SupportedColorDepths = [16],
UseXRANDR = False),
# Cirrus
('video', 0x1013, any, any, any): dict(video_defaults, ColorDepth = 16, UseXRANDR = False),
# VirtualBox / Vesa
('video',0x80ee, any, any, any): dict(video_defaults, ColorDepth = 16, UseXRANDR = False),
# CDROM Whitelist
('cdrom', None, None, None, None): dict(enabled = False), # By default, disable all cdrom devices
('cdrom',0x13fd, 0x842, None, None): dict(enabled = True), # Enable CD-ROM device with vendor 13fd and product 842
}
{"HorizSync": "30-61", "VertRefresh": "56-75", "Modeline": "\"1360x768\" 85.50 1360 1424 1536 1792 768 771 777 795 +hsync +vsync"}
ucc_port=9000
network_station_enabled=False
\ No newline at end of file
#!/bin/bash
#
# Copyright (C) 2004-2012 Centro de Computacao Cientifica e Software Livre
# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
#
# This file is part of le-multiterminal
#
# le-multiterminal 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 program 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 program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.
markupFileDir=${HOME}/.userful
markupFile=${markupFileDir}/wizard_done
if test "$USER" = "admin" -a ! -f "$markupFile"; then
mkdir -p "$markupFileDir"
if userful-setup-wizard; then
touch "$markupFile"
fi
fi
exit 0
[Desktop Entry]
Encoding=UTF-8
Type=Application
Exec=bash /usr/local/bin/le-multiseat-check-wizard.sh
Icon=userful
Terminal=false
Comment=Show userful-setup-wizard on the first login
Comment[pt_BR]=Mostra o userful-setup-wizard no primeiro login
Name=le-multiseat-check-wizard
Name[pt_BR]=le-multiseat-check-wizard
GenericName=Show userful-setup-wizard on the first login
GenericName[pt_BR]=Mostra o userful-setup-wizard no primeiro login
Categories=System;
==================================================
Userful MultiSeat 4.1 Release Notes
==================================================
Copyright(C) 2011 Userful Corporation. All rights reserved.
Userful MultiSeat is a trademark of Userful Corporation.
==================================================
Contents
==================================================
1) Introduction
2) Features
3) License Agreement
4) Internationalization
5) Compatible Video Cards
6) Installing Userful MultiSeat 4.1
7) Post-Install Configuration
8) Known Issues
9) Help and Support
==================================================
1) Introduction
==================================================
Software Package: Userful MultiSeat 4.1
Release Date: July, 2011
Userful MultiSeat 4.1 (versions of this software previous to version 4.0 are named Userful Multiplier) is a set of standard Linux software packages that extend the X Window System to support several fully independent and concurrent workstations using a single computer box. This is accomplished by adding video cards, keyboards and mice to a single PC system and installing Userful's software.
This software is available as:
Userful MultiSeat 4.1: A stand-alone software package compatible with Linux Educacional 4.0.
==================================================
2) Features:
==================================================
Userful MultiSeat Version 4.1 features:
* The new Userful System Tray Helper for simple management of USB storage devices
* Improved video performance with TN502 video card solutions
* Support for Linux Educacional 4.0
* The Userful Control Center for easy management of stations and licenses
==================================================
3) License Agreement
==================================================
This product includes commercial software that is licensed, not sold, and is governed by an End User License Agreement (EULA). By installing, copying or using this software you acknowledge that you have read and understand this Agreement, and agree to be bound by this EULA's terms and conditions.
You can review the terms of this EULA either by visiting the online copy of the EULA, at http://support.userful.com/wiki/index.php/Agreements/EULA or by consulting the Userful-EULA.txt file included with your download.
==================================================
4) Internationalization
==================================================
Userful MultiSeat 4.1 is fully translated into:
* English (en)
* Brazilian Portuguese (pt_BR)
==================================================
5) Compatible Video Cards
==================================================
Userful MultiSeat 4.1 is compatible with:
* ThinNetworks TN502 dual-head cards
* ThinNetworks TN502 quad-head cards
==================================================
6) Installing Userful MultiSeat 4.1
==================================================
Userful MultiSeat 4.1 is provided as a self-extracting package.
To install, open a terminal and navigate to the folder containing the package. Use this command as root:
$ ./[package name]
==================================================
7) Post-Install Configuration
==================================================
---------------------------------------
Monitor Resolution
---------------------------------------
Userful MultiSeat 4.1 does not require first-boot manual configuration of monitor resolutions. Instead, a default resolution of 1280x720 is used on each station automatically. Individual monitor resolutions may be customized using the Userful Control Center.
---------------------------------------
Assigning Keyboards and Mice
---------------------------------------
Userful MultiSeat 4.1 supports auto-assignment of input devices, when possible. If the appropriate station assignment cannot be resolved automatically, Userful's "Press F-key" utility is launched.
This utility allows the user to link keyboards and mice to a specific monitor with a single key press and/or mouse click.
---------------------------------------
The Control Center
---------------------------------------
Most Userful MultiSeat 4.1 functions are managed through the Userful Control Center.
The Control Center features:
* A system/station status dashboard
* Individual or system-wide display configuration
* Individual or system-wide control over station access
* Software updates, license management and access to help and support
Accessing the Control Center:
-----------------------------
The Userful Control Center is located under [Extras > Userful Control Center]. A dialog window will appear asking for a password; only users with system administrator or root privileges can access the Control Center.
Some functions, such as licensing and updates, require access to the internet.
---------------------------------------
Updating the Operating System
---------------------------------------
Operating systems such as Linux Educacional are works in progress, and updates are released frequently. Most Linux operating systems will notify users automatically if updates are available; alternatively the OS should have an "update manager".
For smooth functioning of Userful MultiSeat, it is very important to TURN OFF Userful MultiSeat before updating OS software.
Userful MultiSeat can be turned off and on in the Control Center.
After OS updates are complete, return to the Control Center to turn Userful MultiSeat back on. Reboot to complete updates and re-initialize Userful MultiSeat.
***PLEASE NOTE: Due to video driver constraints, the kernel MUST NOT BE UPDATED. The video drivers require the 2.6.35-25-generic linux kernel for proper operation.
==================================================
8) Known Issues
==================================================
--------------------------------------------------
Onboard Station Must Have Monitor Connected to Start Userful MultiSeat
--------------------------------------------------
Depending on the particular hardware of the host system, Userful MultiSeat may fail to start if there is no monitor connected to the onboard display output. Userful recommends always ensuring a monitor is connected to onboard video.
--------------------------------------------------
Systems Using the KDE Desktop Manager (KDM) Require Ethernet and an Assigned IP to Function
--------------------------------------------------
Linux systems using KDM connect to the X-server through a public IP address; if the host machine does not have an assigned IP address (which requires an attached ethernet cable), the system will be unresponsive.
--------------------------------------------------
Onboard Audio Jack Sometimes Muted by Either AlsaMixer or PulseAudio
--------------------------------------------------
Occasionally it seems the audio on the onboard audio is not working, when in fact it has been muted by either AlsaMixer or PulseAudio. This issue is unpredictable and difficult to reproduce; we recommend that if you are experiencing this problem you refer to AlsaMixer and PulseAudio documentation for how to adjust settings with those applications.
--------------------------------------------------
Updating the Linux Kernel Breaks the SiliconMotion Video Driver
--------------------------------------------------
The SiliconMotion video driver is dependent entirely on the 2.6.35.25-generic linux kernel. Changing kernel versions will result in system instability and extremely poor performance if using TN502 video cards.
--------------------------------------------------
Non-natively Supported Monitor Resolutions Result in Severe Artifacts
--------------------------------------------------
When changing monitor resolution through the Userful Control Center, it is very important to be sure that the chosen resolution is natively supported by the monitor. If a resolution that is not natively supported is set, the affected monitor(s) will display severe video artifacts including loss of horizontal synchronization.
--------------------------------------------------
Turning Off and/or Uninstalling Userful MultiSeat Requires Manual Reboot with Linux Educacional
--------------------------------------------------
When disabling Userful MultiSeat or uninstalling Userful MultiSeat with Linux Educacional, it is critical to wait one minute after performing these actions, during which time the user will see a black screen with a cursor blinking in the upper left corner. After one minute, the user must then reboot the system manually, either through SSH or by physically rebooting the system. Failure to wait one full minute before reboot may cause system instability.
--------------------------------------------------
With Linux Educacional, 1280x720 Monitor Resolution is Recommended
--------------------------------------------------
Setting monitor resolution to any value other than 1280x720 will result in the EduBar being displaced horizontally on the screen.
--------------------------------------------------
Digital Cameras Using PTP Must be Accessed Through An Application (i.e./DigiKam)
--------------------------------------------------
Under Linux, digital cameras using the Picture Transfer Protocol are not auto-detected by the system and must be accessed through a photo application such as DigiKam.
--------------------------------------------------
Audio or Video CD/DVDs Cannot be Used by More Than One Station Simultaneously
--------------------------------------------------
Due to physical limitations in audio-visual disk playback, the same CD or DVD cannot be played on multiple stations simultaneously. There is no such limitation with data disks.
==================================================
9) Help and Support
==================================================
In Brazil, support for this product is provided by ThinNetworks:
Support Online: http://www.thinnetworks.com.br/chat/chat.php
Email: suporte@thinnet.com.br
Phone: +55 (61) 3037-5111
Also, support can be provided by Userful Corporation:
Support Website: http://support.userful.com
Company Home Page: http://userful.com
Online: Customer Support (through support.userful.com)
Email: support@userful.com
Phone: 403-289-2177 extension 2
Toll-Free: 1-866-873-9119
(Note: Office hours for telephone support:
Monday to Friday, 8:30am - 5:30pm MT
(UTC-6 or UTC-7))
==================================================
[
{ 'db_version': 3, 'ambiguous_storage_assignment': "0", 'auto_assignment_enabled': False, 'check_for_updates_enabled': True, 'is_locked_pc': True, 'is_optimized': True, 'multistation_enabled': True, },