Este parece ser o código do kernel responsável por fazer sentido de root=/dev/mmcblk0p2
.
Dado que não há initramfs
presente, não há nenhum daemon udev em execução para nomear os dispositivos e /dev/mmcblk1
não existe realmente em lugar algum.
O kernel então converte esse nome para o driver responsável com a função dev_t name_to_dev_t(const char *name)
:
...
if (strncmp(name, "/dev/", 5) != 0) {
unsigned maj, min, offset;
char dummy;
if ((sscanf(name, "%u:%u%c", &maj, &min, &dummy) == 2) ||
(sscanf(name, "%u:%u:%u:%c", &maj, &min, &offset, &dummy) == 3)) {
res = MKDEV(maj, min);
if (maj != MAJOR(res) || min != MINOR(res))
goto fail;
} else {
res = new_decode_dev(simple_strtoul(name, &p, 16));
if (*p)
goto fail;
}
goto done;
}
Uma referência de uma discussão do lkml indica que as alterações na nomenclatura podem ser causadas pelo pedido na árvore de dispositivos:
Changes in device ordering can be provoked by the order in which entries in the DT file appear, and hence the order in which the host SD interfaces are probed by the kernel.