Installer Ubuntu sur un MacBook 5,2 en Live USB : Différence entre versions
m |
(→Finalisations) |
||
Ligne 44 : | Ligne 44 : | ||
Votre support USB est inutilisable en l'état pour d'autres usages que celui d'installer Ubuntu sur un MacBook. Pensez donc à le reformater, de préférence en FAT32 si vous souhaitez qu'il soit lisible de manière "standard". | Votre support USB est inutilisable en l'état pour d'autres usages que celui d'installer Ubuntu sur un MacBook. Pensez donc à le reformater, de préférence en FAT32 si vous souhaitez qu'il soit lisible de manière "standard". | ||
+ | === Le port "écouteurs" === | ||
+ | |||
+ | Deux choses pour se faire : | ||
+ | |||
+ | Ajouter la ligne suivante à votre fichier /etc/modprobe.d/alsa-base.conf : | ||
+ | |||
+ | sudo modprobe snd-hda-intel model=mb5 power_save=5 | ||
+ | |||
+ | Ensuite effectuer les manipulations suivantes pour déclencher la sortie son sur les écouteurs : | ||
+ | |||
+ | wget -O run.py http://www.alsa-project.org/hda-analyzer.py | ||
+ | sudo python run.py | ||
+ | |||
+ | Là trouver le "Node[0x15] PIN" correspondant à "Headphone Playback Switch" et passer la "VREF" du "Widget Control" à 100. Ensuite choisissez d'exporter votre fichier pour pouvoir le lancer à chaque lancement de votre MacBook. Si HDA Analyzer plante pour des raisons de : | ||
+ | |||
+ | AttributeError: HDANode instance has no attribute 'set_vol_knb' | ||
+ | |||
+ | À vous de hacker le code de votre utilitaire ... | ||
+ | |||
+ | Si jamais vous n'avez pas le cœur à cela, voici le contenu de ce que vous devriez obtenir, et que vous irez mettre (par exemple) dans /etc/snd-hda-intel.py : | ||
+ | |||
+ | #!/usr/bin/env python | ||
+ | |||
+ | import os | ||
+ | import struct | ||
+ | from fcntl import ioctl | ||
+ | |||
+ | def __ioctl_val(val): | ||
+ | # workaround for OverFlow bug in python 2.4 | ||
+ | if val & 0x80000000: | ||
+ | return -((val^0xffffffff)+1) | ||
+ | return val | ||
+ | |||
+ | IOCTL_INFO = __ioctl_val(0x80dc4801) | ||
+ | IOCTL_PVERSION = __ioctl_val(0x80044810) | ||
+ | IOCTL_VERB_WRITE = __ioctl_val(0xc0084811) | ||
+ | |||
+ | def set(nid, verb, param): | ||
+ | verb = (nid << 24) | (verb << 8) | param | ||
+ | res = ioctl(FD, IOCTL_VERB_WRITE, struct.pack('II', verb, 0)) | ||
+ | |||
+ | FD = os.open("/dev/snd/hwC0D0", os.O_RDONLY) | ||
+ | info = struct.pack('Ii64s80si64s', 0, 0, '', '', 0, '') | ||
+ | res = ioctl(FD, IOCTL_INFO, info) | ||
+ | name = struct.unpack('Ii64s80si64s', res)[3] | ||
+ | if not name.startswith('HDA Codec'): | ||
+ | raise IOError, "unknown HDA hwdep interface" | ||
+ | res = ioctl(FD, IOCTL_PVERSION, struct.pack('I', 0)) | ||
+ | version = struct.unpack('I', res) | ||
+ | if version < 0x00010000: # 1.0.0 | ||
+ | raise IOError, "unknown HDA hwdep version" | ||
+ | |||
+ | # initialization sequence starts here... | ||
+ | |||
+ | set(0x15, 0x707, 0xc5) # 0x150707c5 (SET_PIN_WIDGET_CONTROL) | ||
+ | |||
+ | os.close(FD) | ||
+ | |||
+ | Puis ajouter l'exécution de ce script à chaque démarrage : | ||
+ | |||
+ | #/etc/rc.local | ||
+ | # ... | ||
+ | python /etc/snd-hda-intel.py | ||
+ | exit 0 | ||
+ | |||
+ | Le tour est joué. | ||
=== Les détails qui restent pour votre MacBook === | === Les détails qui restent pour votre MacBook === |
Version du 1 septembre 2013 à 21:59
Sommaire
Problématique
Un MacOSX qui est devenu très lourd après 5 ans d'utilisation, pas de CD de MacOSX pour réinstaller, un lecteur CD en vrac avec un CD coincé à l'intérieur... Ok, "on l'a bien cherché" comme dirait l'autre...
N'empêche que... on a besoin de passer par un support USB pour installer Ubuntu, que nous sommes sur un MacBook, et que ce n'est pas franchement évident.
Pré-requis
- Avoir téléchargé l'ISO ubuntu-13.04-desktop-amd64.iso (attention, pas la version "+mac")
- Avoir un support USB vierge de toute données de taille suffisante (>800Mo) et de qualité (attention aux erreurs d'entrées/sorties)
- Avoir branché son MacBook sur le secteur
- Avoir un MacOSX ou un GNU/Linux sous la main
En route, "attachez vos ceintures"
Préparez le terrain
- Notez le nom de votre périphérique USB (sous la forme /dev/sdX ou /dev/diskX), et pensez à remplacer /dev/sdX dans les exemples suivants par le nom que vous aurez trouvé
- Sauvegardez toutes vos données sur votre MacBook, car tout sera perdu par la suite.
- Sauvegardez toutes les données de votre support USB qui seront ensuite perdues
- Démontez proprement votre support USB, en passant s'il le faut par umount /dev/sdX
- Dans un terminal, lancez la commande :
$ sudo dd if=/path/to/ubuntu-13.04-desktop-amd64.iso of=/dev/sdX
C'est parti !!
- MacBook éteint, insérez votre support USB dans un port USB du MacBook.
- Appuyez sur le bouton "power" pour allumer votre MacBook tout en maintenant la touche "Alt/Option" enfoncée
- Vous verrez apparaître au bout d'un certain temps le disque dur du MacBook et deux disques "EFI Boot" à côté
- Choisissez le dernier "EFI Boot"
- Laissez venir l'interface "Live USB" de Ubuntu
- Cliquez sur "Install Ubuntu" et laissez vous guider comme à l'accoutumée
- Rebootez et laissez votre MacBook se lancer normalement sous Ubuntu (ça peut prendre un peu de temps) ! Tout se passe bien ? Le tour est joué !
Finalisations
Votre support USB
Votre support USB est inutilisable en l'état pour d'autres usages que celui d'installer Ubuntu sur un MacBook. Pensez donc à le reformater, de préférence en FAT32 si vous souhaitez qu'il soit lisible de manière "standard".
Le port "écouteurs"
Deux choses pour se faire :
Ajouter la ligne suivante à votre fichier /etc/modprobe.d/alsa-base.conf :
sudo modprobe snd-hda-intel model=mb5 power_save=5
Ensuite effectuer les manipulations suivantes pour déclencher la sortie son sur les écouteurs :
wget -O run.py http://www.alsa-project.org/hda-analyzer.py sudo python run.py
Là trouver le "Node[0x15] PIN" correspondant à "Headphone Playback Switch" et passer la "VREF" du "Widget Control" à 100. Ensuite choisissez d'exporter votre fichier pour pouvoir le lancer à chaque lancement de votre MacBook. Si HDA Analyzer plante pour des raisons de :
AttributeError: HDANode instance has no attribute 'set_vol_knb'
À vous de hacker le code de votre utilitaire ...
Si jamais vous n'avez pas le cœur à cela, voici le contenu de ce que vous devriez obtenir, et que vous irez mettre (par exemple) dans /etc/snd-hda-intel.py :
#!/usr/bin/env python import os import struct from fcntl import ioctl def __ioctl_val(val): # workaround for OverFlow bug in python 2.4 if val & 0x80000000: return -((val^0xffffffff)+1) return val IOCTL_INFO = __ioctl_val(0x80dc4801) IOCTL_PVERSION = __ioctl_val(0x80044810) IOCTL_VERB_WRITE = __ioctl_val(0xc0084811) def set(nid, verb, param): verb = (nid << 24) | (verb << 8) | param res = ioctl(FD, IOCTL_VERB_WRITE, struct.pack('II', verb, 0)) FD = os.open("/dev/snd/hwC0D0", os.O_RDONLY) info = struct.pack('Ii64s80si64s', 0, 0, , , 0, ) res = ioctl(FD, IOCTL_INFO, info) name = struct.unpack('Ii64s80si64s', res)[3] if not name.startswith('HDA Codec'): raise IOError, "unknown HDA hwdep interface" res = ioctl(FD, IOCTL_PVERSION, struct.pack('I', 0)) version = struct.unpack('I', res) if version < 0x00010000: # 1.0.0 raise IOError, "unknown HDA hwdep version" # initialization sequence starts here... set(0x15, 0x707, 0xc5) # 0x150707c5 (SET_PIN_WIDGET_CONTROL) os.close(FD)
Puis ajouter l'exécution de ce script à chaque démarrage :
#/etc/rc.local # ... python /etc/snd-hda-intel.py exit 0
Le tour est joué.
Les détails qui restent pour votre MacBook
Référez-vous à la documentation (en anglais) que vous pourrez trouver sur les pages MacBook5-1/Raring et MacBook5-2/Maverick de l'aide officielle d'Ubuntu.