No boot on real hardware
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
- Domaine
- operating-systems
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
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de rust-osdev/bootloader
-
help wanted
Difficulté 3/5 1-2 jours Accessibilité débutants 67/100
rust-osdev/bootloader#581 · 2 commentaires ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
rust-osdev/bootloader#555 · 2 commentaires ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
rust-osdev/bootloader#534 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
rust-osdev/bootloader#525 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
rust-osdev/bootloader#514 · 3 commentaires ·
Toutes les issues de rust-osdev/bootloader
Issues similaires
-
area:casework bug criticality:p3 triage:needs-implementation
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
registrystack/registry-stack#1623 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
leptos-rs/leptos#4885 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
longbridge/gpui-kit#3276 ·
Les mainteneurs répondent en général sous 1 jour
-
A-Migration Guides D-Straightforward S-Ready-For-Implementation X-Uncontroversial
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
bevyengine/bevy-website#2607 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour