Arm с внешней шиной данных?

Тема в разделе "Флудилка", создана пользователем Igor68, 15 апр 2021.

  1. Igor68

    Igor68 Гуру

    Да вот пока нет комментариев и прочее.
     
  2. Igor68

    Igor68 Гуру

    вроде как @ZAZ-965 компетентен на эту тему. Вот только давно его не видно:(
    и @Алексей.А так же не виден:(
     
    Последнее редактирование: 1 авг 2021
  3. Un_ka

    Un_ka Гуру

    Может на habr q&a есть эксперты или на linux.org.ru? На последнем мне отвечали по делу, то что другие не знали ввиду отсутствия опыта.
     
  4. Igor68

    Igor68 Гуру

    Ищу пока, пробую. Вот решил отвлечься и пробую компилятор на самой плате... (все /bin; /usr и прочее примонтированы с SD карты и впаянную K9F2G08U0M PBIO на плате своей работой не затрагивают). Компилятор (указанный в теме ранее "mini-native-armv5l") установлен (скопированы файлы) прямо на SD в директории (которые прмонтированы вместо) /bin; /etc; /usr и др.
    Вот этот код:
    Код (C++):
    #include <stdio.h>

    int main(int argc, char **argv)
    {
        int cnt=0;
        printf("TEST!!!\n");
        //
        while(cnt < 100) {
            printf("cnt: %i\n", cnt);
            cnt++;
        }
        return 0;
    }
     
    А Makefile с помощью бубна и матери:
    Код (Bash):
    ###########################
    # Simple Generic Makefile #
    ###########################

    CC      := /usr/bin/gcc
    LD      := /usr/bin/ld
    AS      := /usr/bin/as

    INC     := -I/usr/include:/usr/gcc/include/
    LIB     := -L/usr/lib/:/usr/gcc/lib/

    CFLAGS  := -c -Wall -O2 -v
    LDFLAGS := --entry main --verbose

    SOURCES         := $(shell ls *.c)
    OBJECTS         := $(SOURCES:.c=.o)
    EXECUTABLE      := test

    all: $(EXECUTABLE)

    $(OBJECTS): $(SOURCES)
            $(CC) $(INC) $(LIB) $(CFLAGS) $< -o $@

    $(EXECUTABLE): $(OBJECTS)
            $(CC) $(INC) $(LIB) $(LDFLAGS) $< -o $@

    #install:
    #       install -m 0755 $(EXECUTABLE) $(HOME)/local/bin

    clean:
            rm -rf *o $(EXECUTABLE)
    Он конечно с мусором (учусь).
    А это выхлоп сборки прямо на плате:
    Код (Text):
    $ make
    /usr/bin/gcc -I/usr/include:/usr/gcc/include/ -L/usr/lib/:/usr/gcc/lib/ -c -Wall -O2 -v main.c -o main.o
    Invoked as /usr/bin/gcc
    Reference path: /usr/bin/..
    arg[ 0] = rawgcc
    arg[ 1] = -nostdinc
    arg[ 2] = -isystem
    arg[ 3] = /usr/bin/../include
    arg[ 4] = -isystem
    arg[ 5] = /usr/bin/../gcc/include
    arg[ 6] = -U__nptl__
    arg[ 7] = -I/usr/include:/usr/gcc/include/
    arg[ 8] = -c
    arg[ 9] = -Wall
    arg[10] = -O2
    arg[11] = -v
    arg[12] = main.c
    arg[13] = -o
    arg[14] = main.o
    Using built-in specs.
    Target: armv5l-unknown-linux
    Configured with: /home/landley/firmware-0.9.6/build/temp-armv5l/gcc-core/configure --prefix=/home/landley/firmware-0.9.6/build/mini-native-armv5l/usr --disable-multilib --build=x86_64-walrus-linux --host=armv5l-unknown-linux --target=armv5l-unknown-linux --enable-long-long --enable-c99 --enable-shared --enable-threads=posix --enable-__cxa_atexit --disable-nls --enable-languages=c,c++ --disable-libstdcxx-pch --enable-sjlj-exceptions --program-prefix=
    Thread model: posix
    gcc version 4.1.2
    /usr/bin/../libexec/gcc/armv5l-unknown-linux/4.1.2/cc1 -quiet -nostdinc -v -I/usr/include:/usr/gcc/include/ -iprefix /usr/bin/../lib/gcc/armv5l-unknown-linux/4.1.2/ -U__nptl__ -isystem /usr/bin/../include -isystem /usr/bin/../gcc/include main.c -quiet -dumpbase main.c -auxbase-strip main.o -O2 -Wall -version -o /tmp/ccSLRjqe.s
    ignoring nonexistent directory "/usr/include:/usr/gcc/include/"
    #include "..." search starts here:
    #include <...> search starts here:
    /usr/bin/../include
    /usr/bin/../gcc/include
    End of search list.
    GNU C version 4.1.2 (armv5l-unknown-linux)
            compiled by GNU C version 4.1.2.
    GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
    Compiler executable checksum: 9a27050f6b5917e84071393dd7232b86
    as -o main.o /tmp/ccSLRjqe.s
    /usr/bin/gcc -I/usr/include:/usr/gcc/include/ -L/usr/lib/:/usr/gcc/lib/ --entry main --verbose main.o -o test
    Using built-in specs.
    Target: armv5l-unknown-linux
    Configured with: /home/landley/firmware-0.9.6/build/temp-armv5l/gcc-core/configure --prefix=/home/landley/firmware-0.9.6/build/mini-native-armv5l/usr --disable-multilib --build=x86_64-walrus-linux --host=armv5l-unknown-linux --target=armv5l-unknown-linux --enable-long-long --enable-c99 --enable-shared --enable-threads=posix --enable-__cxa_atexit --disable-nls --enable-languages=c,c++ --disable-libstdcxx-pch --enable-sjlj-exceptions --program-prefix=
    Thread model: posix
    gcc version 4.1.2
    /usr/bin/../libexec/gcc/armv5l-unknown-linux/4.1.2/collect2 --eh-frame-hdr -dynamic-linker /lib/ld-linux.so.2 -X -m armelf_linux -p -o test -e main -L/usr/lib/:/usr/gcc/lib/ -L/usr/bin/../lib -L/usr/bin/../gcc/lib --dynamic-linker /lib/ld-uClibc.so.0 -rpath-link /usr/bin/../lib /usr/bin/../lib/crti.o /usr/bin/../gcc/lib/crtbegin.o /usr/bin/../lib/crt1.o main.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/bin/../gcc/lib/crtend.o /usr/bin/../lib/crtn.o
     
    И вот запуск:
    Код (C++):
    -bash-3.2$ ./test
    TEST!!!
    cnt: 0
    cnt: 1
    cnt: 2
    cnt: 3
    cnt: 4
    cnt: 5
    cnt: 6
    cnt: 7
    cnt: 8
    cnt: 9
    cnt: 10
    cnt: 11
    cnt: 12
    cnt: 13
    cnt: 14
    cnt: 15
    cnt: 16
    cnt: 17
    cnt: 18
    cnt: 19
    cnt: 20
    cnt: 21
    cnt: 22
    ...
    ...
    ...
    cnt: 82
    cnt: 83
    cnt: 84
    cnt: 85
    cnt: 86
    cnt: 87
    cnt: 88
    cnt: 89
    cnt: 90
    cnt: 91
    cnt: 92
    cnt: 93
    cnt: 94
    cnt: 95
    cnt: 96
    cnt: 97
    cnt: 98
    cnt: 99
    -bash-3.2$
    Компиляция на плате работает!
    Даже "mc" взятый от MOXA в действии.
    Надо только ко всему привыкнуть и научится собирать драйверы.
     
    Последнее редактирование: 3 авг 2021
  5. Igor68

    Igor68 Гуру

    А вот это испытание клиента MySql в реальных условиях прямо на работе (вместо перекура). База не имеет для производсва важных и секретных данных. Клиент MySql взят от MOXA - ранее давал ссылку. Вот:
    Код (Text):
    -bash-3.2$ mysql -u abp -pabp -h 192.168.0.234
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 204548 to server version: 5.5.5-10.1.48-MariaDB-0+deb9u2

    No entry for terminal type "xterm";
    using dumb terminal settings.
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | abp_db             |
    | catserver_db       |
    | information_schema |
    | mychat             |
    +--------------------+
    4 rows in set (0.03 sec)

    mysql> use catserver_db;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    mysql> show tables;
    +------------------------+
    | Tables_in_catserver_db |
    +------------------------+
    | datas                  |
    | settings               |
    | test                   |
    +------------------------+
    3 rows in set (0.00 sec)

    mysql> select * from settings;
    +-----+--------+-----------+----------+--------+-------+-----+-----+------+---+--------+-----------+----+-------+------+
    | prc | chckon | chckvalue | chckmode | SetErr | Cntrl | Usp | Upp | U    | I | enable | AutoCntrl | id | NumCh | mode |
    +-----+--------+-----------+----------+--------+-------+-----+-----+------+---+--------+-----------+----+-------+------+
    |   1 |      1 |         1 |        1 |    0.1 |     0 |   1 |   1 |    1 | 1 |      0 |         0 |  1 |     1 |    0 |
    |   1 |      1 |         1 |        1 |    0.1 |     0 |   2 |   2 |    2 | 1 |      0 |         0 |  2 |     2 |    3 |
    |   1 |      1 |         1 |        1 |    0.1 |     0 |   3 |   3 | 7.49 | 4 |      0 |         0 |  3 |     3 |    0 |
    |   1 |      1 |         1 |        1 |    0.1 |     1 |   4 |   4 |    4 | 2 |      0 |         1 |  4 |     4 |    0 |
    |   1 |      1 |         1 |        1 |    0.1 |     0 |  -2 |  -2 |    5 | 1 |      0 |         0 |  5 |     5 |    3 |
    |   1 |      1 |         1 |        1 |    0.1 |     1 |   6 |   6 |    6 | 5 |      0 |         1 |  6 |     6 |    0 |
    |   0 |      1 |         1 |        1 |    0.1 |     0 |   7 |   7 |    7 | 7 |      0 |         0 |  7 |     7 |    0 |
    |   1 |      1 |         1 |        1 |    0.1 |     0 |   8 |   8 |    8 | 6 |      0 |         0 |  8 |     8 |    0 |
    |   1 |      1 |         1 |        1 |    0.1 |     0 |   9 |   9 |    9 | 6 |      0 |         0 |  9 |     9 |    0 |
    |   0 |      1 |         1 |        1 |    0.1 |     0 |  10 |  10 |    1 | 1 |      0 |         0 | 10 |    10 |    0 |
    |   1 |      1 |         1 |        1 |    0.1 |     0 |  11 |   1 |    1 | 1 |      0 |         0 | 11 |    11 |    0 |
    |   1 |      1 |         1 |        1 |    0.1 |     1 |  12 |  12 |    1 | 8 |      0 |         1 | 12 |    12 |    0 |
    +-----+--------+-----------+----------+--------+-------+-----+-----+------+---+--------+-----------+----+-------+------+
    12 rows in set (0.00 sec)

    mysql>
     
     
    Un_ka нравится это.
  6. Igor68

    Igor68 Гуру

    Нао что-то делать. И где взять linux-headers-2.6.27 ???
    Пытаюсь... скачал linux-2.6.27.tar.bz2, распаковал, и мучаюсь...
    вот:
    Код (Text):
    kto@debian:~/Загрузки/at91sam9260_Linux_board/linux-2.6.27$ make autoconfig
    Makefile:442: *** mixed implicit and normal rules: deprecated syntax
    Makefile:1601: *** mixed implicit and normal rules: deprecated syntax
    make: *** Нет правила для сборки цели «autoconfig».  Останов.
    kto@debian:~/Загрузки/at91sam9260_Linux_board/linux-2.6.27$ make menuconfig
    Makefile:442: *** mixed implicit and normal rules: deprecated syntax
    Makefile:1601: *** mixed implicit and normal rules: deprecated syntax
    make: *** Нет правила для сборки цели «menuconfig».  Останов.
    kto@debian:~/Загрузки/at91sam9260_Linux_board/linux-2.6.27$ make at91sam9260dfc_defconfig
    Makefile:442: *** mixed implicit and normal rules: deprecated syntax
    Makefile:1601: *** mixed implicit and normal rules: deprecated syntax
    make: *** Нет правила для сборки цели «at91sam9260dfc_defconfig».  Останов.
    kto@debian:~/Загрузки/at91sam9260_Linux_board/linux-2.6.27$
    Интересно, в чём дело?
    Ведь надо linux-headers-2.6.27 получить, что бы делать модули... но как получить?

    А это:
    Код (Text):
    bash-3.2# bash-3.2# make headers_install INSTALL_HDR_PATH=/usr/src/linux-headers-2.6.27 TARGET=at91
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
    sh: set: -e: invalid option
      CHK     include/linux/version.h
    sh: set: -e: invalid option
    sh: set: -e: invalid option
      HOSTCC  scripts/basic/fixdep
    rawgcc: /bin/../gcc/lib/crtbegin.o: No such file or directory
    rawgcc: /bin/../gcc/lib/crtend.o: No such file or directory
    scripts/basic/fixdep.c:107:23: error: no include path in which to search for sys/types.h
    scripts/basic/fixdep.c:108:22: error: no include path in which to search for sys/stat.h
    scripts/basic/fixdep.c:109:22: error: no include path in which to search for sys/mman.h
    scripts/basic/fixdep.c:110:20: error: no include path in which to search for unistd.h
    scripts/basic/fixdep.c:111:19: error: no include path in which to search for fcntl.h
    scripts/basic/fixdep.c:112:20: error: no include path in which to search for string.h
    ....
    бррезано - шипко много
    ....
    cripts/unifdef.c:919: warning: implicit declaration of function 'printf'
    scripts/unifdef.c:919: warning: incompatible implicit declaration of built-in function 'printf'
    scripts/unifdef.c:924: error: too many arguments to function 'strlcmp'
    scripts/unifdef.c: At top level:
    scripts/unifdef.c:937: error: expected ')' before 'ignorethis'
    scripts/unifdef.c:971: error: expected declaration specifiers or '...' before 'size_t'
    scripts/unifdef.c: In function 'strlcmp':
    scripts/unifdef.c:973: error: 'n' undeclared (first use in this function)
    scripts/unifdef.c: In function 'debug':
    scripts/unifdef.c:987: error: 'va_list' undeclared (first use in this function)
    scripts/unifdef.c:987: error: expected ';' before 'ap'
    scripts/unifdef.c:989: error: 'debugging' undeclared (first use in this function)
    scripts/unifdef.c:990: warning: implicit declaration of function 'va_start'
    scripts/unifdef.c:990: error: 'ap' undeclared (first use in this function)
    scripts/unifdef.c:991: warning: implicit declaration of function 'vwarnx'
    scripts/unifdef.c:992: warning: implicit declaration of function 'va_end'
    scripts/unifdef.c: In function 'error':
    scripts/unifdef.c:1000: warning: implicit declaration of function 'warnx'
    sh: can't execute 'scripts/basic/fixdep': No such file or directory
    sh: set: -e: invalid option
    bash-3.2#
     
    производил прямо на плате - там все директории на SD-карте.

    Что делать?
    Может знает кто?
     
    Последнее редактирование: 5 авг 2021
  7. Igor68

    Igor68 Гуру

    Вот наткнулся:
    Код (Bash):
    make ARCH=${ARCH} INSTALL_HDR_PATH=${SYSROOT}/usr headers_install
    Тут валялось скачанное ядро (исходники) linux-at91-wilc_15_4_1
    пробую сгенерировать заголовочные файлы - отлично! Вот:
    Код (Bash):

    kto@debian:/usr/src/linux-headers# ls
    include
    kto@debian:/usr/src/linux-headers# cd include
    kto@debian:/usr/src/linux-headers/include# ls
    asm  asm-generic  drm  linux  misc  mtd  rdma  scsi  sound  video  xen
    kto@debian:/usr/src/linux-headers/include#
    Пробую родное скачанное ядро (исходники 2.6.27):
    Код (C++):
    kto@debian:~/Загрузки/at91sam9260_Linux_board/linux-2.6.27$ make ARCH=arm INSTALL_HDR_PATH=/usr/src/linux-headers-2.6.27 headers_install
    Makefile:1601: *** mixed implicit and normal rules: deprecated syntax
      CHK     include/linux/version.h
      HOSTCC  scripts/unifdef
    scripts/unifdef.c:209:25: error: conflicting types for ‘getline’
    static Linetype         getline(void);
                             ^
    In file included from scripts/unifdef.c:70:0:
    /usr/include/stdio.h:678:20: note: previous declaration of ‘getline’ was here
    extern _IO_ssize_t getline (char **__restrict __lineptr,
                        ^
    scripts/Makefile.host:118: ошибка выполнения рецепта для цели «scripts/unifdef»
    make[1]: *** [scripts/unifdef] Ошибка 1
    Makefile:1054: ошибка выполнения рецепта для цели «__headers»
    make: *** [__headers] Ошибка 2
    kto@debian:~/Загрузки/at91sam9260_Linux_board/linux-2.6.27#
    Как видно полная задница.:mad:
    Что-то где-то криво!
    Наверное надо поискать по ветке... дома скачанное (исходники) 2.6.27.10 ..... жду времени прибытия домой. Ещё 1,5 часа и дороги с час.
     
    Последнее редактирование: 6 авг 2021
  8. Igor68

    Igor68 Гуру

    Бьюсь как рыба...
    Подсказал бы кто!
    Ни кросс компиляцией, ни на плате ничего не выходит.
    и такой Makefile:
    Код (Bash):
    obj-m += lkm_example.o
    all:
            make ARCH=armv5t CROSS_COMPILE=arm-linux-gnueabi- -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
    clean:
            make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
     
    и такой:
    Код (Bash):
    CC      := /usr/bin/gcc
    LD      := /usr/bin/ld
    AS      := /usr/bin/as

    INC     := -I/home/igor/tmp/tmp2/head/include -I/home/igor/tmp/tmp2/linux-at91-wilc_15_4_1/include/
    LIB     := #-L/usr/lib/:/usr/gcc/lib/
    KERNEL_SOURCE   := /usr/src/linux-2.6.27.10
    PWD             := $(shell pwd)

    CFLAGS  := -Wall -DMODULE -D__KERNEL__ -D_LINUX -v
    LDFLAGS := --verbose

    TARGET          := testmod
    obj-m           := $(TARGET)

    testmod.o: main.c
            $(CC) $(INC) $(CFLAGS) main.c
    И пути всякие... как локальные с LINUX-HEADERS и в /usr/src, куда клал и исходники и заголовки - облом:(
    Там то одного файла нет, то другого.
    Да где взять это хренов linux-headers... или как его сделать и версии разные пробовал... для локальной машины всё компилица. Для ARM совсем ни как... ни кросс компилятором, ни на плате.
    Я бы понял если после сборки не та версия при загрузке, но ведь просто сборка не идёт ни в какую!
     
    Последнее редактирование: 7 авг 2021
  9. Un_ka

    Un_ka Гуру

    Киберфорум, где-нибудь на гитхабе, где есть энтузиасты.
     
  10. Igor68

    Igor68 Гуру

    Так где?
    Всё перерыл до чего дотянулся. И на виртуальной машине ставил кросс компилятор и по разному.
    А на форумах встречал только сбору для PC. Поисковик тыкаю носом, что надо для ARM!
    А попадаю только для PC или разговоры чисто ругательные.
     
  11. Igor68

    Igor68 Гуру

    Но ведь чужой пример не могу собрать:
    Код (C++):
    #include <linux/init.h>
    #include <linux/module.h>
    #include <linux/kernel.h>

    MODULE_LICENSE("GPL");
    MODULE_AUTHOR("Robert W. Oliver II");
    MODULE_DESCRIPTION("A simple example Linux module.");
    MODULE_VERSION("0.01");

    static int __init lkm_example_init(void) {
        printk(KERN_INFO "Hello, World!\n");
        return 0;
    }
    static void __exit lkm_example_exit(void) {
        printk(KERN_INFO "Goodbye, World!\n");
    }
    module_init(lkm_example_init);
    module_exit(lkm_example_exit);
     
  12. Igor68

    Igor68 Гуру

    Вот:
    Код (Bash):
    root@DebTool:/home/igor/coding/My_AT91SAM9260_board/testmod# make
    make ARCH=armv5t CROSS_COMPILE=arm-linux-gnueabi- -C /lib/modules/4.9.0-16-686/build M=/home/igor/coding/My_AT91SAM9260_board/testmod modules
    make[1]: вход в каталог «/usr/src/linux-headers-4.9.0-16-686»
      CC [M]  /home/igor/coding/My_AT91SAM9260_board/testmod/lkm_example.o
    arm-linux-gnueabi-gcc-6: error: unrecognized argument in option ‘-march=i686’
    arm-linux-gnueabi-gcc-6: note: valid arguments to ‘-march=’ are: armv2 armv2a armv3 armv3m armv4 armv4t armv5 armv5e armv5t armv5te armv6 armv6-m armv6j armv6k armv6kz armv6s-m armv6t2 armv6z armv6zk armv7 armv7-a armv7-m armv7-r armv7e-m armv7ve armv8-a armv8-a+crc armv8.1-a armv8.1-a+crc iwmmxt iwmmxt2 native
    arm-linux-gnueabi-gcc-6: error: unrecognized command line option ‘-mno-sse’; did you mean ‘-fno-dse’?
    arm-linux-gnueabi-gcc-6: error: unrecognized command line option ‘-mno-mmx’
    arm-linux-gnueabi-gcc-6: error: unrecognized command line option ‘-mno-sse2’; did you mean ‘-fno-dse’?
    arm-linux-gnueabi-gcc-6: error: unrecognized command line option ‘-mno-3dnow’; did you mean ‘-fno-doc’?
    arm-linux-gnueabi-gcc-6: error: unrecognized command line option ‘-mregparm=3’; did you mean ‘-march=armv3’?
    /usr/src/linux-headers-4.9.0-16-common/scripts/Makefile.build:318: ошибка выполнения рецепта для цели «/home/igor/coding/My_AT91SAM9260_board/testmod/lkm_example.o»
    make[4]: *** [/home/igor/coding/My_AT91SAM9260_board/testmod/lkm_example.o] Ошибка 1
    /usr/src/linux-headers-4.9.0-16-common/Makefile:1561: ошибка выполнения рецепта для цели «_module_/home/igor/coding/My_AT91SAM9260_board/testmod»
    make[3]: *** [_module_/home/igor/coding/My_AT91SAM9260_board/testmod] Ошибка 2
    Makefile:152: ошибка выполнения рецепта для цели «sub-make»
    make[2]: *** [sub-make] Ошибка 2
    Makefile:8: ошибка выполнения рецепта для цели «all»
    make[1]: *** [all] Ошибка 2
    make[1]: выход из каталога «/usr/src/linux-headers-4.9.0-16-686»
    Makefile:5: ошибка выполнения рецепта для цели «all»
    make: *** [all] Ошибка 2
     
    А путь /lib/modules/2.6.27/build не могу сделать, потому как он линк на /usr/src/linux-htaders-2.6.27 который не могу сделать, хотя делал, но там кроме include есть и скрипы.
     
  13. Igor68

    Igor68 Гуру

    вот пробую:
    Код (Bash):
    igor@DebTool:~/coding/My_AT91SAM9260_board/testmod$ make
    arm-linux-gnueabi-gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -v -I/usr/src/linux-kernel/include -c lkm_example.c
    Using built-in specs.
    COLLECT_GCC=arm-linux-gnueabi-gcc
    Target: arm-linux-gnueabi
    Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-18' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armel-cross/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armel-cross --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armel-cross --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libgcj --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv4t --with-float=soft --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=arm-linux-gnueabi --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include
    Thread model: posix
    gcc version 6.3.0 20170516 (Debian 6.3.0-18)
    COLLECT_GCC_OPTIONS='-Wall' '-D' 'MODULE' '-D' '__KERNEL__' '-D' 'LINUX' '-v' '-I' '/usr/src/linux-kernel/include' '-c' '-march=armv4t' '-mfloat-abi=soft' '-mtls-dialect=gnu'
    /usr/lib/gcc-cross/arm-linux-gnueabi/6/cc1 -quiet -v -I /usr/src/linux-kernel/include -imultilib . -imultiarch arm-linux-gnueabi -D MODULE -D __KERNEL__ -D LINUX lkm_example.c -quiet -dumpbase lkm_example.c -march=armv4t -mfloat-abi=soft -mtls-dialect=gnu -auxbase lkm_example -Wall -version -o /tmp/ccNmy2rH.s
    GNU C11 (Debian 6.3.0-18) version 6.3.0 20170516 (arm-linux-gnueabi)
        compiled by GNU C version 6.3.0 20170516, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version 0.15
    GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128655
    ignoring nonexistent directory "/usr/local/include/arm-linux-gnueabi"
    ignoring nonexistent directory "/usr/include/arm-linux-gnueabi"
    ignoring nonexistent directory "/usr/src/linux-kernel/include"
    #include "..." search starts here:
    #include <...> search starts here:
    /usr/lib/gcc-cross/arm-linux-gnueabi/6/include
    /usr/lib/gcc-cross/arm-linux-gnueabi/6/include-fixed
    /usr/lib/gcc-cross/arm-linux-gnueabi/6/../../../../arm-linux-gnueabi/include
    /usr/include
    End of search list.
    GNU C11 (Debian 6.3.0-18) version 6.3.0 20170516 (arm-linux-gnueabi)
        compiled by GNU C version 6.3.0 20170516, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version 0.15
    GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128655
    Compiler executable checksum: 98cf8fba2b5ed54b1eab753188c32fd6
    lkm_example.c:3:24: fatal error: linux/init.h: Нет такого файла или каталога
    #include <linux/init.h>
                            ^
    compilation terminated.
    Makefile:16: ошибка выполнения рецепта для цели «lkm_example.o»
    make: *** [lkm_example.o] Ошибка 1
    igor@DebTool:~/coding/My_AT91SAM9260_board/testmod$
     
    Какого дьявола нет файла? Если делал так, как указано:
    Код (Bash):
    cd linux-3.9
    make mrproper
    make ARCH=arm integrator_defconfig
    make ARCH=arm headers_check
    make ARCH=arm INSTALL_HDR_PATH=$SOMEWHERE headers_install
    в результате заголовочные (мои):
    Код (Text):
    root@DebTool:/home/igor/coding/My_AT91SAM9260_board/linux-at91-wilc_15_4_1# ls -al /usr/src/linux-headers
    итого 12
    drwxr-xr-x  3 root root 4096 авг  7 17:18 .
    drwxr-xr-x  7 root root 4096 авг  7 17:18 ..
    drwxr-xr-x 13 root root 4096 авг  7 17:17 include
    root@DebTool:/home/igor/coding/My_AT91SAM9260_board/linux-at91-wilc_15_4_1# ^C
    root@DebTool:/home/igor/coding/My_AT91SAM9260_board/linux-at91-wilc_15_4_1#
     
    А вот казённые (родные от системы), с которыми всё нормально:
    Код (Text):
    root@DebTool:/home/igor/coding/My_AT91SAM9260_board/linux-at91-wilc_15_4_1# ls -al /usr/src/linux-headers-4.9.0-16-common
    итого 80
    drwxr-xr-x  4 root root  4096 авг  1 12:32 .
    drwxr-xr-x  7 root root  4096 авг  7 17:18 ..
    drwxr-xr-x 13 root root  4096 авг  1 12:31 arch
    drwxr-xr-x 28 root root  4096 авг  1 12:32 include
    -rw-r--r--  1 root root 61731 июл 19 23:08 Makefile
    lrwxrwxrwx  1 root root    34 июл 19 23:08 scripts -> ../../lib/linux-kbuild-4.9/scripts
    root@DebTool:/home/igor/coding/My_AT91SAM9260_board/linux-at91-wilc_15_4_1#
    Мои не полные. Интересно, а что ещё надо сделать? Может упустил что?
     
    Последнее редактирование: 7 авг 2021
  14. Un_ka

    Un_ka Гуру

    Код (Bash):
    root@DebTool:/home/igor/coding/My_AT91SAM9260_board/testmod# make
    make ARCH=armv5t CROSS_COMPILE=arm-linux-gnueabi- -C /lib/modules/4.9.0-16-686/build M=/home/igor/coding/My_AT91SAM9260_board/testmod modules
    make[1]: вход в каталог «/usr/src/linux-headers-4.9.0-16-686»
    CC [M] /home/igor/coding/My_AT91SAM9260_board/testmod/lkm_example.o
    arm-linux-gnueabi-gcc-6: error: unrecognized argument in option ‘-march=i686’
    Оно ругается на то, что при уже выбранной архитектуре ARCH=armv5t машинных кодов в makefile в папке build есть опция march=i686, означающая сборку под вообще другую архитектуру.
    Но ведь собирают же люди под какую-нибудь машинку, а ваш "Arm с внешней шиной данных" только версией ARM отличается.
     
  15. Igor68

    Igor68 Гуру

    Вот другой выхлоп на виртуальной машине:
    Код (Text):
    igor@DebTool:~/coding/My_AT91SAM9260_board/testmod$ make
    arm-linux-gnueabi-gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -v -I/usr/src/linux-headers/include -I/usr/src/linux-at91-wilc_15_4_1/include lkm_example.c
    Using built-in specs.
    COLLECT_GCC=arm-linux-gnueabi-gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabi/6/lto-wrapper
    Target: arm-linux-gnueabi
    Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-18' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armel-cross/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armel-cross --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armel-cross --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libgcj --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv4t --with-float=soft --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=arm-linux-gnueabi --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include
    Thread model: posix
    gcc version 6.3.0 20170516 (Debian 6.3.0-18)
    COLLECT_GCC_OPTIONS='-Wall' '-D' 'MODULE' '-D' '__KERNEL__' '-D' 'LINUX' '-v' '-I' '/usr/src/linux-headers/include' '-I' '/usr/src/linux-at91-wilc_15_4_1/include' '-march=armv4t' '-mfloat-abi=soft' '-mtls-dialect=gnu'
    /usr/lib/gcc-cross/arm-linux-gnueabi/6/cc1 -quiet -v -I /usr/src/linux-headers/include -I /usr/src/linux-at91-wilc_15_4_1/include -imultilib . -imultiarch arm-linux-gnueabi -D MODULE -D __KERNEL__ -D LINUX lkm_example.c -quiet -dumpbase lkm_example.c -march=armv4t -mfloat-abi=soft -mtls-dialect=gnu -auxbase lkm_example -Wall -version -o /tmp/ccc1eKWw.s
    GNU C11 (Debian 6.3.0-18) version 6.3.0 20170516 (arm-linux-gnueabi)
        compiled by GNU C version 6.3.0 20170516, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version 0.15
    GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128627
    ignoring nonexistent directory "/usr/local/include/arm-linux-gnueabi"
    ignoring nonexistent directory "/usr/include/arm-linux-gnueabi"
    #include "..." search starts here:
    #include <...> search starts here:
    /usr/src/linux-headers/include
    /usr/src/linux-at91-wilc_15_4_1/include
    /usr/lib/gcc-cross/arm-linux-gnueabi/6/include
    /usr/lib/gcc-cross/arm-linux-gnueabi/6/include-fixed
    /usr/lib/gcc-cross/arm-linux-gnueabi/6/../../../../arm-linux-gnueabi/include
    /usr/include
    End of search list.
    GNU C11 (Debian 6.3.0-18) version 6.3.0 20170516 (arm-linux-gnueabi)
        compiled by GNU C version 6.3.0 20170516, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version 0.15
    GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128627
    Compiler executable checksum: 98cf8fba2b5ed54b1eab753188c32fd6
    lkm_example.c:6:16: error: expected declaration specifiers or ‘...’ before string constant
    MODULE_LICENSE("GPL");
                    ^~~~~
    lkm_example.c:7:15: error: expected declaration specifiers or ‘...’ before string constant
    MODULE_AUTHOR("Robert W. Oliver II");
                   ^~~~~~~~~~~~~~~~~~~~~
    lkm_example.c:8:20: error: expected declaration specifiers or ‘...’ before string constant
    MODULE_DESCRIPTION("A simple example Linux module.");
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    lkm_example.c:9:16: error: expected declaration specifiers or ‘...’ before string constant
    MODULE_VERSION("0.01");
                    ^~~~~~
    lkm_example.c: In function ‘lkm_example_init’:
    lkm_example.c:11:2: warning: implicit declaration of function ‘printk’ [-Wimplicit-function-declaration]
      printk(KERN_INFO "Hello, World!\n");
      ^~~~~~
    lkm_example.c:11:9: error: ‘KERN_INFO’ undeclared (first use in this function)
      printk(KERN_INFO "Hello, World!\n");
             ^~~~~~~~~
    lkm_example.c:11:9: note: each undeclared identifier is reported only once for each function it appears in
    lkm_example.c:11:19: error: expected ‘)’ before string constant
      printk(KERN_INFO "Hello, World!\n");
                       ^~~~~~~~~~~~~~~~~
    lkm_example.c: In function ‘lkm_example_exit’:
    lkm_example.c:15:9: error: ‘KERN_INFO’ undeclared (first use in this function)
      printk(KERN_INFO "Goodbye, World!\n");
             ^~~~~~~~~
    lkm_example.c:15:19: error: expected ‘)’ before string constant
      printk(KERN_INFO "Goodbye, World!\n");
                       ^~~~~~~~~~~~~~~~~~~
    lkm_example.c: At top level:
    lkm_example.c:17:1: warning: data definition has no type or storage class
    module_init(lkm_example_init);
    ^~~~~~~~~~~
    lkm_example.c:17:1: warning: type defaults to ‘int’ in declaration of ‘module_init’ [-Wimplicit-int]
    lkm_example.c:17:1: warning: parameter names (without types) in function declaration
    lkm_example.c:18:1: warning: data definition has no type or storage class
    module_exit(lkm_example_exit);
    ^~~~~~~~~~~
    lkm_example.c:18:1: warning: type defaults to ‘int’ in declaration of ‘module_exit’ [-Wimplicit-int]
    lkm_example.c:18:1: warning: parameter names (without types) in function declaration
    lkm_example.c:14:20: warning: ‘lkm_example_exit’ defined but not used [-Wunused-function]
    static void __exit lkm_example_exit(void) {
                        ^~~~~~~~~~~~~~~~
    lkm_example.c:10:19: warning: ‘lkm_example_init’ defined but not used [-Wunused-function]
    static int __init lkm_example_init(void) {
                       ^~~~~~~~~~~~~~~~
    Makefile:16: ошибка выполнения рецепта для цели «lkm_example.o»
    make: *** [lkm_example.o] Ошибка 1
    igor@DebTool:~/coding/My_AT91SAM9260_board/testmod$
    Правда пришдось в ручную править root@DebTool:/usr/src/linux-at91-wilc_15_4_1/include/linux/kasn-check.h:
    Код (C++):
    /* SPDX-License-Identifier: GPL-2.0 */
    #ifndef _LINUX_KASAN_CHECKS_H
    #define _LINUX_KASAN_CHECKS_H

    #include <linux/types.h>

    /*------*/
    typedef _Bool                   bool;
    #define true                    1
    #define false                   0
    /*------*/
    ......
     
    Вот Makefile:
    Код (Text):

    ######

    obj-m += lkm_example.o

    #all:
    #       make ARCH=armv5t CROSS_COMPILE=arm-linux-gnueabi- -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
    #clean:
    #       make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

    CC              := arm-linux-gnueabi-gcc
    MODCFLAGS       := -Wall -DMODULE -D__KERNEL__ -DLINUX -v
    INC             := -I/usr/src/linux-headers/include -I/usr/src/linux-at91-wilc_15_4_1/include
    #LD             := #-L/usr/local/arm-linux/lib

    lkm_example.o: lkm_example.c #/usr/src/linux-2.6.27/include/version.h
            $(CC) $(MODCFLAGS) $(INC) lkm_example.c
    #       echo insmod hello.o to turn it on
    #       echo rmmod hello to turn if off
    #       echo
    #       echo X and kernel programming do not mix.
    #       echo Do the insmod and rmmod from outside X.
     
  16. Un_ka

    Un_ka Гуру

    Вы его сами написали? В предыдущих попытках тоже?
     
  17. Igor68

    Igor68 Гуру

    Тут много примеров в одном для x86, где всё получается в другом для ARM, где не выходит ни шиша. В их количестве я сам заблудился.
     
  18. Igor68

    Igor68 Гуру

    Для уточнения:
    вот общий тест на Си:
    Код (C++):
    #include <linux/init.h>
    #include <linux/module.h>
    /*MODULE_LICENSE("Dual BSD/GPL");*/
    static int hello_init(void)
    {
        printk(KERN_ALERT "Hello, world\n");
        return 0;
    }
    static void hello_exit(void)
    {
        printk(KERN_ALERT "Goodbye, cruel world\n");
    }
    module_init(hello_init);
    module_exit(hello_exit);
    Вот Makefile для компиляции на ПК (общепринятый через /usr/modules/...):
    Код (Text):
    obj-m +=tm.o

    KDIR    := /lib/modules/$(shell uname -r)/build

    all:
            $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
    clean:
            rm -rf *.o *.ko *.mod.* *.symvers *.orde
    Вот выхлоп компиляции:
    Код (Text):
    root@debian:/home/kto/coding/GCC/testmod# make
    make -C /lib/modules/3.16.0-4-amd64/build SUBDIRS=/home/kto/coding/GCC/testmod modules
    make[1]: вход в каталог «/usr/src/linux-headers-3.16.0-4-amd64»
    make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-amd64'
      CC [M]  /home/kto/coding/GCC/testmod/tm.o
      Building modules, stage 2.
      MODPOST 1 modules
      CC      /home/kto/coding/GCC/testmod/tm.mod.o
      LD [M]  /home/kto/coding/GCC/testmod/tm.ko
    make[1]: выход из каталога «/usr/src/linux-headers-3.16.0-4-amd64»
    root@debian:/home/kto/coding/GCC/testmod
    Вот dmesg при загрузке модуля (insmod tm.ko) последующей его выгрузке (rmmod ko):
    Код (Text):
    [   41.306464] ip_tables: (C) 2000-2006 Netfilter Core Team
    [  312.455270] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [  312.455273] Bluetooth: BNEP filters: protocol multicast
    [  312.455280] Bluetooth: BNEP socket layer initialized
    [14044.632032] tm: module license 'unspecified' taints kernel.
    [14044.632040] Disabling lock debugging due to kernel taint
    [14165.768562] Hello, world
    [14399.618941] Goodbye, cruel world
    Вот Makefile с опорой на /usr/src/linux-headers-.....:
    Код (C++):
    obj-m +=tm.o

    KDIR    := /usr/src/linux-headers-$(shell uname -r)

    all:
            $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
    clean:
            rm -rf *.o *.ko *.mod.* *.symvers *.orde
     
    Результаты идентичны, что не удивительно потому как /lib/modules/3.14.0-4-amd вот:
    Код (Text):
    root@debian:/lib/modules/3.16.0-4-amd64# ls -al
    итого 3768
    drwxr-xr-x  4 root root   4096 дек 27  2017 .
    drwxr-xr-x 10 root root   4096 авг  9 09:44 ..
    lrwxrwxrwx  1 root root     37 янв  3  2017 build -> /usr/src/linux-headers-3.16.0-4-amd64
    drwxr-xr-x 10 root root   4096 фев 17  2017 kernel
    -rw-r--r--  1 root root 914324 дек 27  2017 modules.alias
    -rw-r--r--  1 root root 885995 дек 27  2017 modules.alias.bin
    -rw-r--r--  1 root root   3050 дек 15  2017 modules.builtin
    -rw-r--r--  1 root root   4256 дек 27  2017 modules.builtin.bin
    -rw-r--r--  1 root root 372780 дек 27  2017 modules.dep
    -rw-r--r--  1 root root 509340 дек 27  2017 modules.dep.bin
    -rw-r--r--  1 root root    402 дек 27  2017 modules.devname
    -rw-r--r--  1 root root 118293 дек 15  2017 modules.order
    -rw-r--r--  1 root root    210 дек 27  2017 modules.softdep
    -rw-r--r--  1 root root 446745 дек 27  2017 modules.symbols
    -rw-r--r--  1 root root 553537 дек 27  2017 modules.symbols.bin
    lrwxrwxrwx  1 root root     38 янв  3  2017 source -> /usr/src/linux-headers-3.16.0-4-common
    drwxr-xr-x  3 root root   4096 июн  8  2017 updates
    root@debian:/lib/modules/3.16.0-4-amd64#
     
    Имеется линк build, как раз на /usr/src/linux-headers-3.16.0-4


    Но вот есть одно но - никак не могу собрать /usr/src/linux-headers для ARM
     
    Последнее редактирование: 9 авг 2021
  19. Un_ka

    Un_ka Гуру

    Надо в makefile архитектуру в ключах флагах указать.
    Типа:
    Код (Bash):
    ARCH=armv5t
    Если это архитектура вашего ARMa.
    Или:
    Код (Bash):
    -march=arm5t (может быть по-другому)
    Никогда этим не занимался, так предположил.
     
  20. Igor68

    Igor68 Гуру

    Выхлоп:
    Код (Text):
    root@debian:/home/kto/coding/GCC/testmod# make
    arm-none-eabi-gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -v -I/home/tmp/123/include  tm.c
    Using built-in specs.
    COLLECT_GCC=arm-none-eabi-gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-none-eabi/4.8/lto-wrapper
    Target: arm-none-eabi
    Configured with: ../gcc-4.8.4/configure --build=x86_64-linux-gnu --prefix=/usr --includedir='/usr/lib/include' --mandir='/usr/lib/share/man' --infodir='/usr/lib/share/info' --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libexecdir='/usr/lib/lib/gcc-arm-none-eabi' --disable-maintainer-mode --disable-dependency-tracking --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/doc/gcc-arm-none-eabi/info --mandir=/usr/share/man --htmldir=/usr/share/doc/gcc-arm-none-eabi/html --pdfdir=/usr/share/doc/gcc-arm-none-eabi/pdf --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --with-system-zlib --enable-multilib --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-libstdc++-v3 --disable-nls --disable-shared --disable-threads --disable-tls --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-none-eabi --with-gnu-as --with-gnu-ld --with-headers=no --without-newlib --with-pkgversion=4.8.4-1+11-1 --without-included-gettext --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r INHIBIT_LIBC_CFLAGS=-DUSE_TM_CLONE_REGISTRY=0 AR_FOR_TARGET=arm-none-eabi-ar AS_FOR_TARGET=arm-none-eabi-as LD_FOR_TARGET=arm-none-eabi-ld NM_FOR_TARGET=arm-none-eabi-nm OBJDUMP_FOR_TARGET=arm-none-eabi-objdump RANLIB_FOR_TARGET=arm-none-eabi-ranlib READELF_FOR_TARGET=arm-none-eabi-readelf STRIP_FOR_TARGET=arm-none-eabi-strip
    Thread model: single
    gcc version 4.8.4 20141219 (release) (4.8.4-1+11-1)
    COLLECT_GCC_OPTIONS='-Wall' '-D' 'MODULE' '-D' '__KERNEL__' '-D' 'LINUX' '-v' '-I' '/home/tmp/123/include'
    /usr/lib/gcc/arm-none-eabi/4.8/cc1 -quiet -v -I /home/tmp/123/include -D__USES_INITFINI__ -D MODULE -D __KERNEL__ -D LINUX tm.c -quiet -dumpbase tm.c -auxbase tm -Wall -version -o /tmp/ccjGM9md.s
    GNU C (4.8.4-1+11-1) version 4.8.4 20141219 (release) (arm-none-eabi)
            compiled by GNU C version 4.9.2, GMP version 6.0.0, MPFR version 3.1.2-p3, MPC version 1.0.2
    GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
    ignoring nonexistent directory "/usr/lib/gcc/arm-none-eabi/4.8/../../../arm-none-eabi/sys-include"
    #include "..." search starts here:
    #include <...> search starts here:
    /home/tmp/123/include
    /usr/lib/gcc/arm-none-eabi/4.8/include
    /usr/lib/gcc/arm-none-eabi/4.8/include-fixed
    /usr/lib/gcc/arm-none-eabi/4.8/../../../arm-none-eabi/include
    End of search list.
    GNU C (4.8.4-1+11-1) version 4.8.4 20141219 (release) (arm-none-eabi)
            compiled by GNU C version 4.9.2, GMP version 6.0.0, MPFR version 3.1.2-p3, MPC version 1.0.2
    GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
    Compiler executable checksum: ec544621a751092964950ca617b6fe72
    tm.c:3:24: fatal error: linux/init.h: No such file or directory
    #include <linux/init.h>
                            ^
    compilation terminated.
    Makefile:20: ошибка выполнения рецепта для цели «tm.o»
    make: *** [tm.o] Ошибка 1
    root@debian:/home/kto/coding/GCC/testmod#
    Makefile:
    Код (Text):
    CC              := arm-none-eabi-gcc
    MODCFLAGS       := -Wall -DMODULE -D__KERNEL__ -DLINUX -v
    INC             := -I/home/tmp/123/include


    tm.o: tm.c #/home/tmp/2.6.27m
            $(CC) $(MODCFLAGS) $(INC) $(KD) tm.c