Модуль компиляции с внешним набором инструментов - PullRequest
0 голосов
/ 02 марта 2012

Я создал файл make

    obj-m += hello.o

all:
    make -C /home/developer/Desktop/xukr-20120201-omap3/linux-2.6.37-tn M=/home/developer/Desktop/module_test  modules

clean:
    make -C /home/developer/Desktop/xukr-20120201-omap3/linux-2.6.37-tn M=/home/developer/Desktop/module_test clean

Затем я нашел простую привет программу

#define __KERNEL__         /* We're part of the kernel */
#define MODULE             /* Not a permanent part, though. */

/* Standard headers for LKMs */
#include <linux/modversions.h> 
#include <linux/module.h>  

#include <linux/tty.h>      /* console_print() interface */

/* Initialize the LKM */
int init_module()
{
  console_print("Hello, world - this is the kernel speaking\n");
  /* More normal is printk(), but there's less that can go wrong with 
     console_print(), so let's start simple.
  */

  /* If we return a non zero value, it means that 
   * init_module failed and the LKM can't be loaded 
   */
  return 0;
}


/* Cleanup - undo whatever init_module did */
void cleanup_module()
{
  console_print("Short is the life of an LKM\n");
}

И я попытался скомпилировать в командной строке с этим

make ARCH=arm CROSS_COMPILE=angstrom-linux-gnueabi-

И я получаю эту ошибку

/bin/sh: angstrom-linux-gnueabi-gcc: not found

Что не так с этим? я действительно новичок в этом.

Заранее спасибо,

1 Ответ

0 голосов
/ 02 марта 2012

Вы можете использовать римейк для отладки и понимания вашего Makefile. Вызовите его как remake -x -d, это даст вам много выходных данных для отладки, в то время как GNU make будет вести себя иначе.

Как я уже говорил, не забудьте использовать $(MAKE) вместо make внутри вашего Makefile.

Что касается ошибки: angstrom-linux-gnueabi-gcc: not found вам необходимо установить соответствующий кросс-компилятор (и кросс-линкер) набор инструментов в вашей системе (или, возможно, установить соответствующую переменную окружения PATH, чтобы она была найдена).

Все это не решит вашу проблему, но поможет вам понять ее

...