Pfsense on a notebook
-
Has anyone seen one of these adapters anywhere cheaper? I can't seem to find anything even on ebay.
http://www.hwtools.net/Adapter/PM2C.html
I want to possibly use a pcie Intel NIC in an older notebook I have.
-
I happened to find them at this site for a good price.
http://www.buydvb.net/pm2c-pcie-mini-pcie-adapter_p17.html
For 1 it's $24.99 + 4.42 = $29.41
and for 2 it's $49.98 + 6.71 = $56.69 ( use promo code 9128c08514 for $5 off $50)
I got the customer service lady to change it for me. I will let you know if they work well in 2 weeks. I grabbed 2 of them.
This is for anyone who might be interested in trying this.
-
Interesting solution.
Wouldn't the PCIe card stick out the bottom of your notebook though? Useful for testing I guess.Steve
-
Yes, but the pfsense router will be sitting in the back room on a shelf. I think I am going to make a box out of 1/4 MDF or some cardboard.
-
Why not just use a pcmcia network card? Years ago I ran pFsense on a Pentium III notebook and a d-link 10/100 card.
-
Are there any laptops that have both Mini PCIe and PCMCIA?
I would think anything with with m-PCIe would be express card or nothing.
Steve
-
Why not just use a pcmcia network card? Years ago I ran pFsense on a Pentium III notebook and a d-link 10/100 card.
Intel NICs are far superior and who still uses non gigabit these days?
-
Depends on your situation.
If you are re-using older hardware as a home gateway then you almost certainly don't need gigabit (unless you're living in Korea or Sweden).My loadbalanced WAN connections can provide a theoretical maximum of 70Mb/s so there is no need for gigabit ethernet on my box. In fact it does have gigabit interfaces but they are all running at 100Mb/s as that's what's connected to them.
Steve
-
so I ended up doing this on a Thinkpad T60 and it works great. I have a couple questions though.
How do I get the log from pfsesne booting up? I would like to see that to see if everything is working correctly. When I installed pfsense on Windows 7 this computer was idling at 16W and it is at 23W now with pfsense.
I read somewhere that the Core 2 Duo CPUs sometimes only enable speedstep on one core? How can I fix this? Thanks!
-
pfSense will not use any power saving features by default, it doesn't expect to be running on a laptop!
Have you enabled powerd?
You will probably have to switch the timecounter to enable powerd.16W seems pretty good, 21W doesn't seem too bad. ;)
Steve
-
so I ended up doing this on a Thinkpad T60 and it works great. I have a couple questions though.
How do I get the log from pfsesne booting up? I would like to see that to see if everything is working correctly. When I installed pfsense on Windows 7 this computer was idling at 16W and it is at 23W now with pfsense.
I read somewhere that the Core 2 Duo CPUs sometimes only enable speedstep on one core? How can I fix this? Thanks!
pfSense doesn't enable Intel Speedstep (EIST) by default. Try this:
Go to System -> Advanced -> Miscellaneous -> Enable PowerD
Go to Diagnostics -> Edit FIle -> Create /boot/loader.conf.local
Insert:hint.p4tcc.0.disabled=1 hint.acpi_throttle.0.disabled=1 est_load="YES"
Reboot for effect.
-
pfSense will not use any power saving features by default, it doesn't expect to be running on a laptop!
Have you enabled powerd?
You will probably have to switch the timecounter to enable powerd.16W seems pretty good, 21W doesn't seem too bad. Wink
,but
SteveThank you, it would be nice to get it to that 16W though if possible. :) I tested my other gear as well:
Dell PowerConnect 2816 Switch - 10W
D-Link DIR-655 as AP - 7W, so 16W is pretty good for sure.
pfSense doesn't enable Intel Speedstep (EIST) by default. Try this:
Go to System -> Advanced -> Miscellaneous -> Enable PowerD
Go to Diagnostics -> Edit FIle -> Create /boot/loader.conf.local
Insert:
Code:hint.p4tcc.0.disabled=1
hint.acpi_throttle.0.disabled=1
est_load="YES"I assume this is right?
"The powerd utility monitors the system state and sets various power control options accordingly. It offers three modes (maximum, minimum, and adaptive) that can be individually selected while on AC power or batteries. The modes maximum, minimum, and adaptive may be abbreviated max, min, adp. Maximum mode chooses the highest performance values. Minimum mode selects the lowest performance values to get the most power savings. Adaptive mode attempts to strike a balance by degrading performance when the system appears idle and increasing it when the system is busy. It offers a good balance between a small performance loss for greatly increased power savings. The default mode for pfSense is adaptive."
- so how/where do I enable the different modes at? I just did the above and restarted. I am at ~20W now and the fan is still going pretty fast, which indicates to me it's not working 100% yet. Thanks for the help!
-
Hmm, ok.
You need to check the boot log for powerd messages. It looks like it's not loading correctly. The est driver is compiled into the kernel so there's no need to load it (doesn't hurt though).
If it's running correctly you should see on the dashboard next to cpu type a maximum and current frequency.
Alternatively you can run powerd -v at the console to see what frequency it's running at.If it isn't running you may have to change the kernel timecounter. See: http://forum.pfsense.org/index.php/topic,20095.msg195755/topicseen.html#msg195755
Steve
-
I assume this is right?
"The powerd utility monitors the system state and sets various power control options accordingly. It offers three modes (maximum, minimum, and adaptive) that can be individually selected while on AC power or batteries. The modes maximum, minimum, and adaptive may be abbreviated max, min, adp. Maximum mode chooses the highest performance values. Minimum mode selects the lowest performance values to get the most power savings. Adaptive mode attempts to strike a balance by degrading performance when the system appears idle and increasing it when the system is busy. It offers a good balance between a small performance loss for greatly increased power savings. The default mode for pfSense is adaptive."
- so how/where do I enable the different modes at? I just did the above and restarted. I am at ~20W now and the fan is still going pretty fast, which indicates to me it's not working 100% yet. Thanks for the help!
It looks right. To verify, go to Diagnostics -> Command Prompt. Type:
sysctl dev.cpuThe output of "dev.cpu.0.freq_levels" will list the frequency steps available. Here's an example output of my setup (Intel Core Solo T1350; 133MHz FSB). Your Core 2 Duo will have dev.cpu.1.* output as well because of the 2nd core.
$ sysctl dev.cpu dev.cpu.0.%desc: ACPI CPU dev.cpu.0.%driver: cpu dev.cpu.0.%location: handle=\_PR_.CPU0 dev.cpu.0.%pnpinfo: _HID=none _UID=0 dev.cpu.0.%parent: acpi0 dev.cpu.0.freq: 800 dev.cpu.0.freq_levels: 1867/88000 1600/73000 1333/59000 1067/48000 800/37000 dev.cpu.0.cx_supported: C1/0 dev.cpu.0.cx_lowest: C1 dev.cpu.0.cx_usage: 100.00% last 5000us
You can see that the steps are always a multiple of the FSB (133MHz aka 533MHz). In my case, it's 266MHz (2 x 133MHz) steps.
With PowerD but without disabling P4TCC, you will see many more steps in 100MHz steps.
For the T60 with a Merom Core 2 Duo, the lowest frequency will be 6 x 166MHz(FSB) = 1GHz.
If you have a Core Duo or Core Solo with 133MHz FSB instead, the lowest is 6 x 133 = 800MHz (Same as mine).On the topic of the fan, I don't think there are platform specific ACPI drivers loaded for controlling the onboard fan. You'll need to enter BIOS (hit the Thinkvantage button on boot) and set the Processor Cooling Policy to Active rather than Passive. The hardware should handle things on their own from there.
-
Hmm, ok.
You need to check the boot log for powerd messages. It looks like it's not loading correctly. The est driver is compiled into the kernel so there's no need to load it (doesn't hurt though).
If it's running correctly you should see on the dashboard next to cpu type a maximum and current frequency.
Alternatively you can run powerd -v at the console to see what frequency it's running at.If it isn't running you may have to change the kernel timecounter. See: http://forum.pfsense.org/index.php/topic,20095.msg195755/topicseen.html#msg195755
Steve
It does show up now. Here is my dmesg log as well, so you can see if anything is wrong.
CPU Type Intel(R) Core(TM)2 CPU T5500 @ 1.66GHz
Current: 1000 MHz, Max: 1667 MHz$ dmesg
Copyright1992-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-p4 #0: Tue Sep 13 17:04:54 EDT 2011
root@FreeBSD_8.0_pfSense_2.0-AMD64.snaps.pfsense.org:/usr/obj./usr/pfSensesrc/src/sys/pfSense_SMP.8 amd64
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Core(TM)2 CPU T5500 @ 1.66GHz (1662.51-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x6f2 Family = 6 Model = f Stepping = 2
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=0xe3bd <sse3,dtes64,mon,ds_cpl,vmx,est,tm2,ssse3,cx16,xtpr,pdcm>AMD Features=0x20100800 <syscall,nx,lm>AMD Features2=0x1 <lahf>TSC: P-state invariant
real memory = 3221225472 (3072 MB)
avail memory = 3087454208 (2944 MB)
ACPI APIC Table: <lenovo tp-79 ="">FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)
cpu0 (BSP): APIC ID: 0
cpu1 (AP): APIC ID: 1
ACPI Warning: 32/64X length mismatch in Gpe1Block: 0/32 (20100331/tbfadt-625)
ACPI Warning: Optional field Gpe1Block has zero address or length: 0x 0 102C/0x0 (20100331/tbfadt-655)
ioapic0: Changing APIC ID to 1
ioapic0 <version 2.0="">irqs 0-23 on motherboard
netisr_init: forcing maxthreads to 1 and bindthreads to 0 for device polling
wlan: mac acl policy registered
ipw_monitor: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw/.
ipw_monitor: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/loader.conf.
module_register_init: MOD_LOAD (ipw_monitor_fw, 0xffffffff80470e30, 0) error 1
wpi: You need to read the LICENSE file in /usr/share/doc/legal/intel_wpi/.
wpi: If you agree with the license, set legal.intel_wpi.license_ack=1 in /boot/loader.conf.
module_register_init: MOD_LOAD (wpi_fw, 0xffffffff806548f0, 0) error 1
ipw_bss: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw/.
ipw_bss: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/loader.conf.
module_register_init: MOD_LOAD (ipw_bss_fw, 0xffffffff80470cf0, 0) error 1
ipw_ibss: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw/.
ipw_ibss: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/loader.conf.
module_register_init: MOD_LOAD (ipw_ibss_fw, 0xffffffff80470d90, 0) error 1
kbd1 at kbdmux0
cryptosoft0: <software crypto="">on motherboard
padlock0: No ACE support.
acpi0: <lenovo tp-79="">on motherboard
CPU0: local APIC error 0x40
acpi0: [ITHREAD]
acpi_ec0: <embedded controller:="" gpe="" 0x1c,="" ecdt="">port 0x62,0x66 on acpi0
acpi0: Power Button (fixed)
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, bff00000 (3) failed
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
cpu0: <acpi cpu="">on acpi0
cpu1: <acpi cpu="">on acpi0
acpi_hpet0: <high precision="" event="" timer="">iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 14318180 Hz quality 900
acpi_lid0: <control method="" lid="" switch="">on acpi0
acpi_button0: <sleep button="">on acpi0
pcib0: <acpi host-pci="" bridge="">port 0xcf8-0xcff on acpi0
pci0: <acpi pci="" bus="">on pcib0
pcib1: <acpi pci-pci="" bridge="">irq 16 at device 1.0 on pci0
pci1: <acpi pci="" bus="">on pcib1
vgapci0: <vga-compatible display="">port 0x2000-0x20ff mem 0xd8000000-0xdfffffff,0xee100000-0xee10ffff irq 16 at device 0.0 on pci1
pci0: <multimedia, hda="">at device 27.0 (no driver attached)
pcib2: <acpi pci-pci="" bridge="">irq 20 at device 28.0 on pci0
pci2: <acpi pci="" bus="">on pcib2
em0: <intel(r) 1000="" pro="" network="" connection="" 7.2.3="">port 0x3000-0x301f mem 0xee000000-0xee01ffff irq 16 at device 0.0 on pci2
em0: Using an MSI interrupt
em0: [FILTER]
pcib3: <acpi pci-pci="" bridge="">irq 21 at device 28.1 on pci0
pci3: <acpi pci="" bus="">on pcib3
em1: <intel(r) 1000="" pro="" network="" connection="" 7.2.3="">at device 0.0 on pci3
em1: Memory Access and/or Bus Master bits were not set!
em1: Using MSIX interrupts with 3 vectors
em1: [ITHREAD]
em1: [ITHREAD]
em1: [ITHREAD]
pcib4: <acpi pci-pci="" bridge="">irq 22 at device 28.2 on pci0
pci4: <acpi pci="" bus="">on pcib4
pcib5: <acpi pci-pci="" bridge="">irq 23 at device 28.3 on pci0
pci12: <acpi pci="" bus="">on pcib5
uhci0: <intel 82801g="" (ich7)="" usb="" controller="" usb-a="">port 0x1800-0x181f irq 16 at device 29.0 on pci0
uhci0: [ITHREAD]
usbus0: <intel 82801g="" (ich7)="" usb="" controller="" usb-a="">on uhci0
uhci1: <intel 82801g="" (ich7)="" usb="" controller="" usb-b="">port 0x1820-0x183f irq 17 at device 29.1 on pci0
uhci1: [ITHREAD]
usbus1: <intel 82801g="" (ich7)="" usb="" controller="" usb-b="">on uhci1
uhci2: <intel 82801g="" (ich7)="" usb="" controller="" usb-c="">port 0x1840-0x185f irq 18 at device 29.2 on pci0
uhci2: [ITHREAD]
usbus2: <intel 82801g="" (ich7)="" usb="" controller="" usb-c="">on uhci2
uhci3: <intel 82801g="" (ich7)="" usb="" controller="" usb-d="">port 0x1860-0x187f irq 19 at device 29.3 on pci0
uhci3: [ITHREAD]
usbus3: <intel 82801g="" (ich7)="" usb="" controller="" usb-d="">on uhci3
ehci0: <intel 82801gb="" r="" (ich7)="" usb="" 2.0="" controller="">mem 0xee404000-0xee4043ff irq 19 at device 29.7 on pci0
ehci0: [ITHREAD]
usbus4: EHCI version 1.0
usbus4: <intel 82801gb="" r="" (ich7)="" usb="" 2.0="" controller="">on ehci0
pcib6: <acpi pci-pci="" bridge="">at device 30.0 on pci0
pci21: <acpi pci="" bus="">on pcib6
cbb0: <ti1510 pci-cardbus="" bridge="">mem 0xe4300000-0xe4300fff irq 16 at device 0.0 on pci21
cardbus0: <cardbus bus="">on cbb0
pccard0: <16-bit PCCard bus> on cbb0
cbb0: [FILTER]
isab0: <pci-isa bridge="">at device 31.0 on pci0
isa0: <isa bus="">on isab0
atapci0: <intel ich7="" udma100="" controller="">port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x1880-0x188f at device 31.1 on pci0
ata0: <ata 0="" channel="">on atapci0
ata0: [ITHREAD]
atapci1: <intel ich7m="" sata150="" controller="">port 0x18c8-0x18cf,0x18ac-0x18af,0x18c0-0x18c7,0x18a8-0x18ab,0x18b0-0x18bf mem 0xee404400-0xee4047ff irq 16 at device 31.2 on pci0
atapci1: [ITHREAD]
atapci1: AHCI called from vendor specific driver
atapci1: AHCI v1.10 controller with 4 1.5Gbps ports, PM not supported
ata2: <ata 0="" channel="">on atapci1
ata2: [ITHREAD]
pci0: <serial bus,="" smbus="">at device 31.3 (no driver attached)
acpi_tz0: <thermal zone="">on acpi0
acpi_tz1: <thermal zone="">on acpi0
atrtc0: <at realtime="" clock="">port 0x70-0x71 irq 8 on acpi0
atkbdc0: <keyboard controller="" (i8042)="">port 0x60,0x64 irq 1 on acpi0
atkbd0: <at keyboard="">irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: <ps 2="" mouse="">irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0
battery0: <acpi control="" method="" battery="">on acpi0
acpi_acad0: <ac adapter="">on acpi0
orm0: <isa option="" roms="">at iomem 0xd0000-0xd0fff,0xd1000-0xd1fff,0xdc000-0xdffff,0xe0000-0xeffff on isa0
sc0: <system console="">at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <generic isa="" vga="">at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: cannot reserve I/O port range
est0: <enhanced speedstep="" frequency="" control="">on cpu0
est1: <enhanced speedstep="" frequency="" control="">on cpu1
Timecounters tick every 1.000 msec
IPsec: Initialized Security Association Processing.
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 12Mbps Full Speed USB v1.0
usbus2: 12Mbps Full Speed USB v1.0
usbus3: 12Mbps Full Speed USB v1.0
usbus4: 480Mbps High Speed USB v2.0
ugen0.1: <intel>at usbus0
uhub0: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usbus0
ugen1.1: <intel>at usbus1
uhub1: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usbus1
ugen2.1: <intel>at usbus2
uhub2: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usbus2
ugen3.1: <intel>at usbus3
uhub3: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usbus3
ugen4.1: <intel>at usbus4
uhub4: <intel 1="" 9="" ehci="" root="" hub,="" class="" 0,="" rev="" 2.00="" 1.00,="" addr="">on usbus4
acd0: CDRW <hl-dt-stcd-rw dvd="" drive="" gcc-4247n="" 1.02="">at ata0-master UDMA33
ad4: 15272MB <samsung ssd="" um410="" series="" 2.5"="" 16gb="" vam12d1q="">at ata2-master UDMA100 SATA 1.5Gb/s
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
uhub2: 2 ports with 2 removable, self powered
uhub3: 2 ports with 2 removable, self powered
uhub4: 8 ports with 8 removable, self powered
ugen3.2: <stmicroelectronics>at usbus3
SMP: AP CPU #1 Launched!
Trying to mount root from ufs:/dev/ad4s1a
pflog0: promiscuous mode enabled
em1: link state changed to UPOn the topic of the fan, I don't think there are platform specific ACPI drivers loaded for controlling the onboard fan. You'll need to enter BIOS (hit the Thinkvantage button on boot) and set the Processor Cooling Policy to Active rather than Passive. The hardware should handle things on their own from there.
I will have to see what options are in the BIOS.</stmicroelectronics></samsung></hl-dt-stcd-rw></intel></intel></intel></intel></intel></intel></intel></intel></intel></intel></enhanced></enhanced></generic></system></isa></ac></acpi></ps></at></keyboard></at></thermal></thermal></serial></ata></intel></ata></intel></isa></pci-isa></cardbus></ti1510></acpi></acpi></intel></intel></intel></intel></intel></intel></intel></intel></intel></intel></acpi></acpi></acpi></acpi></intel(r)></acpi></acpi></intel(r)></acpi></acpi></multimedia,></vga-compatible></acpi></acpi></acpi></acpi></sleep></control></high></acpi></acpi></embedded></lenovo></software></version></lenovo></lahf></syscall,nx,lm></sse3,dtes64,mon,ds_cpl,vmx,est,tm2,ssse3,cx16,xtpr,pdcm></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>
-
Just in terms of reducing the fan noise it is almost certainly worth the effort to clean the fan/heatsink assembly in an old laptop. Even if it looks relatively dust free from the outside.
I recently looked at a friends laptop that was running very hot and eventually turned itself off. After blowing out the heatsink with compressed air and remounting the assembly to the cpu with decent quality heatsink compound the idle temperature went from 63°C to 40°C. The fan is barely audible at this temperature.
On that Sony Vaio it was relatively easy (surprisingly so) to access the CPU, I realise that most laptops are a PITA to disassemble.Steve
-
I actually did clean it out and changed the paste when I put the T5500 in it to replace the T2400 it had in it.
Thank you for all the help. :)