Opened 13 months ago

Closed 8 months ago

#14496 closed bug (duplicate)

MacbookPro 2012 cannot boot Haiku on USB devices

Reported by: mauritslamers Owned by: mmlr
Priority: normal Milestone: Unscheduled
Component: Drivers/USB Version: R1/Development
Keywords: Cc:
Blocked By: #13188 Blocking:
Has a Patch: no Platform: All

Description

Because of problems with how USB is handled on certain Macbook Pro models (among which the 2012 version), the boot process of Haiku will crash with the message "did not find any boot partitions" and drop into the kernel debug console.

Possibly because of the same issue, the keyboard (which on this laptop is also a USB device) becomes unavailable as soon as the Haiku kernel is started. This also prevents creating a full kernel log, as no soft-reset or warm reboot is possible as the keyboard doesn't function.

What might be helpful though, is the dump from Linux of the USB stack. First lsusb:

Bus 002 Device 007: ID 05ac:0253 Apple, Inc. Internal Keyboard/Trackpad (ISO)
Bus 002 Device 005: ID 05ac:8242 Apple, Inc. Built-in IR Receiver
Bus 002 Device 009: ID 05ac:821d Apple, Inc. 
Bus 002 Device 004: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 002 Device 003: ID 0424:2513 Standard Microsystems Corp. 2.0 Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 05ac:8509 Apple, Inc. FaceTime HD Camera
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 054c:0243 Sony Corp. MicroVault Flash Drive
Bus 003 Device 002: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

and lsusb -t

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
    |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 8: Dev 3, If 0, Class=Hub, Driver=hub/3p, 480M
            |__ Port 1: Dev 4, If 0, Class=Hub, Driver=hub/3p, 12M
                |__ Port 3: Dev 9, If 0, Class=Vendor Specific Class, Driver=btusb, 12M
                |__ Port 3: Dev 9, If 1, Class=Wireless, Driver=btusb, 12M
                |__ Port 3: Dev 9, If 2, Class=Vendor Specific Class, Driver=btusb, 12M
                |__ Port 3: Dev 9, If 3, Class=Application Specific Interface, Driver=, 12M
            |__ Port 2: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
            |__ Port 3: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid, 12M
            |__ Port 3: Dev 7, If 1, Class=Human Interface Device, Driver=usbhid, 12M
            |__ Port 3: Dev 7, If 2, Class=Human Interface Device, Driver=bcm5974, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 1: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
        |__ Port 1: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
        |__ Port 1: Dev 3, If 2, Class=Vendor Specific Class, Driver=, 480M

There are two USB mass storage devices, one being the Sony USB stick with a Linux boot, and the other is the external hard disk which contains the Haiku installation.

Change History (6)

comment:1 by diver, 13 months ago

Component: - GeneralDrivers/USB
Owner: changed from nobody to mmlr

comment:2 by mauritslamers, 13 months ago

Forgot to mention that I encountered this error using the 64bit version of Haiku. I didn't try the 32bit version.

comment:3 by andrei_p, 13 months ago

Same issue on Macbook Pro 2014 version.

lsusb:

Bus 002 Device 002: ID 05ac:8406 Apple, Inc. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 05ac:8289 Apple, Inc. 
Bus 001 Device 007: ID 05ac:820b Apple, Inc. Bluetooth HID Mouse
Bus 001 Device 006: ID 05ac:820a Apple, Inc. Bluetooth HID Keyboard
Bus 001 Device 003: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 001 Device 004: ID 09da:8090 A4Tech Co., Ltd. X-718BK Oscar Optical Gaming Mouse
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 005: ID 05ac:0263 Apple, Inc. Apple Internal Keyboard / Trackpad (MacBook Retina)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb -t

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 4: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
    |__ Port 5: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 10, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        |__ Port 2: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 8: Dev 3, If 0, Class=Hub, Driver=hub/3p, 12M
        |__ Port 3: Dev 8, If 3, Class=Application Specific Interface, Driver=, 12M
        |__ Port 3: Dev 8, If 1, Class=Wireless, Driver=, 12M
        |__ Port 3: Dev 8, If 2, Class=Vendor Specific Class, Driver=, 12M
        |__ Port 3: Dev 8, If 0, Class=Vendor Specific Class, Driver=, 12M
        |__ Port 1: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 12: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 12: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 12: Dev 5, If 2, Class=Human Interface Device, Driver=bcm5974, 12M

Port 1: Dev 10, If 0, Class=Mass Storage, Driver=usb-storage, 480M is a usb flash with Haiku. I used this one special uefi iso:

https://keybase.pub/kallisti5/haiku-nightly-anyboot-efi.iso

comment:4 by mauritslamers, 13 months ago

I tried to recreate the problem by using virtualbox, set it to use EFI, created a small image containing the haiku_loader.efi, and put an external disk with Haiku installed as USB3 (xhci) device as boot disk. I expected a similar issue, but it turns out this setup works without issues.

In the IRC channel, it was suggested that the cause of this problem is the xhci driver, which still might be the case. However, it then might have something to do specifically with the hardware as used in the mentioned Macbook Pros, as the xhci implementation in the Haiku kernel seems to be working fine with the interface as provided by VirtualBox v5.2.18 r 124319

comment:5 by mauritslamers, 13 months ago

today I realized that despite not having a serial connection to get the kernel log, I could make a little video of the log as it is displayed. Because of autofocus issues, the videos themselves are not really worthy uploading, but after studying the code and the video, it seems the problem might be caused by the interrupt (IRQ channel) being 0. Comparing with the log from VirtualBox, the interrupt is there 0xff.

comment:6 by waddlesplash, 8 months ago

Blocked By: 13188 added
Resolution: duplicate
Status: newclosed

That would make this a dupe of #13188, which has been since fixed.

Note: See TracTickets for help on using tickets.