15

I have been using Ubuntu on VMware Player; today when I logged into VMware, it showed updates available for Ubuntu 15.xx. I allowed the updates and after downloading all the packages it restarted automatically, but never booted back. It is throwing messages like

Piix4_SMBus: 000:00:07.3: Host SMBus controller bus not enabled
failed to start /etc/rc.local compatibility

Please describe a way to fix it!

Murali G
  • 151
  • Updated received was 'Wily Warewolf' – Murali G Oct 29 '15 at 23:46
  • There has been a fix for this problem for a while, but you need to access your Ubuntu installation 'hard disk' to edit the file /etc/modprobe.d/blacklist.conf and add the line blacklist i2c-piix4 . You may be able to do this by booting the VM from an ISO file for Ubuntu, and choosing 'Try Ubuntu' – Charles Green Oct 29 '15 at 23:58
  • Hi Charles, thanks for your quick response. Could you please elaborate the steps as I am not really good in doing this. How do I access Ubuntu Installation hard disk? Please provide the navigation. I am using VMware Player and installed Ubuntu on VMPlayer. Apologies for the trouble. – Murali G Oct 30 '15 at 00:13
  • Had the exact same problem today with Debian 13 (Trixie) under VMWare Workstation 17, apparently after installing packet webcam. This answer mainly gave me the trick! – Olivier Sep 13 '23 at 13:17

5 Answers5

11

First, add this line in your vmx file to increase the boot time to 50s

bios.bootDelay = "50000"

Start the VM, hold the left shift key down, then hit Enter.

In the grub menu, choose Advanced options for Ubuntu -> Recovery mode. Once the system boots, choose 'Root' to drop into a root shell.

In the root shell, enter the following commands

mount -o remount,rw /
nano /etc/modprobe.d/blacklist.conf

go down a few lines (almost anywhere) and enter the line

blacklist i2c-piix4

Then press ctrl+o to save the file, and ctrl+x

Finally, enter the command

reboot

zs2020
  • 183
  • 1
  • 5
