Kernel autoconstruído: falha ao montar / dev: nenhum desses dispositivos

6

Estou tentando instalar um kernel Linux (3.8.1) a partir do código-fonte em uma distribuição Fedora. O kernel é um baunilha. Eu sigo as instruções de compilação do kernel de perto, isto é:

make menuconfig
make
sudo make modules_install install
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Tudo em /boot parece bem. Eu posso ver System.map , initramfs e vmlinuz para o kernel recém-compilado. O link vmlinuz aponta para vmlinuz-3.8.1 . Existem vários outros kernels instalados, incluindo um Ubuntu. O grub2 reconhece todos eles e eu posso inicializar em cada um deles.

Quando eu reinicio, vejo todos os kernels como entradas de menu e escolho 3.8.1.

Então vejo esta mensagem:

early console in decompress_kernel
decompressing Linux... parsing ELF ... done
Booting the kernel.
[1.687084] systemd [1]:failed to mount /dev:no such device
[1.687524] systemd [1]:failed to mount /dev:no such device

Solução:

Todas as três respostas postadas fornecem a solução. CONFIG_DEVTMPFS estava de fato causando o problema. Eu copiei um kernel de trabalho / boot / config-… para a raiz da árvore de código-fonte como .config e executei os comandos padrão para construir o kernel também mostrado acima.

    
por mfrank.23 25.02.2014 / 16:29

3 respostas

4

A maneira mais fácil de obter uma configuração do kernel em funcionamento é apenas copiar .config do Fedora e depois fazer um make oldconfig para configurá-lo. A configuração é encontrada em /boot/config-*

    
por 25.02.2014 / 17:22
6

Você precisa configurar seu kernel com essas opções s:

Linux kernel >= 3.0
CONFIG_DEVTMPFS
CONFIG_CGROUPS (it's OK to disable all controllers)
CONFIG_INOTIFY_USER
CONFIG_SIGNALFD
CONFIG_TIMERFD
CONFIG_EPOLL
CONFIG_NET
CONFIG_SYSFS
CONFIG_PROC_FS
CONFIG_FHANDLE (libudev, mount and bind mount handling)

Linux kernel >= 3.8 for Smack support

Udev will fail to work with the legacy layout:
CONFIG_SYSFS_DEPRECATED=n

Legacy hotplug slows down the system and confuses udev:
CONFIG_UEVENT_HELPER_PATH=""

Userspace firmware loading is deprecated, will go away, and
sometimes causes problems:
CONFIG_FW_LOADER_USER_HELPER=n

Some udev rules and virtualization detection relies on it:
CONFIG_DMIID

Support for some SCSI devices serial number retrieval, to
create additional symlinks in /dev/disk/ and /dev/tape:
CONFIG_BLK_DEV_BSG

Optional but strongly recommended:
CONFIG_IPV6
CONFIG_AUTOFS4_FS
CONFIG_TMPFS_POSIX_ACL
CONFIG_TMPFS_XATTR
CONFIG_SECCOMP

For systemd-bootchart, several proc debug interfaces are required:
CONFIG_SCHEDSTATS
CONFIG_SCHED_DEBUG

For UEFI systems:
CONFIG_EFI_VARS
CONFIG_EFI_PARTITION

Note that kernel auditing is broken when used with systemd's
container code. When using systemd in conjunction with
containers, please make sure to either turn off auditing at
runtime using the kernel command line option "audit=0", or
turn it off at kernel compile time using:
CONFIG_AUDIT=n
    
por 25.02.2014 / 17:09
3

Analisando um problema similar em um sistema personalizado rodando systemd, parece que isso pode porque "CONFIG_DEVTMPFS" não está selecionado na configuração do kernel (note que esta é a primeira coisa na lista do sciurus dos requisitos do kernel para executar o systemd).

Para descobrir agora como corrigir isso, inicie make menuconfig e use o recurso de pesquisa (pressione / ) para procurar por "DEVTMPFS". O primeiro hit é:

Symbol: DEVTMPFS [=y]  
Type  : boolean  
Prompt: Maintain a devtmpfs filesystem to mount at /dev                                                  
  Location:                                            
    -> Device Drivers
(1)   -> Generic Driver Options   

Abaixo, e eis que existe essa opção em Drivers de dispositivos - > Opções genéricas de driver .

Como vonbrand diz, é melhor começar com uma configuração que corresponda ao que você tem agora. Isso provavelmente pode ser encontrado gzipped como /proc/config.gz . Copie isso e gunzip -c config.gz > .config e use esse arquivo como o .config preliminar em sua árvore de origem (mais detalhes em passo # 2 aqui ).

    
por 25.02.2014 / 18:11