Start serial terminal on S0 for machines at Bytemark
authorTom Hughes <tom@compton.nu>
Tue, 10 May 2016 11:07:35 +0000 (12:07 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 10 May 2016 11:10:08 +0000 (12:10 +0100)
cookbooks/hardware/recipes/default.rb
cookbooks/hardware/templates/default/grub.erb
cookbooks/hardware/templates/default/tty.conf.erb

index 5177941..8f08db8 100644 (file)
@@ -50,33 +50,33 @@ else
   product = "Unknown"
 end
 
+units = []
+
+if node[:roles].include?("bytemark")
+  units << "0"
+end
+
 case manufacturer
 when "HP"
   package "hponcfg"
   package "hp-health"
-  unit = "1"
-  speed = "115200"
+  units << "1"
 when "TYAN"
-  unit = "0"
-  speed = "115200"
+  units << "0"
 when "TYAN Computer Corporation"
-  unit = "0"
-  speed = "115200"
+  units << "0"
 when "Supermicro"
   case product
   when "H8DGU", "X9SCD", "X7DBU", "X7DW3", "X9DR7/E-(J)LN4F", "X9DR3-F", "X9DRW"
-    unit = "1"
-    speed = "115200"
+    units << "1"
   else
-    unit = "0"
-    speed = "115200"
+    units << "0"
   end
 when "IBM"
-  unit = "0"
-  speed = "115200"
+  units << "0"
 end
 
-unless unit.nil?
+units.sort.uniq.each do |unit|
   file "/etc/init/ttySttyS#{unit}.conf" do
     action :delete
   end
@@ -86,7 +86,7 @@ unless unit.nil?
     owner "root"
     group "root"
     mode 0644
-    variables :unit => unit, :speed => speed
+    variables :unit => unit
   end
 
   service "ttyS#{unit}" do
@@ -126,7 +126,7 @@ if File.exist?("/etc/default/grub")
     owner "root"
     group "root"
     mode 0644
-    variables :unit => unit, :speed => speed, :entry => grub_entry
+    variables :units => units, :entry => grub_entry
     notifies :run, "execute[update-grub]"
   end
 end
index 3db5591..b68b326 100644 (file)
@@ -15,10 +15,10 @@ GRUB_HIDDEN_TIMEOUT_QUIET="true"
 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
 
 # Arguments to add to the kernel command line (all entries)
-<% if @unit.nil? -%>
+<% if @units.nil? -%>
 GRUB_CMDLINE_LINUX="<%= node[:hardware][:grub][:cmdline].join(" ") %>"
 <% else -%>
-GRUB_CMDLINE_LINUX="console=tty0 console=ttyS<%= @unit %>,115200n8 <%= node[:hardware][:grub][:cmdline].join(" ") %>"
+GRUB_CMDLINE_LINUX="console=tty0 <%= @units.sort.uniq.collect { |unit| "console=ttyS#{unit},115200n8" }.join(" ") %> <%= node[:hardware][:grub][:cmdline].join(" ") %>"
 <% end -%>
 
 # Arguments to add to the kernel command line (except recovery entries)
@@ -27,7 +27,7 @@ GRUB_CMDLINE_LINUX_DEFAULT="panic=30"
 # Do not wait for infinite time on a failed boot
 GRUB_RECORDFAIL_TIMEOUT=2
 
-<% if @unit.nil? -%>
+<% if @units.nil? -%>
 # Send console output to the screen
 GRUB_TERMINAL="console"
 <% else -%>
@@ -40,5 +40,5 @@ GRUB_TERMINAL="serial"
 <% end -%>
 
 # Configure the serial console
-GRUB_SERIAL_COMMAND="serial --speed=<%= @speed %> --unit=<%= @unit %> --word=8 --parity=no --stop=1"
+GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=<%= @units.first %> --word=8 --parity=no --stop=1"
 <% end -%>
index 896e8c3..9b3ae4a 100644 (file)
@@ -9,4 +9,4 @@ start on stopped rc RUNLEVEL=[2345]
 stop on runlevel [!2345]
 
 respawn
-exec /sbin/getty -L <%= @speed %> ttyS<%= @unit %> vt102
+exec /sbin/getty -L 115200 ttyS<%= @unit %> vt102