SOLVED: pfSense won't boot on an old ThinkPad X40

  • EDIT: scroll down for solution.

    A working installation of pfSense 2.3.2 (installation CD of 2.2.6 behaves the same way) will not boot on ThinkPad X40 when not in docking station. Neither will an installation CD. It hangs on this screen:

    This is how the same boot section looks like with successful boot (with docking station attached):

    It boots and installs fine, when X40 is inside a docking station, but even after it is booted and I remove it from the docking station, it freezes.

    This is true for both X40s that I own.

    pfSense on stand-alone X40 will boot with


    but then a Xircom card that sits in PCMCIA slot is no longer visible.
    (before you ask: X40 without Xircom card gets stuck on the same boot stage)

    I also tried


    but that did nothing.

  • Banned

    Have you tried with hint.ehci.0.disabled instead? Beyond that, I'd disable all unneeded stuff in BIOS.

  • Problem still persists with "hint.ehci.0.disabled".
    I already disabled almost everything in the BIOS.

  • Banned

    Well, you can try with pfSense 2.4. Good luck.¨

  • I thought about that but I cant find a i386 iso.

  • Banned

    There's no 32bit with 2.4.

  • Well, there you go. It's not an option for this machine.

    Anyway, I did some more research ( and it seems to be related to CDROM drive which is absent then the laptop is not in the docking station. pfSense/freebsd seems to hang when it cannot find it.

    Is there some option to disable cdrom module at boot (like blacklist in linux)?

    This is how the same boot section looks like with successful boot (with docking station attached):

  • Ha! I solved the bastard!

    I will explain how, in case someone else encounters the issue (old ThinkPads make great pfSense machines!).

    Turns out historically FreeBSD has a problem with second IDE channel of ThinkPad X40. Having it enabled was causing more than just this problem  - but I'll get to that in a second.

    Method 1:


    to /boot/loader.conf.local seemed to do the trick. However things are not exactly as they seem. It appears the second IDE channel of X40 can randomly get higher assignment than 1. Hence, it will still freeze at occasional boot.
    To prevent that, lets add this instead:


    Side note: you might have to add hint.agp.0.disabled=1 to the list above to solve another unrelated issue with booting caused by an old VGA card, like the one in X40.

    So that covered the booting problem!
    BUT the channel was still enabled on hardware level, which was causing another issue: impossibility to reboot or shutdown the machine, because it was freezing on the last shutdown stage. It was necessary to do hard power-off by holding the power button.
    Obviously, this is not an ideal scenario on a remote router.


    Method 2:
    I disabled the second channel using IBM's DOS config program (like so: ).
    I edited Win98SE boot ISO and added PS2 to it. It is attached to this post (hope that's ok), so just boot from it, change drive to C: or D: and run


    Et voila!

    So finally the system seems to be working fine!
    (At least after limited testing. Knock on wood..)

Log in to reply