Windows 8.1 on a MacBook1,1 (Early/Mid 2006) - Fixed brightness and battery status

Henk Poley

macrumors regular
Original poster
Sep 22, 2008
201
26
For anyone who likes to give their old first generation MacBook a second life past the Snow Leopard support date.

Why?
Windows 8.x is supported with patches until 10 january 2023 :). The MacBook1,1 meets the Windows 8 system requirements. Video seems to play much smoother than on Snow Leopard, and having dedicated apps for e.g. Netflix might help too. The fan remains to be rather noisy of course, and there's the annoying coil whine. Can't do any magic hardware changes.


Battery life
Battery life is pretty decent, some estimates:
* 1h40m when playing Netflix, automatic streaming quality 3000 kbps (720p)
* 2h30m with youtube music running in the background in desktop IE11.
* 4 hours when just browsing. About the same as Snow Leopard (which seems worse than I remember from Tiger days)


Not supported by Apple
You could just install Bootcamp 3 from the Snow Leopard DVD, and most will work. But Windows will bluescreen often due a buggy KeyAgent.sys made by Apple. That driver doesn't pass Windows' Driver Verifier tests at all. So you will probably want to uninstall Bootcamp.


Quick howto
Install Windows 7, from within Windows install Windows 8.1. Download all the files, run setup.bat as administrator. Wait a while. Reboot. Run load.bat in the dsdt-fixes directory as administrator. Brightness and battery charge status will now also work.


Remaining nitpicks
* Volume and brightness buttons don't work.
 
Last edited:

Henk Poley

macrumors regular
Original poster
Sep 22, 2008
201
26
All the nerdy bits go here.


Full howto
* Run the "Boot camp" wizard on Snow Leopard; turn down the volume, so you never hear the boot gong.
* Install Windows 7 32bit
* Upgrade in-place to Windows 8.1 32bit. There's some problem with directly booting from the DVD, so do an upgrade from within windows. After install Windows update will pull in patches and most drivers in a reboot or 3. WiFi already works out of the box.
* Download Bootcamp 4.0.4326. Extract with 7-zip. Or download just the required drivers.
* Install: SigmaTelSetup.exe, AppleBluetoothEnablerInstaller.exe, AppleiSightInstaller.exe, AppleRemoteInstaller.exe, AppleTrackpadInstaller.exe, AppleNullDriver.exe, AppleKeyboardInstaller.exe
* Download padset-0.3.zip, this makes two finger scrolling and tap to click work without the bootcamp agent.
* Import the supplied defaultSettings.reg
* Link padset-0.3.exe in your Startup folder.
* By now everything works, except the brightness/volume keys. Setting brightness in windows doesn't work at all. And sometimes after standby the backlight remains off.
* Dump your ACPI DSDT and fix the brightness methods, compile to a fresh new dsdt.asl
* Download and install WDK 8.1 update for asl.exe, you don't need to install Visual Studio 2013 first.
* Open cmd as Administrator
* Run `"C:\Program Files\Windows Kits\8.1\Tools\x86\ACPIVerify\asl.exe" /loadtable dsdt.asl`
* Run `bcdedit /set testsigning on`, this will allow windows to load the custom DSDT (and allows certain rootkits, old unsigned drivers, etc.). Your desktop wil show "Testmode" plus the windows version and build.
* Reboot
* By pressing Cmd+I you will find a brightness slider charm.
* For natural scrolling: http://superuser.com/a/364353
* To make DVD playing less noisy: http://thesz.diecru.eu/content/rimhillex.php
* Automatically update vulnerable applications: http://secunia.com/vulnerability_scanning/personal/
* GMABooster speeds up your graphics card. Watch out for the sleazy bundled spyware. Running the GPU at 166MHz does not appear to have any influence on the common windows 8 UI elements or YouTube playback.
* Under Task manager's Startup tab you might want to disable 'IDT PC Audio'. This will stop you from enabling audio distortions and switching SPD/IF settings.
* You can also disable 'Audio service' in services.msc, this will (probably) stop you from using S/PDIF, but stops a permanent 1-1.5% CPU use. Sound will still work, headphones will still work.


