Я - новичок в разработке Ядра. Я пытаюсь установить Ядро Linux v2.6.34 на Ubuntu 16.04, потому что большинство книг объясняет эту версию вот почему, я думаю, что это - хорошее начало. Моя конечная цель должна понять и изменить управление памятью (особенно в последнем Ядре). Во время компиляции я встретился со следующими ошибками.
/home/irfan/kernel/linux-2.6.34/arch/x86/include/asm/percpu.h:204:33: note: in expansion of macro ‘percpu_to_op’
#define percpu_write(var, val) percpu_to_op("mov", var, val)
^
/home/irfan/kernel/linux-2.6.34/arch/x86/include/asm/irq_regs.h:26:2: note: in expansion of macro ‘percpu_write’
percpu_write(irq_regs, new_regs);
^
arch/x86/kernel/quirks.c: In function ‘ich_force_enable_hpet’:
arch/x86/kernel/quirks.c:98:2: warning: parameter names (without types) in function declaration
u32 uninitialized_var(rcba);
^
arch/x86/kernel/quirks.c:104:36: error: ‘rcba’ undeclared (first use in this function)
pci_read_config_dword(dev, 0xF0, &rcba);
^
arch/x86/kernel/quirks.c:104:36: note: each undeclared identifier is reported only once for each function it appears in
arch/x86/kernel/quirks.c: In function ‘old_ich_force_hpet_resume’:
arch/x86/kernel/quirks.c:188:2: warning: parameter names (without types) in function declaration
u32 uninitialized_var(gen_cntl);
^
arch/x86/kernel/quirks.c:193:43: error: ‘gen_cntl’ undeclared (first use in this function)
pci_read_config_dword(cached_dev, 0xD0, &gen_cntl);
^
arch/x86/kernel/quirks.c: In function ‘old_ich_force_enable_hpet’:
arch/x86/kernel/quirks.c:210:2: warning: parameter names (without types) in function declaration
u32 uninitialized_var(gen_cntl);
^
arch/x86/kernel/quirks.c:215:36: error: ‘gen_cntl’ undeclared (first use in this function)
pci_read_config_dword(dev, 0xD0, &gen_cntl);
^
arch/x86/kernel/quirks.c: In function ‘vt8237_force_enable_hpet’:
arch/x86/kernel/quirks.c:301:2: warning: parameter names (without types) in function declaration
u32 uninitialized_var(val);
^
arch/x86/kernel/quirks.c:311:36: error: ‘val’ undeclared (first use in this function)
pci_read_config_dword(dev, 0x68, &val);
^
arch/x86/kernel/quirks.c: In function ‘nvidia_force_enable_hpet’:
arch/x86/kernel/quirks.c:426:2: warning: parameter names (without types) in function declaration
u32 uninitialized_var(val);
^
arch/x86/kernel/quirks.c:437:36: error: ‘val’ undeclared (first use in this function)
pci_read_config_dword(dev, 0x44, &val);
^
scripts/Makefile.build:230: recipe for target 'arch/x86/kernel/quirks.o' failed
make[2]: *** [arch/x86/kernel/quirks.o] Error 1
scripts/Makefile.build:366: recipe for target 'arch/x86/kernel' failed
make[1]: *** [arch/x86/kernel] Error 2
Makefile:884: recipe for target 'arch/x86' failed
make: *** [arch/x86] Error 2
Я попробовал, но я не сделал успеха, ни я нашел любой материал/справку об этой ошибке.
Книги, которые вы читаете, просто устарели. Ubuntu 16.04 поставляется с ядром 4.4. Все, что ниже этой версии, просто слишком старое, чтобы строить на современных дистрибутивах. Перейдите на https://www.kernel.org/ для получения долгосрочных версий ядер Linux и найдите книги, которые идут в ногу с современностью. Не говоря уже о том, что 16.04 тоже 3 года. Вы должны рассмотреть хотя бы текущую версию LTS.