So far I've tried the following:
- I followed the instructions of Mr. Sergey:
Section Basic Steps to Rebuild The Image with the new Support_Package_Sources_for_Intel_Quark Board v1.1.0. but I realized that the image created by default 3.8.9 I remember.
After that, I began to see folders settings, and I edited the file linux-yocto-quark.bb part of LINUX_VERSION? = "3.8" without knowing what I was doing and it gave me errors.
- For the second I followed the instructions of Mr. Tzanussi:
Section Building and booting the meta-micro-galileo BSP layer from an SD card.
Here I did get an image of the Kernel newest but the problem is that it is a clean image, only boot (bitbake image-micro --> "A small image just capable of allowing a device to boot"), I need a image full (with all modules (wpa_supplicant, IP, DHCP ...)). I tried to copy the file to which .bb Support_Package_Sources_for_Intel_Quark brings v1.1.0. but nothing.
I do not know what to do anymore. If it is easier first thing I tried or second and add modules when compiled.
This is a very interesting project; however it'll take you long and hard work to complete it. In short this is completely possible; however it's going to be a bit hard to do so.
I'm not sure which specific kernel is the one that you need but I'll try to give you a short introduction on how to do this. This is a short example on how to create a vanilla kernel. First go to https://www.kernel.org/ and download the kernel you'd like to implement.
Create a folder named galileo_kernel or whatever you like. Decompress the kernel in that folder. Once that it's done, go to linux-X.X.X/arch/x86/configs/i386_defconfig and create a copy of that file with a different name like galileo_defconfig (the file's name must end with _defconfig).
This file will be the kernel's configuration file. Open that file and make the following changes:
Comment: # CONFIG_SMP is not set # CONFIG_DRM_I915 is not set Append: CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_M586TSC=y CONFIG_X86_INTEL_QUARK=y CONFIG_X86_UP_IOAPIC=y CONFIG_X86_EXTENDED_PLATFORM=y CONFIG_EFI_STUB=y CONFIG_EARLY_PRINTK_EFI=y CONFIG_PM_RUNTIME=y CONFIG_SERIAL_8250_PCI=y
You can check what all these files mean in Linux Kernel Driver Database: main index.
Next, open the terminal and go to the directory ../galileo_kernel/. Then type the command:
make galileo_defconfig make
The result file will be on arch/x86/boot/bzImage. You can validate it with the commands:
ls –l arch/x86/boot/bzImage file arch/x86/boot/bzImage
Now go to the galileo_kernel directory and clone the buildroot environment with:
git clone git://git.buildroot.net/buildroot
In the buildroot directory create a new file called configs/galileo_defconfig that contains the following lines:
# Architecture BR2_i386=y BR2_x86_i586=y # Misc BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS1" # Root FS # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_BZIP2=y # Packages BR2_PACKAGE_KEXEC=y BR2_PACKAGE_KEXEC_ZLIB=y BR2_PACKAGE_LRZSZ=y BR2_PACKAGE_SCREEN=y BR2_PACKAGE_PCIUTILS=y BR2_PACKAGE_DMIDECODE=y BR2_PACKAGE_BUSYBOX_WATCHDOG=y
Now build the root filesystem:
make galileo_defconfig make
Once it finishes the image will be found in output/images/rootfs.cpio.bz2. Now you should format your SD Card and copy both the kernel and filesystem to the SD Card:
cp galileo_kernel/linux/arch/x86/boot/bzImage /media/sdcard/vmlinuz.efi cp galileo_kernel/buildroot/output/images/rootfs.cpio.bz2 /media/sdcard/initrd
The final step is to create a grub.conf file, to do so enter the following command:
mkdir -p /media/sdcard/boot/grub
Create the file called /media/sdcard/boot/grub/grub.conf that includes the following lines:
default 0 timeout 3 title Linux on Intel Galileo root (hd0,0) kernel /vmlinuz.efi console=ttyS1,115200n8 initrd /initrd
Now you should be able to boot from the SD Card with your Vanilla kernel. In order to add full functionality to the Galileo you have to append every driver needed to the galileo_defconfig file and also any other additional drivers you may need.
It is also very important that you read and understand the Intel® Quark SoC — BSP Build Guide, so I highly suggest you to
I hope this information helps you, as I mentioned, this is possible but will take a lot of work to get it done.
I think I've been able to build the image of the vanilla kernel version 4.1.6 (although it works with a higher version of the kernel 3.10 ), but does not respond if connect via ethernet to the router and try to access the Galilean intel by SSH. Galileo does not get an IP address. I think the only modules that I would need is to be able to connect to the Internet and can connect to it and the 7260-AC wifi plate. I don't know.
Is there an example of someone who has already added new drivers to a vanilla image, as I have to do?
When I have to add the driver to galileo_defconfig file, Are you referring to the first file created (linux-X.X.X/arch/x86/configs/galileo_defconfig ) or second file (buildroot/configs/galileo_defconfig)?
Since both the same name, but not the same.
Thank you very much for answering.
I'm sorry for the delay in my response. The reason why Ethernet (or pretty much anything else) doesn't work it's because as I mentioned it is a Vanilla Kernel. What that means is that it has not been customized from its original form so it hasn’t been optimized for Galileo.
This document may help you: adding kernel modules to Yocto* - example "batman". It exemplifies how to add kernel modules to Yocto.
The drivers have to be added to the kernel configuration file, so it would be the first file (linux-X.X.X/arch/x86/configs/galileo_defconfig). I'm sorry I didn't clarify that on my original post .
Again, I highly suggest you to read and understand the BSP Build Guide since this is not a simple task