Fixed bugs
* Brightness sliders in Windows work using a patched DSDT. Probably also applies to Macbook2,1. One Apple bug fixed :)
* Charging status is correct at boot. I've seen this reported with Windows 7 since back in 2010. Pretty sure this also applies to MacBook2,1 and MacBook5,1. Two Apple bugs fixed :).


Remaining bugs & nitpicks
* Brightness and volume buttons don't work.
* When netflix plays the trackpad pointer stutters. I guess that's how Microsoft gets 720p smooth.
* High DPC latency in acpi.sys (~1000 microseconds)
* Disabling driver signing checks is not pretty. Well, using Grub2 to patch the DSDT isn't pretty either. Neither is flashing the EFI BIOS (with say coreboot).
* Keyboard and touchpad do not go into 'selective suspend' mode, keeping the USB device tree powered all the time. Probably needs a custom driver.
* Need to check if SATA controller supports lower AHCI power modes, doesn't appear Windows knows about them right now. Might just not be there.


If anybody is interested to figure it out I can put the dsdt.dsl up on Github. It can already be found in the OneDrive link.


dsdt.dsl edits
In `Method (_BIF, 0, NotSerialized)` add as first line:
Code:
Store (\_SB.PCI0.LPCB.EC.RPWR, PWRS) /* \PWRS - Cache the power state when the system boots */
In `Device (LCD)` add:

Code:
					Name (BRIG, Package(103)
						{
							80, // Level when the machine has full power
							20, // Level when the machine is on batteries
							 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
							10,11,12,13,14,15,16,17,18,19,
							20,21,22,23,24,25,26,27,28,29,
							30,31,32,33,34,35,36,37,38,39,
							40,41,42,43,44,45,46,47,48,49,
							50,51,42,53,54,55,56,57,58,59,
							60,61,62,63,64,65,66,67,68,69,
							70,71,72,73,74,75,76,77,78,79,
							80,81,82,83,84,85,86,87,88,89,
							90,91,92,93,94,95,96,97,98,99,
							100,
						}
					)
					
					Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels
					{
						Return(BRIG)
					}
					
					Method (_BCM, 1, NotSerialized) // _BCL: Brightness Control Method
					{
						\_SB_.PCI0.DSPC.BRTS(Arg0)
					}
Above `Device (HDEF)` add:
Code:
			Device(DSPC) // Needs to live on the PCI bus _SB_
			{
				Name (_ADR, 0x00020001) // PCI device 00:02.1 (?)
				OperationRegion (DSPC, PCI_Config, 0x00, 0x100)
				Field (DSPC, ByteAcc, NoLock, Preserve)
				{
					Offset (0xf4),
					BRTC, 8
				}

				OperationRegion (PWM, SystemMemory, 0x904E1254, 0x4)
				Field (PWM, AnyAcc, Lock, Preserve)
				{
					PWMR,   32,
				}

				Store(0x003F003E, PWMR) // Set the LCD Pulse Width Modulation register
				
				Method (BRTS, 1, NotSerialized)
				{
					// scaling from 0-100 to 5-255, first 0x32 or so is backlight off
					
					// 5 + ((Arg0 * 2) + (Arg0 / 2))
					Store(Add(0x5, Add(Multiply(Arg0, 0x2), ShiftRight(Arg0, One))), BRTC)
				}
				
			}
 
Last edited:

Henk Poley

macrumors regular
Original poster
Sep 22, 2008
201
26
Wouldn't run Netflix very well. Pipelight will definitely need more CPU. Also power saving is better on Windows / IE11. Otherwise, I have no problem with Linux. I run it on other systems.
 
Last edited:

Quad5Ny

macrumors 6502a
Sep 13, 2009
982
18
New York, USA
The fan remains to be rather noisy of course, and there's the annoying coil whine. Can't do any magic hardware changes.
http://sourceforge.net/projects/macfan/ - Note that if you lower the fan speed, the command line has to be re-run after coming out of S3/S4. You can use windows task scheduler to run the command.

