Статья Разбираемся с osmocom-bb

Приветствую, форумчане! В этой статье я хочу рассказать о том, как начать работать с osmocom-bb - проекте, позволяющем сделать из старой моторолы инструмент изучения и тестирования GSM сетей.
Я постараюсь дать достаточное количество информации, что бы вы без лишней боли смогли начать работу с osmocom.
18673


Osmocom? Впервые слышу!
Osmocom - это открытая имплементация стека протоколов GSM. Включает в себя программное обеспечение и инструменты, реализующие различные стандарты мобильной связи, включая GSM, DECT, TETRA и другие. Так описано на .

Osmocom-bb реализует клиентскую часть протокола GSM. Для этого используются телефоны на базе чипсета calypso и mediatek. К таким телефонам относятся, например, motorola c115, motorola c118, motorola c123, Neo 1973, SciphoneDreamG2. Полный список можно посмотреть на официальном сайте:

По сути osmocombb соединяет osmocom-совместимый телефон и компьютер с линукс (как львиноботы, соединяющиеся в одного супербота), позволяя программировать устройство для работы с gsm или использовать уже готовые проекты для, например, создания собственной базовой станции gsm (2G), устройства для снифинга gsm трафика и ещё .


Hardware
Для того, что бы начать работу с osmocom, нужно обзавестись некоторыми прибамбасами, а именно:
  • Телефон из списка доверенных (желательно motorola на базе e88, но об этом позже)
  • USB-UART конвертер
  • mini jack 2.5 mm TRS (3 контакта)
  • детали для замены фильтров (опционально)
А теперь подробнее

Телефон
Полный список допустимых телефонов можно посмотреть . Однако авторы рекомендуют использовать motorola c123 / motorola c118 (телефоны на базе E88), так как проект изначально затачивался именно под них. Телефоны на базе E87 (motorola c115 / c117) так же отлично подойдут: E88 и E87 идентичны на 99%.

Я взял motorola c118, так как их было проще всего найти, всё нижеописанное я буду проводить именно с ним. Купить телефоны можно на местной барахолке, в переходе или на авито. Цена вопроса - около 500 р. за штуку.

18672

Если вы собираетесь поднимать свою базовую станцию, то понадобится 2 телефона и, соответственно, 2 USB-UART конвертера и 2 мини джека.

О перепайке фильтров
Изначально телефоны отбрасывают весь входящий трафик, не принадлежащий этому телефону (остальной ему просто не нужен). В некоторых проектах, например в снифинге gsm или поднятии собственной базовой станции (BTS), нам нужен весь входящий трафик. Что бы мы могли получать его, нужно перепаять фильтры.

Казалось бы, можно просто выпаять фильтры и замкнуть цепь. Но дело в том, что фильтры также преобразуют несбалансированный сигнал 50 ohm от антенны в сбалансированный на 100 ohm, который впоследствии идёт на чипсет RITA. По этому мы не можем просто удалить фильтры и замкнуть цепь.

Для перепайки фильтров понадобится паяльный фен, так как по другому удалить детали без повреждения телефона вряд ли получится (точно не получится, я пытался). Так же понадобится паяльник с тонким наконечником и прочие паяльные принадлежности (припой, флюз и т.д.)
Детали для перепайки в одном паке можно заказать на aliexpress (цена около 100 р.), или же в русских магазинах, но там цена меня совсем не порадовала.

О том, как и что припаивать, на официальном сайте. описано с теорией.

USB конвертер
Список поддерживаемых USB TTL конвертеров есть на . Конечно, можно купить готовый вариант переходника USB-minijack 2.5 mm, но это во первых дорого, во вторых не интересно. По этому лучше брать отдельно конвертер, отдельно миниджек. Самым дешёвым (цена - около 70 рублей на aliexpress) и стабильным USB-TTL конвертером является CP2102. Хотя для некоторых проектов его нужно перепрошить для возможности работы на нестандартных скоростях - это не является проблемой. О перепрошивке будет ниже, в разделе software

18675


mini jack
Нужен обычный трёхконтактный (TRS) minijack 2.5 mm. Проблема в том, что на дворе 2018 год, и достать 2.5-милиметровый миниджек может быть проблематичным занятием. Если вы везунчик, и вам удалось найти трёхконтактный миниджек, то распайка будет такой:
  • RXD - наконечник
  • TXD - середина
  • GND - нижняя часть
Припаивать надо к RXD, TXD и GND конвертера соответственно.

Мне же, как наверняка и многим другим, удалось найти только "тюльпан" 3RCA TRRS (4 контакта). Под спойлером о том, как его подсоединять
Распайка примерно такая же: берём от начала RXD, TXD и GND, а нижний контакт оставляем пустым.
18676


Штекер в телефон нужно вставлять не полностью, а до того момента, когда начнёт светиться вторая лампочка на USB-TTL конвертере:
18670

обратите внимание на расположение контактов

Проверяем соединение
Что бы проверить связь, будем использовать minicom из под Linux (все дальнейшие действия будут проводиться под Debian 9.4 x86_64)
Выключаем телефон, соединяем с компьютером и в терминале ищем подключенный адаптер: ls /dev | grep ttyUSB
18708


Открываем конфигурацию minicom sudo minicom -s > Настройка последовательного порта, в Последовательный порт вводим найденный адаптер.
18709

Выбираем Выход, затем на телефоне коротко нажимаем кнопку включения. Если в выводе, помимо мусора, появилась надпись @ftmtoolerror, то можно переходить к сборке софтовой части.
18710

выход из minicom - ctrl + a, x, Enter


Software
Для начала определимся со структурой проекта: /opt/osmocom - библиотеки проекта и кросс-компилятор, ~/osmocombb - ветки проекта.
Все действия будут проводиться на Debian 9.4 x86_64

Собираем libosmocore
libosmocore - основная библиотека проекта, почитать про неё можно .
Bash:
su
#устанавливаем зависимости
apt-get update && apt-get install build-essential libtool libtalloc-dev shtool autoconf automake git-core pkg-config make gcc libpcsclite-dev
#создаём рабочее место
mkdir /opt/osmocom
cd /opt/osmocom
#клонируем основные библиотеки
git clone git://git.osmocom.org/libosmocore.git
#компилируем
cd libosmocore/
autoreconf -i
./configure
make
make install
ldconfig -i
cd ..

Собираем кросс-компилятор
У меня возникли проблемы со сборкой по , по этому я сделал .
Bash:
su
apt update && apt install libmpfr-dev libmpc-dev libgmp-dev libgnutls28-dev libgnutlsxx28 texinfo
cd /opt/osmocom
mkdir gnu-arm-toolchain
cd gnu-arm-toolchain
mkdir build install src
cd src/
качаем программы нужных версий
#в официальном мануале используется gcc версии 4.8.2, у меня скомпилировался только 4.9.4
wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.bz2
wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.1a.tar.bz2
wget ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz
#разархивируем
tar jxvf gcc-4.9.4.tar.bz2
tar jxvf binutils-2.21.1a.tar.bz2
tar xfvz newlib-1.19.0.tar.gz
cd ../
# качаем установщик
wget https://raw.githubusercontent.com/DrLafa/gnu-arm-toolchain-installer/master/gnu-arm-build.sh
#даём права на исполнение
chmod +x gnu-arm-build.sh
#выполняем установку
./gnu-arm-build.sh
Этот установщик работает на Debian 9.4 x86_64 с gcc 6.3.0 и texinfo 6.3.0. С другими верияси gcc и texinfo могут быть проблемы.
После компиляции нужно прописать путь до бинарников в переменную PATH. Прописываем в конец файла .zshrc, .bashrc или каким ещё терминалом вы пользуетесь:
Код:
export PATH=/opt/osmocom/gnu-arm-toolchain/install/bin:${PATH}
На этом сборка кросс-компилятора закончена. Если возникли проблемы компиляции, можете писать в комментариях. Попробуем решить коллективно.

Собираем OsmocomBB
Настало время собрать основную ветку проекта
Код:
# создаём рабочее место
cd ~/
mkdir osmocombb
cd osmocombb
#клониурем основную ветку
git clone git://git.osmocom.org/osmocom-bb.git master
cd master/src
Тут стоит отметить, что если вы хотите иметь возможность отправлять трафик gsm (а не только принимать), то в файле src/target/firmware/Makefile практически в самом низу нужно раскомментировать строку CFLAGS += -DCONFIG_TX_ENABLE. Однако имейте ввиду, что вещание на частотах gsm в России регулируется законом, так что вас могут счесть за врага народа и отправить в концлагерь призвать к судебной ответственности. Подробнее читайте в разделе .

Чуть ниже есть 2 строки, раскомментировав которые, вы получите возможность загружать прошивку в постоянную память, а не только в RAM.
18647


Перед компиляцией основной ветки давайте поговорим о перепрошивке USB-TTL конвертера CP2102.
Перепрошивка требуется для работы на нестандартных скоростях. Это может понадобиться в некоторых ветках проекта.
Нам понадобится программа-прошивальщик. Скачать её можно .
Втавляем cp2102 в компьютер и выгружаем модуль ядра:
Код:
sudo rmmod cp210x
Запускаем прошивальщик, что бы убедиться, что всё в порядке:
Код:
sudo ./cp210x-program
18648


Он должен вывести таблицу скоростей, содержащей следующие значения:
Код:
[baudrate table]
[...]
921600 = FFE6, FFF6, 1 #  923077 Baud, 20 us
[...]
460800 = FFCC, FFEC, 1 #  461538 Baud, 40 us
[...]
230400 = FF98, FFD9, 1 #  230769 Baud, 78 us
[...]
115200 = FF30, FFB2, 1 #  115385 Baud, 156 us
[...]

На всякий случай сделаем бекап памяти конвертера:
Код:
sudo ./cp210x-program -f eeprom.hex

Теперь мы можем перепрошить конвертер:
Код:
sudo ./cp210x-program -p -F eeprom.hex -w --set-baudrate 812500:FFE2,FFF4,1 --set-baudrate 406250:FFC5,FFE9,1 --set-baudrate 203125:FF8A,FFD3,1

Проверяем работу:
Код:
sudo ./cp210x-program
В выводе таблицы скоростей теперь должны быть следующие значения:
Код:
[baudrate table]
[...]
812500 = FFE2, FFF4, 1 #  800000 Baud, 24 us
[...]
406250 = FFC5, FFE9, 1 #  406780 Baud, 46 us
[...]
203125 = FF8A, FFD3, 1 #  203390 Baud, 90 us
[...]
115200 = FF30, FFB2, 1 #  115385 Baud, 156 us
[...]
Переподключите конвертер. На этом перепрошивка завершена.
Итак, если у вас cp2102 и вы перепрошили его, то перед компиляцией основного проекта в файл src/host/osmocon/osmocon.c нужно добавить строку #define I_HAVE_A_CP210x
18649


Теперь вы готовы собрать основную ветку
Код:
cd ~/osmocombb/master/src/
make
Если компиляция завершилась без ошибок, то можно переходить к самому интересному. К тестированию


Тестируем
Прошивки ветки master для motorola c115, c118, c123 и прочих на платформе compal_e88 (и 87) находятся по пути src/target/firmware/board/compal_e88/
Прошивки заливаются на телефон с помощью . Синтаксис загрузчика следующий:
  • -m {c123,c123xor,c140,c140xor,c155,romload,mtk} - платформа телефона. Для motorola c118 это c123xor,
  • -p /dev/ttyXXXX - путь к USB-TTL конвертеру
  • -c - загрузка по цепочке. Указывается, если вы загружаете тяжеловесную прошивку, в названии которых фигурирует слово hightram (например rssi.highram.bin)
  • file.bin - прошивка
Для удобства я сделал ссылку на osmocon и добавил её в переменную PATH
Код:
cd ~/osmocombb/master/src/host/osmocon/
mkdir osmocon-link
ln -s ~/osmocombb/master/src/host/osmocon/osmocon osmocon

Выключаем телефон и подключаем к компьютеру
Код:
#идём в папку с прошивками
cd ~/osmocombb/master/src/target/firmware/board/compal_e88
osmocon -m c123xor -p /dev/ttyUSB0 hello_world.compalram.bin
#коротко жмём кнопку включения на телефоне. Начинается загрузка.

18653


Могут быть проблемы с загрузкой прошивки из-за плохого соединения. Просто переподсоедините телефон и попробуйте снова.

Что со всем этим можно сделать
У osmocom . Есть, допустим, burst_int, нацеленный на снифинг gsm-трафика, emi для дос-атак на устройства gsm, но это всё темы для отдельных статей.

О том, что есть в ветке мастер (которую мы только что скомпилировали) можно почитать на оффициальном сайте: . Рассмотрим пример одной прошивки, использующей только телефон и другой, использующей телефон и компьютер одновременно.

RSSI
RSSI может работать без кмопьютера после прошивки. Он показывает системную информацию о базовой станции. Давайте загрузим эту прошивку на телефон:
Код:
#идём в папку с прошивками
cd ~/osmocombb/master/src/target/firmware/board/compal_e88
osmocon -m c123xor -p /dev/ttyUSB0 -c hello_world.compalram.bin
#коротко жмём кнопку включения на телефоне. Начинается загрузка.
Здесь используется параметр -c, так как это hightram-прошивка

После того, как прошивка загрузилась, в выводе терминала будет системная информация о ближайшей базовой станции. Есть возможность менять канал (ARFCN). А ещё он пикает, если нажать кнопку "вверх" :)
18662

С вышкой можно синхронизироваться (зелёная кнопка), тогда будет выдано ещё больше информации:
18664
Здесь MMC (Mobile Country Code) - код страны, MNC (Mobile Network Code) - код оператора, LAC (Location Area Code) - код локальной зоны. В двух словах LAC - это объединение некоторого количества базовых станций, которые обслуживаются одним контроллером базовых станций (BSC). cell id - идентификатор базовой станции.
С помощью этой информации можно узнать примерное местоположение вашего телефона. Учитывая то, что телефон подключён к сети для экстренных вызовов, вы теперь знаете, как вас смогут найти сверху :)

mobile
Другая, самая интересная на мой взгляд прошивка в этой ветке - mobile. Превращает ваш компьютер в телефон со всеми вытекающими плюшками (возможность просмотра трафика в wireshark, выполнение DTMF команд и комечто же звонки и смс-ки). Mobile использует телефон как физический уровень gsm, а всё остальное (layer 2-3) располагается на компьютере. Для нормальной работы нужна, конечно же, рабочая симка.

Зальём прошивку на телефон:
Код:
#подключаем выключенный телефон
cd ~/osmocombb/master/src/target/firmware/board/compal_e88
osmocon -m c123xor -p /dev/ttyUSB0 -c layer1.highram.bin
#коротко жмём на кнопку включения
Здесь, опять же, для загрузки прошивки использовался параметр -c, потому что для тяжеловесных прошивок используется загрузка по цепочке: сначала загружается кастомный загрузчик, который загружает прошивку типа hightram. Физическое взаимодействие с сетью (layer 1 модели OSI) запустился, сворачиваем это окно.

Во второй консоли запускаем наш "мобильник" mobile, выступающий в качестве 2 и 3 уровня модели OSI
~/osmocombb/master/src/host/layer23/src/mobile/mobile -i 127.0.0.1
Мобильник запущен. Мы можем подключиться к консоли управления через telnet:
telnet 127.0.0.1 4247

