В данной статье приведен пример сборки тестового приложения для роутеров серии LTx.

Рекомендуем осуществлять сборку на операционной системе Ubuntu 16.04 LTS 64bit, но для остальных ОС на базе Linux принципы очень похожи (возможно возникнут некоторые нюансы).


SDK доступно по ссылке: https://teleofis.ru/ftp/_TELEOFIS/!Software/SDK/


Все операции будут производиться исключительно через командную консоль (Терминал в ОС Linux)!!!



1. Подготовка к сборке приложения


1.1. Установка SDK


Установка Python: 

sudo apt install python


Создаем каталог:

 mkdir sdktest


Переносим SDK в папку sdktest: 

cp oecore-x86_64-armv7a-vfp-neon-toolchain-nodistro.0.sh sdktest/


Переходим в папку sdktest: 

cd sdktest 


Необходимо добавить возможность к исполнению для SDK по ссылке:

 chmod +x oecore-x86_64-armv7a-vfp-neon-toolchain-nodistro.0.sh


Далее необходимо запустить скрипт из SDK для его установки, указав текущую директорию (".") и подтвердить ("Y"): 

./oecore-x86_64-armv7a-vfp-neon-toolchain-nodistro.0.sh (обратите внимание на точку вначале команды!)


Enter target directory for SDK (default: /usr/local/oecore-x86_64): .
You are about to install the SDK to "/home/ubuntu/sdk". Proceed[Y/n]?


Ждём извлечения: 

Extracting SDK...done
Setting it up...done
SDK has been successfully set up and is ready to be used.


Проверим наличие нужных файлов командой: 

ls -la

-rw-r--r-- 1 gureev gureev  2665 Aug 31 12:56 environment-setup-armv7a-vfp-neon-oe-linux-gnueabi
-rw-r--r-- 1 gureev gureev 44157 Aug 31 12:56 site-config-armv7a-vfp-neon-oe-linux-gnueabi
drwxr-xr-x 4 gureev gureev  4096 Mar  5  2019 sysroots
-rw-r--r-- 1 gureev gureev   127 Aug 31 12:56 version-armv7a-vfp-neon-oe-linux-gnueabi


1.2 Подготовка переменных окружения 

Необходимо установить переменные окружения (эту команду нужно выполнять каждый раз при открытии нового терминала


source environment-setup-armv7a-vfp-neon-oe-linux-gnueabi


1.3 Подготовка самой программы-пример HelloWorld


Создаём папку проекта и переходим в нее:

mkdir helloworld
cd helloworld


Создаём и заполняем файлы hello.c, Makefile.am, configure.in для нашего тестового приложения:

echo -e "#include <stdio.h>\n\nmain()\n{\n\tprintf(\"Hello World\");\n}" > hello.c

echo -e "bin_PROGRAMS = hello\nhello_SOURCES = hello.c" > Makefile.am

echo -e "AC_INIT(hello.c)\nAM_INIT_AUTOMAKE(hello,0.1)\nAC_PROG_CC\nAC_PROG_INSTALL\nAC_OUTPUT(Makefile)" > configure.in


Создаём файлы NEWS, README, AUTHORS, ChangeLog (они обязательны для сборки):


touch NEWS README AUTHORS ChangeLog


2. Пример сборки приложения


2.1 Генерация файла configure 


Сгенерируем файл configure:

autoreconf -i 


2.2 Конфигурация проекта под архитектуру:


Сконфигурировать проект с указанием целевой архитектуры:  

./configure --host=armv7a-vfp-neon-oe-linux-gnueabi (обратите внимание на точку вначале команды!) 


2.3. Установка программы make (если не устанавливалась ранее)


Перед следующим шагом необходимо установить программу make:

sudo apt install make -y


2.4 Начинаем сборку пакета:


Собираем пакет командой: 

make 


P.S. При возникновении ошибки:


Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

Current thread 0x00007feb9a49a700 (most recent call first):
Aborted (core dumped)


Необходимо подать команду: 

unset PYTHONHOME


Далее повторить команду 

make


Программа hello готова для установки в роутер. 


3. Пример работы программы


Далее необходимо осуществить установку пакет в роутер. Можно воспользоваться командой: 

scp hello root@192.168.88.1:/tmp/ .   (при запросе пароля необходимо ввести пароль root(по умолчанию))


Запустим программу на роутере: 

root@LT5x:/# /tmp/hello
Hello World 


На этом пример сборки программы HelloWorld завершен!


Больше информации по работе с роутером Вы можете найти в руководстве по LTx: Роутеры 4G TELEOFIS LT40/LT40 (X). Руководство пользователя

Роутеры 4G TELEOFIS LT50/LT51Руководство пользователя