Difference between wic and hddimg format in yocto - linux

I have generated a core-image-minimal image for my Intel board in Yocto.
Looking into tmp/deploy/images folder they are many images.
I flashed *.wic image using dd command on USB and it created two partitions ( Boot and Platform ) and allowed only to perform a live booting without allowing it to install on the hard disk of the board.
I then flashed *.hddimg on the USB using dd command. It only created a "boot" partition which has rootfs.img, syslinux and EFI folder.
Booting using USB provided me an "Install" option, which installed on the board and when I rebooted after installing, it displays "No bootable media found"
Using bootable image there are two partitions in the hard disk. Why it is not booting..
Steps followed:
Created an minimal yocto image using "bitbake core-image-minimal" command
Flashed the USB using the dd command.
sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-minimal-intel-corei7-64.hddimg of=/dev/sdb
Clicked on install and typed “sda”
The installation was successful and when I tried to restart by removing the USB Drive, it says “No boot options found. Please install bootable media and restart."
What is the mistake I am doing here.
Which image to choose and when..

There was not much info about online, so I asked this question in the intel community and here is the response of that:
Generally a .wic image is intended to be installed directly to its final destination, whereas an hddimg is for evaluation and installation elsewhere.
By default meta-intel .wic images only have an EFI bootloader, and will not boot via legacy BIOS.
An hddimg will have both an EFI bootloader and the syslinux binaries that let it boot from legacy BIOS.
On startup with your installer USB image do you get a light gray screen with four options? If so it is booting via legacy BIOS.

Related

Why mdev or udev does not create disk nodes when used kernel is from any distribution

I created a minimal linux init with just busybox to do experiments or use it to recover my work linux. But i got stuck and was fustruted alot that i could not find any disks in /dev. I tried both mounting udev as devtmpfs and tmpfs with mdev -s. Both none seemed to work. Lickily i tried compiling a kernel and booting it i realised kernel was the issue. I also noticed my pluged mouse light was off as if the pc was turned off
I tried kernel from both debian and ubuntu. But same result.
Now im happy with what i got. But using custom kernel means i cant make use of the already existing drivers on a target linux when i do chroot.
So i wanna know why the kernels that come with distros does not generate disk blocks
Edit 1:
My question is,why i cant find ant /dev/sdX or my external keyboard does not work when i boot with kernel from distro isos

How to load Yocto generated U-boot binaries to t1042d4rdb board

I created linux and U-boot images for NXP t1042d4rdb board using Yocto (using bitbake fsl-image-full command) on Ubuntu 16.04.6 . In my "yocto sdk directory"/"build directory"/tmp/deploy/images/t1042d4rdb directory, I have linux images and many binaries for u-boot (like u-boot.bin, u-boot-sdcard.bin, u-boot-nor.bin, u-boot-spi.bin ....).
you can see my /tmp/deploy/images/t1042d4rdb file here
I attached my UART serial converter to /dev/ttyUSB0 using minicom and wrote this command (found it on nxp forum)
"sudo dd if=u-boot.bin of=/dev/ttyUSB0 obs=4066 seek=1; sync"
nothing happened. Console messages from "dmesg" command
[ 4103.366033] ftdi_sio 3-4:1.0: FTDI USB Serial Device converter detected
[ 4103.366053] usb 3-4: Detected FT232RL
[ 4103.370147] usb 3-4: FTDI USB Serial Device converter now attached to ttyUSB
I am new at Yocto and U-boot. My question is, how can I load U-boot linux binaries to my board. Thanks for answers and any other suggestions.
Firstly, you cannot write serial port device (ttyUSB0) directly with dd despite it is not show any error your written data probably disappears because ttyUSB0 device just a communication device.
On Yocto build directory (tmp/deploy/images) you can probably find an .sdcard image file or an .wic image which is combined Linux kernel, U-Boot and Rootfs images. So you need to write this image to related block device that you will use as boot device. In this case you can write this image like this; "dd if= of=/dev/your-sd-card-device bs=1M sync".
I hope it will help your problem.

load routerOS Drivers from USB drive in linux

I'm trying to install routerOS(Mikrotik) from bootable USB drive on my PC.
it boots from USB at first and loads the Linux Kernel.
after detecting the H.D.D it requests me to insert the CD-ROM disk to installing the DRIVERS.
but the drivers are in the USB flash.
i opened the syslinux.cfg and isolinux.cfg files:
default system
label system
kernel linux
append load_ramdisk=1 initrd=initrd.rgz root=/dev/ram0
i'm thinking that the problem is here. it requests to load from CD-ROM.
how can i tell it to load the drivers from USB Flash?
** i've not worked with Linux.
In RouterOS you have 2 method of X86 installs.
CD-ROM ( not USB )
NetInstall
If your BIOS supports net boot and you have a Windows to run NetInstall, try with Mikoritk NetInstall

Build a minimum system with Qt embedded and run on Qemu for x86

My aim: Trying to
Build a minimal Qt based GUI system with a single window and sensor connected on USB
demonstrate this using Qemu and later on embedded board with atom
to build it from scratch
Use buildroot to build the rootfilesystem
My experience Have experience in Linux kernel development for device drivers, qemu, Buildroot, USB but has no experience on GUI and framebuffers.
My attempts:Build kernel and rootfile system
with buildroot using the command make qemu_x86_defconfig
Framebuffer support on Linux kernel is enabled along with the following CONFIG_FB, CONFIG_FRAMEBUFFER_CONSOLE, and CONFIG_LOGO (all the options below this are also enabled)
As the first milestone I expected to see the TUX logo when I run the image with the command
qemu-system-i386 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2 -append root=/dev/sda -vga std but i donot.
Am I making a mistake at the Qemu command or the framebuffer is not enabled?
P.S. A similar question Qt application GUI -- automatic start -- linux. But i am not planning to use the X window as suggested by most users.
I missed the cirrus graphics board driver. Qemu emulates Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions (hardware level, including all non standard modes for i386.
So the steps are:
Download buildroot
make clean
make qemu_x86_defconfig
make linux-menuconfig to configure kernel and in Device drivers->Graphics support->Support for frame buffer devices enable Cirrus Logic support
Save the configuration and run make
Once make is complete run the command in board/qemu/x86/readme.txt
Where did you see that Buildroot has a i386_defconfig? You seem to be confusing kernel defconfigs and Buildroot defconfigs. I would recommend you to start with:
make clean
make qemu_x86_defconfig
make
and then read board/qemu/x86/readme.txt to see how to run the generated system.

grub can't see linux\no boot menu in Win7

I have both windows and linux installed.
I created a new partition but got Grub error:UNKNOWN FILESYSTEM on restart. Then I used windows recovery CD and Bootrec/fixmbr command to get Grub menu back.
But now I don't see the boot menu.laptop simply boots into windows, also I am unable to boot from any other CD or USB
You need to reinstall grub on the boot sector. If you use Ubuntu, there is a very easy way to fix it with Ubuntu's live CD using the boot-repair tool.
I'm not sure if this will work with other Linux distributions but It's worth trying.
If you can't boot from CD or USB you should check your boot priority in the BIOS. Or try to get to boot selection menu (usually by pressing F12) and choose CD\USB over there, anyways, the answer here is in the BIOS and not related to the grub

Resources