Grub2 M1330 Media Patch Button Direct
Depois do meu Dell XPS M1330 com 4 GB de RAM (RAM de 2GB anteriormente), a Super Talent Drive Ultra GX 128 GB SSD (anteriormente 160GB HDD) e um novo Intel WiFi Link 5300AGN 802.11 Draft-N WLAN MiniPCI Card (anteriormente Broadcom BCM4328 802.11a / b / g / n MiniPCIe placa wireless é assim agora, finalmente, a trabalhar com o Linux tem) atualizado, eu queria ter näturlich-lo novamente para que eu boot podem mudar com o botão do Dell MediaDirect para Linux e Windows com o botão de alimentação normal.
Antes do HD 160 GB, foi resolvido através de uma entrada boot.ini adequadas à Dell Media Direct escondido Windows XP Embedded partição, em seguida, apontar convidou o sector de arranque GRUB.
Mas agora eu tinha um novo SSD vazio, sem nada sobre ela. Eu em primeiro lugar, portanto, dividido pelo SSD com o UBCD em 6 partições. Veja como:
| / Dev/sda1 | 29,81 GB | NTFS | Windows System 7 |
| / Dev/sda2 | 14,85 GB | NTFS | Dados |
| / Dev/hda3 | 54,93 MB | Hidden FAT16 | OSDev coisas, exceto para o QEMU em condições reais |
| / Dev/hda4 | 73,53 GB | partição estendida | |
| / Dev/sda5 | 7,63 GB | Linux swap | Só para material Hibernate, vou mesmo poupar minha SSD |
| / Dev/hda6 | 30,52 GB | EXT4 | / |
| / Dev/sda7 | 36,36 GB | EXT4 | / Home (com particular diretórios ecryptfs utilizador) |
Então, eu instalei o Ubuntu 9.10 e depois de 64 bits do Windows 7, e apresentado utilizando o LiveCD grub2 restaurar MBR.
E então finalmente eu fiz para o trabalho. Eu convidei meu grub2 1,97 Beta 4 fontes herrunter incluindo Ubuntu patches 09:10 e depois eu modifiquei o / boot/i386/pc/boot.S assim, de forma que, quando eu não "empurrar o Media Direct botão para ligar, em seguida, a da MBR setor de boot de primeira partição (/ dev/sda1) carrega e executa, e mesmo antes de o resto do material é carregado a partir do MBR grub2, isto é, de facto, quase no início do código MBR. Andif Volto-me agora o botão do MediaDirect para confirmar o meu código eingepatchter é ignorada por uma condição de salto e, em seguida, recarregou a grub2 código principal e executa-lo. cargas Grub2 näturlich segundo, então o kernel Linux.
A consulta que se confirmou o botão Media Direct é bastante simples. Então, dependendo de quando você tiver confirmado o botão MediaDirect ou não, o BIOS é o CMOS no site da bit 0x79 3 (bitmask 0x08) ou não. Este pode, então, consultar a MBR, por exemplo, segue em muito facilmente (Intel x86 sintaxe de 16 bits de modo real):
cli
mov al, 0x79
a 0x70, Al
nop
nop
nop
em al, 0x71
sti
e al, 0x08
Direct Media jnz Button Pressed
MediaDirectButtonNotPressed:
.....
Media Direct botão pressionado:
E agora, finalmente aqui está o link para o patch: http://vserver.rosseaux.net/stuff/m1330boot.diff.txt
Divirta-se! 















