MacBookPro from mid 2009 freezes before a system load

Hi,

Since yesterday, I cannot boot an old MacBook Pro from mid 2009. It did happen before (see the link with details on the comp) but then it was just a matter of black screen. I could reboot the comp from a live image on a usb.

This time it is different. The computer starts but then freezes just when GRUB should work and shows only back screen with a cursor. Nothing else happens. When I try to boot it from USB, I can select to boot from the USB, but then the effect is the same-it freezes showing only the cursor and does nothing. It seems to stop at the same point.

I am afraid it might be hardware related issue.

Thanks

For clarification ā€¦ can you drop to TTY ?

Have you tried booting into runlevel 3 ?

as @cscs said, check if you can reach a console by using ctrl-alt-f keys first.

Hello again,

I didnā€™t have chance to follow your suggestions and check if I could switch to other TTY. The computer eventually got through into GUI after a couple of attempts to restart it. It seems it got frozen day before due to overheating.

Iā€™ll book a suggested post in case it happens again.

Many thanks

:point_up:

in fact youā€™ll have to install and configure ā€œmbpfanā€ to prevent overheating ! especially because apple-design is critical due to reason that their design is always calculated at the max-temp ratings of the electrical devices.
enable aur in the package manager, install the package ā€œbase-develā€ first, then install ā€œmbpfan-gitā€ from aur.
then open a console and post the output of

systemctl status mbpfan

and

cat /sys/devices/platform/applemc.768/fan*_min
cat /sys/devices/platform/applemc.768/fan*_max

you should see how many fans are installed and what min and max values are possible,
please post the progress.

youā€™ll have to edit the config file and enable/start the service. if you have questions to it ask, but first check the above and make sure it is installed.

Hello again. What happens if you just hit 'Enter" on that stuck grub? Iā€™m in grub text mode too on my 2009 mbp because of the exact same issue; no grub gui but it was only ā€œinvisibleā€, if you remember your grub options it works.

I think I had to uncomment those lines in /etc/default/grub:

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
GRUB_TERMINAL_OUTPUT=console

Hereā€™s is my whole working grub file:

~ >>> cat /etc/default/grub                                                    
GRUB_DEFAULT=saved
GRUB_TIMEOUT=1
GRUB_TIMEOUT_STYLE=menu
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="quiet udev.log_priority=3"
GRUB_CMDLINE_LINUX=""

# If you want to enable the save default function, uncomment the following
# line, and set GRUB_DEFAULT to saved.
GRUB_SAVEDEFAULT=true

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command 'videoinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
#GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter 
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" 
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper 
# modes only.  Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="green/black"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
GRUB_BACKGROUND="/usr/share/grub/background.png"
#GRUB_THEME="/path/to/gfxtheme"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to ensure that the root filesystem is mounted read-only so that
# systemd-fsck can run the check automatically
#GRUB_ROOT_FS_RO=false


# Uncomment this option to enable os-prober execution in the grub-mkconfig command
GRUB_DISABLE_OS_PROBER=false

if you edit grub please remember to update grub

sudo update-grub
mkinitcpio -P
1 Like

Hello,

I tried multiple random keys. I think I was hitting enter as well but nothing happened. I could also press arrows which would stop GRUB from auto selection :confused:

I managed to install mbpfan. I can see there are two fans with the same settings: 2000 and 6200 for min and max, respectively. I donā€™t know if I should make any further adjustments apart from enabling and starting the mbpfan service.

I can see on on this page most MacBooks are tested but mine. If I run

$ sudo dmidecode --string system-product-name
$ grep 'model name' /proc/cpuinfo

I can see the computer is MacBookPro5,3 with Intel(R) Core(TM)2 Duo CPU T9600 @ 2.80GHz returned twice. From the list on the page I linked, I can see the model is closer to MacBookPro3,1.

The comments has been most helpfulā€“many thanks for that. Please let me know if I should change the fan settings or leave them as are.

Thanks

please post the output of

cat /sys/devices/platform/applemc.768/fan*_min
cat /sys/devices/platform/applemc.768/fan*_max
cat /sys/devices/platform/applesmc.768/fan*_output

and

systemctl status mbpfan

a good app to check your temps is
ā€œpsensorsā€

Outputs from all cat commands:

$ cat /sys/devices/platform/applemc.768/fan*_min
2000
2000

$ cat /sys/devices/platform/applemc.768/fan*_max
6200
6200

$ cat /sys/devices/platform/applemc.768/fan*_output
2000
2000

and from the systemctl status mbpfan:

