Ник:
Пароль:

Контакты

Cтатус Skype: starterkit.ru
тел.: (+7 3412) 478-448
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
E-mail: info@starterkit.ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:6
Поисковых ботовПоисковых ботов:2
ГостейГостей:0

ОбновитьПодробнееВсегоВсего:8
Форум » starterkit.ru » Embedded Linux
Realtek 8152 + imx6s-oem + Boundary Debian 9
SmartRogue
Добавлено 31.01.2019 17:04
0
Сообщение: 1
SmartRogue
0

Пункты: 1449
Регистрация: 27.11.2017
Здравствуйте.
Я в очередной раз туплю.

В наличии:
Внешнее композитное usb устройство (usb-хаб + сетевая карта на базе r8152) TP-LINK UE330 (драйвер).
SK-iMX6S-OEM-Ind
SK-iMX6S/53/50-MB
buildroot-2017.08 на базе ядра 4.1.15-2.1.0 для i.mx6 от sasamy (тык).
Дебиан 9.3, модифицированный sasamy (тык).

Что сделал:
1. Cкачал драйвер.
2. Выполнил make - получил:
Код
debian@imx6board:~/r8152-2.11.0$ make
make -C /lib/modules/4.1.15/build SUBDIRS=/home/debian/r8152-2.11.0 modules
make[1]: *** /lib/modules/4.1.15/build: No such file or directory. Stop.
Makefile:19: recipe for target 'modules' failed
make: *** [modules] Error 2

3. В Makefile нашёл строчку
Код
KERNELDIR ?= /lib/modules/$(shell uname -r)/build

и заменил на
Код
KERNELDIR ?= /lib/modules/4.1.15-25-boundary-12s/build

4. Повторно запустил make
Код
debian@imx6board:~/r8152-2.11.0$ make
make -C /lib/modules/4.1.15-25-boundary-12s/build SUBDIRS=/home/debian/r8152-2.11.0 modules
make[1]: Entering directory '/usr/src/linux-headers-4.1.15-25-boundary-12s'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
CC [M] /home/debian/r8152-2.11.0/r8152.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/debian/r8152-2.11.0/r8152.mod.o
LD [M] /home/debian/r8152-2.11.0/r8152.ko
make[1]: Leaving directory '/usr/src/linux-headers-4.1.15-25-boundary-12s'

5. Запустил make install
Код
debian@imx6board:~/r8152-2.11.0$ sudo make install
[sudo] password for debian:
make -C /lib/modules/4.1.15-25-boundary-12s/build SUBDIRS=/home/debian/r8152-2.11.0 INSTALL_MOD_DIR=kernel/drivers/net/usb modules_install
make[1]: Entering directory '/usr/src/linux-headers-4.1.15-25-boundary-12s'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
INSTALL /home/debian/r8152-2.11.0/r8152.ko
DEPMOD 4.1.15-25-boundary-12s
make[1]: Leaving directory '/usr/src/linux-headers-4.1.15-25-boundary-12s'
modprobe r8152
modprobe: FATAL: Module r8152 not found in directory /lib/modules/4.1.15
Makefile:36: recipe for target 'install' failed
make: *** [install] Error 1


Вижу, что modprobe тоже ищет не там, где надо (в папку /lib/modules/4.1.15-25-boundary-12s/kernel/drivers/net/usb всё успешно установилось).

Вопросы:
0. Мама, в кого я таким дурачком уродился?
1. Что дальше-то? Мне нужна эта приблуда (UE330) как вторая сетевая карта. В стандартном пакете firmware-realtek поддержка r8152 не упоминается...
2. Почему вообще две версии ядра и как с этим жить?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 01.02.2019 02:29 Сообщение: 2
sasamy
4.77

Пункты: 64519
Регистрация: 14.08.2009
Цитата

make[1]: *** /lib/modules/4.1.15/build: No such file or directory. Stop.
....
В Makefile нашёл строчку
Код
KERNELDIR ?= /lib/modules/$(shell uname -r)/build

и заменил на
Код
KERNELDIR ?= /lib/modules/4.1.15-25-boundary-12s/build


не надо было тут исправлять а просто создать симлинк на эту директорию

sudo ln -s /lib/modules/4.1.15-25-boundary-12s/build /lib/modules/4.1.15/build
Спуститься к концу Подняться к началу
Персональная информация
SmartRogue
Добавлено 01.02.2019 16:43 Сообщение: 3
SmartRogue
0

Пункты: 1449
Регистрация: 27.11.2017
Цитата

не надо было тут исправлять а просто создать симлинк на эту директорию

sudo ln -s /lib/modules/4.1.15-25-boundary-12s/build /lib/modules/4.1.15/build


Не помогло

Код
debian@imx6board:~/irz/r8152-2.11.0$ make
make -C /lib/modules/4.1.15/build SUBDIRS=/home/debian/irz/r8152-2.11.0 modules
make[1]: Entering directory '/usr/src/linux-headers-4.1.15-25-boundary-12s'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
CC [M] /home/debian/irz/r8152-2.11.0/r8152.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/debian/irz/r8152-2.11.0/r8152.mod.o
LD [M] /home/debian/irz/r8152-2.11.0/r8152.ko
make[1]: Leaving directory '/usr/src/linux-headers-4.1.15-25-boundary-12s'
debian@imx6board:~/irz/r8152-2.11.0$ sudo make install_rules
install --group=root --owner=root --mode=0644 50-usb-realtek-net.rules /etc/udev/rules.d/
debian@imx6board:~/irz/r8152-2.11.0$ sudo make install
make -C /lib/modules/4.1.15/build SUBDIRS=/home/debian/irz/r8152-2.11.0 INSTALL_MOD_DIR=kernel/drivers/net/usb modules_install
make[1]: Entering directory '/usr/src/linux-headers-4.1.15-25-boundary-12s'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
INSTALL /home/debian/irz/r8152-2.11.0/r8152.ko
DEPMOD 4.1.15-25-boundary-12s
make[1]: Leaving directory '/usr/src/linux-headers-4.1.15-25-boundary-12s'
modprobe r8152
modprobe: FATAL: Module r8152 not found in directory /lib/modules/4.1.15
Makefile:36: recipe for target 'install' failed
make: *** [install] Error 1


