Es raro que no te funcione el fichero en /etc/pm/config.d... (a mi desde luego me lo pilla bien). De todas maneras se me ocurre una solución "cutre".
Cuando suspendas tu ibook te debería ejecutar por orden los scripts que se encuentran en /usr/lib/pm-utils/sleep.d/
Yo problemas con el módulo b43 no tengo, en cambio sí con los parámetros del HD tras suspenderlo, por lo que creé un script llamado 85hdparm.
En tu caso podrías crear uno como este, llamado por ejemplo 55b43 (te interesaría que se cargara antes que NetworkManager, en mi caso 10NetworkManager).
#!/bin/sh
. "${PM_FUNCTIONS}"
case "$1" in
hibernate|suspend)
modprobe -r b43
thaw|resume)
modprobe b43
;;
*) exit $NA
;;
esac
Es una solución cutre, pero bueno, al menos no tocas nada de los scripts existentes.
Por cierto, aunque es algo obvio no olvides darle permisos de ejecución
Un saludo.
EDITO: Si no lo has hecho antes revisa el fichero /var/log/pm-suspend.log y la salida de dmesg.
Initial commandline parameters:
Adding parameters
Fri Jun 27 12:55:35 CEST 2008: Running hooks for suspend.
/usr/lib/pm-utils/sleep.d/00clear suspend: disabled.
/usr/lib/pm-utils/sleep.d/05led suspend: not applicable.
/usr/lib/pm-utils/sleep.d/10NetworkManager suspend: success.
/usr/lib/pm-utils/sleep.d/49bluetooth suspend: not applicable.
/usr/lib/pm-utils/sleep.d/50modules suspend: success.
/usr/lib/pm-utils/sleep.d/85hdparm suspend: not applicable.
/usr/lib/pm-utils/sleep.d/90clock suspend: success.
/usr/lib/pm-utils/sleep.d/94cpufreq suspend: success.
/usr/lib/pm-utils/sleep.d/95led suspend: not applicable.
/usr/lib/pm-utils/sleep.d/99video suspend: disabled.
Fri Jun 27 12:55:38 CEST 2008: suspending
Switching from vt7 to vt1
switching back to vt7
Fri Jun 27 12:55:52 CEST 2008: Awake.
Fri Jun 27 12:55:52 CEST 2008: Running hooks for resume
/usr/lib/pm-utils/sleep.d/99video resume: disabled.
/usr/lib/pm-utils/sleep.d/95led resume: not applicable.
/usr/lib/pm-utils/sleep.d/94cpufreq resume: success.
/usr/lib/pm-utils/sleep.d/90clock resume: success.
/usr/lib/pm-utils/sleep.d/85hdparm resume: Setting parameters of disc:
/dev/hda:
setting 32-bit IO_support flag to 3
setting multcount to 16
setting using_dma to 1 (on)
setting Advanced Power Management level to 0xfe (254)
setting drive write-caching to 0 (off)
multcount = 16 (on)
IO_support = 3 (32-bit w/sync)
using_dma = 1 (on)
write-caching = 0 (off)
/dev/hda.
success.
/usr/lib/pm-utils/sleep.d/50modules resume: success.
/usr/lib/pm-utils/sleep.d/49bluetooth resume: not applicable.
/usr/lib/pm-utils/sleep.d/10NetworkManager resume: success.
/usr/lib/pm-utils/sleep.d/05led resume: not applicable.