Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

No boot on real hardware

Ouverte
#573 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
À clarifier
Activité
Calme
Stack technique
rust

Piste de recherche

Commencez par reproduire l’exemple de base sur le matériel réel concerné et comparez sa sortie avec le journal QEMU, en particulier à l’endroit où il s’arrête après l’initialisation du framebuffer. L’issue n’indique ni fichier source ni test ; le travail est considéré comme terminé une fois la raison pour laquelle le démarrage s’arrête sur les machines signalées identifiée, et après avoir démontré que le kernel poursuit son exécution au-delà de ce point sur du matériel réel.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

When i run the basic example in qemu i get

BdsDxe: loading Boot0002 "UEFI QEMU HARDDISK QM00001 " from PciRoot(0x0)/Pci(0x1,0x1)/Ata(Primary,Master,0x0)
BdsDxe: starting Boot0002 "UEFI QEMU HARDDISK QM00001 " from PciRoot(0x0)/Pci(0x1,0x1)/Ata(Primary,Master,0x0)
INFO : Framebuffer info: FrameBufferInfo { byte_len: 4096000, width: 1280, height: 800, pixel_format: Bgr, bytes_per_pixel: 4, stride: 1280 }
INFO : UEFI bootloader started
INFO : Using framebuffer at 0x80000000
INFO : Reading configuration from disk was successful
INFO : Trying to load ramdisk via Disk
INFO : Ramdisk not found.
TRACE: exiting boot services
TRACE: switching to new level 4 table
INFO : New page table at: PhysFrame[4KiB](0x101000)
INFO : Elf file loaded at Pointer {
    addr: 0x0000000006051000,
    metadata: 896768,
}
INFO : virtual_address_offset: 0x10000000000
INFO : Handling Segment: Ph64(ProgramHeader64 { type_: Ok(Load), flags: Flags(4), offset: 0, virtual_addr: 0, physical_addr: 0, file_size: 2b74, mem_size: 2b74, align: 1000 })
INFO : Handling Segment: Ph64(ProgramHeader64 { type_: Ok(Load), flags: Flags(5), offset: 2b80, virtual_addr: 3b80, physical_addr: 3b80, file_size: 90a3, mem_size: 90a3, align: 1000 })
INFO : Handling Segment: Ph64(ProgramHeader64 { type_: Ok(Load), flags: Flags(6), offset: bc28, virtual_addr: dc28, physical_addr: dc28, file_size: 1058, mem_size: 13d8, align: 1000 })
INFO : Mapping bss section
INFO : Entry point at: 0x100000043f0
INFO : Creating GDT at PhysAddr(0x121000)
INFO : Map framebuffer
INFO : Allocate bootinfo
INFO : Create Memory Map
INFO : Create bootinfo
INFO : Jumping to kernel entry point at VirtAddr(0x100000043f0)
Entered kernel with boot info: BootInfo { api_version: ApiVersion { version_major: 0, version_minor: 11, version_patch: 16, pre_release: false }, memory_regions: MemoryRegions { ptr: 0x280000000e8, len: 109 }, framebuffer: Some(FrameBuffer { buffer_start: 2199023255552, info: FrameBufferInfo { byte_len: 4096000, width: 1280, height: 800, pixel_format: Bgr, bytes_per_pixel: 4, stride: 1280 } }), physical_memory_offset: None, recursive_index: None, rsdp_addr: Some(125296660), tls_template: None, ramdisk_addr: None, ramdisk_len: 0, kernel_addr: 100995072, kernel_len: 896768, kernel_image_offset: 1099511627776, kernel_stack_bottom: 1649267445760, kernel_stack_len: 81920, _test_sentinel: 0 }

=(^.^)= meow

as expected, but when i run on a real machine i either get nothing at all(black screen) on an old laptop of mine, or only the first line, so
INFO : Framebuffer info: FrameBufferInfo { byte_len: 4096000, width: 1280, height: 800, pixel_format: Bgr, bytes_per_pixel: 4, stride: 1280 }

on an old pc of mine, it doesn't seem that it continues past there and my kernel starts, i tried writing simple kernels that just shut down the PC or send some data over the serial header on the motherboard but nothing ever worked, both machines are UEFI capable and UEFI was used during all of my tests. On the PC neither UEFI nor Legacy boot work, both get the same result, the laptop isn't legacy capable.

Langage dominant
Rust
Étoiles
1.7k
Forks
240
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de rust-osdev/bootloader

Toutes les issues de rust-osdev/bootloader

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.