Давайте откроем wireshark и попробуем отловить смс-ку. В акуле телефон будет loopback-интерфейсом
18671

Ну разве не восхитительно!

Пожалуй на этом я и закончу данную статью, она и так уже довольно затянулась. Желаю всем дешёвых моторол, удачной пайки, компиляции с первого раза и не забывать об УК РФ, прежде чем соберётесь поднимать свою BTS.
 
Последнее редактирование:
все так же без изменений, что до команды что после, делал из под рута. Все вроде как надо .Хз в чем проблема.как не меняло так и не меняет.

Долгими мучениями и бессонными ночами проблема решилась.Помогла утилита для форточки , через терминал никак , с оф сайта помогло только , и то я даже не знаю как на них напоролся .Мб кому пригодится, и напорется на такой же злосчастный чип как у меня. .Сразу имейте в виду не качайте Simplicity Studio это современный фреймворк в нем тоже можно все боадрейты менять но почему-то я не мог с помощью нее попасть в тайминги не совпадало не как или мне было лень разбираться( в общем только зря потеряете время.
 

Вложения

  • README.zip
    README.zip
    902 байт · Просмотры: 209
Всем привет.Я то же раньше экспериментировал с Osmocom,и у меня на тот момент была проблема,что при сниффинге через Motorola(фильтры не перепаянны),в Wireshark показывались только GSMTAP пакеты,а LARDM/gsm_map и GSM/SMS нет:(.Может у кого то,то же была такая проблема или я что то не так настраивал?
 
Всем привет.Я то же раньше экспериментировал с Osmocom,и у меня на тот момент была проблема,что при сниффинге через Motorola(фильтры не перепаянны),в Wireshark показывались только GSMTAP пакеты,а LARDM/gsm_map и GSM/SMS нет:(.Может у кого то,то же была такая проблема или я что то не так настраивал?
А если фильтры в вайршарке использовать? Например gsm_sms (главное ещё словить её, попробуй вставить симку в моторолу, запустить mobile и wireshark с фильтром gsm_sms, и затем отправить смс-ку например через восстановления пароля вконтакте)

на счёт gsm_map не скажу, не пробовал
 
А если фильтры в вайршарке использовать? Например gsm_sms (главное ещё словить её, попробуй вставить симку в моторолу, запустить mobile и wireshark с фильтром gsm_sms, и затем отправить смс-ку например через восстановления пароля вконтакте)

на счёт gsm_map не скажу, не пробовал
Фильтры естественно использовались.Если вставить сим карту,то ты захватишь свои расшифрованные пакеты(к примеру смс).А вопрос возник,как засниффить чужие зашифрованные пакеты(которые передаюся в эфире на ARFCN который мы прослушиваем),опять же к примеру смс.Я узнал на каком канале мой телефон,свой timsi,прослушивал данный канал,отправил себе sms,ноль,тишина в Wireshark.Программа так и не отображала,что данный абонент получил sms...

И да,абонент прыгает с одного канала на другой.Ну в osmocom,есть скрипт который ведет абонента по заданному timsi,и обновление канала уже нам не грозит.Так что теория о том,что смс прошла по другому каналу,то же отпадает...
 
Фильтры естественно использовались.Если вставить сим карту,то ты захватишь свои расшифрованные пакеты(к примеру смс).А вопрос возник,как засниффить чужие зашифрованные пакеты(которые передаюся в эфире на ARFCN который мы прослушиваем),опять же к примеру смс.Я узнал на каком канале мой телефон,свой timsi,прослушивал данный канал,отправил себе sms,ноль,тишина в Wireshark.Программа так и не отображала,что данный абонент получил sms...
Ну во-первых, что бы хватать чужой трафик, нужны перепаянные фильтры на телефоне. Во-вторых нормально перехватывать можно будет только открытый трафик, вроде ccch канала. А вот смс-ки уже зашифрованы, нужно знать ключ шифрования, что бы расшифровать трафик и уже потом посмотреть его в шарке
 
Ну во-первых, что бы хватать чужой трафик, нужны перепаянные фильтры на телефоне. Во-вторых нормально перехватывать можно будет только открытый трафик, вроде ccch канала. А вот смс-ки уже зашифрованы, нужно знать ключ шифрования, что бы расшифровать трафик и уже потом посмотреть его в шарке
С чего это,нельзя перехватывать зашифрованные пакеты?Само лично делал.Берешь SDR приемник(HakRF к примеру)+GNURadio,настраиваешься на канал оператора и вуаля!!!!Вот тебе и пакеты Wiresharke,и да sms ты конечно не прочитаешь,потому что она будет зашифрована.Ну пакет ты словишь.И все это законно,до момента,пока ты не начнешь расшифровку)))
 