На всякий случай Makefile
Код
ifneq ($(KERNELRELEASE),)
obj-m := r8152.o
# EXTRA_CFLAGS += -DRTL8152_S5_WOL
# EXTRA_CFLAGS += -DRTL8152_DEBUG
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD :=$(shell pwd)
TARGET_PATH := kernel/drivers/net/usb
INBOXDRIVER := $(shell find $(subst build,$(TARGET_PATH),$(KERNELDIR)) -name r8152.ko.* -type f)
RULEFILE = 50-usb-realtek-net.rules
RULEDIR = /etc/udev/rules.d/

.PHONY: modules
modules:
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) modules

.PHONY: all
all: clean modules install

.PHONY: clean
clean:
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) clean

.PHONY: install
install:
ifneq ($(shell lsmod | grep r8152),)
rmmod r8152
endif
ifneq ($(INBOXDRIVER),)
rm -f $(INBOXDRIVER)
endif
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) INSTALL_MOD_DIR=$(TARGET_PATH) modules_install
modprobe r8152

.PHONY: install_rules
install_rules:
install --group=root --owner=root --mode=0644 $(RULEFILE) $(RULEDIR)

endif
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 01.02.2019 17:47 Редактировалось 01.02.2019 17:49 Сообщение: 4
sasamy
4.77

Пункты: 64519
Регистрация: 14.08.2009
Цитата

Не помогло


вручную скопируйте на место и выполните

sudo depmod -a
Спуститься к концу Подняться к началу
Персональная информация
SmartRogue
Добавлено 15.02.2019 11:10 Сообщение: 5
SmartRogue
0

Пункты: 1449
Регистрация: 27.11.2017
Цитата

вручную скопируйте на место и выполните

sudo depmod -a


Ох, долго же я болел... Вернулся к этой задаче, вновь фейл.
Эта команда выполняется, но при попытке выполнить
Код
sudo modprobe r8152

опять несварение
Код
modprobe: ERROR: could not insert 'r8152': Exec format error


Это уже драйвер кривой, или (как всегда) я где-то косячу?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 15.02.2019 13:26 Сообщение: 6
sasamy
4.77

Пункты: 64519
Регистрация: 14.08.2009
Цитата

Это уже драйвер кривой, или (как всегда) я где-то косячу?


просто я не расчитывал что кому-то понадобится собирать модули ядра на самой плате. Cкопируйте два файла

.config

Module.symvers

из директории с исходниками cобранного ядра buildroot

buildroot-xxx/output/build/linux-custom

в директорию дебиана

/usr/src/linux-headers-4.1.15-25-boundary-12s

и пересоберите модуль
Спуститься к концу Подняться к началу
Персональная информация
SmartRogue
Добавлено 15.02.2019 13:45 Сообщение: 7
SmartRogue
0

Пункты: 1449
Регистрация: 27.11.2017
Цитата
и пересоберите модуль


Увы и ах:
Код
modprobe: ERROR: could not insert 'r8152': Unknown symbol in module, or unknown parameter (see dmesg)

[10503.445060] r8152: Unknown symbol __stack_chk_guard (err 0)
[10503.449449] r8152: Unknown symbol __stack_chk_fail (err 0)
Спуститься к концу Подняться к началу
Персональная информация
SmartRogue
Добавлено 13.03.2019 08:49 Сообщение: 8
SmartRogue
0

Пункты: 1449
Регистрация: 27.11.2017
Цитата

Увы и ах:


Кто-нибудь может подопнуть в сторону решения? Почти не знаком с линуксами, все эти заморочки в диковинку...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 13.03.2019 11:09 Редактировалось 13.03.2019 11:12 Сообщение: 9
Jury093
4.58

Пункты: 54126
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Кто-нибудь может подопнуть в сторону решения? Почти не знаком с линуксами, все эти заморочки в диковинку...

учиться никогда не поздно, все когда-то начинали..

не пойму, зачем такой сложный путь?
для пробы взял исходники 4.1.38 от фрискейла, там есть родной драйвер drivers/net/usb/r8152.c
собрал ядро с этим драйвером - собралось
взял архив по вашей ссылке, внутри r8152.c и хидер - закинул вместо ядерного, прочитал с записью r8152.c (чтобы прошла перекомпиляция), ядро успешно пересобралось - пробуйте..

update код драйвера от производителя на редкость помоистый, там тащится поддержка аж 2.6 и еще какой-то дряни натолкано. зато версия 2.х от 2018, а во фрискейловском 1.х

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 13.03.2019 11:13 Редактировалось 13.03.2019 11:15 Сообщение: 10
sasamy
4.77

Пункты: 64519
Регистрация: 14.08.2009
Код
modprobe: ERROR: could not insert 'r8152': Unknown symbol in module, or unknown parameter (see dmesg)

[10503.445060] r8152: Unknown symbol __stack_chk_guard (err 0)
[10503.449449] r8152: Unknown symbol __stack_chk_fail (err 0)


надо в ядре включить stack protector

make linux-menuconfig

General setup --->
Stack Protector buffer overflow detection (Strong) --->

после каждой сборки ядра надо копировать Module.symvers
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux