What is linuxrc purpose and is it needed in the rootfs?

Viewed 6539

Question

My question is, What does linuxrc do? Do i need it in my rootfs? Does it have anything to do with using systemd vs initd?

Background

I am currently attempting to build a rootfs for an ARM 7 processor using Yocto. The only modification I have made to the original BSP project is I specified that I would like to use systemd as my initialization manager (done in local.conf). The rootfs builds (bitbake core-image-minimal) and using Mgftool2 I load it onto the board. When I attempt to boot the image i get the following error:

VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 272K (80816000 - 8085a000)
Kernel panic - not syncing: Requested init /linuxrc failed (error -2).
CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W       4.4.15-v4.4.15+g017b90c #1
Hardware name: Freescale i.MX6 Ultralite (Device Tree)
[<80015d9c>] (unwind_backtrace) from [<80012c14>] (show_stack+0x10/0x14)

This makes perfect sense because after i examined the rootfs I generated, I found that there was no executable named linuxrc. I changed u-boot's default_bootargs to not include init=/linurc and booted the image again. I then got this error: (Update #1)

Update #1

The secondary error was caused by systemd needing certain kernel parameters enabled. Once the kernel was rebuilt with these parameters, the linux image did boot. I am still interested in knowing what exactly linuxrc does and why it at least appears i do not need it.

1 Answers
Related