люди помогите разобратся надоело уже блин собирать зависимости ни как не могу разобратся с пакетом
Bash:
root@0day:/opt/osmocom/libosmocore# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for pkg-config... /usr/bin/pkg-config
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.20... yes
checking for ANSI C header files... (cached) yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/timerfd.h usability... yes
checking sys/timerfd.h presence... yes
checking for sys/timerfd.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for library containing dlopen... -ldl
checking for library containing dlsym... -ldl
checking for backtrace in -lexecinfo... no
checking for doxygen... false
checking whether SYS_getrandom is declared... yes
checking if gcc supports -fvisibility=hidden... yes
checking for clock_gettime... yes
checking for localtime_r... yes
checking whether struct tm has tm_gmtoff member... yes
checking for TALLOC... yes
checking for PCSC... yes
checking for LIBGNUTLS... no
configure: error: Package requirements (gnutls >= 2.12.0) were not met:

No package 'gnutls' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBGNUTLS_CFLAGS
and LIBGNUTLS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
я понимаю что этот gnutls относится к библиотеке gnutls-dev хз уже дохера че перекопал уже подкиньте еще какуюнибудь мыслю.
 
люди помогите разобратся надоело уже блин собирать зависимости ни как не могу разобратся с пакетом
Bash:
root@0day:/opt/osmocom/libosmocore# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for pkg-config... /usr/bin/pkg-config
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.20... yes
checking for ANSI C header files... (cached) yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/timerfd.h usability... yes
checking sys/timerfd.h presence... yes
checking for sys/timerfd.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for library containing dlopen... -ldl
checking for library containing dlsym... -ldl
checking for backtrace in -lexecinfo... no
checking for doxygen... false
checking whether SYS_getrandom is declared... yes
checking if gcc supports -fvisibility=hidden... yes
checking for clock_gettime... yes
checking for localtime_r... yes
checking whether struct tm has tm_gmtoff member... yes
checking for TALLOC... yes
checking for PCSC... yes
checking for LIBGNUTLS... no
configure: error: Package requirements (gnutls >= 2.12.0) were not met:

No package 'gnutls' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBGNUTLS_CFLAGS
and LIBGNUTLS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
я понимаю что этот gnutls относится к библиотеке gnutls-dev хз уже дохера че перекопал уже подкиньте еще какуюнибудь мыслю.
1. попробуй собрать из изходников последнюю версию gnutls, возможно в репозиториях её нет
2. следи за речью на форуме
 
всем привет! гугл не помог, к тому же нашел этот же вопрос от разных буржуинов, такая проблема, не могу загрузить лоудер на телефон с помощью FTDI232RL ( пробовал с двумя одинаковыми платами, не работает ни одна). Он должен работать с любыми не стандартными скоростями и уж тем более со стандартными. Беру ветку Мастер, и гружу 1. через СР2102 не перепрошитый - всё хорошо, лоадер грузится на раз, СССН работает. 2. через СР2102 - перешитый - лоудер грузится , СССН работает 3. через FTDI232 RL - не грудится загрузчик, при этом и провода ( переставлял) и телефон одни и те же во всех случаях. В терминалке телефон во всех случаях четко отвечает на нажатие красной кнопки, порты видятся и установлены.
-----------------------------------------------------------------------------------------------------
dmesg | grep ttyUSB
[ 19.913512] usb 6-2: cp210x converter now attached to ttyUSB0
[ 19.926213] usb 4-2: pl2303 converter now attached to ttyUSB1
[ 19.943160] usb 5-2: FTDI USB Serial Device converter now attached to ttyUSB2