Charles Green
  • 21,339
  • 1
    Thanks Charles for the detailed answer. I am able to resolve the first issue. I almost shouted 'Eurekha', but it did not boot yet :-(, still another issue is pending, Error: failed to start /etc/rc.local compatibility see "sstemctl status rc-local.service" for details. Request you to provide your valuable solution. Appreciate your time & patience. – Murali G Oct 30 '15 at 06:43
  • Sorry to hear continues problems. – Charles Green Oct 30 '15 at 13:39
  • Yeah...hopefully everything gets resolved with the solution you are going to provide. But blacklist i2c-piix4 is a good learning for me. Your crystal clear answer helped me in resolving that. – Murali G Oct 30 '15 at 19:44
  • Did you happen to remove the vmtools from your virtual machine before updating? – Charles Green Oct 30 '15 at 19:49
  • 2nd question, if you execute systemctl status rc-local.service in the machine, what happens? – Charles Green Oct 30 '15 at 19:56
  • Initially I was not getting internet connection to the VM. So I have installed the vmtools and then internet connection was active. I have got the updates as the internet connection was active and I performed update. when I gave the command systemctl status rc-local.service i got the below: Loaded: loaded (/lib/systemd/system/rc-local/service;static;vendor preset:enabled) Drop-In: /lib/systemd/system/rc-local/service.d debian.conf Active: inactive(dead) – Murali G Oct 30 '15 at 23:13
  • Well, I don't see anything that is wrong there, but it's really gone beyond what I can help much with. – Charles Green Oct 31 '15 at 01:22
  • No problem Charles. Thanks a lot for your support. Have a great weekend. – Murali G Oct 31 '15 at 04:29
  • I would request someone in the forum to help me with this. I am trying by exploring through various forums to close this, but no luck. Please need your support in closing this. – Murali G Nov 01 '15 at 06:22
  • 1
    @MuraliG You'll probably need to open a separate question, and you should try cross-posting into the vmware community forums. – Charles Green Nov 01 '15 at 14:10
  • @MuraliG I did find another Ubuntu forum with a question related to this, where rc.local was being used to load the vmtools and caused problems. Try this: Log into the recovery mode as above, then cd /etc followed by mv rc.local rc.local.old and touch rc.local and chmod 755 rc.local`. Then reboot. This will copy your current rc.local into a different file, and create a new, empty, rc.local – Charles Green Nov 01 '15 at 14:43
  • Hi Charles, when I tried moving rc.local to rc.local.old I am getting error message "cannot move, read only file system". Should I change any permissions, please guide. Thanks a lot for coming back. – Murali G Nov 03 '15 at 00:33
  • Ah - you forgot the part mount -o remount,rw / - when you start in the recovery mode, your computer is in read-only mode be default... – Charles Green Nov 03 '15 at 01:00
  • Dear Charles, I tried the above options but still no luck. I posted this in VMware forums also. https://communities.vmware.com/message/2552370#2552370. I have attached the screenshots also for your reference. – Murali G Nov 03 '15 at 06:21
  • I know this post is old. but I have the same problem. when I do the @CharlesGreen said, my ubuntu is boot, but after some minutes (when I worked with it). It is hanging .how can I solve this problem? Help me plz :) – H.Ghassami Dec 20 '16 at 07:57
  • @H.Ghassami I certainly do hope that you find an answer to your problem - I no longer run VMWare, but instead use KVM/QEMU to host virtual machines. You could search, and post, your problem in the vmware community forum perhaps, and receive some assistance. – Charles Green Dec 20 '16 at 12:53
  • Did not work for VMware Ubuntu 64-bit 18.04 on macOS – Gürol Canbek May 26 '18 at 11:02
  • 1
    I had to additionally run update-initramfs -u after editing blacklist.conf – TimD1 Jul 05 '19 at 14:07
  • @TimD1 I don't think you should have to do that, but it has been a long time since I ran VMWare! – Charles Green Jul 05 '19 at 22:00
  • I too had to run update-initramfs -u only to find that I had made a small mistake in /etc/fstab - I had changed the root mount from / to /i - likely by pressing i in the vi editor :) When update-initramfs -u complained it could not find what disk to boot from, I knew to check /etc/fstab; removed the i from /i, re-ran update-initramfs -u (this time really necessary to set the correct root/boot patiation), and it all worked fine again. Also blacklisted the i2c-piix4 at the same time, which I now suspect was no the original issue, just a (now fixed) error during boot. – Roel Van de Paar May 05 '20 at 04:20
  • I know this forum is Ubuntu-related but, in case someone has the same problem under Debian (13), as it happened to me, the file to append is slightly different: /etc/modprobe.d/intel-microcode-blacklist.conf. – Olivier Sep 13 '23 at 13:21
4

The method above didn't work for me on Ubuntu 16.10 and VMWare Workstation 12.5.1..

Boot into Ubuntu Recovery Mode --> drop into the root shell and open the kernel blacklist config file.

nano /etc/modprobe.d/blacklist.conf

Then add this line into the file and save.

blacklist intel_powerclamp

I found this solution from this post:

https://websiteforstudents.com/question/student-question-resolve-ubuntu-16-10-piix4_smbus-host-smbus-controller-bus-not-enabled/

John
  • 41
3

At first, open *.vmx file from your VMware folder via notepad. Then add this line to the file and save it.

cpuid.1.eax = "0000:0000:0000:0001:0000:0110:1010:0101"

The problem will be fixed.

storm
  • 4,973
teardrop
  • 131
  • 1
    This option worked for me, but only with one CPU -- had to reduce number of CPUs, before it worked. Now I can disable smbus in /etc/modprobe.d. I tried blacklisting from grub but none worked - OpenSUSE Tumbleweed 20180124 - Thanks! – Avery Freeman Jan 25 '18 at 04:14
  • didn't work for me – dafnahaktana Jan 15 '19 at 22:03
0

I was able to solve the problem by dropping into safe mode and running clean.

EDIT:

This was done holding shift when rebooting the VM. when in the grub go to "advanced options". Then in that menu run "clean"

  • Could you edit your answer and provide more detail about how to enter safe mode and run clean ? – storm Aug 24 '21 at 20:20
0

Although I'm late to the party, the solution to your other problem (failed to start /etc/rc.local compatibility etc., as described in the later comments to Charles Green's answer) is most probably (at least was for me), to wipe old, incompatible vmhgfs (shared VM disk) settings/module, since they break a couple of things.

First, the module doesn't load if there are version mismatch etc. Remove vmhgfs from /etc/modules, and now the init should run properly.

Secondly, if you added a fstab entry for your vmhgfs, systemd-fstab-generator generates a systemd startup task for it, also resulting in failed systemctl unit. Comment out or remove your vmhgfs line in fstab, and remove the relevant mnt-*.mount (e.g. mnt-vmhgfs.mount) files from your /run/systemd/generator. That should fix the 2nd part of the problem.