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