135 | | === Setting up MFS images to use the serial console === |
136 | | |
137 | | By default, the MFS images are set to use the video card as the console device. Before you start, please familiarize yourself with [http://www.freebsd.org/doc/en/books/handbook/serialconsole-setup.html the basics of FreeBSD serial consoles]. |
138 | | |
139 | | ==== Figure out which serial port you will be using ==== |
140 | | |
141 | | A serial console is typically used in conjunction with IPMI. Sometimes IPMI gives access to the COM1 serial interface of a machine (for example HP DL160G6 servers use COM1). Other systems dedicate the COM2 port to the IPMI embedded server. You will have to figure out how your particular hardware is setup. Some of these steps will be handled by the setup_mfs script in the future. |
142 | | |
143 | | ==== Set the proper baud rate in your systems BIOS ==== |
144 | | |
145 | | By default, we use 115200 as the baud rate for all MFS images. This is a compile time value, so it is best to use 115200. |
146 | | |
147 | | ==== Installing a PXE boot loader ==== |
148 | | |
149 | | When the PXE boot ROM is loaded during machine boot. |
150 | | |
151 | | The default bootloader for testbed nodes is /tftpboot/pxeboot.emu. There are four different versions of pxeboot.emu distributed with the tarball. |
152 | | |
153 | | * pxeboot-null.emu : Does not display pxeloader prompt |
154 | | * pxeboot-com1.emu : Displays pxeloader prompt via COM1 serial port |
155 | | * pxeboot-com2.emu : Displays pxeloader prompt via COM2 serial port |
156 | | * pxeboot.emu : Displays pxeloader prompt via video out |
157 | | |
158 | | Pick a loader that best suits your installation and copy it (backing up the VGA boot loader first): |
159 | | |
160 | | {{{ |
161 | | cp /tftpboot/pxeboot.emu /tftpboot/pxeboot-vga.emu |
162 | | cp /tftpboot/pxeboot.emu-<null|sio|sio2|vga> /tftpboot/pxeboot.emu |
163 | | }}} |
164 | | |
165 | | You can also look at modifying '''/usr/local/etc/dhcpd.conf.template''' to use different boot loaders for different machines. You will have to generate a new dhcpd.conf configuration using '''/usr/testbed/sbin/dhcpd_makeconf -i -r'''. |
166 | | |
167 | | |
168 | | ==== Setting up a MFS image to use the serial console ===== |
169 | | |
170 | | Edit the file loader.conf.orig for each MFS image: |
171 | | |
172 | | {{{ |
173 | | [jjh@boss /tftpboot]$ find /tftpboot/ -name loader.conf.orig |
174 | | /tftpboot/freebsd/boot/loader.conf.orig |
175 | | /tftpboot/freebsd.newnode/boot/loader.conf.orig |
176 | | /tftpboot/frisbee/boot/loader.conf.orig |
177 | | }}} |
178 | | |
179 | | At the top of the loader.conf.orig file you will be presented with three choices: |
180 | | |
181 | | {{{ |
182 | | ## |
183 | | ## Pick a console: |
184 | | ## |
185 | | ## "comconsole" If you are using a serial port as your console |
186 | | ## "vidconsole" If you are using the VGA as your console on your nodes |
187 | | ## "nullconsole" If you don't have VGA or serial lines, and it appears that |
188 | | ## nodes are not booting, try using this, which gives you a |
189 | | ## non-interactive version of the boot loader. Some sites |
190 | | ## have had problems with "phantom" serial line input from a |
191 | | ## non-existant serial line causing the comconsole version of |
192 | | ## the boot loader to drop into interactive mode. |
193 | | ## |
194 | | console="comconsole" |
195 | | #console="vidconsole" |
196 | | #console="nullconsole" |
197 | | }}} |
198 | | |
199 | | ==== Setting up a MFS image to use the second COM port ==== |
200 | | |
201 | | FreeBSD picks the serial console based on a special flag for the UART you want to use. UART 0 is COM1 and UART 1 is COM2. |
202 | | |
203 | | {{{ |
204 | | [jjh@boss /tftpboot]$ find . -name device.hints -exec grep flags {} \; | grep uart |
205 | | hint.uart.0.flags="0x10" |
206 | | hint.uart.0.flags="0x10" |
207 | | hint.uart.0.flags="0x10" |
208 | | }}} |
209 | | |
210 | | To use COM2, the second UART, change the '''hint.uart.0.flags''' to '''hint.uart.1.flags''' |
211 | | |
212 | | ==== Making the configuration changes for each image stick ==== |
213 | | |
214 | | You will have to run the '''prepare''' script in each boot directory after changing loader.conf.orig or the device.hints file. |
215 | | |
216 | | {{{ |
217 | | root@boss:/tftpboot/freebsd/boot # ./prepare |
218 | | loader.conf: loader.conf.gz updated... |
219 | | loader.rc: |
220 | | kernel: |
221 | | mfsroot: |
222 | | }}} |
223 | | |
| 214 | |
| 215 | === Associating Operating System images with your new node type === |
| 216 | |
| 217 | After creating a new node type, you will need to enable support for it with each operating system image. This can be accomplished by editing the operating system image through the web interface and selecting the new type. On new installs, you can also cheat with the SQL command below. Be sure to substitute '''minipc''' with the node type you created. |
| 218 | |
| 219 | {{{ |
| 220 | mysql> insert into osidtoimageid select default_osid as osid, 'minipc' as type, imageid from images; |
| 221 | Query OK, 5 rows affected (0.00 sec) |
| 222 | Records: 5 Duplicates: 0 Warnings: 0 |
| 223 | |
| 224 | mysql> select * from osidtoimageid; |
| 225 | +-------+--------+---------+ |
| 226 | | osid | type | imageid | |
| 227 | +-------+--------+---------+ |
| 228 | | 10007 | minipc | 10007 | |
| 229 | | 10009 | minipc | 10009 | |
| 230 | | 10005 | minipc | 10005 | |
| 231 | | 10008 | minipc | 10008 | |
| 232 | | 10006 | minipc | 10006 | |
| 233 | +-------+--------+---------+ |
| 234 | 5 rows in set (0.00 sec) |
| 235 | }}} |
| 236 | |