diff --git a/configs/common/FSConfig.py b/configs/common/FSConfig.py
index 8b67c85..2c90922 100644
--- a/configs/common/FSConfig.py
+++ b/configs/common/FSConfig.py
@@ -131,7 +131,6 @@
     self.intrctrl = IntrControl()
     self.mem_mode = mem_mode
     self.terminal = Terminal()
-    self.kernel = binary('vmlinux')
     self.pal = binary('ts_osfpal')
     self.console = binary('console')
     if not cmdline:
@@ -429,7 +428,6 @@
     self.intrctrl = IntrControl()
     self.mem_mode = mem_mode
     self.terminal = Terminal()
-    self.kernel = binary('mips/vmlinux')
     self.console = binary('mips/console')
     if not cmdline:
         cmdline = 'root=/dev/hda1 console=ttyS0'
@@ -657,7 +655,6 @@
     if not cmdline:
         cmdline = 'earlyprintk=ttyS0 console=ttyS0 lpj=7999923 root=/dev/hda1'
     self.boot_osflags = fillInCmdline(mdesc, cmdline)
-    self.kernel = binary('x86_64-vmlinux-2.6.22.9')
     return self
 
 
diff --git a/configs/example/fs.py b/configs/example/fs.py
index 695744e..9c5ef17 100644
--- a/configs/example/fs.py
+++ b/configs/example/fs.py
@@ -125,6 +125,9 @@
 
     if options.kernel is not None:
         test_sys.kernel = binary(options.kernel)
+    else:
+        print("Error: a kernel must be provided to run in full system mode")
+        sys.exit(1)
 
     if options.script is not None:
         test_sys.readfile = options.script
@@ -231,7 +234,8 @@
 
     cmdline = cmd_line_template()
     if buildEnv['TARGET_ISA'] == 'alpha':
-        drive_sys = makeLinuxAlphaSystem(drive_mem_mode, bm[1], cmdline=cmdline)
+        drive_sys = makeLinuxAlphaSystem(drive_mem_mode, bm[1],
+                                         cmdline=cmdline)
     elif buildEnv['TARGET_ISA'] == 'mips':
         drive_sys = makeLinuxMipsSystem(drive_mem_mode, bm[1], cmdline=cmdline)
     elif buildEnv['TARGET_ISA'] == 'sparc':
@@ -265,6 +269,9 @@
     drive_sys.cpu.connectAllPorts(drive_sys.membus)
     if options.kernel is not None:
         drive_sys.kernel = binary(options.kernel)
+    else:
+        print("Error: a kernel must be provided to run in full system mode")
+        sys.exit(1)
 
     if CpuConfig.is_kvm_cpu(DriveCPUClass):
         drive_sys.kvm_vm = KvmVM()
