hi, I have a live system with only UEFI boot supported. to indicate this to users who have not yet switched to UEFI, I have below this simple little piece of code (partly found on the internet) that I compile with nasm and I push onto the MBR. it runs perfectly on some PCs and in virtual machine with Qemu, but refuses to run on other PCs by displaying either a kind of smiley logo or a simple blinking cursor. does anyone have any idea or clue about this? regards, lacsaP. 8<-------------------------------- ; nasm nobioscsm.asm -f bin -o nobioscsm bits 16 org 0x7C00 start: cli mov si, msg mov ah, 0x0E .loop lodsb or al, al jz halt int 0x10 jmp .loop halt: hlt msg: db 0x0D, 0x0A, '** Boot with BIOS/CSM no longer supported : reboot with EFI/UEFI **', 0 ;times 510 - ($-$$) db 0 ;dw 0xAA55
On Mon, Aug 1, 2022 at 2:54 AM Pascal via Syslinux <syslinux at syslinux.org> wrote:> hi, > > I have a live system with only UEFI boot supported. > > to indicate this to users who have not yet switched to UEFI, I have below > this simple little piece of code (partly found on the internet) that I > compile with nasm and I push onto the MBR. > > it runs perfectly on some PCs and in virtual machine with Qemu, but refuses > to run on other PCs by displaying either a kind of smiley logo or a simple > blinking cursor. > > does anyone have any idea or clue about this? > >I guess a truly UEFI-only system won't execute a MBR first-stage bootloader. You'd probably have to compile your program as an EFI executable and put it on the ESP on such systems. :)
Hi, Le 01/08/2022 ? 09:51, Pascal via Syslinux a ?crit?:> hi, > > I have a live system with only UEFI boot supported. > > to indicate this to users who have not yet switched to UEFI, I have below > this simple little piece of code (partly found on the internet) that I > compile with nasm and I push onto the MBR. > > it runs perfectly on some PCs and in virtual machine with Qemu, but refuses > to run on other PCs by displaying either a kind of smiley logo or a simple > blinking cursor. > > does anyone have any idea or clue about this?o fiddle o No idea, sorry, but... 1. I would never ever allow myself to fiddle with the MBR of a machine I do not own. What if your code brick it??? 2. Why not just write: [ ! -d /sys/firmware/efi ] && echo '** Boot with BIOS/CSM no longer supported: reboot with EFI/UEFI **' Cheers, Didier> regards, lacsaP. > > 8<-------------------------------- > ; nasm nobioscsm.asm -f bin -o nobioscsm > > bits 16 > org 0x7C00 > > start: > cli > mov si, msg > mov ah, 0x0E > .loop lodsb > or al, al > jz halt > int 0x10 > jmp .loop > > halt: > hlt > > msg: > db 0x0D, 0x0A, '** Boot with BIOS/CSM no longer supported : reboot with > EFI/UEFI **', 0 > > ;times 510 - ($-$$) db 0 > ;dw 0xAA55 > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at syslinux.org > Unsubscribe or set options at: > https://lists.syslinux.org/syslinux
hi, Steve(@help-grub) suggested to me that the lack of cld (CLear Direction) flag could be the cause of the problem. I will test it... regards, lacsaP. Le lun. 1 ao?t 2022 ? 09:51, Pascal <patatetom at gmail.com> a ?crit :> hi, > > I have a live system with only UEFI boot supported. > > to indicate this to users who have not yet switched to UEFI, I have below > this simple little piece of code (partly found on the internet) that I > compile with nasm and I push onto the MBR. > > it runs perfectly on some PCs and in virtual machine with Qemu, but > refuses to run on other PCs by displaying either a kind of smiley logo or a > simple blinking cursor. > > does anyone have any idea or clue about this? > > regards, lacsaP. > > 8<-------------------------------- > ; nasm nobioscsm.asm -f bin -o nobioscsm > > bits 16 > org 0x7C00 > > start: > cli > mov si, msg > mov ah, 0x0E > .loop lodsb > or al, al > jz halt > int 0x10 > jmp .loop > > halt: > hlt > > msg: > db 0x0D, 0x0A, '** Boot with BIOS/CSM no longer supported : reboot > with EFI/UEFI **', 0 > > ;times 510 - ($-$$) db 0 > ;dw 0xAA55 >
Hello, Here is how i would customize your code: ; nasm nobioscsm.asm -f bin -o nobioscsm bits 16 org 0x7C00 start: sti ; no need to clear interrupts here: since we're going to crash anyway, leave them on cld ; Make sure we go forward mov si, msg mov ah, 0x0E .loop lodsb or al, al jz halt int 0x10 jmp .loop halt: hlt jmp halt ; The hlt instruction sometimes behaves like a NOP. Just run in an infinite loop. CTRL-ALT-DEL should still continue to work to restart the machine msg: db 0x0D, 0x0A, '** Boot with BIOS/CSM no longer supported : reboot with EFI/UEFI **', 0 ;times 510 - ($-$$) db 0 ;dw 0xAA55 On 1/08/22 09:51, Pascal via Syslinux wrote:> hi, > > I have a live system with only UEFI boot supported. > > to indicate this to users who have not yet switched to UEFI, I have below > this simple little piece of code (partly found on the internet) that I > compile with nasm and I push onto the MBR. > > it runs perfectly on some PCs and in virtual machine with Qemu, but refuses > to run on other PCs by displaying either a kind of smiley logo or a simple > blinking cursor. > > does anyone have any idea or clue about this? > > regards, lacsaP. > > 8<-------------------------------- > ; nasm nobioscsm.asm -f bin -o nobioscsm > > bits 16 > org 0x7C00 > > start: > cli > mov si, msg > mov ah, 0x0E > .loop lodsb > or al, al > jz halt > int 0x10 > jmp .loop > > halt: > hlt > > msg: > db 0x0D, 0x0A, '** Boot with BIOS/CSM no longer supported : reboot with > EFI/UEFI **', 0 > > ;times 510 - ($-$$) db 0 > ;dw 0xAA55 > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at syslinux.org > Unsubscribe or set options at: > https://lists.syslinux.org/syslinux