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:
http://imgur.com/IZqJxZ6This is how the same boot section looks like with successful boot (with docking station attached):
http://imgur.com/a/kL4mcIt 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
hint.ata.1.disabled="1"
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
hint.usb.0.disabled="1" hint.ohci.0.disabled="1"
but that did nothing.
-
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. -
Well, you can try with pfSense 2.4. Good luck.¨
-
I thought about that but I cant find a i386 iso.
-
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 (http://www.p14nd4.com/blog/2016/05/15/pfsense-freebsd-thinkpad-boot-failure/) 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)?
EDIT:
This is how the same boot section looks like with successful boot (with docking station attached):
http://imgur.com/a/kL4mc -
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:
Addinghint.ata.1.disabled=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:hint.ata.1.disabled=1 hint.ata.1.disabled=2 hint.ata.1.disabled=3 hint.ata.1.disabled=4
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.Therefore
Method 2:
I disabled the second channel using IBM's DOS config program (like so: https://forums.pcbsd.org/printthread.php?tid=4257 ).
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 runPS2.EXE IDE2 DISABLE
Et voila!
So finally the system seems to be working fine!
(At least after limited testing. Knock on wood..)