ā— mbpfan.service - A fan manager daemon for MacBook Pro
     Loaded: loaded (/usr/lib/systemd/system/mbpfan.service; enabled; preset: disabled)
     Active: active (running) since Mon 2023-05-29 08:38:31 BST; 3h 11min ago
   Main PID: 930 (mbpfan)
      Tasks: 1 (limit: 4386)
     Memory: 544.0K
        CPU: 606ms
     CGroup: /system.slice/mbpfan.service
             ā””ā”€930 /usr/sbin/mbpfan -f

May 29 08:38:31 [user]-macbookpro systemd[1]: Started A fan manager daemon for MacBook Pro.

Thanks, Iā€™ll look for it.

please give me some minutes and iā€™ll post a template. actually your fans spin on minimum and i suggest you shoul trim it a little bit.

Ok, itā€™s not the grub gfx issue then.
Bit confused about the ā€œI managed to install mbpfanā€; so it does boot sometimes?

the config file can be found at /etc/mbpfan.conf
the snippet is

[general]
# see https://ineed.coffee/3838/a-beginners-tutorial-for-mbpfan-under-ubuntu for the values
# 
# mbpfan will load the max / min speed of from the files produced by the applesmc driver. If these files are not found it will set all fans to the default of min_speed = 2000 and max_speed = 6200
# by setting the values for the speeds in this config it will override whatever it finds in:
# /sys/devices/platform/applesmc.768/fan*_min
# /sys/devices/platform/applesmc.768/fan*_max
# or the defaults.
#
# multiple fans can be configured by using the config key of min_fan*_speed and max_fan*_speed
# the number used will correlate to the file number of the fan in the applesmc driver that are used to control the fan speed.
#
#
#
#           fan_1 = 2000-6200
#           fan_2 = 2000-6200


min_fan1_speed = 3500	# put the *lowest* value of "cat /sys/devices/platform/applesmc.768/fan*_min"
max_fan1_speed = 6200


min_fan2_speed = 3500	# put the *lowest* value of "cat /sys/devices/platform/applesmc.768/fan*_min"
max_fan2_speed = 6200


# temperature units in celcius
#low_temp = 63			# if temperature is below this, fans will run at minimum speed
#high_temp = 66			# if temperature is above this, fan speed will gradually increase
#max_temp = 86			# if temperature is above this, fans will run at maximum speed

low_temp = 20			# if temperature is below this, fans will run at minimum speed
high_temp = 30			# if temperature is above this, fan speed will gradually increase
max_temp = 35			# if temperature is above this, fans will run at maximum speed


polling_interval = 1	# default is 1 seconds

note i adjusted the minimum speed a little bit higher and changed the temperature values when to kick in. in this case they should always be running because case-temps are always higher than 20Ā°C.
edit the file. to make the changes active you have to run the commands in the following order after editing the conf-file

sudo systemctl stop mbpfan
sudo systemctl disable mbpfan
sudo systemctl enable mbpfan
sudo systemctl start mbpfan

or better in short form with one command

sudo systemctl stop mbpfan && sudo systemctl disable mbpfan && sudo systemctl enable mbpfan && sudo systemctl start mbpfan

feel free to play around. if you use psensors to check keep an eye on TGoD (this should be the gpu-temp)

Or ā€¦

systemctl daemon-reload && systemctl restart mbpfan
1 Like

Yes, it does. Since I have installed mbpfan, I can reboot the comp without issues. However, I still cannot see the menu in GRUB.

CPU temperature oscillates between 40-45C and 60C with maximum 73C so far. I set configuration for the min, high and max temperatures to 45, 60 and 75. So far, the computer has been working just fine.

Thanks fore all help.

1 Like

Ah, ok. Those temps look ok. One more tip; the superdrives that came with those mbp are usually broken by now. If thatā€™s the case it may be worth opening the thing up, removing the drive and cleaning out the fan. The empty drive bay improves airflow quite a bit because of the drive bay slot.

Removing the back cover is straight forward, just lay out the screws in the order youā€™ve removed them. When putting them back keep in mind that the screw holes arenā€™t vertical but slightly angled inwards. Hereā€™s a shot of mine with the superdrive removed.

Set these lines in etc/default/grub to:

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
GRUB_TERMINAL_OUTPUT=console

Followed by:

sudo update-grub
mkinitcpio -P

And reboot.

2 Likes

:point_up_2:

ALWAYS place screws in the right order to screw them back to the right place. apple is a weird company where no screw is the same, always a little bit longer or shorter and screwing a screw to the wrong place can/will destroy/harm the electronics.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.