How to create an Ubuntu baseline image for OMF from scratch¶
Preparation¶
- get physical access to a node
- download the latest stable Ubuntu server release .iso
- insert a USB stick into a Ubuntu machine and run "System - Administration - USB Startup Disk Creator"
- format the stick and choose the .iso you downloaded to create a bootable device
- umount the stick, insert it into the testbed node and reboot
- if necessary, change the BIOS setting so the node boots from USB
Ubuntu installation¶
- install Ubuntu server with your preferred options
- it's recommended to format the partition(s) to ext3, since imagezip cannot handle ext4 as of now. Imagezip is used in "omf load" and "omf save".
Customizing Ubuntu for OMF¶
if [[ -n $new_host_name ]]; then
echo "$new_host_name" > /etc/hostname
/bin/hostname $new_host_name
fi
- the above script contains brackets, redmine doesn't show them... look at the source
- edit /etc/default/ntpdate and change "NTPDATE_USE_NTP_CONF=yes" to no
- create a file /etc/cron.hourly/ntpdate-debian with content:
#!/bin/sh -e
ntpdate-debian
- then chmod 755 the above file
- To disable SSH root password run passwd -d root
- open /etc/ssh/sshd_config and change:
PermitRootLogin yes
PermitEmptyPasswords yes
UsePAM no
- restart ssh
- open a shell on another machine and connect to the node using SSH as user root. There should be no password query.
- remove the user that was created during Ubuntu installation
- edit /var/lib/locales/supported.d/local and add the line "en_AU.UTF-8 UTF-8" and a newline, then run locale-gen
- VIA Nehemiah CPUs at WINLAB do not support PAE. Therefore you need to uninstall the server kernel with PAE support and install the non-PAE kernel (linux-generic package, image + headers).
- for OMF 5.2, we do not support the ath5k driver that comes with Ubuntu yet. That's why we need to prevent it from loading on boot. Edit /etc/modprobe.d/blacklist-ath5k.conf and add the line
blacklist ath5k
- Let's also blacklist ipw2200. Edit /etc/modprobe.d/blacklist-ipw2200.conf and add the line
blacklist ipw2200
- Let's also blacklist evbug, since it prints a lot of kernel messages. Edit /etc/modprobe.d/blacklist-evbug.conf and add the line
blacklist evbug
- before installing madwifi, run apt-get install binutils gcc gcc-4.4 libc-dev-bin libc6-dev libgomp1 linux-libc-dev. Now build madwifi from source (make; make install)
- mv /usr/local/bin/* /sbin (the RC looks for madwifi tools there)
- you can now dpkg -P binutils gcc gcc-4.4 libc-dev-bin libc6-dev libgomp1 linux-libc-dev
- ath_pci is blacklisted by default in Ubuntu 9.10
- edit /etc/network/interfaces and change eth1 (or other) to control (see udev rules below)
- to prevent the adding of more rules for network devices, run
rm /etc/udev/rules.d/75-persistent-net-generator.rules
touch /etc/udev/rules.d/75-persistent-net-generator.rules
- apt-get install omf-resctl-5.2 otg oml-client
Specific to NICTA¶
- add w83697hf_wdt wdt_io=0x4E nowayout=1 timeout=30 to /etc/modules (watchdog timer)
- apt-get install watchdog
- in /etc/watchdog.conf, uncomment "watchdog-device = /dev/watchdog"
- add w83627hf to /etc/modules (temperature sensors for use with lm-sensors)
- edit rule /etc/udev/rules.d/70-persistent-net.rules to:
KERNEL=="eth*", DRIVERS=="via-rhine", NAME="control"
KERNEL=="eth*", DRIVERS=="r8169", NAME="exp0"
- since our nodes have some problems with ACPI console standby, edit /etc/default/grub and change:
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,9600n8 quiet nomodeset acpi=off"
- run 'update-grub' after that
- edit /etc/omf-resctl-5.2/nodeagent.yaml and set "xmpp_server: 10.0.0.200"
Specific to WINLAB¶
- edit rule /etc/udev/rules.d/70-persistent-net.rules to:
KERNEL=="eth1", NAME="control"
KERNEL=="eth0", NAME="exp0"