Volume and brightness buttons don't work.
http://matthew.malensek.net/software/documentation/3RVX.html (Volume) & Autohotkey (Brightness)

* Install Windows 7 32bit
* Upgrade in-place to Windows 8.1 32bit. There's some problem with directly booting from the DVD, so do an upgrade from within windows.
A better way to do this would be to boot off of the 7 DVD, then use diskpart to format and partition the drive with 2 NTFS partitions: First partition would be your Windows setup partition, make this one the size needed for the 8.1 setup files + 300MB and mark it as Active (bootable). Second would be for Windows. After that is done, use xcopy to copy the entire 8.1 DVD over to the 1st partition (you can safely eject the 7 DVD because your running off a RAM disk).


Run `bcdedit /set testsigning on`, this will allow windows to load the custom DSDT (and allows certain rootkits, old unsigned drivers, etc.). Your desktop wil show "Testmode" plus the windows version and build.
You can just disable signature enforcement using the boot menu, and after a reboot signature enforcement will automatically turn back on, although I've never tried this using a custom dsdt. (In this mode once a driver is loaded Windows will create its own signature catalog file for it. You can even uninstall/reinstall the device as long as you don't delete the drivers from the driver store)

Brightness sliders in Windows work using a patched DSDT.
I don't know if this helps you at all but on my 5,1 backlight brightness is controlled by the nvidia graphics driver. If the inf has the wrong settings during install then the backlight will not work.

Charging status is correct at boot. I've seen this reported with Windows 7 since back in 2010. Pretty sure this also applies to MacBook2,1 and MacBook5,1.
My MacBook Unibody (5,1) has no problems reporting the battery status, it will even tell you if a cell in the battery has gone bad.

When netflix plays the trackpad pointer stutters. I guess that's how Microsoft gets 720p smooth.
Try moving the pointer render to software instead of hardware:

[HKEY_CURRENT_USER\Control Panel\Mouse]
"MouseTrails"="-1"

High DPC latency in acpi.sys (~1000 microseconds)
Are you using a up to date tool? Because I know a few dpc latency checkers do not report correctly with Windows 8. Either that or EIST is acting weird, I get extremely high dpc spikes with a old P45/C2Q if I have EIST enabled in the BIOS. Turning EIST off in the BIOS and letting Windows handle the p-states fixes the problem.

Keyboard and touchpad do not go into 'selective suspend' mode, keeping the USB device tree powered all the time. Probably needs a custom driver.
Windows does this with all input devices, presumably to allow you to get out of lower power states. It even happens with Microsofts own 360 controller adapter.
 

Henk Poley

macrumors regular
Original poster
Sep 22, 2008
201
26
The WHEA blue screens I get every so often point to a broken PMU or CPU. Given that the screen sometimes flickers even in Snow Leopard, I hope it's just a broken LCD backlight inverter.

For future reference, 0xb2000000 0x00040151 is the 'machine check exception' code for a problem with the L1 cache on board of the CPU. Could be caused by a broken PMU (power management, ex. leaking capacitor) or a broken CPU.

http://www.itlisting.org/5-windows/19a53f5c7398688f.aspx
http://www.webserverforum.com/10-windows-servers/19a53f5c7398688f.htm

----------

You can just disable signature enforcement using the boot menu, and after a reboot signature enforcement will automatically turn back on, although I've never tried this using a custom dsdt. (In this mode once a driver is loaded Windows will create its own signature catalog file for it. You can even uninstall/reinstall the device as long as you don't delete the drivers from the driver store)
From what I understand the DSDT override driver is unsigned. So it won't load if signature checks are turned on. Which breaks the DSDT features I added.

I don't know if this helps you at all but on my 5,1 backlight brightness is controlled by the nvidia graphics driver. If the inf has the wrong settings during install then the backlight will not work.
I tried contacting Intel, since the driver says "Intel Corporation" on the tin. They say I should go to Microsoft, but I have no clue how to contact them appropriately. And driver developers in the room?

