I have a Macbook Pro 2010
I have a problem running Docker, it says
"Fatal Error.
Incompatible CPU detected
Docker requires a processor with virtualization capabilities. "
Processor in there is Core 2 Duo P8600 2.4GHz
https://ark.intel.com/products/35568/Intel-Core2-Duo-Processor-P8600-3M-Cache-2_40-GHz-1066-MHz-FSB?q=p8600 It says it supports VT-x
While it supports VT-x, I am guessing perhaps it doesn't support some later virtualization capabilities because this later CPU, the i5 760, launched Q3'10 (not in my laptop), https://ark.intel.com/products/48496/Intel-Core-i5-760-Processor-8M-Cache-2_80-GHz has a newer page that has some other things listed related to virtualization For example the i5 mentions "IntelĀ® Virtualization Technology for Directed I/O (VT-d):No" and "IntelĀ® VT-x with Extended Page Tables (EPT):yes". For my processor(the core2duo P8600), the page is a bit older in design, as the CPU was launched Q3'08 while it says I have VT-x it doesn't say yes or no as to whether I have EPT or VT-d .
Though perhaps VT-d is irrelevant.
I notice https://developer.apple.com/documentation/hypervisor mentions
"Generally, machines with an Intel VT-x feature set that includes Extended Page Tables (EPT) and Unrestricted Mode are supported. You can determine the availability of Hypervisor APIs on a particular machine at runtime with the sysctl(8) command, passing kern.hv_support as an argument."
I have read that there are two issues here that may or may not be connected.
The CPU may indeed not support virtualization, and I read here https://forums.docker.com/t/fatal-error-incompatible-cpu-detected/9162/6 that the way to check is to run the command
$ sysctl kern.hv_support<ENTER>
and if the result ise.g.
kern.hv_support: 1then it's fine, and if the result is
kern.hv_support: 0` then it's not fine.It's possible to have a CPU that supports virtualization but that there is something in a MAC that is like a BIOS or like a UEFI.. that commonly disables virtualization. I read somewhere(don't recall where, and it may be wrong), that all Macbook Pro 2010s have a CPU that supports virtaualization and it's purely this issue that it needs to be enabled.
I found a solution mentioned here
https://github.com/dreamcat4/efi-enable-vtx
One method it says is temporary which is to go into sleep mode then wake out of it. For me that doesn't work.
The other method it lists, to "Set EFI VT-X Register bit"
I tried it but am running into an issue. It lists 33 steps.. To summarise as far as I got.
Download rEFIt disk image, mount it, you see an efi folder, copy it to root, copy vmx folder in the dreamcat5/efi-enable-vtx git repository into /efi, run cd /efi/refit
run ./enable.sh
That runs a sudo command. In my case it didn't prompt for a password perhaps cos I had already run a command with sudo. Restarted it holding ALT as it started up. Reached step 12 which is "Select rEFIt boot device to enter rEFIt menu." But then I don't get the rEFit menu. So I can't continue with steps like "In rEFIt menu, select Console."
Do I need to upgrade my CPU? And if so, where can I see a list of Core 2 Duos that meet the virtualization requirements? (Since clearly my CPU supports VT-x), but perhaps it doesn't meet the requirements.
I understand that another option is to install an earlier version of Docker that uses the docker toolbox. i'm not sure to what extent that is a disadvantage, but it's also something i'm considering. But i'd like to see if I can use the latest version of docker.
added
Clicking the diagnose and feedback button
Docker for Mac: version: 17.12.0-ce-mac49 (d1778b704353fa5b79142a2055a2c11c8b48a653)
macOS: version 10.12.6 (build: 16G29)
logs: /tmp/5FE6B0F8-0B3C-4C7A-A5CB-24B1A5AD4D4C/20180210-135141.tar.gz
failure: sysctl -a reports no hypervisor support
[OK] db.git
[ERROR] vmnetd
/var/tmp/com.docker.vmnetd.socket does not exist
Unexpected error (No such file or directory) connecting to /var/tmp/com.docker.vmnetd.socket
/private/tmp/vmnetd/com.docker.vmnetd is not running
[OK] dns
[ERROR] driver.amd64-linux
com.docker.driver.amd64-linux is not running
[OK] virtualization VT-X
[OK] app
[ERROR] moby
/Users/apple/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/console-ring does not exist
[OK] system
[OK] moby-syslog
[OK] kubernetes
[OK] env
[ERROR] virtualization kern.hv_support
sysctl -a reports no hypervisor support
[ERROR] slirp
Unexpected error ((Failure
"Error connecting socket to 9p endpoint unix:/Users/apple/Library/Containers/com.docker.docker/Data/s51: Unix.Unix_error(Unix.ENOENT, \"connect\", \"\")")) connecting to /Users/apple/Library/Containers/com.docker.docker/Data/s51
com.docker.vpnkit is not running
slirp check failed with: Unix.Unix_error(Unix.ENOENT, "connect", "")
[ERROR] osxfs
com.docker.osxfs is not running
[OK] moby-console
[OK] logs
[ERROR] docker-cli
cannot find docker
/var/run/docker.sock does not exist
Unexpected error (No such file or directory) connecting to /var/run/docker.sock
/Users/apple/Library/Containers/com.docker.docker/Data/s60 does not exist
Unexpected error (No such file or directory) connecting to /Users/apple/Library/Containers/com.docker.docker/Data/s60
docker ps failed
[OK] menubar
[ERROR] disk
No Docker.qcow2 or Docker.raw found: the VM has never been started
Added further
I see there is a github.com/docker/for-mac/issues link mentioned in that docker screen after clicking diagnose&feedback, then clicking diagnose or diagnose and upload. I've asked there and will update.