FreeBSD

From Programvareverkstedet
Jump to: navigation, search

Oppsett PVV-oppsett på FreeBSD

FreeBSD er et UNIX-system, og dermed er det godt i stand til å kjøre PVV-oppsett og samtidig være brukervennlig.

Automount/NFS

Automount er inkludert i FreeBSD og det er bare å legge noen filer på plass.

  • Kopier /etc/auto* fra en annen PVV-maskin, uten å overskrive filer. Dette vil føre til at auto_master ikke blir kopiert.
cd
scp login.pvv.ntnu.no:/etc/auto\* .
cp -vn auto* /etc
  • I /etc/auto_master, kommenter vekk regelen som starter med /home.
  • Tilføy innholdet fra auto.master til auto_master:
    cat /etc/auto.master >> /etc/auto_master

Nå kan du skru på automount

sysrc autofs_enable=YES
sh /etc/rc

Hvis det ikke fungerer, kan det hjelpe å redigere /etc/auto_master og legge til resvport som mount-flagg i auto_pvv. Husk også at BSD utgaven av NFS ikke liker nfsvers-parameteren som noen PVV-maskiner har.


Kerberos

Bare kopier /etc/krb5.conf fra en annen PVV-maskin. Fungerer ellers out-of-the-box. Prøv om det fungerer med
kinit brukernavn
Hvis du ikke får noe feilmelding fungerer det.


SSH

Hos PVV lar vi root logge inn med passord. FreeBSD bruker OpenSSH sitt standardoppsett som forbyr dette. I /etc/ssh/sshd_config, sett PermetRootLogin yes


PAM

I /etc/pam.d/system og /usr/local/etc/pam.d/kde, fjern # foran alle regler som nevner pam_krb5.so.

I /etc/pam.d/su, kommenter ut reglen som nevner pam_group.so.

passwd

Her blir det litt vanskelig. FreeBSD bruker /etc/passwd.master som autoritativ brukerkilde, og /bin/bash er ikke en gyldig shell (prøv /usr/local/bin/bash istedenfor).

Vi har skrevet følgende script som tar en Linux-stil passwd fil som input, og fikser opp alle brukere, scriptet forventer en PVV-groups fil i arbeidsmappe for å hente manglende grupper fra:

#!/bin/sh
# createUsers.sh
[ -f 'group' ] || echo Put a group file in the working directory >&2
while read passwd
do
	username="$(echo "$passwd" | cut -d: -f1)"
	uid="$(echo "$passwd" | cut -d: -f3)"
	gid="$(echo "$passwd" | cut -d: -f4)"
	gecos="$(echo "$passwd" | cut -d: -f5)"
	home="$(echo "$passwd" | cut -d: -f6)"
	shell="$(echo "$passwd" | cut -d: -f7)"

	[ $uid -lt 1000 ] && continue
	getent passwd "$username" >/dev/null && action=usermod || action=useradd

	[ "$shell" = '/bin/bash' ] && shell=/usr/local/bin/bash
	[ "$shell" = '/bin/sash' ] && shell=/usr/local/bin/sash
	[ "$shell" = '/bin/zsh' ] && shell=/usr/local/bin/zsh

	echo "$username:x:$uid:$gid:$gecos:$home:$shell"

	if ! getent group "$gid" >/dev/null 2>&1
	then
		grep ":*:$gid:" group | head -n1 >> /etc/group
	fi

	pw "$action" -n "$username" -u "$uid" -g "$gid" -d "$home" -s "$shell" -c "$gecos"

done

Tastatur

Disse kommandoene vil endre tastaturinstillingene for konsollen etter reboot:

sysrc keymap=no
sysrc keyrate=fast

For å sette tastaturinndeling i X11 også, lag en konfigurasjonsfil:

# /usr/local/etc/X11/xorg.conf.d/kbd-layout-pvv.conf

Section	"InputClass"
	Identifier	"All Keyboards"
	MatchIsKeyboard	"yes"
	Option		"XkbLayout" "no, us"
EndSection

Slik får vi norsk inndeling med mulighet til å bytte til amerikansk, ved å trykke på Alt+Shift. FreeBSD-dokumentasjonen har mer info.

Programvare

Jeg har i hovedsak brukt A FreeBSD Desktop Howto for å installere desktoppen, men her er de kommandoene som jeg synes er fornuftige å kjøre:

sysrc allscreens_kbdflags="-b quiet.off"
sysrc moused_enable=YES
sysrc hcsecd_enable=YES
sysrc sdpd_enable=YES
sysrc ntpd_enable=YES
sysrc ntpd_flags=-g
sysrc devfs_system_ruleset=devfsrules_common

sysrc hald_enable=YES
sysrc dbus_enable=YES
sysrc kdm4_enable=YES
sysrc autofs_enable=YES

zfs create -o mountpoint=/scratch venture/scratch
chmod 1777 /scratch

pkg install \
	audio/wmix \
	devel/git \
	editors/nano editors/vim \
	irc/irssi irc/weechat \
	mail/thunderbird \
	net/freerdp net/wmnd \
	net-im/pidgin \
	security/gnupg \
	shells/bash shells/fish shells/sash shells/zsh \
	sysutils/wmcpuload \
	www/chromium www/firefox www/kwebkitpart \
	x11/nvidia-settings x11/nvidia-xconfig \
	x11/cinnamon x11/kde4 x11/mate x11/rxvt-unicode x11/sakura x11/xorg \
	x11-clocks/wmclock \
	x11-fm/rox-filer \
	x11-wm/awesome x11-wm/awesome-vicious x11-wm/compiz-fusion x11-wm/fvwm x11-wm/i3 x11-wm/openbox x11-wm/windowmaker x11-wm/xfce4

Legg til i /etc/fstab

proc	/proc	procfs	rw	0	0
fdesc	/dev/fd	fdescfs	rw,auto,late	0	0

Legg til i /boot/loader.conf

mmc_load="YES"
mmcsd_load="YES"
sdhci_load="YES"

atapicam_load="YES"

fuse_load="YES"

amdtemp_load="YES"

tmpfs_load="YES"

aio_load="YES"

libiconv_load="YES"
libmchain_load="YES"
cd9660_iconv_load="YES"
msdosfs_iconv_load="YES"
snd_driver_load="YES"
nvidia_load="YES"

hw.vga.textmode=1

Hacks

Jeg fikk en feilmelding "Cannot open ConsoleKit session: Unable to open session: Launch helper exited with unknown return code", og en tråd i FreeBSD Forums. Løsningen i tråden hjalp meg ikke, men tråden hjalp meg med å finne en ny løsning. Forhåpentligvis er den midlertidig, fordi den virker ikke særlig pen. Jeg kjører 11-CURRENT.
ln -s libkvm.so.6 /lib/libkvm.so.7