在編譯 Krenel 時常會出現很多奇奇怪怪的錯誤訊息,然後就不知道怎麼去解決。在這次編譯也遇到一些錯誤。借此次機會整理了一下,所遇到和網路上的一些錯誤訊息的解法。
以下的操作都是在 Linux-Krenel 的資料夾內。從錯誤訊息 2開始,在檔案編輯時前頭有「+」的表示新增此內容,反之「-」表示刪除此內容。
錯誤訊息 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
LD drivers/xen/built-in.o drivers/xen/blktap2-new/built-in.o: In function `blktap_ring_init': /usr/src/kernels/linux-2.6.38/drivers/xen/blktap2-new/ring.c:521: multiple definition of `blktap_ring_init' drivers/xen/blktap2/built-in.o:/usr/src/kernels/linux-2.6.38/drivers/xen/blktap2/ring.c:587: first defined here ld: Warning: size of symbol `blktap_ring_init' changed from 165 in drivers/xen/blktap2/built-in.o to 159 in drivers/xen/blktap2-new/built-in.o . . (略過) . drivers/xen/blktap2-new/built-in.o: In function `blktap_sysfs_create': /usr/src/kernels/linux-2.6.38/drivers/xen/blktap2-new/sysfs.c:168: multiple definition of `blktap_sysfs_create' drivers/xen/blktap2/built-in.o:/usr/src/kernels/linux-2.6.38/drivers/xen/blktap2/sysfs.c:300: first defined here ld: Warning: size of symbol `blktap_sysfs_create' changed from 317 in drivers/xen/blktap2/built-in.o to 224 in drivers/xen/blktap2-new/built-in.o make[2]: *** [drivers/xen/built-in.o] Error 1 make[1]: *** [drivers/xen] Error 2 make: *** [drivers] Error 2 |
解法
把這兩個取消不要勾選
1 2 3 4 5 |
[root@localhost ~]# make menuconfig Device Drivers ---> XEN ---> < > Block-device tap backend driver < > Block-device tap backend driver 2 |
錯誤訊息 2
1 |
warning: (VIDEO_TIMBERDALE) selects TIMB_DMA which has unmet direct dependencies (DMADEVICES && (MFD_TIMBERDALE || HAS_IOMEM)) |
解法
1 2 3 4 5 6 7 8 9 10 11 |
[root@localhost ~]# vim drivers/media/video/Kconfig config VIDEO_TIMBERDALE tristate "Support for timberdale Video In/LogiWIN" - depends on VIDEO_V4L2 && I2C + depends on VIDEO_V4L2 && I2C && DMADEVICES select DMA_ENGINE select TIMB_DMA select VIDEO_ADV7180 select VIDEOBUF_DMA_CONTIG ---help--- Add support for the Video In peripherial of the timberdale FPGA. |
錯誤訊息 3
1 |
warning: (VIDEO_TIMBERDALE && SND_SOC_SH4_SIU) selects DMA_ENGINE which has unmet direct dependencies (DMADEVICES) |
解法
1 2 3 4 5 |
[root@localhost ~]# vim drivers/ata/Kconfig config PATA_ARASAN_CF tristate "ARASAN CompactFlash PATA Controller Support" + depends on DMADEVICES select DMA_ENGINE |
錯誤訊息 4
1 |
warning: (STUB_POULSBO && DRM_I915 && DRM_NOUVEAU) selects ACPI_VIDEO which has unmet direct dependencies(!XEN_UNPRIVILEGED_GUEST && ACPI && X86 && BACKLIGHT_CLASS_DEVICE && VIDEO_OUTPUT_CONTROL && INPUT) |
解法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
[root@localhost ~]# vim drivers/gpu/drm/Kconfig config DRM_I915 tristate "i915 driver" depends on AGP_INTEL # we need shmfs for the swappable backing store, and in particular # the shmem_readpage() which depends upon tmpfs select SHMEM select TMPFS select DRM_KMS_HELPER select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT # i915 depends on ACPI_VIDEO when ACPI is enabled # but for select to work, need to select ACPI_VIDEO's dependencies, ick select BACKLIGHT_CLASS_DEVICE if ACPI + select VIDEO_OUTPUT_CONTROL if ACPI select INPUT if ACPI select ACPI_VIDEO if ACPI select ACPI_BUTTON if ACPI help Choose this option if you have a system that has Intel 830M, 845G, 852GM, 855GM 865G or 915G integrated graphics. If M is selected, the module will be called i915. AGP support is required for this driver to work. This driver is used by the Intel driver in X.org 6.8 and XFree86 4.4 and above. If unsure, build this and i830 as modules and the X server will load the correct one. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[root@localhost ~]# vim drivers/gpu/stub/Kconfig config STUB_POULSBO tristate "Intel GMA500 Stub Driver" depends on PCI depends on NET # for THERMAL # Poulsbo stub depends on ACPI_VIDEO when ACPI is enabled # but for select to work, need to select ACPI_VIDEO's dependencies, ick select BACKLIGHT_CLASS_DEVICE if ACPI + select VIDEO_OUTPUT_CONTROL if ACPI select INPUT if ACPI select ACPI_VIDEO if ACPI select THERMAL if ACPI help Choose this option if you have a system that has Intel GMA500 (Poulsbo) integrated graphics. If M is selected, the module will be called Poulsbo. This driver is a stub driver for Poulsbo that will call poulsbo.ko to enable the acpi backlight control sysfs entry file because there have no poulsbo native driver can support intel opregion. |
錯誤訊息 5
1 |
warning: (GOOGLE_SMI) selects EFI_VARS which has unmet direct dependencies (EFI) |
解法
1 2 3 4 5 6 7 |
[root@localhost ~]# vim drivers/firmware/google/Kconfig menu "Google Firmware Drivers" config GOOGLE_SMI tristate "SMI interface for Google platforms" depends on ACPI && DMI + select EFI select EFI_VARS |
參考資料 :
http://www.serverphorums.com/read.php?12,321053
https://patchwork.kernel.org/patch/701201/
krenel .. typo ?
Thank you