btw, on XP the same graphics hardware (GMA950) requires an app (such as the Bootcamp Agent) to poke the 'legacy brightness register', what I do with the DSDT.

My MacBook Unibody (5,1) has no problems reporting the battery status, it will even tell you if a cell in the battery has gone bad.
Then they probably trigger an appropriate Embedded Controller (EC) signal when windows initializes it's ACPI system, for it to load the actual charging status. Must be a hardware/firmware change, outside of the ACPI tables.


Are you using a up to date tool? Because I know a few dpc latency checkers do not report correctly with Windows 8. Either that or EIST is acting weird, I get extremely high dpc spikes with a old P45/C2Q if I have EIST enabled in the BIOS. Turning EIST off in the BIOS and letting Windows handle the p-states fixes the problem.
Yes, I know 'DPC Latency Checker' is broken on windows 8. There are no BIOS controls on a MacBook. I don't really want to disable speedstepping, or is p-states "better" ? This is a Core Duo (32 bit).
 
Last edited:

Henk Poley

macrumors regular
Original poster
Sep 22, 2008
201
26
Ah, and 3RVX just enables some hotkey combo to change brightness and volume. It does not appear to enable apple keyboard keys to do that. There are other tools that do the same, or you just press Win+I and use the sliders.
 

hklam0

macrumors newbie
Aug 11, 2014
1
1
Better way for install bootcamp support for windows 8.1 on Macbook 1,1

I have found a brilliant way to enable windows 8.1 for have a full support of bootcamp on Macbook 1,1, here is how:

1. Download Bootcamp 4 (Windows 7 32 bit)
2. Unzip it
3. Use InstEd free version to edit the BootCamp.msi under Apple directory.
4. Delete the row of checking Mac Model showing Macbook1,1 under LaunchConditions
5. If your windows date format is not English (US), please change it to English (US) temporarily for Bootcamp drivers installation or else you will get Error 2229. Your can change the date/time format back to original after successful bootcamp drivers installation.
6. Run Setup.
7. Wait.
8. Success!

You will have functional brightness control keys and volume keys back!

Enjoy!
 
  • Like
Reactions: Russoland

Henk Poley

macrumors regular
Original poster
Sep 22, 2008
201
26
@hklam0, the main Bootcamp driver tends to crash my macbook. But it might be that this mainboard is ever so slightly fried, and causes crashes that nobody else sees. Also, it does not fix the battery status problem.

