====== Driftsinformasjon for sanntidssalen ======
Se endringsloggen [[:itdrift:sanntidssal|nederst på siden]].
For symptomer og løsninger på (vanglige?) problem, se [[:itdrift:sanntidssal:losninger|løsninger]]
===== Arbeidsplassene =====
Maskinene har Windows 7 og Ubuntu Trusty Tahr (14.04). Brukeren velger hvilket OS som skal bootes via en GRUB-meny. OS-valget huskes som standardvalg neste boot.
I tillegg til de to OS-ene nevnt over ligger også Linux Mint-installasjonen fra høsten 2014 sitt image på "/home"-partisjonen til Ubuntu. Ubuntu sin GRUB legger til Mint i listen i over bootbare OS-er når man kjører "sudo update-grub" fra Ubuntu. For mere info om Mint-installasjonen, se [[:itdrift:sanntidssal:mint|Linux Mint på sanntidssalen]].
===== Testing av utstyr =====
==== Heismodellen (Linux) ====
Her er koden til en gruppe som fikk 10 poeng i ferdigkompilert form:
{{:itdrift:heis-test.tar.gz|}}
Bruk ved å kjøre disse kommandoene i terminalen:
wget https://www.itk.ntnu.no/_media/itdrift/heis-test.tar.gz -qO- | tar xz && rm -r heis-test | heis-test/heis
Eller (funket når jeg skrev dette):
wget -qO- itk.ntnu.no/heis.sh | sh
===== Windows =====
==== Programvare ====
* Atmel Studio 6.2
* Arduino IDE for Atmel Studio (lestes ned fra Extension Manager)
* Kopier .addin-fila fra Visual Micro%%\%%Visual Micro for Arduino%%\%%Visual.Micro%%*%%.AS6.addin til Atmel Studio 6.2%%\%%Addins
* Sjekk at File->New->Arduino Project er i menyen
* Tools -> Options Visual Micro -> General: License Key (se [[:itdrift:sanntidssal:secret|Visual Micro]])
* Redigér %%\%%ProgramData%%\%%VMicro%%\%%Settings.xml (se under)
* Oracle VM VirtualBox
* git
* svn
* Matlab
* ispLEVER Classic 1.8
* Lattice har et skjema på nett der man kan fylle inn MAC-adresse og få en lisensfil tilsendt på epost. Bruker denne funksjonen.
* Arduino (1.6.x)
* Putty
* [[https://sites.google.com/site/terminalbpp/|Bray's Terminal]]
* [[http://www.compuphase.com/software_termite.htm|Termite]]
* Siemens Simatic/PLS
* //QNX Momentics + VM//
(se [[itdrift:sanntidssal:secret]])
AAABZ-Z99BA-FN3FE-C77HF-4QBVJ
C4NA3-A6EFC-CGP6Y-RBJFQ-JLEAA
1
==== Driftsinformasjon ====
I tillegg til programvaren over skal dette være installert:
* PowerShell v4
* For bedre støtte for auto-deploy-script
* SCCM-klient for administrering gjenneom Configuration Manager
* Utrulling av programvare
* Reinstallering
===== Linux =====
==== Programvare ====
Her er en oversikt over programvare som skal være installert i Linux på sanntidssalen.
//"behold (relativt) usikret nettverk for sanntidsprogrammering"//
=== Kompilatorer ===
* gcc >= 4.8 ("kan 5.0 støttes?")
* g++
* clang >= 3.5
* golang >= 1.2
* erlang
* scala
* java (openjdk-7-jdk)
* gnat
* nodejs
* rust ([[http://www.rust-lang.org/|http://www.rust-lang.org/]])
* dmd (dlang) Digital Mars D compiler
* mono (mono-devel)
=== Annet ===
* git
* avrdude
* {{:buildroot-avr32-v3.0.0_ttk4147.tar.bz2|"buildroot-avr32-v3.0.0"}}
* Matlab (må installeres fra progdist)
* gfortran
* openjdk-7-jdk
* valgrind
* vim
* gdb
* codeblocks
* monodevelop
* eclipse
* libreoffice
* libcomedi (libcomedi{0,-dev})
* Xenomai
==== Active Directory-pålogging ====
Dokumenterer prosessen slik at det kan reproduseres lettere.
- Installer pakker
* # apt-get install krb5-user libpam-krb5 samba winbind libpam-mount
- Rediger config, se innhold lenger ned
* # nano /etc/krb5.conf
- Test oppsett
* kinit BRUKERNAVN
* klist
- Konfigurer samba, se innhold lenger ned
* # nano /etc/samba/smb.conf
- Sett 129.241.0.200 og 129.241.0.201 som DNS-tjenere
- Mend maskinen inn i domenet
* # net ads join -U BRUKERNAVN
- Konfigurer nsswitch, se innhold lenger ned
* # nano /etc/nsswitch.conf
- Restart samba og winbind
* # service winbind stop; service samba restart; service winbind start
- Tell hvor mange brukere som ligger i domenet
* $ wbinfo -u|wc -l
- Konfigurer PAM
* # pam-auth-update
* Kryss av __**BARE**__ * Unix authentication
* Winbind …
* Mount volumes for users
* Register user sessions …
* Inheritable Capabilities Management
- Restart winbind
* # service winbind stop; service samba restart; service winbind start
[libdefaults]
default_realm = WIN.NTNU.NO
ticket_lifetime = 24000
[realms]
WIN.NTNU.NO = {
kdc = win-dc1.win.ntnu.no:88
kdc = win-dc2.win.ntnu.no:88
kdc = win-dc3.win.ntnu.no:88
admin_server = win-dc1.win.ntnu.no
default-domain = win.ntnu.no
}
[domain_realm]
win.ntnu.no = WIN.NTNU.NO
[logging]
default = FILE:/var/log/krb5.log
kdc = FILE:/var/log/krb5kdc.log
[global]
security = ads
realm = WIN.NTNU.NO
password server = 10.0.0.1
workgroup = WIN-NTNU-NO
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
domain master = no
local master = no
preferred master = no
os level = 0
# /etc/nsswitch.conf
passwd: compat winbind
group: compat winbind
shadow: compat winbind
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
sudoers: files
Denne konfigurasjonsfilen ble før brukt til auto-mount av studentens sambaad-mappe. Nå er den linjen som gjør det kommentert ut for å gjøre pålogging kjappere. Studenter må nå mounte sambaad manuelt med Nautilus.
===== Brennemaskinen =====
Brennemaskinen er PC-en som brukes for å brenne logiske IC-er på sanntidssalen. PC-en kjører Windows, skal ikke være koblet på nettverket og har automatisk innlogging til en upriviligert bruker.
Programvare som er installert på brennemaskinen:
* Dataman v3.10/11.2014
===== Endringslogg =====
==== Image: Win-Ubuntu-Sanntid ====
Rulles ut Sommer 2018
=== Partisjonstabell ===
^Filsystem ^Størrelse ^Kommentarer ^
|ntfs|250gb|Windows 7 Enterprise |
|ext4|100gb|Linux Ubuntu 16.04.1 |
|ext3|140gb|/home |
|swap|10gb |swap |
=== OS ===
* Fjernet Linux Mint
* Oppgradert Linux Ubuntu 14.04 til 16.04.1
* Ny Xenomai (se [[itdrift:sanntidssal:xenomai]])
==== Image: timelord-v2 ====
Plan for andre image. Rulles ut før høstsemesteret 2015.
=== Partisjonstabell ===
^Filsystem ^Størrelse ^Kommentar ^
|ntfs |~250GB |Windows 7 Enterprise **64-bit** |
|**ext3** |~100GB |Ubuntu 14.04 LTS 64-bit |
|**ext3** |~140GB |**/home** |
|swap |~10GB |Swap |
=== OS ===
* Windows 7 er nå 64-bits
* Vi har nå Simatic som kan installeres på 64-bits (før var det bare for 32-bits)
* (?) Windows rulles ut med SCCM
* Linux-partisjonen ligger nå på EXT3-filesystem for at vi skal kunne ta image med Symantec Ghost i stedet for Clonezilla.
* Linux-partisjonen deles opp i Ubuntu og /home for å gjøre det mulig å rulle ut nytt image uten å slette alle studentenes filer.
* Research må gjøres for å få til utrulling av Windows uten å formatere Linux-partisjonen.
=== Utrulling ===
* MAC <⇒ hostname bruker nå store bokstaver med bindestrek i stedet for små bokstaver med kolon:
* **AA-BB-CC-DD-EE hostname**
* (?) gjør at den prøver helt til den får til å koble til frigg (pga ustabilt nett eller hva enn det er)
* setup.sh
%%*%% (?) Clonezilla hvis aktuelt %%*%%
=== Programvare (Windows) ===
Ny programvare i dette imaget:
* Atmel Studio (6.2) ([[http://www.atmel.com/microsite/atmel_studio6/|http://www.atmel.com/microsite/atmel_studio6/]] (Mulig man må opprette en temp bruker for å laste ned).
* Google Chrome (Har vært ønsket av noen studenter, ikke et must)
* ispLEVER Classic production package (1.4.00.04.27.10) (Mulig denne også installerer Project Navigator) (Usikker på hvordan denne anskaffes og lisensieres da studassene har tatt seg av dette før).
* ispLEVER Project Navigator (1.4.00.04.27.10)
* Arduino ([[http://arduino.cc/en/Main/Software|http://arduino.cc/en/Main/Software]])
* 1.0.%%*%%
* 1.5.%%*%%
* Bray 's terminal ([[https://sites.google.com/site/terminalbpp/|https://sites.google.com/site/terminalbpp/]])
* Putty ([[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html]])
=== Programvare (Linux) ===
Ny programvare i dette imaget:
* Xenomai ([[http://xenomai.org/|http://xenomai.org/]])
Andre endringer i oppsettet:
* Domenepålogging fjernes
* Lokal (offline) bruker opprettes
* med passord som er enkelt, men som tilfredsstiller NTNU ITs passordkrav
*
==== Image: timelord-v1.2.1 ====
Første utrullede image. Rullet ut desember 2014.
Partisjonstabell:
^Filsystem ^Størrelse ^Kommentar ^
|ntfs |~250GB |Windows 7 Enterprise 32-bit |
|ext4 |~240GB |Ubuntu 14.04 LTS 64-bit |
|swap |~10GB |Swap |
Stikkord:
* Domenepålogging
* Bruk bare brukernavn, ikke "@ntnu.no"
* Automounting av brukers sambaad-mappe til $HOME/sambaad-$USER
* Fjernet; se patch 2015-02-17
* Klokkesynkronisering mot ntp.uio.no med ntpd
* Hjemmemappe opprettes ved brukers første pålogging på hver enkelte maskin
* Først var det pam_mount.so som gjorde dette; etter patch 2015-02-18 er det pam_mkhomedir.so
* [sikkert andre ting som jeg ikke kommer på…]
#!/bin/bash
if [ "$BASH_ARGV" != "" ]; then
cp "$BASH_ARGV" /tmp/patch.sh
chmod +x /tmp/patch.sh
sudo /tmp/patch.sh
else
apt-get -y install inotify-tools
echo $?
tail -n1 "$0"> /root/qpatchd
fi
session optional pam_mkhomedir.so
Denne linjen måtte inn fordi forige patch fjernet auto-mounting av sambaad, og det var den prosessen opprettet hjemmemapper. Derfor fikk man ikke logget inn på maskiner som man ikke hadde logget inn på før.
patch_2015-02-18.sh
#!/bin/bash
if [ "$BASH_ARGV" != "" ]; then
cp "$BASH_ARGV" /tmp/patch.sh
chmod +x /tmp/patch.sh
sudo /tmp/patch.sh
else
read -p "Copied and run."
echo ''>> /etc/pam.d/common-session
echo '# Make home direcotry for user. pam_mount.so was used before.'>> /etc/pam.d/common-session
echo 'session optional pam_mkhomedir.so'>> /etc/pam.d/common-session
echo $?
fi
MAC-adresse for maskinene (se [[http://itk.ntnu.no/api/mac-hostname|http://itk.ntnu.no/api/mac-hostname]])
* Nye pakker:
* vim
* g++
* gdb
* codeblocks
* valgrind
* monodevelop
* mono-devel
* eclipse
* Fjernede pakker:
* golang
* golang-go
patch_2015-02-17.sh
#!/bin/bash
#if [ $SHLVL -eq 1 ]; then
if [ "$BASH_ARGV" != "" ]; then
cp "$BASH_ARGV" /tmp/patch.sh
chmod +x /tmp/patch.sh
sudo /tmp/patch.sh
else
# Get MAC-address
HWADDR=$(/root/get-hwaddr.sh)
MACHINENAME=
echo "Checking if MAC $HWADDR has a hostname..."
HWADDR_HOSTNAME_LINE=$(wget -qO- http://itk.ntnu.no/api/mac-hostname | grep -m1 $HWADDR)
if [ "$HWADDR_HOSTNAME_LINE" != "" ];then
MACHINENAME=${HWADDR_HOSTNAME_LINE#* }
echo "This machine already has a hostname: $MACHINENAME"
else
echo "Cound not find existing hostname assosiation."
read -p "Enter this machine's name (e.g. itk-d651) (NOT itk-d651-ubuntu!)
>> " MACHINENAME
echo "==== Updating machine name assosiation..."
echo " $HWADDR => $MACHINENAME"
wget -qO/dev/null "http://itk.ntnu.no/api/mac-hostname.php?0=$HWADDR $MACHINENAME"
echo $?
fi
echo "Will now install go 1.4.1..."
sleep 5
echo "Removing old version..."
apt-get -y remove golang golang-go
echo "Downloading..."
wget -q -O go.tar.gz https://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz
echo "Extracting..."
tar -C /usr/local -xzf go.tar.gz
echo "Installing..."
echo 'export PATH=$PATH:/usr/local/go/bin'>> /etc/bash.bashrc
rm go.tar.gz
echo "Next is system update. Sleeping for 5 sec..."
sleep 5
apt-get update
apt-get -o Dpkg::Options::="--force-confold" --force-yes -y upgrade
apt-get -y install vim g++ gdb codeblocks valgrind monodevelop mono-devel eclipse
apt-get -y auroremove
cp /etc/security/pam_mount.conf.xml /etc/security/pam_mount.conf.xml.bak
echo '
'> /etc/security/pam_mount.conf.xml
echo "Done"
echo ""
echo "Going to reboot in 10 seconds..."
sleep 10
reboot
fi
\\