Very very good video, I'll repeat this work, I always wanted to use qmu and you did it so simple. Thank you. I am waiting for PCI driver, I'll stay tunned.
This video is a piece of art. Although I know many of the topics you mentioned, it is clear, solid and covers important details regarding GNU/Linux distro generation and target emulation.
LOL! this series is so insane. Thank you so much! edit: i'm using ubuntu 20.04LTS focal, and fail to run the command "sudo pacman -S ..." at the beginning of the video. However it seem to be not necessary in my case since I still able to archive the final result.
You are welcome. The reason here is because Ubuntu uses the apt package manager instead of pacman. So on Ubuntu the command would be: apt install qemu-system-arm
great video! one question: why do you pass "root=/dev/mem" to the kernel command line? is it because the bootloader copies the compressed cpio to address 0x0 in physical memory?
The sound in the video is somehow at very low level. Please check if the amp can be increased without a lot of rework. Great learning videos but....thank you.
@@johannes4gnu_linux96 Would appreciate if you can explain briefly one observation I'm having. I forgot to add the soft link for the init script pointing to busybox bin and as result I got Kernel Panic at QEMU launch - "qemu cannot open root device dev/mem or unknown-block(0,0): error -6". This was removed with the soft link creation and recreation of the initramfs. I would like to understand the cause and effect. I don't understand the busy box setup that well and assumed it was only user-space utilities.
@@nairrohit83 After the kernel was loaded and has completed its initialization, it will start a first userspace program. On a normal linux distro, this will be the init system, e.g. systemd. The kernel will search for it under different paths in the init system, e.g. /init, /bin/init, /sbin/init, ... You should see in the kernel log before the panic at which location the kernel looked for it. If the kernel can't find any init application in all the location, it will generate a kernel panic and abort. By creating the softlink, the kernel now finds a valid init application and executes it. In our case this is just the busybox binary which will start a shell were you can type your commands in.
@@johannes4gnu_linux96 Thanks ! That makes sense but the error message sent me on a different trajectory thinking that something was wrong with the way the mem node was created.
With Sommer Long gone and Autumn reminding that another year almost gone by, I get a little Bit melancholic 🍂 No, I have a bit of a cold. Maybe thats why I Sound a little Bit sad 😉
I would not recommend watching this video for anyone who has never built a kernel before. A beginner in kernel configuration will simply have a mess in his head after watching this.
Yes, you are absolutely right. The target group here are people knowing how to compile a Linux Kernel. If someone wants to know how it is done, I made a video about it here: th-cam.com/video/cPho-_RKzEY/w-d-xo.html If you want to know how to build a minimal linux system for ARM, here is another video: th-cam.com/video/vZMivd_eGWA/w-d-xo.html
Hi Johannes, I fail on compiling the linux kernel. I have tried with 6.8.9, 6.1.90 and finally 5.15.158. each one fails in the make at LEX scripts/kconfig/lexer.lex.c /bin/sh: 1:flex: not found. HELP.
Hi Steve, for compiling the Linux kernel you need to Install some additional Tools. Try to Install bison and flex and try again. On Debian based systems you can run: sudo apt install bison flex
@@johannes4gnu_linux96 Hi Johannes. Thank you, following your advice I managed to compile the Kernel. Now I am having issues compiling busybox-1.36.1. Using the - menuconfig flag. When command HOSTCC scripts/kconfig/lxdialog/checlist.o creates a fatal error: curses.h No such file or directory. Thank you once again. Steve
Very very good video, I'll repeat this work, I always wanted to use qmu and you did it so simple. Thank you. I am waiting for PCI driver, I'll stay tunned.
Thank you so much! I've been really interested in the linux and embedded world and your videos are fantastic! Please keep them coming!
This video is a piece of art. Although I know many of the topics you mentioned, it is clear, solid and covers important details regarding GNU/Linux distro generation and target emulation.
Ich bin sooo dankbar für deine Videos!
LOL! this series is so insane. Thank you so much!
edit: i'm using ubuntu 20.04LTS focal, and fail to run the command "sudo pacman -S ..." at the beginning of the video. However it seem to be not necessary in my case since I still able to archive the final result.
You are welcome. The reason here is because Ubuntu uses the apt package manager instead of pacman. So on Ubuntu the command would be:
apt install qemu-system-arm
Great vdieo...
are they any videos coming further???
Yes, I will do at least one Moore Video showing how to Build an emulated pci device with QEMU and maybe some more about USB Pass through
Great video!
Amazing content as always
great stuff!
Great video. How to run yocto image (file *.wic) in QEMU?
great video! one question: why do you pass "root=/dev/mem" to the kernel command line? is it because the bootloader copies the compressed cpio to address 0x0 in physical memory?
thank you!
Thanks, man! Good one.
The sound in the video is somehow at very low level. Please check if the amp can be increased without a lot of rework. Great learning videos but....thank you.
Yes, I have sometimes problems with my audio. If you check out more recent videos, it should be better.
@@johannes4gnu_linux96 Would appreciate if you can explain briefly one observation I'm having. I forgot to add the soft link for the init script pointing to busybox bin and as result I got Kernel Panic at QEMU launch - "qemu cannot open root device dev/mem or unknown-block(0,0): error -6". This was removed with the soft link creation and recreation of the initramfs. I would like to understand the cause and effect. I don't understand the busy box setup that well and assumed it was only user-space utilities.
@@nairrohit83 After the kernel was loaded and has completed its initialization, it will start a first userspace program. On a normal linux distro, this will be the init system, e.g. systemd.
The kernel will search for it under different paths in the init system, e.g. /init, /bin/init, /sbin/init, ...
You should see in the kernel log before the panic at which location the kernel looked for it. If the kernel can't find any init application in all the location, it will generate a kernel panic and abort.
By creating the softlink, the kernel now finds a valid init application and executes it. In our case this is just the busybox binary which will start a shell were you can type your commands in.
@@johannes4gnu_linux96 Thanks ! That makes sense but the error message sent me on a different trajectory thinking that something was wrong with the way the mem node was created.
D*** what spec is your system, 12 cores? that sh** is fast compiling kernel without editing? is that real time please tell me is not real time lol
Nothing special. My PC has an i5 11gen in it. I paused the video, the kernel compilation took 6 minutes as you can see on the clock ;)
are you sad? 😶🌫
With Sommer Long gone and Autumn reminding that another year almost gone by, I get a little Bit melancholic 🍂
No, I have a bit of a cold. Maybe thats why I Sound a little Bit sad 😉
👍@@johannes4gnu_linux96
I would not recommend watching this video for anyone who has never built a kernel before. A beginner in kernel configuration will simply have a mess in his head after watching this.
Yes, you are absolutely right. The target group here are people knowing how to compile a Linux Kernel. If someone wants to know how it is done, I made a video about it here:
th-cam.com/video/cPho-_RKzEY/w-d-xo.html
If you want to know how to build a minimal linux system for ARM, here is another video: th-cam.com/video/vZMivd_eGWA/w-d-xo.html
Hi Johannes, I fail on compiling the linux kernel. I have tried with 6.8.9, 6.1.90 and finally 5.15.158. each one fails in the make at LEX scripts/kconfig/lexer.lex.c /bin/sh: 1:flex: not found. HELP.
Hi Steve, for compiling the Linux kernel you need to Install some additional Tools. Try to Install bison and flex and try again. On Debian based systems you can run:
sudo apt install bison flex
@@johannes4gnu_linux96 Hi Johannes. Thank you, following your advice I managed to compile the Kernel. Now I am having issues compiling busybox-1.36.1. Using the - menuconfig flag. When command HOSTCC scripts/kconfig/lxdialog/checlist.o creates a fatal error: curses.h No such file or directory. Thank you once again. Steve
@@stevescanlon339 for beeing able to compile the menuconfig you need the ncurses library. On Debian based systems you must Install libncurses5-dev