Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Embedded Linux
Сборка embeded Linux с buildroot (адаптивно с собственными пакетами)
yurySoft
Добавлено 08.07.2019 12:09 Редактировалось 08.07.2019 13:36 Сообщение: 11
yurySoft
4

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

Но ведь можно эти исполняемые файлы включить в сборку в userspace, а потом на встраиваемой платформе запустить, пока вручную, а за тем с помощью shell скрипта?


вот обновленный патч для вашего драйвера - попробуйте

https://yadi.sk/d/d0H5Ucwb0a4_cQ

инструкция как пропатчить и собрать внвлогична как и для предыдущего патча, утилиты от драйвера там же куда их копирует оригинальный установщик от драйвера

/usr/lib/npreal2/driver

смотрите как что делать

/usr/lib/npreal2/README.TXT


Спасибо, что предоставили патч, я до этого эксперимент проводил со сборкой этих файлов на хосте, а за тем подбрасывал на целевую машину.

Я вручную запускал драйвер на встраиваемой системе modprob'ом, и проверил lsmod, встраиваемая система драйвер завела.

Потом я перешел в директорию с исполняемыми файлами и
выполнил ./maddsrv 192.168.0.218 4
И получил:

Adding Server...

ttyr00, cur00
ttyr01, cur01
ttyr02, cur02
ttyr03, cur03
Added RealCom server: ip : 192.168.0.218

sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
rm -f /dev/ttyr00
rm -f /dev/ttyr01
rm -f /dev/ttyr02
rm -f /dev/ttyr03
mknod -m 666 ttyr00 c 33 0
rm -f /dev/cur00
mknod -m 666 cur00 c 38 0
mknod -m 666 ttyr01 c 33 1
rm -f /dev/cur01
mknod -m 666 cur01 c 38 1
mknod -m 666 ttyr02 c 33 2
rm -f /dev/cur02
mknod -m 666 cur02 c 38 2
mknod -m 666 ttyr03 c 33 3
rm -f /dev/cur03
mknod -m 666 cur03 c 38 3
*** Error in `/usr/lib/npreal2/driver/mxloadsvr': free(): invalid next size (normal): 0x00c16088 ***
Aborted
chmod: /etc/rc.d/rc.local: No such file or directory
/*****************./
Но несмотря на это, он виртуальные порты добавил
Я попытался открыть добавленный порт

stty -F /dev/ttyr01 115200 -parity cs8 -cstopb
stty: can't open '/dev/ttyr01': No such device or address

после отработки ошибки, я удалил его (./mxdelsvr (1 - это тот адресс, что я добавил ранее)) и получил
Select: 1
rm -f /dev/ttyr04
rm -f /dev/cur04
rm -f /dev/ttyr05
rm -f /dev/cur05
rm -f /dev/ttyr06
rm -f /dev/cur06
rm -f /dev/ttyr07
rm -f /dev/cur07
grep: /etc/rc.d/rc.local: No such file or directory
Deleted server: 192.168.0.218

sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
sh: invalid number 'root'
*** Error in `/usr/lib/npreal2/driver/mxloadsvr': free(): invalid next size (normal): 0x01510088 ***
Aborted
chmod: /etc/rc.d/rc.local: No such file or directory

После этого я выключил драйвер, и повторил процедуру, получилось то же самое, вопрос, корректно ли драйвер поставлен в текущую сборку, ощущение что его я цепляю не оттуда. На хост машине он у меня стоял на
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
cp -p npreal2.ko /lib/modules/$(shell uname -r)/kernel/drivers/char/
,
а на встраиваемой машине в /lib/modules/external
В лог файле, никакой ошибки по этому вопросу я не нашел (в /usr/lib/npreal2/driver/ npreal.log)

Ощущение что с путями что-то не так.

