В данной статье приведен пример сборки тестового приложения для роутеров серии 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]? Y
Ждём извлечения:
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Руководство пользователя