Under the Windows 10 Technology Preview, the trackpad two-finger right-click works by default, and padset-0.3.exe enables the two-finger scrolling (it probably kept that one driver). Installing SigmaTelSetup.exe restores audio, but it sounds rough (haven't rebooted though, against the advise of the installer). Brightness is broken, as expected.

I suspect the fixes I mentioned above will work. I'll let you know.

You first need to disable driver signing, reboot into that disabled mode, then you can install the dsdt fixes.
 
Last edited:

katarchaea

macrumors newbie
Nov 27, 2008
7
0
I followed hklam0's advice, which seems to work just fine. Only glitch was installing boot camp in compatibility mode, and the occasional warning from the windows notification centre.
 

doynton

macrumors 6502
Oct 19, 2014
299
15
Anybody try this with a MacBookPro1,1?
Weird that the "Pro" machine officially stops at Vista.
Yes. I'm running x64 10 preview on a MacBookPro1,1 (Core 2 duo 2,16) upgraded from 8.1 in October. I just installed Windows though - didn't need to go through all these other steps. It works fine with bootcamp 3.2 drivers.
 

Gjwilly

macrumors 68030
May 1, 2011
2,872
509
SF Bay Area
Yes. I'm running x64 10 preview on a MacBookPro1,1 (Core 2 duo 2,16) upgraded from 8.1 in October. I just installed Windows though - didn't need to go through all these other steps. It works fine with bootcamp 3.2 drivers.
The MacBookPro1,1 is a CoreDuo not a Core2Duo.
You sure you have x64?
 

Henk Poley

macrumors regular
Original poster
Sep 22, 2008
201
26
There's a little sound quality gift by Microsoft & IDT. Set the volume at something like 85%. Set your macbook somewhere in the middle of the room on a table (or, just wherever it stays). Right click on the volume control on the task bar. Choose playback device. Double click 'Speakers / HP', 3rd tab, 'Room correction'. Follow the wizard, just use the defaults.

Any problems with ye olde macbook speakers will be corrected, as far as possible. Works with Windows Vista and up.
 

tigerintank

macrumors regular
Jun 16, 2013
225
20
Made a MB 2,1 / Windows 8.1 post in the Macbook forum earlier, before finding this thread via google.

Am installing 7 right now and will install 8.1 over the top shortly. Thanks for the detailed 'how to' information above - very comprehensive & :cool:

Under the Windows 10 Technology Preview, the trackpad two-finger right-click works by default, and padset-0.3.exe enables the two-finger scrolling (it probably kept that one driver). Installing SigmaTelSetup.exe restores audio, but it sounds rough (haven't rebooted though, against the advise of the installer). Brightness is broken, as expected.

I suspect the fixes I mentioned above will work. I'll let you know.
Am interested in your current view Henk, after 12-18 months or so, would you see 8.1 or 10 as the best fit for a 1,1 or 2,1 system?

I've seen a little of 10 so far and what I've seen I like.

But I wonder if 10 might tax the older hardware more than 8.1?

Any other 2,1 users views also welcome. :)
 
Last edited:

Henk Poley

macrumors regular
Original poster
Sep 22, 2008
201
26
I wouldn't know a reason to run an older Windows than Windows 10 at the moment.

I'm currently using the drivers from my OneDrive, but complimented with any updated driver found in Snappy Driver Installer. Which works reasonably fine.

MacBook2,1 is AFAIK mostly just a MacBook1,1 with a 64bit Core 2 Duo. Ought to perform similar, but 64bitness might mean slightly different driver problems.
 

tigerintank

macrumors regular
Jun 16, 2013
225
20
Ok I picked it up a little later than planned…

I edited the setup.bat to use the 64 bit driver versions of the 32 bit driver files

Theres no 64 bit version of SigmaTel that I can see, so I used that as it was and ran setup.bat / rebooted, then ran load.bat / rebooted. Thanks for automating this btw :cool:

I actually did it twice as I wasn't methodical enough first time round. So I reset windows (retaining user files) and then redid everything.

Results;
  • Trackpad works most of the time, incl 2 finger scroll/tap. Sometimes tap/2 finger tap stops working till a logout/in or reboot restores it
  • Battery indicator works
  • iSight Camera works
  • Occasional no backlight on wake from sleep. External screen / remote access available
  • Occasional no backlight on boot, can remote in no problem and reboot (not seen this after 2nd time through- will monitor)
  • No sound (the audio hardware is fine under MacOS Lion)
  • Brightness - Cmd+I brings up settings and not the brightness control
  • Optical out LED on 3.5mm is constantly on - linked to above issue possibly?
  • External Display mirror issue (older Dell 2008WFP) - display on external is displaced up and to the left if set to 1280x800, ok if set to 1024x768
  • If use external as 2nd display there's no option for the native 1680x1050 with 1680x1200 being the closest for some reason
Ran Snappy DI and the only update it suggested was a Battery Driver update - which I ran. Though again first time I noted it downloaded c100M which I assume was cached as it wasn't done 2nd time round.

I tried selecting the sound and graphics hardware individually and telling it to find drivers - each one came back saying it had the latest already.

Any suggestions to assist with getting brightness and sound working?

Any thoughts on intermittent track pad behaviour?

Any way to avoid backlight issues?

Re external screen issue - I was surprised to see a generic screen monitor driver as I think I've seen that screen connected to a PC before and i'm almost certain it was recognised as a Dell. I really don't have too much experience of drivers - can I force windows in some way, even though it thinks it has the latest?
 
Last edited:

Henk Poley

macrumors regular
Original poster
Sep 22, 2008
201
26
Yes, if you have the wrong sound driver the red LED in the line-out port will stay on. And you'll have no sound over the speakers, nor headphone port. The 32bit driver identifies itself as 'IDT High Definition Audio Codec' and 'Speakers / HP', so it might be that HP SoftPaq contains a compatible 64bit driver somewhere.

Trackpad driver on Windows is a bit jittery. But I haven't had it stop functioning entirely. You might be able to load a trackpad driver from a more recent BootCamp zip.

As I remember external display with VGA is a bit funky, the MacBook is within spec, but are at the lower end of the signal power range. Some displays and (cheap) projectors don't cope very well with that.

I don't think you can load my patched ACPI tables (load.bat) on your MacBook2,1, that fixes both brightness/backlight and some minor battery bugs. Because it would be incompatible, and because 64bit Windows re-enables driver signing each reboot. The patched ACPI tables are inserted as an unsigned driver. You might be able to work around if you patch it yourself, *and* figure how to do self-signing, or use some kind of bootloader patch that disables driver signing checks on boot.
 
Last edited:

tigerintank

macrumors regular
Jun 16, 2013
225
20
Yes, if you have the wrong sound driver the red LED in the line-out port will stay on. And you'll have no sound over the speakers, nor headphone port. The 32bit driver identifies itself as 'IDT High Definition Audio Codec' and 'Speakers / HP', so it might be that HP SoftPaq contains a compatible 64bit driver somewhere.

Trackpad driver on Windows is a bit jittery. But I haven't had it stop functioning entirely. You might be able to load a trackpad driver from a more recent BootCamp zip.

As I remember external display with VGA is a bit funky, the MacBook is within spec, but are at the lower end of the signal power range. Some displays and (cheap) projectors don't cope very well with that.

I don't think you can load my patched ACPI tables (load.bat) on your MacBook2,1, that fixes both brightness/backlight and some minor battery bugs. Because it would be incompatible, and because 64bit Windows re-enables driver signing each reboot. The patched ACPI tables are inserted as an unsigned driver. You might be able to work around if you patch it yourself, *and* figure how to do self-signing, or use some kind of bootloader patch that disables driver signing checks on boot.
Thanks for the detailed reply. I started to think about the specifics, but then another thought overtook me...

There's a 32bit version of Windows 10 and although I don't remember selecting one or the other - I have a feeling it defaults to whatever version of Windows 7 was on there.

So would it be a more sensible approach to focus on somehow getting a 32 bit version of Windows 10 on there and so make things a fair bit more straightforward? Due to my lack of Windows experience, I'm keen to reduce the requirements to perform lots of detailed install tweaking and ongoing maintenance, as it'll just prevent me from using the Macbook.

As far as I can tell from a google around just now, it seems that the main restriction is that 32bit restricts to 4G of RAM or effectively a bit less than that - though I couldn't tell how much from what I read! But since I only have 3G installed, I'm assuming that I wouldn't hit the limits there anyway?

What do you think - is that a better route to take?

———————————
Edit Looking on MS for the Windows 10 download it seems that there are separate links / ISO downloads for 32 and 64 bit.

https://www.microsoft.com/en-us/software-download/windows10ISO

Not sure how I missed that first time round…

I'll go ahead and download the 32 bit in meantime, but would be useful to get peoples views on whether a 32 bit install will be less overhead on an inexperienced Windows user like myself.

Looks like 32bit is restricted to 3.2G so no problem for the 2,1
 
Last edited:

Nettwerk

macrumors newbie
Feb 9, 2016
13
1
Ok after spending weekend I got working Windows 10 Pro 64Bit on MacBook2.1. Yes it is little bit tricky but you can install 64Bit version. It works better than Mac OS X 10.7.5.
At the moment everything works. No issues with sound, fan, and battery yet. To getting sound it was most difficult than rest of things.
---
If you are interested to know more, just ask.