Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    What exactly does "enableserial" do?

    Scheduled Pinned Locked Moved General pfSense Questions
    1 Posts 1 Posters 1.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      ZPrime
      last edited by

      I just finished setting up a full-install running off of a microdrive on a Soekris 4801.  I followed the instructions in the wiki and the installer for 1.2.2, and I chose the embedded kernel when it asked me during setup.  It booted fine and I have my boot console over serial, etc.

      I have the system running and I'm poking around Advanced config (/system_advanced.php), and the first option is Enable Serial console (in the code, this is $config['system']['enableserial'])

      Am I going to screw up my currently functional serial console by enabling this?  I looked through /etc/inc/pfsense-utils.inc and found this code:

      
      function setup_serial_port() {
              global $g, $config;
              conf_mount_rw();
              /* serial console - write out /boot.config */
              if(file_exists("/boot.config"))
                      $boot_config = file_get_contents("/boot.config");
              else
                      $boot_config = "";
      
              if($g['platform'] <> "cdrom") {
                      $boot_config_split = split("\n", $boot_config);
                      $fd = fopen("/boot.config","w");
                      if($fd) {
                              foreach($boot_config_split as $bcs) {
                                      if(stristr($bcs, "-D")) {
                                              /* DONT WRITE OUT, WE'LL DO IT LATER */
                                      } else {
                                              if($bcs <> "")
                                                      fwrite($fd, "{$bcs}\n");
                                      }
                              }
                              if(isset($config['system']['enableserial'])) {
                                      fwrite($fd, "-D");
                              }
                              fclose($fd);
                      }
                      /* serial console - write out /boot/loader.conf */
                      $boot_config = file_get_contents("/boot/loader.conf");
                      $boot_config_split = split("\n", $boot_config);
                      $fd = fopen("/boot/loader.conf","w");
                      if($fd) {
                              foreach($boot_config_split as $bcs) {
                                      if(stristr($bcs, "console")) {
                                              /* DONT WRITE OUT, WE'LL DO IT LATER */
                                     } else {
                                              if($bcs <> "")
                                                      fwrite($fd, "{$bcs}\n");
                                      }
                              }
                              if(isset($config['system']['enableserial'])) {
                                      fwrite($fd, "console=\"comconsole\"\n");
                              }
                              fclose($fd);
                      }
              }
              $ttys = file_get_contents("/etc/ttys");
              $ttys_split = split("\n", $ttys);
              $fd = fopen("/etc/ttys", "w");
              foreach($ttys_split as $tty) {
                      if(stristr($tty, "ttyd0")) {
                              if(isset($config['system']['enableserial'])) {
                                      fwrite($fd, "ttyd0      \"/usr/libexec/getty bootupcli\"
              dialup  on      secure\n");
                              } else {
                                      fwrite($fd, "ttyd0      \"/usr/libexec/getty bootupcli\"
              dialup  off     secure\n");
                              }
                      } else {
                              fwrite($fd, $tty . "\n");
                      }
              }
              fclose($fd);
              if(isset($config['system']['disableconsolemenu'])) {
                      auto_login(false);
              } else {
                      auto_login(true);
              }
              conf_mount_ro();
              return;
      }
      
      

      It looks to me like the only thing happening here is that the boot messages get dumped to a file, and if you have any DIALUP ttys setup in /etc/ttys some additional info is added there, but I don't see much else going on.  So again I ask, will I screw up my working system by enabling this, or is it just going to help out by giving me more logging?  It warns that it will disable VGA & PS2 input, but I'm not sure how this would happen given this code.  It looks like the only major change is editing /boot/loader.conf and adding "console=comconsole".  Is this unnecessary because I'm running the embedded kernel?

      For what it's worth, I'm using a refurbished 4GB Hitachi Microdrive that I got on eBay.  With the latest 4801 BIOS (1.33) and pfSense 1.2.2, the Microdrive is actually running at UDMA33 - no nasty interrupts due to PIO4 mode.  :)  The only hitch I ran into was that I had to change one config option on the Soekris BIOS to get it to boot "80" - IDE0, aka the microdrive.  The config option I was using previously for CF boot (I believe it was 0D or 0C) was not working with the microdrive at all.

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.