How to test bootloader - operating-system

I have a hello world bootloader code in assembly written (I'm sure I coded it right). I have the .bin file with me and .exe also.
I want to test it now with a USB, how do I do it? Everything I googled out and found on the topic pretty much didn't work out.
I have tried the way with "Disk Explorer NTFS 3.66". I have also tried the mkbt way. Both of them though mentioned highly in blogs/forums/etc don't seem to work for some reason.
Disk Explorer is not letting me paste from file onto the bootsector.
Any ideas/help is much appreciated.

I am 99.9% sure that you won't be able to use bootloader with USB. Because, bootloader is initialized first then it loads the Operating System, which loads USB drivers. It can work if you can trick your machine to look for USB as a primary booting device (I was using a P4 with XP and couldn't get my system to do it). The thing that worked for me was a Floopy Drive, it was back in 2006 !
You can use a Virtual Machine as suggested by Federico, and emulate the USB drive as a booting device, that's the best option.

Follow the link given below . I think it will help you to make bootloader as "Hello World" in your usb .
http://pcguide4you.blogspot.in/2011/09/designing-simple-hello-world-bootloader.html

Related

"ship" a program (i.e. a program image) to run in another linux computer

I hope this question makes sense. I have a program that I have compiled in an ubuntu machine that works fine. I cannot do the same in a pc with manjaro. Is it possible somehow "to ship" my working program from the ubunto to the manjaro machine?
Somehow I think that with docker I can do this, but many examples in the web seem pretty involved for my task (which it seems to me it's an easy one... hopefully...).

EFI Shell: How to beep?

in the EFi-Shell I want to make beep via the board speaker.
Can´t find any command or hint how to do so in the internet.
I´ve already tried as supposed in other discussions (not referring EFI-Shell):
echo '\a'
echo '\007'
I´m running the system on an Intel Atom Processor.
It depends on your hardware - whether there is a piezo speaker or not.
Look for the Beep utility in my UEFI-Utilities-2018 repository on Github for example C code and a compiled X64 binary (Beep.efi)

buildroot & DT overlays (ADS7846)

maybe someone of you can help me:
I have to make a custom linux build via buildroot. I have to use an attached LCD, which uses the ADS7846 driver, and I struggle to get it working. I included the resp. settings in config.txt, as provided by the LCD manufacturer, but dmesg would not reveal the hardware being recognized when booting the system.
When I do the same on a freshly installed Raspbian (that is, just include the required params in config.txt), I can verify that the driver loads successfully.
I made the kernel DT'able with mkknlimg and I can verify that it works - /proc/device-tree is present.
So what do I have to do to make this work? I'm lost...
any help greatly appreciated!
thanks a bunch,
Wolfgang
in the meanwhile, I found the solution. I needed to include udev support for the kernel to recognize the touch screen.

QEMU with KVM, issue with Windows recognizing the virtual environment

I'm running Gentoo right now, I'm using QEMU with KVM support to run a Windows VM, I need to because they're forcing us to use a proprietary CAD software at university (sadly enough). They gave us a license for a year, however when I activate it, it clearly says the license can't be used in a virtual environment. This leads me to the conclusion that somehow the system recognizes it is being emulated and I know there's a way to avoid this, but I actually have no idea what to do. I've read someone had the same problem and apparently solved it, however his solution doesn't seem to work for me. I'll leave you the URL of the question on Stack. https://serverfault.com/questions/727347/solidworks-activation-license-mode-is-not-supported-in-this-virtual-environment
This command:
qemu-system-x86_
64 -enable-kvm -hda windows.qcow2 -cpu host,kvm=off -smbios type=0,vendor=LENOVO,version=FBKTB4AUS,date=07/01/2015,release=1.180 -smbios type=1,manufacturer=LENOVO,product=30AH001GPB,version=ThinkStation P300,serial=S4M88119,uuid=cecf333d-6603-e511-97d5-6c0b843f98ba,sku=LENOVO_MT_30AH,family=P300 -m 8G
gives the output:
qemu-system-x86_64: -smbios type=1,manufacturer=LENOVO,product=30AH001GPB,version=ThinkStation: drive with bus=0, unit=0 (index=0) exists
I have no idea what to do, I also checked with ruby that the command I pasted from the post I've linked is actually ASCII, it is correct apparently.
I really need this to work, doesn't even work with a cracked license.
Thank you.

Make bootable flash drive of custom version of mikeOS

Using Hyper-V, I am running a Windows XP machine and I have a virtual floppy drive mounted too, where, using the following code, I am writing the bootloader.bin into the virtual floppy drive.
>debug
-n bootloader.bin
-l 0
-w 0 0 0 1
-quit
This is working well with a virtual floppy drive. I am compiling the asm files using NASM. However, I want to get my custom OS along with the new kernel.bin on a flash drive. Now, I saw that the mikeOS source has an ISO image, but I cannot get that on my flash drive using traditional methods, since it uses the own bootleader.
I am looking for a way in which I can get this OS working on any x86 PCs. I need a way to migrate the storage. Also, I do not wish to use a CD-R for this purpose. The memory should be rewritable.
You should be able to put a raw floppy image (or bootloader) straight onto the USB. Use a raw burning program to do so. If you have your own VFD or ISO, you could use UNetbootin to put in onto the USB as it will assist in the booting process. If you have just the files, you could use Winimage to create a VFD or ISO with those files. If you feel stuck, go back to the MikeOS handbooks. They have a lot of helpful information.
UPDATE
In your case, you can easily use UNetbootin.
Download it for your platform (I assume Windows). You should have only one executable file.
Run the the executable file. NOTE: It isn't an installer.
Select 'diskimage' instead of 'Distribution'.
Change 'ISO' to 'Floppy'.
Select your VFD's location.
Select the type of disk you want to write to. In this case, USB Drive is default.
Select the drive, in this case drive G:\. BE SURE THAT YOU PICK THE RIGHT ONE. THAT DRIVE WILL BE COMPLETELY WIPED BEFORE INSTALLATION!
Click OK. If everything goes good, you'll now have a bootable USB for your OS.
I hope this helps!
"Format" it in assembly language, assemble, mount the image with ImDisk and copy the files over. This can all be done with a cmd script.
While you're at it take a look at The 1.44MB FAT32 floppy disk and MikeOS-4.5 FAT32 (16-bit real mode) to see how simple it is to use FAT32 instead of FAT12.
PS. The formatting is done in bootload.asm in the MikeOS-4.5 FAT32 (16-bit real mode) distribution.