rickyzhang Posted August 24, 2016 Share Posted August 24, 2016 I bought a iBook G4 for my PPC emulation project. It runs in tiger 10.4. Everything is fine except its overheating issues. After compiling several dependency library from macports, it burns my left palm. I'm doing some research and found that it uses a chip on board to control fan speed and monitor temperature sensors. In addition, I also found this chip kernel extension in Apple Open Source website. But I wonder if it is possible to write its register through I2C in user space. Apple's kext doesn't expose fan speed control in IOService. Any advice is appreciated. Quote Link to comment Share on other sites More sharing options...
MacUser2525 Posted August 24, 2016 Share Posted August 24, 2016 Check out G4fancontrol or edit the relevant .kext mentioned in the thread I found the link to that software in. http://forums.macrumors.com/threads/fan-controller-for-powerpc-g5-imacs.424492/ https://www.andreafabrizi.it/?g4fancontrol Quote Link to comment Share on other sites More sharing options...
rickyzhang Posted August 24, 2016 Author Share Posted August 24, 2016 Thanks for your link. smc kext won't work on G4 iBook. I think it is fairly straightforward to write it by myself, instead of paying to others. Please bear with me in my following code analysis part from Apple open source project: 1. I2C interface kext from AppleI2C kext: https://github.com/r...nterface.h#L542 2. Analog chip on board that control fan speed and monitor temperature sensor from AppleADT746x kext: https://github.com/r...eADT746x.h#L172 3. There is IOUserClient subclass that provide I2C interface for user space https://github.com/r...rClient.cpp#L32 It is possible to read/write I2C bus from user space. I will get back to you about this. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.