D2500CC/D2500CCE and serial port install

  • Hi,

    I recently built a device for pfSense using the Intel D2500CC (D2500CCE) board.  I tried to install the 32-bit 2.0.1 nanobsd (embedded) image, but got no serial port output.  Ultimately, I was able to install using the nanobsd+vga image.  But my preference would be to use serial.

    Is there any way to enable serial output on a nanobsd_vga installation?

    Or, is there some trick to getting serial to work on this motherboard?  I'm using minicom on Linux, serial port settings at 9600 8N1.  I tried both the "top" and "bottom" external serial ports on the board, but neither seemed to output anything.  This board actually has four serial ports, the other two are on internal headers.  I'm guessing that pfSense is picking up one of the internal ports as COM1.  I can disable individual serial ports in the BIOS, but they are not labeled (i.e., just "serial port 1", "serial port 2", etc).  IOW, I have no way of knowing what ports I'm actually disabling.  I suppose I could determine this in at most four tries, but I was wondering if anyone else has figured this out?


  • @ConcreteRooster:

    Or, is there some trick to getting serial to work on this motherboard?  I'm using minicom on Linux, serial port settings at 9600 8N1.  I tried both the "top" and "bottom" external serial ports on the board, but neither seemed to output anything.  This board actually has four serial ports, the other two are on internal headers.  I'm guessing that pfSense is picking up one of the internal ports as COM1.  I can disable individual serial ports in the BIOS, but they are not labeled (i.e., just "serial port 1", "serial port 2", etc).  IOW, I have no way of knowing what ports I'm actually disabling.  I suppose I could determine this in at most four tries, but I was wondering if anyone else has figured this out?

    My D2500CC appeared to come with a fairly old BIOS, version 0014.  Version 0034 is the latest as of this writing.

    On the old BIOS, serial ports 0 and 1 corresponded to the onboard headers, leaving 2 and 3 as the external.  It appears that pfSense uses the first serial device it finds, so with the old BIOS, I assume it was writing to one of the internal headers.

    The newer BIOS has a new option, which allows you to swap the port assignment.  With this option checked, the external headers become serial ports 0 and 1.

    Also, for reference, it appears that the top external header is the lower numbered one.  IOW, by default, the top external is "2" and the bottom is "3".  When you enable the new swap option, the top becomes "0" and the bottom becomes "1".

    What I find curious is, with the old BIOS, if I disabled serial ports 0 and 1 (i.e. the internal headers), pfSense still picked up the external headers as 2 and 3.  You'd think it would re-enumerate them, and start and 0.  I guess it's a moot point with the new BIOS.

    However, I'm still running the VGA version, and would rather not re-install.  So, that still leaves my initial question: Is there any way to enable serial output on a nanobsd_vga installation?

  • @ConcreteRooster:

    Is there any way to enable serial output on a nanobsd_vga installation?

    After a bit of web searching, I found Feature #214.  I've got serial output on my nanobsd vga build nearly working via:

    (1) re-mount the root filesystem read-write (mount -uw /)
    (2) edit /boot/loader.conf to contain the following:
    (3) edit /etc/ttys
    change this line:
    ttyu0  "/usr/libexec/getty bootupcli"  dialup  off secure
    to this:
    ttyu0  "/usr/libexec/getty bootupcli"  cons25  on secure
    (4) reboot

    Now I'm getting boot output on the serial console.  But after the system boots, I can't actually use the serial console; it seems to effectively be hung.  It ends with this:

    Root mount waiting for: usbus4
    uhub4: 8 ports with 8 removable, self powered
    Trying to mount root from ufs:/dev/ufs/pfsense1
    em0: link state changed to UP

    Seems like I'm almost there, probably just missing some little detail… anyone have any ideas?

  • I suppose having the same issue here with my Jetway NF99FL-525. As it has only two serial ports with COM1 beeing an external one I didn't have your initial problems. I also tried the embedded image and immediately got boot messages on the serial port. Output suddenly stopped somewhere after initialization of NICs. At the same time there was no keyboard input possible nor via a directly attached USB keyboard neither via PuTTY attached to the serial line. The webGUI and SSH access, however, was possible without problems.

    I tried out even a full install were you can activate the serial console using the webGUI. Furthermore, I also gave several 2.1 snapshots a try - allways with the same effect of a dead serial console.

    I searched the forums for a very long time but the only thread dealing with this issue seems to be "No Serial Console Menu" (http://forum.pfsense.org/index.php/topic,34814.0.html). All the posters seemed to use Firebox hardware and they proposed a workaround that didn't work for me.

    Finally I gave up and and installed the 4g nanobsd VGA image which works fine except for one small problem with the initialization of the WLAN adapter during boot. I am going to describe the WLAN problem in a separate post after having searched the forum.

    Today I deceided to register to the forum to open a new thread about the serial problem. Fortunately, I saw this thread and deceided to describe my experiences so far.

    I hope there will be some response because I really prefer the nanobsd embedded image to the nanobsd VGA version, because I am running my pfSense box in headless mode. To be honest, I suppose there might be some problem with the getty process right after beeing started by init.

  • Netgate Administrator

    Thought I'd chime in here after struggling with the serial console problem on the Firebox myself.
    Firstly the problem only appeared on the firebox at around 2.0Beta5. 1.2.3 never displayed such problems. It would be interesting to try that though it's base (FreeBSD 7.3) may not have the drivers for this board.
    Secondly there is a very easy workaround on the firebox not mentioned in the linked thread. Change the serial console speed to something other than 9600.
    In 2.1 there is an option for doing that in the webgui.
    In 2.0.1 add the following lines to /boot/loader.conf.local create the file if it doesn't exist. This file is copied across firmware updates.



  • Thanks for your quick reply. Just one question before I am going to jump to bed: Will your suggested modification to /boot/loader.conf.local be persistent after a reboot - I am using the nanobsd VGA image? Will the modification switch off VGA output? Going to give you feedback as soon as possible - and if working - I am looking forward to switch to embedded nanobsd image.


  • Netgate Administrator

    Hmm, I don't know. I've never had to use the nano+VGA image, there's no VGA out on the firebox.
    You may need only the comsole_speed line. It may be a completely different problem that this does nothing for.  ::)


  • It was obviously already too late during my last posting yesterday, because my first question is answered by "ConcreteRooster" above: The root file system needs a rw re-mount before any change to the configuration files. My second question is not that important, because my pfSense router is running in headless mode.

    My pfSense box is currently in a productive state. Any error on reboot may cause a loss of internet connectivity and a lot of inconvinient work to make it run again.

    I am currently running the 4G nanobsd vga image on a small SATA SSD. If I get Reply #2, Reply #4 and Feature #214 right, the vga image can be configured to activate serial console besides VGA. The options


    are needed in either /boot/loader.conf or /boot/loader.conf.local. My /boot/loader.conf is empty and /boot/loader.conf.local does not exist. Therefore I am hesitating which file to adapt.

    In any case I need the /etc/ttys to be changed as well:

    ttyu0   "/usr/libexec/getty bootupcli"  cons25  off     secure

    must become:

    ttyu0   "/usr/libexec/getty bootupcli"  cons25  on     secure

    It seems to be not clear, if /boot.config needs the "-D" swtich. This file currently exists but is empty. I will have to test this out and give you feedback about the results.


  • Here is my feedback so far: In a short way: No success!

    I did all the changes as desribed in my previous post. I can see the boot menu on the serial console and I can even select boot entries from the menu. I can see all boot messages. My pfSense machine starts up without errors and is accessible via SSH and the webGUI. Console output, however, stops shortly before the pfSense welcome menu should appear:

    Trying to mount root from ufs:/dev/ufs/pfsense0
    ng0: changing name to 'pppoe0'
    wlan0: changing name to 'ath0_wlan0'
    em1: link state changed to UP
    wlan1: changing name to 'ath0_wlan1'
    em0: link state changed to UP
    em2: link state changed to UP
    tun1: changing name to 'ovpns1'
    pflog0: promiscuous mode enabled
    ipfw2 (+ipv6) initialized, divert loadable, nat loadable, rule-based forwarding enabled, default to accept, logging disabled
    load_dn_sched dn_sched FIFO loaded
    load_dn_sched dn_sched QFQ loaded
    load_dn_sched dn_sched RR loaded
    load_dn_sched dn_sched WF2Q+ loaded
    load_dn_sched dn_sched PRIO loaded

    And at this point, it does not accept any keyboard input via the serial console - it is hanging. Unfortunately, changing console speed did not solve my problem >:(.

  • Netgate Administrator

    Hmm, well it was worth a shot. Did the serial baud rate actually change?


  • The baud rate at least changed to the selected 115200 baud as long as I could see the output. I conclude it from the fact, that I saw garbage only, when I left PuTTY with the old default setting of 9600 baud.

    Just to have it clear: The baud rate change helped you to use the serial console with your Firebox?

    I'm left completely clueless and I wonder, if there might be more pfSense users with this serial problem.


  • Netgate Administrator

    Yes. Simply changing the baudrate allowed the serial console to be fully usable.
    I noticed it when testing the webgui option in 2.1. I just copied the lines it added to loader.conf and tried it in 2.0.1. Worked perfectly.
    I have no idea why this worked.  :-\


  • Should I immediately open a bug ticket? Or should I wait for some more feedback from other users? I'd like to wait at least for "ConcreteRooster" testing a different baud rate.

    I've just seen that my forum account is obviously not sufficient to open a bug ticket - I'd have to re-register for the bug database.


  • @pvoigt:

    My /boot/loader.conf is empty and /boot/loader.conf.local does not exist. Therefore I am hesitating which file to adapt.

    /boot/loader.conf MIGHT change on firmware upgrades. /boot/loader.conf.local SHOULDN'T change on firmware upgrades so is the place you should your system specific setting for loader variable. The loader processes /boot/loader.conf THEN /boot/loader.conf.local.

  • Netgate Administrator

    I'd like to see a result with the straight nano image. It seems quite likely this could be a result of the "+VGA" mods.
    Perhaps try the 2.1 nano+VGA image. I know that some work has been done recently on that.


  • @wallabybob:

    Thanks for your pointing me to the right configuration file for the serial options. Currently I have applied the changes to /boot/loader.conf. As the serial console stops working when init takes over, the serial console is in this state more or less useless. Would you advice me to open a bug ticket? Or do you have any advice how to get the serial console fully working?


  • @ stephenw10

    Well, initially I did install the 4g straight nano image of version 2.0.1, e.g. without VGA, and it showed the same behavior. And I did even try the 4g straight nano image of several 2.1 snapshots about 4 weeks ago - same error. Then I gave up and installed the 4g nano VGA image and made the machine my active home firewall. Maybe I should add that I even tried the 2.0.1 full install and tried to activate the serial console - same effect.

    Do you still suggest giving the latest 2.1 nano VGA image a try or should I better go with the straight nano image? Do you know some details about your supposed changes that might help to get some more ideas? Anyway, reflashing my active firewall means a lot of inconvinient work. It takes time and can only be done when my internet conncectivity is not needed for work. I should perhaps switch back to my still fully configured alix2d13 while testing the Jetway box. But I will give it a try, if you still suggest to do so - thanks.


  • Netgate Administrator

    Well I know JimP has been working on it recently:
    Whether it's related to your problem I don't know.  :-\


  • Thanks for the provided URL. It's really hard to jduge, if the described nanobsd VGA changes are affecting my serial console problem. But the latest 2.1 may be worth a try, because developers probably focus bug fixing on this release.

    By the way: When reading your nanobsd VGA link I realized that I my first output on the serial console was the content of /boot.config instead of the first boot loader menu, e.g. I could not see

    1  pfSense
    2  pfSense
    F6 PXE
    Boot:  1

    where I could select the boot slice. As I'm currently not at home in front of my pfSense box I cannot verify this exactly. Will investigate it at home and report on this. I might help to narrow down the error.

    Nevertheless, how do you judge (my) serial console problem: Is it a bug an should it be reported. Or do I have to hope I developer will read this thread give me feedback about treating this issue as a bug that he is going to fix as soon as he has some time left.


  • OK, can confirm my last posting that I do NOT see the boot slice selection menu. Here's the beginning of my boot messages to the serial console with my 4g nanobsd_vga image:

    /boot.config: -S115200 -Dh
    Consoles: internal video/keyboard  serial port
    BIOS drive C: is disk0
    BIOS 637kB/3134016kB available memory
    FreeBSD/i386 bootstrap loader, Revision 1.1
    (root@FreeBSD_8.0_pfSense_2.0-AMD64.snaps.pfsense.org, Tue Dec 13 14:00:55 EST 2011)
    Loading /boot/defaults/loader.conf
    /boot/kernel/kernel text=0x894cc8 data=0x404448+0xd29a8 syms=[0x8+0xdfb90+0x8+0xcbec4]
     ▒                                         ▒
     ▒                                         ▒
     ▒                                         ▒
     ▒          Welcome to pfSense!            ▒
     ▒                                         ▒                 ______
     ▒                                         ▒                /      \
     ▒  1\. Boot pfSense [default]              ▒          _____/    f   \
     ▒  2\. Boot pfSense with ACPI disabled     ▒         /     \        /
     ▒  3\. Boot pfSense using USB device       ▒        /   p   \______/  Sense
     ▒  4\. Boot pfSense in Safe Mode           ▒        \       /      \
     ▒  5\. Boot pfSense in single user mode    ▒         \_____/        \
     ▒  6\. Boot pfSense with verbose logging   ▒               \        /
     ▒  7\. Escape to loader prompt             ▒                \______/
     ▒  8\. Reboot                              ▒
     ▒                                         ▒
     ▒                                         ▒
     ▒                                         ▒
     ▒  Select option, [Enter] for default     ▒
     ▒  or [Space] to pause timer  0           ▒
    Copyright (c) 1992-2010 The FreeBSD Project.
    Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
            The Regents of the University of California. All rights reserved.
    FreeBSD is a registered trademark of The FreeBSD Foundation.
    FreeBSD 8.1-RELEASE-p6 #0: Tue Dec 13 14:24:42 EST 2011
        root@FreeBSD_8.0_pfSense_2.0-AMD64.snaps.pfsense.org:/usr/obj./usr/pfSensesrc/src/sys/pfSense_wrap_vga.8.amd64 amd64
    Timecounter "i8254" frequency 1193182 Hz quality 0
    CPU: Intel(R) Atom(TM) CPU D525   @ 1.80GHz (1799.99-MHz K8-class CPU)
      Origin = "GenuineIntel"  Id = 0x106ca  Family = 6  Model = 1c  Stepping = 10
      Features=0xbfebfbff <fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,htt,tm,pbe>Features2=0x40e31d <sse3,dtes64,mon,ds_cpl,tm2,ssse3,cx16,xtpr,pdcm,movbe>AMD Features=0x20100800 <syscall,nx,lm>AMD Features2=0x1 <lahf>TSC: P-state invariant
    real memory  = 4294967296 (4096 MB)
    avail memory = 4085686272 (3896 MB)

    So I'm wondering, if I should also see the boot slice selection menu as described at

    Is there a tool for pfSense/FreeBSD comparable to setserial under Linux? I would like to check the serial settings from a SSH login.


  • Netgate Administrator

    I believe the bootloader always uses 9600 baud. So if you are looking at 115200 you won't see it. The console switches to 115200 when the kernel is loaded.
    I don't know if you have a bug or just odd hardware.  :-\ No one has come up with a good reason why this happens in the firebox yet.


  • Well, if the boot loader always uses 9600 baud, I should see the boot loader menu, if kernel and getty uses 9600 baud as well.

    I just changed the baud rate to 9600 -  and still could not see the boot menu. Everything else went as known: I could select entries on the subsequent welcome menu , could see all boot messages and finally reached hang of getty when init takes over. Can I conclude any new aspects from it? Shouldn't I see the boot menu with this configuration :o?

    Of course, I am not sure, if it is a pfSense 2.0.1 bug or hardware related. But at least three mainboard/hardware types suffer from a not fully working serial console: Firebox, Intel D2500CC and Jetway NF99FL-525.

    As soon as I have some time left, I will switch back to my alix box and test a recent 2.1 nanobsd image with my Jetway board. Depending on the results, I am going to decide whether to open a bug ticket or not. I suppose the change of a pfsense programmer working on it will be the higher the more recent the affected pfsense version is. Besides that I hope to get some new ideas of further forum members reading this thread.


  • Netgate Administrator

    This could be my mistake as I've never used the +vga image. There is no boot menu for example in the standard nano image. I don't know what you should see.
    It's certainly interesting to know that other hardware is suffering a similar problem (though it could be unrelated).
    I'm really out of ideas but I'll be following this thread if anyone else has thoughts.


  • Thank you very much so far  :).


  • I've just read Serial Terminal: Enabling = Console "hangs" and gave a reference to this thread. I'm not sure how closely related the two serial problems are.


  • It'll drive me mad if I don't ask:  why not temporarily glue on a cd drive and a console and install from cdrom rather than fool around with serial ports?  It sounds a dreadful lot of work for very little return.

    (Apologies if I'm the only one to whom the answer isn't obvious.)

  • @MMacD

    Installation was not a problem. All authors describing their problems with the serial console have managed a succussful install, e.g. I did boot from CD and USB to manage a full install, flashed nanobsd, nanobsd_vga to obtain an embedded install. Instead, activating the serial console after a successful install was not fully possible. And the straight nanobsd images (e.g. without VGA) did not boot at all on my machine. This affects obviously at least some motherboards. Please find further details in the current thread and all referenced ones if desired.

    A working serial console is valuable in particular, if you run your system without monitor and keyboard (even if you could), to

    • interact when booting, e.g. to select boot slice
    • see boot messages and possible errors
    • access your system, if accidently locked out from SSH or webGUI due to rule error

    Furthermore, at least me would like to exclude any misconfiguration before reporting this behavior as a bug.

    Hope this helps to clarify :).


Log in to reply