Causes:

Since beginning of Apple UEFI, Linux UEFI has booted with usb3 in bad
mode during the UEFI boot sequence. This was the case whenever the
previous shutdown was not a graceful Linux shutdown, ie. a crash, abrupt
shutdown by long press on power key or a macOS session. Because the wait
between a key presses and it being effective, boot is cumbersome.
Additionally, in the bad mode, timers are 12x slower so every grub
second is 12 s, and the UEFI boot additionally takes 1 to 2 minutes.

The bad mode entailed that mouse and keyboard only works for 2 s every
10-20 s with a type-ahead buffer of about 10 characters. The bad mode
was active during the UEFI phase until the kernel loaded from the boot
directory.

Linux always had usb3 problems, which can be shown by any computer with
usb3 hardware, and thus the xhci_hcd kernel module, over time shutting
down various usb devices or the entire usb subsystem. This is what
causes the console keyboard to be dead on a computer with a month or
more of up-time, forcing a power off should networked ssh become
unavailable.

Before kernel 4.8, the usb3 troubles only affected Linux. macOS and the
UEFI Startup Manager (option-boot) were not affected.

With kernel 4.8, the presence of a Linux installation affects the boot manager 
and regular macOS boot making the only boot option Apple rescue mode 
(option+R.) All booting not preceded by a graceful Linux shutdown is also 
extremely slow, about 2 minutes.
- The way to boot macOS is to boot Apple rescue mode that resets usb, then boot 
macOS
- The way to boot Linux is the get-around above

Additionally in 4.8, the xhci_kcd module, that is built-in and cannot be
removed, decides to halt the usb host controller making password input
impossible. This is what prevents booting without get-around tricks.

usb3 has been a problem in Linux since its introduction. It's time to
fix that.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1668105

Title:
  xhci_kcd module turns off usb host controller on boot

Status in linux package in Ubuntu:
  Confirmed

Bug description:
  So we know this xhci_kcd was always shit in that it turns off the
  console usb keyboard for long running computers and that it on abrupt
  termination of Linux puts usb in a 12x slower mode. It is buggy, it
  was always buggy, and its getting worse.

  With Linux 4.8.0-37, this crappy software decides to halt the host
  controller on boot, ie. turn off the console keyboard preventing any
  boot. I cannot think of any situation where anyone would want their
  host controller halted.

  This is MacBook Pro 2015. So, it's already broken in UEFI-grub as it
  always was, ie. every key press takes 8 seconds, but you only need
  two, so you can boot in 16 s.

  I tried to disable the xhci_kcd crap by using kernel parameter
  noxhci_port_switch or modprobe.blacklist=xhci_hcd neither which works.

  Because it has crap in UEFI, the computer will not boot any external
  hard drive or usb fob. The only thing that works is Apple rescue that
  gets rid of the xhci garbage, and the boot os x immediately after
  that.

  So the log output
  xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
  xhci_hcd 0000:00:14.0: xHCI host not responding to stop endpoint command.
  - and a bit later:
  xhci_hcd 0000:00:14.0: Assuming host is dying, halting host.
  xhci_hcd 0000:00:14.0: HC died; cleaning up

  This clown programming of Linux has to stop. Why would anyone ever
  want their host controller halted?

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1668105/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to