-----------------------------------------------------------------------------------------------------

FTDI232

vic@vic-desktop:~/osmocombb/master/src$ sudo host/osmocon/osmocon -m c123xor -p /dev/ttyUSB2 -c target/firmware/board/compal_e88/layer1.highram.bin
[sudo] пароль для vic:
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: c1 .
got 4 bytes from modem, data looks like: 1b f6 02 00 ....
got 1 bytes from modem, data looks like: 41 A
got 1 bytes from modem, data looks like: 01 .
got 1 bytes from modem, data looks like: 40 @
Received PROMPT1 from phone, responding with CMD
read_file(chainloader): file_size=32, hdr_len=4, dnload_len=39
got 1 bytes from modem, data looks like: 1b .
got 1 bytes from modem, data looks like: f6 .
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 41 A
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 43 C
Received PROMPT2 from phone, starting download
handle_write(): 39 bytes (39/39)
handle_write(): finished
got 1 bytes from modem, data looks like: 1b .
got 1 bytes from modem, data looks like: f6 .
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 45 E
got 1 bytes from modem, data looks like: 53 S
got 1 bytes from modem, data looks like: 16 .
Received DOWNLOAD NACK from phone, something went wrong :(
got 1 bytes from modem, data looks like: 66 f
got 1 bytes from modem, data looks like: 74 t
got 1 bytes from modem, data looks like: 6d m
got 1 bytes from modem, data looks like: 74 t
got 1 bytes from modem, data looks like: 6f o
got 1 bytes from modem, data looks like: 6f o
got 1 bytes from modem, data looks like: 6c l
Received FTMTOOL from phone, ramloader has aborted
got 1 bytes from modem, data looks like: 65 e
got 1 bytes from modem, data looks like: 72 r
got 1 bytes from modem, data looks like: 72 r
got 1 bytes from modem, data looks like: 6f o
got 1 bytes from modem, data looks like: 72 r
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: c1 .
got 1 bytes from modem, data looks like: 1b .
got 1 bytes from modem, data looks like: f6 .
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 41 A
got 1 bytes from modem, data looks like: 01 .
got 1 bytes from modem, data looks like: 40 @
Received PROMPT1 from phone, responding with CMD
read_file(chainloader): file_size=32, hdr_len=4, dnload_len=39
got 1 bytes from modem, data looks like: 1b .
got 1 bytes from modem, data looks like: f6 .
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 41 A
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 43 C
Received PROMPT2 from phone, starting download
handle_write(): 39 bytes (39/39)
handle_write(): finished
got 1 bytes from modem, data looks like: 1b .
got 1 bytes from modem, data looks like: f6 .
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 45 E
got 1 bytes from modem, data looks like: 53 S
got 1 bytes from modem, data looks like: 16 .
Received DOWNLOAD NACK from phone, something went wrong :(
got 1 bytes from modem, data looks like: 66 f
got 1 bytes from modem, data looks like: 74 t
got 1 bytes from modem, data looks like: 6d m
got 1 bytes from modem, data looks like: 74 t
got 1 bytes from modem, data looks like: 6f o
got 1 bytes from modem, data looks like: 6f o
got 1 bytes from modem, data looks like: 6c l
Received FTMTOOL from phone, ramloader has aborted
got 1 bytes from modem, data looks like: 65 e
got 1 bytes from modem, data looks like: 72 r
got 1 bytes from modem, data looks like: 72 r
got 1 bytes from modem, data looks like: 6f o
got 1 bytes from modem, data looks like: 72 r
============================================================
 
Последнее редактирование модератором:
всем привет! гугл не помог, к тому же нашел этот же вопрос от разных буржуинов, такая проблема, не могу загрузить лоудер на телефон с помощью FTDI232RL ( пробовал с двумя одинаковыми платами, не работает ни одна). Он должен работать с любыми не стандартными скоростями и уж тем более со стандартными. Беру ветку Мастер, и гружу 1. через СР2102 не перепрошитый - всё хорошо, лоадер грузится на раз, СССН работает. 2. через СР2102 - перешитый - лоудер грузится , СССН работает 3. через FTDI232 RL - не грудится загрузчик, при этом и провода ( переставлял) и телефон одни и те же во всех случаях. В терминалке телефон во всех случаях четко отвечает на нажатие красной кнопки, порты видятся и установлены.
Оформите, пожалуйста, вывод под спойлер.

У меня бывала такая же проблема с cp2102 перепрошитым. Помогало переподсоединение шнура и перезапуск команды загрузки (иногда не с первого раза). Про FTDI232RL ничего сказать не могу, т.к. не юзал, но попробуйте мой вариант.
Ещё так же заметил, что compalarm прошивки успешно грузятся впринципе всегда, а с highram вот такие проблемы очень часто возникают. Попробуйте layer1.compalarm.bin
 
  • Нравится
Реакции: Сергей Попов
и второй вопрос - как и надо ли задавать скорость обмена во время работы с телефоном?
 
Спасибо, по поводу передергивания шнура - так и есть я тоже это заметил что можно долго пробовать и начинает работать после полного обновления от терминалки ( все предварительно позакрывать) до отключения ЮСБи от компа................ сейчас попробую layer1.compalarm.bin ...................

про второй вопрос - я бы тоже не знал, но тут в одной закрытой группе написали что типа юзал на больших скоростях, всё работало, а вот уже как он юзал именно на больших скоростях не отвечает

Причем в случае FTDI232RL всё работает так как пишет в статье Вадим Яницкий, т.е. порт виден, подключен, отвечает четко на красную, при замыкании я вижу эхо, вообщем всё как положено, и нифига с загрузкой,, причем грузит но 39 байт только и всё, считает он всё сделал что мог
 
про второй вопрос - я бы тоже не знал, но тут в одной закрытой группе написали что типа юзал на больших скоростях, всё работало, а вот уже как он юзал именно на больших скоростях не отвечает
Скорее всего речь о beacon-interval (-i)
1533640897258.png

Тут стоит поэксперементировать со значением, о нём написана только одна строчка
 
вот что я нашел - ( на этом компе нет юбубнту поэтому без ссылок), находим osmocon.c , ( а именно эта программа задает режимы и скорости для обмена с телефоном) там есть кусок кода написанный для СР2102 а в нём по сути одна строка задающая скорость. Вот похоже там и можно её менять. Я пробовал это делать но мне не помогло, перешитый СР2102 отказывается в этой ветке грузить бутлоудер. Хотя проверял как вы советовали, layer1.compalarm.bin , грузится на раз, в частности здравствуй мир из этой ветки, там картинка отличается от мастера, черный фон мигающая надпись вверху
 
Последнее редактирование модератором:
и ещё у Вадима написано про FTDI -
И тут вспоминается Arduino, у которой на борту уже есть USB-TTL конвертор. Так я и сделал, когда только начинал знакомиться с проектом. На моей freeduino (отечественный клон) был распаян FT232RL, который верно служил моим восстановителем роутеров (иногда и убийцей). Он успешно принимал сообщения загрузчика, но не позволял загрузить прошивку. Поэтому лучше всего приобретать отдельный преобразователь из списка, опубликованного в разделе .

Наиболее подходящими являются конверторы на базе чипсета FT232. Они «из коробки» позволяют использовать нестандартные скорости передачи данных и работают довольно стабильно. А у меня как раз FT232RL, завтра закажу просто FT232. Хотя и СР2102 прошив на 100% так как рекомендуют, потом перепроверил.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!