I compile the kernel when I do not know whether it is my compilation method is a problem or other reasons (using the day embedded E8 Development Board with the source code, the CPU is Samsung s5pv210, kernel version 3.0.8), encountered a lot of problems, the following are some of the problems I encountered and solutions, Some of the options are I find on the Internet, some are my own thinking, if there is anything wrong, please inform, thank you!
Question 1:
Drivers/gpio/janz-ttl.c
Implicit declaration of function ' Iowrite16be '
Solution:
Add macro definition: #define IOWRITE16BE (V, addr) iowrite16 (Be16_to_cpu (v), (addr))
Question 2:
There is no mach/map.h in DRIVERS/CHAR/S3C_MEM.C
Solution:
Remove the file in the # include <mach/map.h>
Issue 3:
Drivers/input/touchscreen/eeti_ts.c:65:error:implicit declaration of function ' Irq_to_gpio '
Solution:
A, raumfeld.c
static struct Eeti_ts_platform_data eeti_ts_pdata = {
. Irq_active_high = 1,
. Gpio = Gpio_touc h_irq,//add
};
B,/drivers/input/touchscreen/eeti_ts.c
struct Eeti_ts_priv {
struct input_dev *input;
struct WORK_ struct work;
struct mutex mutex;
int IRQ, irq_active_high;//delete
int IRQ, GPIO, irq_active_high;//add
};
Static inline int eeti_ts_irq_active (struct Eeti_ts_priv *priv)
{
Return Gpio_get_value (Irq_to_gpio (PRIV->IRQ)) = = priv->irq_active_high;//Delete
return gpio_get_ Value (priv->gpio) = = priv->irq_active_high;//Add
}
if (pdata)
Priv->irq_active_high = pdata->irq_active_high;
Replaced by
if (pdata) {
Priv->gpio = pdata->gpio;
Priv->irq_active_high = pdata->irq_active_high;
}
C,/include/linux/input/eeti_ts.h
struct Eeti_ts_platform_data {
unsigned int irq_active_high;
unsigned int gpio;//add
};
Question 4:
Drivers/mfd/ezx-pcap.c:205:error:implicit declaration of function ' Irq_to_gpio '
Solution:
This is because there is no solution, so we define this variable
Question 5:
Drivers/mmc/core/mmc_ops.c:20:22:error:plat/cpu.h:no such file or directory
Solution:
Remove the header file
Question 6:
DRIVERS/MMC/HOST/SDHCI.C in: S3c64xx_sdhci_control4,s3c64xx_sdhci_control4_busy not defined
Solution:
Header file in arch/arm/plat-samsung/include/plat/regs-sdhci.h
You can't just copy the definition.
Question 7:
Drivers/scsi/osd/osd_initiator.c:67:error:size of array ' type name ' is negative
Solution:
Comment out the line with the error, the content definition is not used later
Question 8:
Drivers/scsi/advansys.c:8376:error:implicit declaration of function ' Dma_cache_sync '
Solution:
The function has been discarded, directly annotated
Question 9:
Eabi version inconsistent, link failed
Solution:
This is caused by a compiler version that is too high, select the use of the kernel features in the kernel compilation option, the ARM EABI to compile the kernel
Question 10:
Drivers/staging/dt3155v4l/dt3155v4l.c:434:error:implicit declaration of function ' Kzalloc '
Solution:
Add header Files <linux/slab.h>
Question 11:
Drivers/staging/iio/accel/lis3l02dq_core.c:708:error:implicit declaration of function ' Irq_to_gpio '
Drivers/staging/iio/accel/lis3l02dq_ring.c:297:error:implicit declaration of function ' Irq_to_gpio '
Drivers/staging/iio/accel/sca3000_core.c:1169:error:implicit declaration of function ' Irq_to_gpio '
Drivers/staging/iio/imu/adis16400_core.c:822:error:implicit declaration of function ' Irq_to_gpio '
Solution:
The reference header file in these files <linux/gpio.h> contains the definition of the function
Question 12:
Drivers/staging/solo6x10/core.c:140:error:implicit declaration of function ' Kzalloc '
Drivers/staging/solo6x10/p2m.c:52:error:implicit declaration of function ' Kzalloc '
Drivers/staging/solo6x10/enc.c:101:error:implicit declaration of function ' Kzalloc '
Drivers/staging/solo6x10/g723.c:139:error:implicit declaration of function ' Kzalloc '
Solution:
Add header file # include <linux/slab.h>
Question 13:
Drivers/staging/vme/bridges/vme_tsi148.c:130:error:implicit declaration of function ' Ioread32be '
Drivers/staging/vme/bridges/vme_tsi148.c:133:error:implicit declaration of function ' Ioread32be '
Drivers/tty/serial/uartlite.c:79:error:implicit declaration of function ' Ioread32be '
Drivers/tty/serial/uartlite.c:125:error:implicit declaration of function ' Iowrite32be '
Solution:
#define IOWRITE32BE (V, addr) iowrite32 (Be32_to_cpu (v), (addr))
#define IOREAD32BE (addr) be32_to_cpu (ioread32 (addr))
Some issues encountered with kernel compilation