From many movies I watched in my life I also liked No Country for Old Men (2007) – it resonates with my computer/laptop preferences and what was available on the marker … and what is available right now. I even shared my depressing Epitaph to Laptops take on that. Not long ago I was still running ThinkPad W520 from 2011 – 14 years old laptop – that happen to run FreeBSD just fine … but while I was away from home for my working duties … a new opportunity arise.Lenovo created only about 5000 of ThinkPad (T25) 25th Anniversary Edition laptops – all of them in one config – and with one ‘underpowered’ Intel 2-CORE CPU. I still regret not having one for about $1100 for a new one that was available back then even in a local shop in my city in central Poland … but I can not change the past.Generally the ThinkPad T25 is a ThinkPad T470 with several different parts – like palm rest and the keyboard of course.After randomly checking EBAY for new buy options for ThinkPad T25 … I found FrankenPad T25 option – for about $1200 plus TAX and shipment to Poland. I took it and it was delivered to me without any unexpected events. It worked well after some testing – everything was fine – it just took me about half a year to leave ThinkPad W520 and actually migrate to it.For those that do not understand what a FrankenPad is – let me explain – its a mix of various ThinkPad models – sometimes requiring 3D printing for parts – sometime BIOS modifications – sometimes soldering – etc. Back in a time you could create one by yourself or order one – https://xyte.ch/mods/t25-frankenpad/ – for example here.The most important part of the FrankenPad is of course the classic 7-row keyboard – all the rest are just addons.White dotted line shows the difference in size.The One and OnlyEverytime I hear/read the term The One and Only my mind recalls Counter-Strike 1.x HeatoN player … and I really loved these Counter-Strike 1.x LAN parties that we all played two decades ago … unfortunately all of that has ended and everyone are too busy to meet like that anymore … some faith has been restored when one of my buddies started a WhatsApp group called CS:GO to meet online and play some … we meet once and half a year passed.Now – back to the FrankenPad – there are probably at least several of such machines out there in the world – mine has the following characteristics:– It is basically ThinkPad T480 laptop with 4-CORE Intel CPU and 32 GB RAM.– It has the ThinkPad (T25) 25th Anniversary Edition palm rest/touchpad and THE keyboard.– It also has low power FullHD (1920×1080) screen from ThinkPad T490.So one may say that my FrankenPad T25 is a ThinkPad T480/T25/T490 hybrid.From the drawbacks – it still has Nvidia MX150 that I just turned off in the BIOS.You can see the screen frame still has T480 sign while the palm rest and the keyboard are from T25 model.… and from the least interesting news – this shot above shows how most of my articles are written I really like the fact that Epiphany web browser refreshes everytime I save the file – so I have like ‘live’ preview.Also – the top cover is still from the ThinkPad T480 (black and white) while the palm rest is from ThinkPad T25 (colors).ThinkPad W520 LegacyDo miss it after the migration? Some things yes. For example ThinkPad W520 had three USB-A ports were on the left while FrankenPad T25 has two USB-A ports on the right (I need to use 90 degrees angle USB adapters and extenders so it does not interfere with my mouse pad).The FrankenPad T25 also have two USB-C ports on the left … but one is occupied by power adapter and the second one … is not usable under FreeBSD unless I attach a cheap USB hub to it I got that small USB hub here – https://aliexpress.com/item/1005007244139650.html – on Aliexpress portal.On the keyboard side – the ThinkPad T25 keyboard is like little more soft/subtle – has softer feeling when typing on it – that is nice – not that I disliked the ThinkPad W520 one – its just I like ThinkPad T25 better.From other positive side – I really like that I can finally just use any 65W USB-C cable to charge it – including mine ZMI QB826G 210W 25000mAh powerbank – https://vermaden.wordpress.com/2024/02/11/tiny-ups-for-tiny-nas-reloaded/ – described here.HardwareOne of the first things I did when I got it was to get into the actual hardware inside.More or less just a regular ThinkPad T480 internals.… but while I was getting the bottom cover off … I broke some plastic parts on the back.The leftover parts that I got. Such things never happened when I (di)assembled ThinkPad W520/X220/T520/T420s models in the past.I also ordered a SATA cable – for about $3 – to be able to attach mine Samsung 870 QVO 8TB SATA 2.5 SSD drive … but as I was able to get Corsair MP600 PRO LPX 8TB M.2 NVMe SSD for cheap price – so I went with NVMe SSD instead.WiFiI started with FreeBSD 14.2-RELEASE on that FrankenPad T25 – and on it – the WiFi was not working at all.It came with Intel AX210 card installed.Thanks to solution by Michal Sapka and his FreeBSD: Fixing ThinkPad X1 WiFi article I ordered Intel AC 9260 card and installed it into mine FrankenPad laptop.The Intel AC 9260 WiFi card installed on the picture above.Now – both FreeBSD 14.2-RELEASE and FreeBSD 14.3-RELEASE connect to WiFi networks without problem.TrackPointSome people love ThinkPad laptops because they come with TrackPoint but I am not one of them – its very slow and unprecise to say the least.But I do not have anything against it – while it does not work for me – I believe there would be lots of people that rely on it – so lets leave it there for them.FreeBSD System ConfigurationFrom lots of things that I really like about FreeBSD UNIX (more here – Quare FreeBSD?) is that it can be entirely configured using just 3 files. This configuration already features all power management settings that I described in the The Power to Serve – FreeBSD Power Management article.As usual I installed FreeBSD in a pretty standard way with GELI encryption enabled and with ZFS as the filesystem. The FreeBSD installer automatically detected and applied the so called ‘Lenovo Fix‘. When in doubt the installation procedure is described in the FreeBSD Desktop – Part 2.1 – Install FreeBSD 12 article.Main FreeBSD configuration files./etc/rc.conf – to system services/etc/sysctl.conf – for runtime parameters/boot/loader.conf – for parameters configurable at bootI will also include these as their are also crucial for the configuration:/etc/devfs.rules – devices configuration/li>/etc/fstab – filesystems configuration/etc/ttys – terminal initialization configuration/etc/wpa_supplicant.conf – WiFi configuration/usr/local/etc/automount.conf – automount(8) configuration/usr/local/etc/doas.conf – doas(1) configurationGroups membership.First the main /etc/rc.conf configuration file.F25 % cat /etc/rc.conf# SILENCE # ------------------------------------------------------------------ rc_startmsgs=NO rc_info=NO# NETWORK # ------------------------------------------------------------------ hostname=f25.local background_dhclient=YES extra_netfs_types=NFS defaultroute_delay=3 defaultroute_carrier_delay=3 wlans_iwm0=wlan0 # // network.sh create_args_wlan0="country PL regdomain FCC4" # // network.sh# ifconfig_wlan0="WPA SYNCDHCP powersave" # // network.sh gateway_enable="YES" harvest_mask=351 rtsol_flags="-i" rtsold_flags="-a -i"# MODULES/COMMON/BASE # ------------------------------------------------------ kld_list="${kld_list} geom_eli" kld_list="${kld_list} /boot/modules/i915kms.ko" kld_list="${kld_list} fusefs coretemp sem cpuctl ichsmb cuse linux linux64" kld_list="${kld_list} urndis"# MODULES/BHYVE/VIRTUALBOX # ------------------------------------------------- vboxnet_enable=NO vm_enable=YES vm_dir="zfs:zroot/vm" vm_list="poudriere" vm_delay="3" pf_enable=YES dnsmasq_enable=NO# POWER # -------------------------------------------------------------------- performance_cx_lowest=C1 economy_cx_lowest=Cmax powerd_enable=YES powerd_flags="-n adaptive -a hiadaptive -b adaptive -m 800 -M 1400" powerdxx_enable=NO powerdxx_flags="-n adaptive -a hiadaptive -b adaptive -m 800 -M 1400"# DAEMONS | yes # ------------------------------------------------------------ zfs_enable=YES xdm_enable=YES xdm_tty=ttyv4 nfs_client_enable=YES devd_flags="-n" moused_enable=YES syslogd_flags='-s -s' sshd_enable=YES local_unbound_enable=NO webcamd_DEV=$( usbconfig | grep -i camera | awk -F ':' '{print $1}' ) webcamd_enable=YES webcamd_0_flags="-d ${webcamd_DEV}" ubuntu_enable=YES rctl_enable=YES dbus_enable=YES cupsd_enable=YES# DAEMONS/temp | yes # ------------------------------------------------------- samba_server_enable=NO nmbd_enable=NO smbd_enable=NO# DAEMONS | no # ------------------------------------------------------------- linux_enable=NO openssh_enable=NO openssh_flags='-4 -p 23' sendmail_enable=NO sendmail_submit_enable=YES sendmail_outbound_enable=NO sendmail_msp_queue_enable=NO# FS # ----------------------------------------------------------------------- fsck_y_enable=YES clear_tmp_enable=NO clear_tmp_X=YES growfs_enable=YES# OTHER # -------------------------------------------------------------------- keyrate=fast keymap=pl.kbd virecover_enable=NO update_motd=NO devfs_system_ruleset=desktop hostid_enable=YES entropy_file=NO savecore_enable=NO dumpdev=AUTO# NFSD # --------------------------------------------------------------------- sshd_enable=YES nfs_server_enable=YES nfsv4_server_only=YES nfs_server_flags="-t"# JAIL # --------------------------------------------------------------------- jail_enable=YES jail_devfs_enable=YES jail_list="minecraft"Now the runtime parameters /etc/sysctl.conf file.F25 % cat /etc/sysctl.conf# HARVEST MASK FOR random(4) kern.random.harvest.mask=33119# SECURITY security.bsd.see_jail_proc=0 security.bsd.unprivileged_proc_debug=0# SECURITY/INTEL CPU MDS MITIGATION DISABLE hw.mds_disable=0 machdep.mitigations.mds.disable=0# SECURITY/RANDOM PID kern.randompid=1# ANNOYING THINGS vfs.usermount=1 kern.coredump=0 hw.syscons.bell=0 kern.vt.enable_bell=0# ZFS ASHIFT 4k vfs.zfs.min_auto_ashift=12# ZFS DELETE FUCKUP TRIM (def:64) vfs.zfs.vdev.trim_max_active=1# ZFS ARC TUNING vfs.zfs.arc.min=134217728 vfs.zfs.arc.max=536870912# ZFS DISABLE STRICT ZVOL QUOTA ENFORCMENT (def:1) vfs.zfs.zvol_enforce_quotas=0# JAILS/ALLOW UPGRADES IN JAILS security.jail.chflags_allowed=1# JAILS/ALLOW RAW SOCKETS security.jail.allow_raw_sockets=1# JAILS/ALLOW fdescfs(5) security.jail.mount_fdescfs_allowed=1 security.jail.param.allow.mount.fdescfs=1# DESKTOP/INTERACTIVITY kern.sched.preempt_thresh=224# DESKTOP QUANTUM FOR TIMESHARE THREADS IN stathz TICKS (def:12) NomadBSD kern.sched.slice=3# DESKTOP/IRIDIUM/CHROMIUM kern.ipc.shm_allow_removed=1# SAMPLE RATE CONVERTER QUALITY (0=low .. 4=high) (def:1) NomadBSD hw.snd.feeder_rate_quality=3# PERFORMANCE/ALL SHARED MEMORY SEGMENTS WILL BE MAPPED TO UNPAGEABLE RAM kern.ipc.shm_use_phys=1# VIRTUALBOX aio(4) SETTINGS vfs.aio.max_buf_aio=8192 vfs.aio.max_aio_queue_per_proc=65536 vfs.aio.max_aio_per_proc=8192 vfs.aio.max_aio_queue=65536# ALLOW idprio(8) USE BY REGULAR USER security.bsd.unprivileged_idprio=1# NETWORK/DO NOT SEND RST ON SEGMENTS TO CLOSED PORTS net.inet.tcp.blackhole=2# NETWORK/DO NOT SEND PORT UNREACHABLES FOR REFUSED CONNECTS net.inet.udp.blackhole=1# NETWORK/LIMIT ON SYN/ACK RETRANSMISSIONS (def:3) net.inet.tcp.syncache.rexmtlimit=0# NETWORK/USE TCP SYN COOKIES IF SYNCACHE OVERFLOWS (def:1) net.inet.tcp.syncookies=0# NETWORK/ASSIGN RANDOM ip_id VALUES (def:0) net.inet.ip.random_id=1# NETWORK/ENABLE SENDING IP REDIRECTS (def:1) net.inet.ip.redirect=0# NETWORK/IGNORE ICMP REDIRECTS (def:0) net.inet.icmp.drop_redirect=1# NETWORK/DROP TCP PACKETS WITH SYN+FIN SET (def:0) net.inet.tcp.drop_synfin=1# NETWORK/RECYCLE CLOSED FIN_WAIT_2 CONNECTIONS FASTER (def:0) net.inet.tcp.fast_finwait2_recycle=1# NETWORK/CERTAIN ICMP UNREACHABLE MESSAGES MAY ABORT CONNECTIONS IN SYN_SENT (def:1) net.inet.tcp.icmp_may_rst=0# NETWORK/INITIAL SEND/RECV SOCKET BUFFER SIZE net.inet.tcp.sendspace=65536 net.inet.tcp.recvspace=65536# BHYVE net.link.tap.up_on_open=1 net.link.tap.user_open=1# https://lists.freebsd.org/archives/freebsd-stable/2023-November/001726.html vfs.zfs.dmu_offset_next_sync=0# SOUND VOLUME hw.snd.vpc_0db=35# SOUND DEFAULT OUTPUT hw.snd.default_unit=0# INCREASE IN PRECISION OF SOFTWARE CLOCKS (def:5) 2025/02/05 kern.timecounter.alloweddeviation=0# DISABLE ZFS DEADMAN - HELPS ZFS ON USB DRIVES THAT GO TO SLEEP vfs.zfs.deadman.enabled=0# MAXIMUM LISTEN SOCKET PENDING CONNECTION ACCEPT QUEUE SIZE (def: 128) kern.ipc.soacceptqueue=1024 # MAXIMUM LISTEN SOCKET PENDING CONNECTION ACCEPT QUEUE SIZE (COMPAT) (def: 128) kern.ipc.somaxconn=1024# CAP MAX CWND INCREMENT DURING SLOW-START TO THIS NUMBER OF SEGMENTS (def: 2) net.inet.tcp.abc_l_var=16 # ENABLE TCP FAST OPEN SERVER FUNCTIONALITY (def: 0) net.inet.tcp.fastopen.server_enable=1# FIN-WAIT2 TIMEOUT (def: 60000) net.inet.tcp.finwait2_timeout=8000# PREVENT SHARED MEMORY FROM BEING SWAPPED TO DISK kern.ipc.shm_use_phys=1# DO NOT SWITCH VIRTUAL CONSOLES BACK AND FORTH ON SUSPEND# SOMETIMES SWITCHING TO DIFFERENT VT BREAKS HARDWARE ACCELERATION# https://github.com/freebsd/drm-kmod/issues/175 kern.vt.suspendswitch=0Now the boot parameters /boot/loader.conf file.F25 % cat /boot/loader.conf# CONSOLE COMMON autoboot_delay=2 # USE '-1' FOR NO WAIT | USE 'NO' FOR INFINITE WAIT hw.usb.no_boot_wait=1 # DO NOT WAIT FOR USB DEVICES FOR ROOT (/) FILESYSTEM boot_mute=YES # LIKE '-m' IN LOADER - MUTE CONSOLE WITH FreeBSD LOGO loader_logo=none # POSSIBLE LOGO OPTIONS: fbsdbw beastiebw beastie none loader_menu_frame="none" screen.font="6x12"# CONSOLE RESOLUTION kern.vt.fb.default.mode="1920x1080" efi_max_resolution="1920x1080" vbe_max_resolution="1920x1080"# WINE FIX machdep.max_ldt_segment=2048# MODULES - BOOT aesni_load=YES geom_eli_load=YES cryptodev_load=YES zfs_load=YES# ENABLE FRAME BUFFER COMPRESSION FOR POWER SAVINGS compat.linuxkpi.i915_enable_fbc=1# SKIP UNNECESSARY MODE SETS AT BOOT TIME compat.linuxkpi.i915_fastboot=1# ENABLE POWER-SAVING DISPLAY C-STATES compat.linuxkpi.i915_enable_dc=2# DISABLE DISPLAY POWER WELLS WHEN POSSIBLE# compat.linuxkpi.i915_disable_power_well=1# ENABLE SYNAPTICS hw.psm.synaptics_support=1# DISABLE /dev/diskid/* AND /dev/gptid/* ENTRIES FOR DISKS kern.geom.label.disk_ident.enable=0 kern.geom.label.gptid.enable=0# INCREASE ZFS TRANSACTION TIMEOUT TO SAVE BATTERY vfs.zfs.txg.timeout=10# RACCT/RCTL RESOURCE LIMITS kern.racct.enable=1# ZFS TUNING vfs.zfs.prefetch_disable=1# POWER MANAGEMENT POWER OFF DEVICES WITHOUT ATTACHED DRIVER hw.pci.do_power_nodriver=3# POWER MGMT / OPTIMIZE ISS CLOCk FOR EACH CORE INDIVIDUALLY# machdep.hwpstate_pkg_ctrl=0# POWER MANAGEMENT FOR EVERY USED AHCI CHANNEL (ahcich 0-7) hint.ahcich.0.pm_level=5 hint.ahcich.1.pm_level=5 hint.ahcich.2.pm_level=5 hint.ahcich.3.pm_level=5 hint.ahcich.4.pm_level=5 hint.ahcich.5.pm_level=5 hint.ahcich.6.pm_level=5 hint.ahcich.7.pm_level=5# GELI THREADS kern.geom.eli.threads=4# MAX SEND QUEUE SIZE net.link.ifqmaxlen=2048# DISABLE USB PACKET FILTERING hw.usb.no_pf=1# NO USB DEVICE ENUMERATE WAITING AT BOOT AND SHUTDOWN hw.usb.no_boot_wait=0 hw.usb.no_shutdown_wait=1 # DISABLE hwpstate_intel(4) DRIVER hint.hwpstate_intel.0.disabled=1As you can see above – I have disabled the hwpstate_intel(4) driver as I was not able to find the right balance between performance/power/battery balance while having responsive system.Now the mentioned /etc/devfs.rules file.F25 % cat /etc/devfs.rules[desktop=10]add path 'acd*' mode 0660 group operatoradd path 'cd*' mode 0660 group operatoradd path 'da*' mode 0660 group operatoradd path 'pass*' mode 0660 group operatoradd path 'xpt*' mode 0660 group operatoradd path 'fd*' mode 0660 group operatoradd path 'md*' mode 0660 group operatoradd path 'uscanner*' mode 0660 group operatoradd path 'lpt*' mode 0660 group cupsadd path 'ulpt*' mode 0660 group cupsadd path 'unlpt*' mode 0660 group cupsadd path 'ugen*' mode 0660 group operatoradd path 'usb/*' mode 0660 group operatoradd path 'video*' mode 0660 group operatoradd path 'cuse*' mode 0660 group operatorFilesystems and SWAP configuration.F25 % cat /etc/fstab# SWAP /dev/gpt/swap0 none swap sw 0 0# /dev/ada0p3 none swap sw 0 0# /tmp @ RAM tmpfs /tmp tmpfs rw,size=1g,mode=1777 0 0# FreeBSD PSEUDO procfs /proc procfs rw 0 0# Ubuntu Linux PSEUDO linprocfs /compat/ubuntu/proc linprocfs rw,failok,late 0 0 linsysfs /compat/ubuntu/sys linsysfs rw,failok,late 0 0 devfs /compat/ubuntu/dev devfs rw,failok,late 0 0 fdescfs /compat/ubuntu/dev/fd fdescfs rw,failok,late,linrdlnk 0 0 tmpfs /compat/ubuntu/dev/shm tmpfs rw,failok,late,size=1g,mode=1777 0 0 /home /compat/ubuntu/home nullfs rw,failok,late 0 0 /tmp /compat/ubuntu/tmp nullfs rw,failok,late 0 0Terminals configuration under /etc/ttys file. Important part is the ttyv4 entry to match the xdm_tty=ttyv4 value from /etc/rc.conf file.F25 % grep '^[^#]' /etc/ttysconsolenoneunknownoff insecurettyv0"/usr/libexec/getty Pc"xtermonifexists securettyv1"/usr/libexec/getty Pc"xtermonifexists securettyv2"/usr/libexec/getty Pc"xtermonifexists securettyv3"/usr/libexec/getty Pc"xtermonifexists securettyu0"/usr/libexec/getty 3wire"vt100onifconsole securettyu1"/usr/libexec/getty 3wire"vt100onifconsole securettyu2"/usr/libexec/getty 3wire"vt100onifconsole securettyu3"/usr/libexec/getty 3wire"vt100onifconsole securedcons"/usr/libexec/getty std.115200"vt100off securexc0"/usr/libexec/getty Pc"xtermonifconsole securercons"/usr/libexec/getty std.115200"vt100onifconsole secureWireless config – as an example for different network types. As you have seen I did not included any network information in the /etc/rc.conf file – this is because I use my own network.sh solution to connect to various both wire and wireless networks – FreeBSD Network Management with network.sh Script – described in detail here.F25 # cat /etc/wpa_supplicant.conf# GENERALeapol_version=2ap_scan=1fast_reauth=1# OPEN NETWORKSnetwork={ key_mgmt=NONE priority=0}# NETWORK WITH HIDDEN SSIDnetwork={ scan_ssid=1 ssid="hidden-network" psk="12341234" priority=0}# NAMED OPEN NETWORKnetwork={ ssid="Free_Internet" key_mgmt=NONE priority=0}# NORMAL WPA/WPA2 SECURED NETWORKnetwork={ ssid="SECURED" psk="12345678"}The automount(8) config.F25 % cat /usr/local/etc/automount.conf USERUMOUNT=YES USER=vermaden FM='caja --no-desktop' NICENAMES=YESThe doas(1) configuration.F25 # cat /usr/local/etc/doas.conf# CORE permit nopass keepenv root as root permit nopass keepenv vermaden as root# THE network.sh SCRIPT # pw groupmod network -m YOURUSERNAME # cat /usr/local/etc/doas.conf permit nopass :network as root cmd /etc/rc.d/netif args onerestart permit nopass :network as root cmd /usr/sbin/service args squid onerestart permit nopass :network as root cmd dhclient permit nopass :network as root cmd ifconfig permit nopass :network as root cmd killall args -9 dhclient permit nopass :network as root cmd killall args -9 ppp permit nopass :network as root cmd killall args -9 wpa_supplicant permit nopass :network as root cmd ppp permit nopass :network as root cmd route permit nopass :network as root cmd tee args -a /etc/resolv.conf permit nopass :network as root cmd tee args /etc/resolv.conf permit nopass :network as root cmd umount permit nopass :network as root cmd wpa_supplicantGroups I am member of.F25 % id vermaden | tr ' ' '\n' | tr ',' '\n'uid=1000(vermaden)gid=1000(vermaden)groups=1000(vermaden)0(wheel)5(operator)44(video)47(realtime)48(idletime)69(network)145(webcamd)920(vboxusers)I also do not rely on ‘stock’ fan speeds and set my own speeds according to CPU temperature with acpi-thinkpad-fan.sh script.Desktop EnvironmentOpenboxAs for the ‘desktop environment’ that I use – its my custom setup with Openbox along with tools like Tint2 and Dzen2 – for the most basic setup. The screenshot is from FreeBSD 11.1 but it looks exactly the same today.I described this setup in details in the entire FreeBSD Desktop series.XFCEI have also tried XFCE – I liked it especially with the Global Menu appmenu plugin. You go this way with this XFCE Cupertino Way handy guide.AccessoriesThere are some accessories that are very handy with the ThinkPad W520 laptop. I will describe them below.Smaller Power SupplyThe ThinkPad W520 required large power brick in a form of official ThinkPad 170W Power Supply or ThinkPad 135W Power Supply that originally was sold with ThinkPad W510. With ThinkPad T480 or mine FrankenPad T25 its a lot more comfortable to use 140w power supply described in the Small Powerful USB-C Chargers section of the More Undervalued Hardware Companions article.Mouse CompanionAfter checking many mouse models – as described in the UNIX Mouse Shootout article – I finally settled with Logitech Triathlon M720 mouse. I have plugged the Lenovo USB Receiver into the side USB port. While I use that mouse over the USB receiver you can also connect it using Bluetooth – also to other computers. This mouse has a special dedicated button to switch between 3 different computers. Unfortunately the copy-paste between them does not work SummaryAfter using ThinkPad W520 for such a long time nothing is perfect – but FrankenPad T25 is the least bad think I can migrate to – and to be honest after several months with it – I finally feel like at home again. Only one thing keeps me worried – what if that F25 machine will break?For most of the time when I used ThinkPad W520 I have had a spare copy … and I do not have any ‘backups’ for this one.To still be more or less prepared for potential problems I still have ThinkPad T14 GEN1 and I also added ThinkPad T520 to my ‘library’ … but not just an ordinary one – a one with 4X/8T CPU. After I thought what was the most important parts of ThinkPad W520 – they were the 4C/8T CPU and 1920×1080 FullHD screen … and of course the legendary 7-row ThinkPad keyboard – so I got another ThinkPad T520 as a spare laptop with that 4C/8T CPU for about $70 – at least that was available in Poland.I will now sell these two ThinkPad W520 laptops of mine in next month or so … lots of memories though …EOF