+ добавил export MALLOC_CHECK_=1
и получил иную ошибку :
*** Error in `/usr/lib/npreal2/driver/mxloadsvr': malloc: top chunk is corrupt: 0x01b66080 ***

т.ж. увидел что у меня локаль на машине кирилическая, может ли быть в этом проблемма.
Посмотрел shell, увидел пути Вы скопривали оттуда, но может еще c POLLING проблемма, который в конце компилятора добавляется? Я пытаюсь его прордетектировать, пока не получается.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.07.2019 15:28 Сообщение: 12
sasamy
4.70

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

На хост машине он у меня стоял на
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
cp -p npreal2.ko /lib/modules/$(shell uname -r)/kernel/drivers/char/
,
а на встраиваемой машине в /lib/modules/external


не имеет значения, точный путь нужен если использовать insmod, для modprobe путь не важен.

Попробуйте прикинуться дебианом

touch /etc/debian_version

и модуль надо загружать с параметрами (они в конфиге прописаны)

modprobe npreal2 ttymajor=33 calloutmajor=38 verbose=0
Спуститься к концу Подняться к началу
Персональная информация
yurySoft
Добавлено 08.07.2019 16:18 Редактировалось 08.07.2019 16:34 Сообщение: 13
yurySoft
4

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

На хост машине он у меня стоял на
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
cp -p npreal2.ko /lib/modules/$(shell uname -r)/kernel/drivers/char/
,
а на встраиваемой машине в /lib/modules/external


не имеет значения, точный путь нужен если использовать insmod, для modprobe путь не важен.

Попробуйте прикинуться дебианом

touch /etc/debian_version

и модуль надо загружать с параметрами (они в конфиге прописаны)

modprobe npreal2 ttymajor=33 calloutmajor=38 verbose=0


До ьконца не понимаю, драйвер вообще в другом месте, /lib/../external , в нем я загружаю modprob'ом , конфиг то же подгружался, вот тот npreal2 о котором вы говорите, в каком директории должен находиться?

К тому же у меня все по умолчанию от рута.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.07.2019 16:32 Сообщение: 14
sasamy
4.70

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

До ьконца не понимаю, драйвер вообще в другом месте, /lib/../external , в нем я загружаю modprob'ом , конфиг то же подгружался, вот тот npreal2 о котором вы говорите, в каком директории должен находиться?


Модуль ядра находится тут

/lib/modules/4.1.15/extra/npreal2.ko

то что он не там где установщик мохи его копирует - это не имеет значения для modprobe и не надо заходить в этот каталог чтобы его подгрузить, главное чтобы модуль был в подкаталогах /lib/modules/4.1.15, при установке выполняется depmod - он найдет этот модуль.
Спуститься к концу Подняться к началу
Персональная информация
yurySoft
Добавлено 08.07.2019 16:37 Редактировалось 08.07.2019 16:39 Сообщение: 15
yurySoft
4

Пункты: 814
Регистрация: 01.07.2019
а на встраиваемой машине в /lib/modules/external
[/quote]

не имеет значения, точный путь нужен если использовать insmod, для modprobe путь не важен.

Попробуйте прикинуться дебианом

touch /etc/debian_version

и модуль надо загружать с параметрами (они в конфиге прописаны)

modprobe npreal2 ttymajor=33 calloutmajor=38 verbose=0[/quote]

До ьконца не понимаю, драйвер вообще в другом месте, /lib/../external , его я загружаю вручную modprob'ом , конфиг то же подгружался(когда я использовал ./addsvr).
Bот тот npreal2 о котором вы говорите, в каком директории должен находиться? В либе, или в external?

К тому же у меня все по умолчанию от рута.[/quote]
т.ж. хэдеры для линковки драйвера подхватываются из хоста или целевые?

методом touch я просто файл создам, как я могу дебианом прикинуться?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.07.2019 16:45 Редактировалось 08.07.2019 16:45 Сообщение: 16
sasamy
4.70

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

т.ж. хэдеры для линковки драйвера подхватываются из хоста или целевые?


причем ту хост ? с его хидерами модуль вообще не загрузится

Цитата

методом touch я просто файл создам, как я могу дебианом прикинуться?


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

Цитата

fos = fopen ("/etc/debian_version", "r");
if (fos != NULL)
{
fclose(fos);
os = "debian";
}
Спуститься к концу Подняться к началу
Персональная информация
yurySoft
Добавлено 08.07.2019 16:50 Редактировалось 08.07.2019 16:58 Сообщение: 17
yurySoft
4

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

т.ж. хэдеры для линковки драйвера подхватываются из хоста или целевые?


причем ту хост ? с его хидерами модуль вообще не загрузится

Цитата

методом touch я просто файл создам, как я могу дебианом прикинуться?


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

Цитата

fos = fopen ("/etc/debian_version", "r");
if (fos != NULL)
{
fclose(fos);
os = "debian";
}


Я в исходниках на malloc и free смотрел, то на что ругань была.
Да и дополнительных стьрок я в шеле не видел, для подгрузки драйвера с параметрами. Да и наверняка у этого файла должно быть наполнение.

И эти настройки я получал когда запускал ./addsvr , он у меня данные из конфига подтягивал.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.07.2019 17:00 Редактировалось 08.07.2019 17:01 Сообщение: 18
sasamy
4.70

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

Да и дополнительных стьрок я в шеле не видел, для подгрузки драйвера с параметрами.


Цитата

if (makenode == LOADMODULE)
{
/* rm and mknod for all device node */
memset(tmpstr, '\0', TMP_STR_LEN);
sprintf(tmpstr, "ps -ef | grep npreal2d |");
sprintf(tmpstr, "%s awk '$0 !~ /grep/ {system(\"kill -9 \"$2)}'", tmpstr);
system(tmpstr);
DBG_PRINT("kill -9 npreal2d\n");

printf("\nLoading TTY Driver...\n");
system("rmmod npreal2 > /dev/null 2>&1");

sprintf(tmpstr, "cd %s", DRIVERPATH);
system(tmpstr);
sprintf(tmpstr, "modprobe npreal2 ttymajor=%d calloutmajor=%d verbose=0", ttymajor, calloutmajor);
system(tmpstr);

}


Цитата

Да и наверняка у этого файла должно быть наполнение.


смотрите исходники - не интересует эти утилиты никакое наполнение, если файл существует значит считает что дебиан.
Спуститься к концу Подняться к началу
Персональная информация
yurySoft
Добавлено 08.07.2019 17:02 Сообщение: 19
yurySoft
4

Пункты: 814
Регистрация: 01.07.2019
Добавил touch'ем debian_version

Цитата

fos = fopen ("/etc/debian_version", "r");
if (fos != NULL)
{
fclose(fos);
os = "debian";
}
[/quote]

И еще вручную запустил modprob с парметрами.

Хрен редьки не слаще.

*** Error in `/usr/lib/npreal2/driver/mxloadsvr': free(): invalid next size (normal): 0x00ade088 ***
Спуститься к концу Подняться к началу
Персональная информация
yurySoft
Добавлено 08.07.2019 17:09 Сообщение: 20
yurySoft
4

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

Да и дополнительных стьрок я в шеле не видел, для подгрузки драйвера с параметрами.


Цитата

if (makenode == LOADMODULE)
{
/* rm and mknod for all device node */
memset(tmpstr, '\0', TMP_STR_LEN);
sprintf(tmpstr, "ps -ef | grep npreal2d |");
sprintf(tmpstr, "%s awk '$0 !~ /grep/ {system(\"kill -9 \"$2)}'", tmpstr);
system(tmpstr);
DBG_PRINT("kill -9 npreal2d\n");

printf("\nLoading TTY Driver...\n");
system("rmmod npreal2 > /dev/null 2>&1");

sprintf(tmpstr, "cd %s", DRIVERPATH);
system(tmpstr);
sprintf(tmpstr, "modprobe npreal2 ttymajor=%d calloutmajor=%d verbose=0", ttymajor, calloutmajor);
system(tmpstr);

}


Цитата

Да и наверняка у этого файла должно быть наполнение.


смотрите исходники - не интересует эти утилиты никакое наполнение, если файл существует значит считает что дебиан.


Я в mxinst ничего такого не нашел. Может вы другой файл смотрите.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux