Jump to content

Samsung Chromebox Install. WIP


timp
 Share

1 post in this topic

Recommended Posts

Well thanks to John Lewis and his fantastic work on getting SeaBios working on the Samsung Chomebox, I've got OSX installed and booting on the Chromebox using a modified Mountain Lion install USB dongle.  It's quite involved. Some hardware and hackintosh experience is required.

 

Given the nature of what's involved don't blame John or me if you try this and brick/break your Chromebox.  Unfortunately I don't have much time to respond to help requests although amendments and comments are welcome.

 

If you like John's work on SeaBios, donate some money.  He's clearly put a lot of time into it.

 

Also, running OSX on non-Mac hardware is illegal, I'm doing this just to prove it can be done.

 

So the process is something like this:

 

1. Make sure your Chromebox(Stumpy) has a HD3000 GPU and not the HD2000 that is in the Celeron version.

You can quite easterly upgrade the CPU.  I've tried an i7-2670qm that worked, but it got a bit hot.  Now it's running an i5-2520m.  I expect most core 'i' second gen CPU's will work although the CPU shouldn't be more than 35W TDP.

 

2. Enable developer mode and disable write protect. You'll have to remove the motherboard to do this as the write protect jumper is on the back.

See http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/samsung-sandy-bridge

At the bottom of the page there are some photos of the Stumpy.  The write protect jumper is the lower of the two white connectors in the top left corner of the last two pictures. Next to the 8-pinned flash memory.

 

3. Create a Mountain Lion install USB dongle.

I used Chameleon 2.1 and added the contents /Extra folder as follows.(I'll try and attach a tar file..)

/Extra/Extensions/FakeSMC.kext

/Extra/Extensions/NullCPUPowerManagement.kext

/Extra/smbios.plist  (From MacMini5,1)

/Extra/org.chameleon.Boot.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Kernel Flags</key>
        <string>-v</string>
        <key>GraphicsEnabler</key>
        <string>Yes</string>
        <key>Graphics Mode</key>
        <string>1920x1080x32</string>
        <key>Timeout</key>
        <string>2</string>
        <key>USBBusFix</key>
        <string>Yes</string>
        <key>Wait</key>
        <string>No</string>
</dict>
</plist>

4. Go to John Lewis's site: https://johnlewis.ie/custom-chromebook-firmware/rom-download/  and read about his work AND THE RISKS OF USING IT!!

 

5. Boot the Chromebox and download and run the flash script from John Lewis's site: https://johnlewis.ie/custom-chromebook-firmware/rom-download/ 

IF IT FAILS DON'T REBOOT!! Go to John Lewis's site for help. You need to re-flash the backup of the original rom the script made.

I ran the script from Ubuntu 12 not ChromeOS and it worked great.

 

6. See if your Chromebox will still start.  It only needs to get to the SeaBios text screen.

Mine boot looped trying to boot from the SSD.  I think because it can't boot from the odd ChromeOS boot setup.

 

6* (Optional) If you have OSX compatible Wifi card. Install it.

 

7. Insert your dongle, power up, press ESC and select the OSX Installer USB dongle.

In the SeaBios boot menu you should get 3 options. HD, USB and some funky ROM based Linux that does't work with a USB Keyboard.

If the you can't get Chameleon to start, it's probably the dongle. (FYI. I connected the dongle to one of the ports on the front of the Chromebox. Don't know this has any effect.)

You can try the -x and -f Chameleon boot options if OSX hangs.

 

8. In the Installer open the DiskUtility and repartition the 16GB internal drive to contain one Mac file system.

 

9. Install OSX.

 

10. Stop the installer before it reboots or Reboot using the USB dongle again.

 

11. Install Chameleon.

 

12. Copy files from the USB dongles /Extra to the SSD.

You can try adding the -allowAppleCPUPM option in org.chameleon.Boot.plist to enable power management.

 

13. Add the Lnx2Mac Realtek and VoodooHDA kexts to /System/Library/Extensions.

 

 

What doesn't work:

  • Sleep.  Sleeps, but reboots on wake.
  • The headphone socket. The mic works, but not audio out.
  • Bluetooth. The hardware is detected but no devices show up when paring. Still a bit dodgy.
  • Opening 'About this Mac' logs the user out!? Weird. smbios issue?
  • HD3000 Artifacts..

I'll try and update this post with any further progress.

   

Cheers and good luck.

 

 

UPDATE: 15Sept14

 

I've found using Clover version 2890 and setting the ProductName to MacMini5,1 fixes sleep and the 'About this Mac' log outs.  Seems Chameleon wasn't able to correctly set the memory parameters in the smBios.  The down side is that there is now graphics tearing, although after a sleep cycle them seem to clear up. Still testing..  

 

Another note. In SeaBios the keyboard only seems to work in the USB port on the back corner of the unit.

 

UPDATE: 16Sept14

To get the audio output switching working between the internal speaker and the headphone jack add the following xml to Info.plist in VoodooHDA.kext next to 'MixerValues'

                        <key>NodesToPatch</key>
                        <array>
                                <dict>
                                        <key>Codec</key>
                                        <integer>0</integer>
                                        <key>Node</key>
                                        <integer>5</integer>
                                        <key>Config</key>
                                        <string>0x0221201f</string>
                                </dict>
                                <dict>
                                        <key>Codec</key>
                                        <integer>0</integer>
                                        <key>Node</key>
                                        <integer>2</integer>
                                        <key>Conns</key>
                                        <array>
                                                <integer>5</integer>
                                                <integer>6</integer>
                                        </array>
                                </dict>
                        </array>

This changes the headphone node config and tells the driver that node 2(the DAC) can switch between to nodes 5 & 6, The headphone jack and speaker.

 

The Athreos AR3012 bluetooth chip will work with the 'Bluetooth Firmware Uploader' from osxlatitude.com but fails after sleep and is a bit glitchy.  You need to add the correct ids(3315 & 12292) to the kexts Info.plist.

 

There are still problems with the visual artifacts with the HD3000.  Disabling Clover's Intel graphics fix seems to help. Seems to randomly occur on some boots but not others.

 

UPDATE: 21Sept14

HD 3000 artifacts seem to improve with the code below added to the graphics section of the GFX0 device in the DSDT.  This is the difference take from ioreg output between booting with Clover and Chameleon.  

                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Store (Package (0x1C)
                        {
                            "AAPL00,DataJustify",
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            },

                            "AAPL00,Dither",
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            },

                            "AAPL00,DualLink",
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            },

                            "AAPL00,LinkFormat",
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            },

                            "AAPL00,LinkType",
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            },

                            "AAPL00,PixelFormat",
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            },

                            "AAPL00,T1",
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            },

                            "AAPL00,T2",
                            Buffer (0x04)
                            {
                                 0x14, 0x00, 0x00, 0x00
                            },

                            "AAPL00,T3",
                            Buffer (0x04)
                            {
                                 0xFA, 0x00, 0x00, 0x00
                            },

                            "AAPL00,T4",
                            Buffer (0x04)
                            {
                                 0x2C, 0x01, 0x00, 0x00
                            },

                            "AAPL00,T5",
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            },

                            "AAPL00,T6",
                            Buffer (0x04)
                            {
                                 0x14, 0x00, 0x00, 0x00
                            },

                            "AAPL00,T7",
                            Buffer (0x04)
                            {
                                 0xF4, 0x01, 0x00, 0x00
                            },

                            "model",
                            Buffer (0x1E)
                            {
                                "Intel HD Graphics 3000 Mobile"
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

UPDATE: 30Sept14 HD 3000 Still has problems with artifacts. Above DSDT doesn't fix it.  Currently experimenting with EDID injection in Clover...

Ethernet also has issues. On some boots the cable is detected but no data can be transferred.  RealTek NICs seem to have problems generally.

Given up on the Atheros Bluetooth firmware loader kexts..

ChomeboxFiles.zip

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...