Русский
Русский
English
Статистика
Реклама

Запуск

Особенности работы Postfix

04.09.2020 18:19:39 | Автор: admin
image

Добрый день, сообщество. В этой статье хочу поговорить о Postfix о том, каковы принципы его работы, и о возможностях диагностики проблем. В силу специфики работы приходится с ним сталкиваться либо для решения своих задач, либо для понимания того, как работает чужая инфраструктура. В интернете о Postfix много информации, однако в основной массе это готовые конфиги для развертывания почтового сервера с нуля. Здесь же я постараюсь охватить основные аспекты администрирования Postfix.

Известно, что Postfix разработан как альтернатива Sendmail. ПО повышало производительность, обеспечивало устойчивость, гибкость и безопасность решения. Все основные Linux-дистрибутивы включают Postfix, в Mac OS X, начиная с версии 10.3, программа также используется вместо Sendmail.

Главные особенности


  • Фокус Postfix в том, что можно начинать работу без приготовлений (базовые конфигурационные файлы включают в себя пару строк).
  • Для эффективной фильтрации писем применяются регулярные выражения PCRE (Perl compatible regular expression).
  • Программа Postfix совместима с Sendmail: файлы aliases и .forward имеют схожий формат и семантику.
  • Postfix общается по протоколу ESMTP, поддерживает виртуальные домены и фильтрацию спама.
  • Не используется язык подстановки адресов как в Sendmail. Вместо этого производится поиск в плоских файлах таблиц или базе данных MySQL.

Архитектура


Postfix состоит из нескольких небольших, совместно работающих программ, которые посылают сетевые сообщения, принимают сообщения, осуществляют локальную доставку почты и другие действия. Связь между программами обеспечивается с помощью сокетов Unix или алгоритмов FIFO. Архитектура отличается от Sendmail, где всю работу нужно выполнять одной большой программе.

Запуск и контроль всех процессов выполняет программа master. В ее конфиге master.cf -перечислены вспомогательные программы и информация о том, как и когда их нужно запустить.

Самые важные программы показаны в блок-схеме:

image

За прием почты на порту SMTP отвечает smtpd. Он же проверяет, авторизован ли клиент для отправки почты. Если письмо отправляется локально, через совместимость с /usr/lib/sendmail, файл будет записан в каталог /var/spool/postfix/maildrop. Этот каталог сканируется программой pickup, которая обрабатывает найденные файлы. Входящая почта обрабатывается программой cleanup. Она добавляет отсутствующие заголовки и переписывает адреса в соответствии с картами canonical и virtual. Прежде чем поместить письмо в очередь, incoming программа cleanup передает письмо программе trivial-rewrite, которая также выполняет незначительные исправления в адресах, добавляя домен и частично заполненный адрес.

Электронные письма, ожидающие доставки, находятся под управлением qmgr администратора очередей:

Incoming входящая почта;

Active доставляемая почта;

Deferred письма, доставка которых не осуществилась ранее;

Hold письма, заблокированные в очереди администратором;

Corrupt письма, которые невозможно прочитать.

Анализатор очередей обычно выбирает сообщение для обработки на основе алгоритма FIFO.

Также он поддерживает и более сложный алгоритм например, отбирает события только с определенных адресов.

Чтобы не перегружать хост приемки, после доставки писем Postfix использует алгоритм медленного запуска, который позволяет контролировать скорость доставки. Отсроченные письма получают метку с обозначением времени повторной отправки. Время увеличивается экспоненциально, благодаря этому вы можете избежать траты ресурсов на сообщения, которые не удается доставить. Состояние недосягаемых мест кешируется во избежание новых попыток.

Отправка почты идет при поддержке trivial-rewrite, утилита qmgr принимает решение, куда должно быть отправлено сообщение. Решение о маршруте может быть аннулировано transport картой.

Доставка с помощью SMTP осуществляется, конечно, smtp-программой. Lmtp осуществляет локальную пересылку почты по протоколу LMTP, использующим семантику ESMTP (https://tools.ietf.org/html/rfc2033). LMTP изменен так, что для управления локальной очередью почтовый сервер не нужен.

Задача local локальная доставка почты. Программа распознает в таблице aliases и выполняет инструкции из файла .forward получателя. Сообщения могут быть направлены по другому адресу, переданы внешней программе на обработку или сохраниться в почтовых папках пользователей.

Программа virtual доставляет письма в виртуальные почтовые ящики ящики, представляющие собой адреса назначения. Наконец, программа pipe реализует доставку через внешние программы.

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

sendmail, mailq, newaliases интерфейс совместимости postfix и sendmail.

[root@iwtm611 ~]# sendmail user@example.com
from test@test.com
user@example.com
HI!!!
.


Поставьте "." И нажмите Enter sendmail попытается отправить письмо.

postfix запускает и прекращает работу системы обработки почты;

[root@iwtm611 ~]# postfix status
postfix/postfix-script: the Postfix mail system is running: PID: 16765


postalias создает и модифицирует таблицы псевдонимов;

postmap создает, модифицирует, запрашивает таблицы преобразований;

cat /etc/postfix/transport

onedomain.ru smtp:10.1.2.10
twodomain.ru smtp:10.1.3.10

postmap /etc/postfix/transport

postalias /etc/postfix/aliases


Утилиты фактически создают индексированные карты файлов. Повторить запуск при изменениях в файлах aliases и transport;

Postcat напечатает содержимое файла из очереди;

[root@iwtm611 ~]# postcat -qv 96987C3CFB40
postcat: name_mask: all
postcat: inet_addr_local: configured 2 IPv4 addresses
postcat: inet_addr_local: configured 2 IPv6 addresses
*** ENVELOPE RECORDS deferred/9/96987C3CFB40 ***


Postsuper и postqueue управляют почтовыми очередями. Первая используется для высокопривилегированных операций. Например, удаление очереди:

[root@iwtm611 ~]# postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
956FAC3CFB46 2311 Mon Jul 27 19:50:05 MAILER-DAEMON
(connect to 10.70.85.12[10.70.85.12]:25: No route to host)
user@domain.ru


Postconf инструментальное средство, позволяющее конфигурировать postfix- конфиг main.cf. Без аргументов выводит все параметры в текущей конфигурации. Если передать значение параметра выведет значение этого параметра. С ключом d напечатает default-настройки, а не сконфигурированные.

[root@iwtm611 ~]# postconf virtual_mailbox_limit
virtual_mailbox_limit = 51200000


С ключом n напечатает только значения, отличные от типовых.

Главным файлом Postfix является main.cf. Он конфигурирует серверные программы и определяет таблицы преобразований, на которые содержит ссылки. Содержит более 300 параметров. Для запуска почтового сервера в средней организации достаточно лишь несколько из них. В документацию рекомендуется включать лишь параметры, содержащие нестандартные значения.

Базовая возможная настройка


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

Второй вариант null клиент. Система не выполняет локальную доставку, а направляет исходящую почту на указанный почтовый сервер. При этом конфиге указывается несколько параметров: mydomain определяющий домен компьютера; myorigin определяющий почтовый домен, добавляемый к почтовым адресам. Третьим параметром будет mydestination, определяющий локальные почтовые домены (они же canonical домены). Если домен получателя соответствует mydestination, письмо доставит программа local (при условии что файла .forward не найдено). Если в mydestination несколько записей, они рассматриваются как псевдонимы одного домена. Null клиенту локальная доставка не нужна, поэтому параметр mydestination пустой. Также программа local проведет поиск псевдонима адреса в таблицах alias_maps. Наконец, параметр relayhost оповещает Postfix о том, что нелокальные сообщения нужно посылать на указанный компьютер, а не адресатам. Квадратные скобки говорят о том, что указанная строка обрабатывается как имя компьютера, то есть A не MX запись DNS. Null клиент не должен получать почту с других систем комментируем строчку smtpd в файле master.cf программа smtpd не запустится.

Преобразования и виртуальные домены


Аспекты поведения Postfix определяются использованием таблиц поиска, отражающих ключи как значения тип: путь или просто как списки. Например, таблица alias_maps:dbm:/etc/mail/aliases.

Обратите внимание, синтаксис ключ: значение обеспечивает совместимость с Sendmail.

Помимо традиционного файла базы данных бинарного формата dbm, источником данных для таблицы преобразований может быть ldap, regexp выражения, postgres, Mysql и многое другое.

Если вам нужно обслуживать почтовый домен, то можно сделать это тремя путями:

Указать домен в mydestination доставка пойдет по схеме, описанной выше;

Указать домен в параметре virtual_alias_domains. Домен получит собственное адресное пространство. Потребуется обеспечить возможность преобразования адресов в реальные (карта virtual_alias_maps);

Указать домен в virtual_mailbox _domains. Здесь также будет собственное именное пространство. Но управление списком пользователей будет независимым от системных учеток. Потребуется указать параметр virtual_mailbox _maps c таблицей действительных пользователей в домене.

Защита и доступ


Postfix защищает себя на нескольких уровнях. Большинство серверных Postfix-программ могут выполняться в среде с измененным корневым каталогом (chroot). Они являются отдельными программами без связи Родитель-дочерний. Ни одна из них не имеет бита setuid. Каталог, в который направлена почта, открыт для записи группе postdrop, для нее программа postdrop setgid.

Что касается доступа, почтовые домены ретранслируют почту на сторонние адреса только для надежных агентов. Открытая ретрансляция с неизвестных адресов, как известно, не сулит ничего хорошего. Postfix по умолчанию закрыт как ретранслятор. Стандартные настройки сильно ограничены, возможно вам придется ослаблять ограничения. Доступы конфигурируются списками ограничения доступа access restriction list. Важнейшим параметром будет smtpd_recipient_restrictions, так как адресом получателя куда проще управлять. По крайней мере, можно установить локальный ли он.

Вот список ограничений для проверки ретрансляции:

Check_client_address проверяет адрес ПК клиента;

Check_recipient_access проверяет почтовый адрес получателя;

Permit_mynetworks предоставляет доступ к адресам в параметре mynetworks;

Reject_anauth_destination отклоняет почту для нелокальных получателей ретрансляция отсутствует.

Одна из мер защиты строгая реализация протокола ESMTP. Легитимные почтовые сервера протокол принимают, а рассылки спама могут не принять и дискредитировать себя. Однако сейчас технология уже не столь надежна. Есть злоумышленники, способные обработать легитимную почту.

Черные списки основаны на информации из DNS разрешаются директивой reject_rhsbl_sender после указывается DNS-сервер, также reject_rbl_client , только проверяет имя PC, а не доменное имя.

Фильтрация для проверки самого Body письма Postfix использует regexp выражения в реальном времени. А также может передавать сообщения другим программам. Postfix поддерживает SpamAssasin и фильтры подобного рода.

До сих пор в версиях Posfix удавались лишь DDOS атаки.

Отладка


Если возникла проблема с почтой, первым делом можно заглянуть в журнальные файлы Posfix. Каждая Postfix-программа регистрирует запись в журнале для обработанного сообщения.

Идентификатор письма 96987C3CFB40 общий для каждой строки. Postfix присвоит его, как только сообщение попадает в систему и никогда не изменяет. Таким образом, при поиске в журнале можно сосредоточиться на поиске ID, затем с помощью grep отследить маршрут.

[root@iwtm611 ~]# tailf /var/log/maillog

Jul 27 20:00:08 iwtm611 postfix/smtp[8576]: 96987C3CFB40: to=<user@domain.ru>, relay=none, delay=603, delays=600/0.06/3/0, dsn=4.4.1, status=deferred (connect to 10.70.85.12[10.70.85.12]:25: No route to host)

Jul 27 20:00:08 iwtm611 postfix/error[8585]: 98640C3CFB4D: to=<user@domain.ru>, relay=none, delay=603, delays=600/3.1/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)

Jul 27 20:00:08 iwtm611 postfix/error[8585]: 98E5CC3CFB77: to=<user@domain.ru>, relay=none, delay=603, delays=600/3.1/0/0.01, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)

Jul 27 20:00:08 iwtm611 postfix/error[8585]: 99C8DC3CFB62: to=<user@domain.ru>, relay=none, delay=603, delays=600/3.1/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)


Другим местом поиска является сама очередь. Утилита postqueue p (или аналогичный вывод mailq) печатает содержимое очереди.

[root@iwtm611 ~]# mailq

-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------

90190C3B9B9F 2242 Mon Jul 27 19:50:05 MAILER-DAEMON

(connect to 10.70.85.12[10.70.85.12]:25: No route to host)

user@domain.ru

95E96C3CFB5A 2307 Mon Jul 27 19:50:05 MAILER-DAEMON

(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)

user@domain.ru

956FAC3CFB46 2311 Mon Jul 27 19:50:05 MAILER-DAEMON

(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)

user@domain.ru

96987C3CFB40 2311 Mon Jul 27 19:50:05 MAILER-DAEMON

(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)

user@domain.ru

97944C3CFB5E 2311 Mon Jul 27 19:50:05 MAILER-DAEMON

(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)

user@domain.ru


postcat qv 96987C3CFB40 Найдет письмо по ID, покажет заголовок и дополнительную информацию:
[root@iwtm611 ~]# postcat -qv 96987C3CFB40

postcat: name_mask: all

postcat: inet_addr_local: configured 2 IPv4 addresses

postcat: inet_addr_local: configured 2 IPv6 addresses

*** ENVELOPE RECORDS deferred/9/96987C3CFB40 ***

message_size: 2311 201 1 0 2311

message_arrival_time: Mon Jul 27 19:50:05 2020

create_time: Mon Jul 27 19:50:05 2020

.

regular_text: Return-Path: <user@domain.ru>

regular_text: Received: from Vvpc (unknown [10.254.1.250])

regular_text: by iwtm611.local (Postfix) with ESMTP id BCB42C3CFB62

regular_text: for <usr111@test.com>; Thu, 2 Jul 2020 12:48:45 +0300 (MSK)

regular_text: MIME-Version: 1.0

regular_text: From: user@domain.ru

regular_text: To: usr111@test.com

regular_text: Date: 2 Jul 2020 12:48:40 +0300

regular_text: Subject: test

regular_text: Content-Type: text/plain; charset=utf-8

regular_text: Content-Transfer-Encoding: base64

regular_text: Message-Id: <20200702094845.BCB42C3CFB62@iwtm611.local>

regular_text: --BCB42C3CFB62.1595868605/iwtm611.local--

*** HEADER EXTRACTED deferred/9/96987C3CFB40 ***

*** MESSAGE FILE END deferred/9/96987C3CFB40 ***


qshape новый инструмент свежих версий показывает сводную статистику содержимого и подводит итог количество минут, в течение которых сообщение отправляется. Например, для итога по домену отправителя запустите qshape s, а отклоненные письма можно посмотреть через параметр qshape deferred.

image

В примере таблицы можно увидеть, что 4 сообщения на gmail висят в очереди более 120 минут.

Рикошет вызывается параметром soft_bounce. Это конфигурационный параметр. Postfix будет отправлять временные сообщения при отправке сообщений об ошибках типа: user_unknown или relay_denied. Это эффективное средство, позволяющее отслеживать местонахождение сообщения после изменений конфигурации и не терять их. Все, что вы отклоните, в конечном итоге вернется отправителю. Не забудьте это отключить после завершения проверки.

Для проверки доступа в Postfix есть расширение xclient, имитирующее отправку сообщений из другого места. Включается в main.cf параметром smtpd_autorized_xclient_hosts.

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

Автор: Галиулин Тимур GTRch
Подробнее..

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

01.04.2021 18:23:17 | Автор: admin
Доброго времени суток, Хабр!



Решил написать небольшую статью по запуску разработанного и спаянного устройства на основе процессора iMX8MQ от NXP. Идея возникла в связи с тем, что приходится запускать много различных проектов, а характер первичного тестирования и запуска однообразен и, возможно, не раз пройденный мной путь поможет кому-нибудь не сделать ошибок при пуско-наладке и не спалить устройство. Статья не является универсальной инструкцией к действиям, а представляет собой результат проделанной работы по запуску конкретной платы.



Печатная плата

Печатная плата модуля имеет 10 слоев, поэтому она прошла электротестирование на заводе и визуально ее осматривать смысла нет, если только полюбоваться (платы более 2 слоев всегда должны проходить электроконтроль). При изготовлении было выбрано иммерсионное покрытие золотом для улучшения автоматизированного монтажа на производстве. Так как это первый макет на этом процессоре, я буду паять его вручную, чтобы исключить ошибки монтажа на заводе и параллельно буду проверять все питания (как ни странно, но если производство конкретного устройства еще не налажено на заводе, иногда встречаются ошибки в номиналах).



Рис.1. Печатная плата модуля на iMX8MQ без компонентов.

Пассив на bottom

Первым делом, я установил пассив на нижнем слое платы. Сразу нашлась первая проблема. Изначально, под iMX8 устанавливаются конденсаторы типоразмером 0201, которые я решил поменять на 0402. Чтобы они установились корректно, я подредактировал наши стандартные футпринты (и правила в Altium), чтобы иметь возможность установить компоненты ближе друг к другу. Также, я решил изменить типоразмеры 0603 и немного не рассчитал. Видно, что на плате эти конденсаторы прижаты друг к другу, что не позволительно для автоматизированного монтажа. Так как проблема наблюдается только на 0603, и их расстановка позволяет увеличить расстояние между ними, я это исправлю на следующей итерации.



Рис.2. Установка пассивных компонентов на bottom.

На всякий случай, я прозвонил мультиметром на предмет КЗ все точки выходов источников питания относительно GND, так как допущенную на этом этапе ошибку в виде залипа, будет сложно отыскать на следующих этапах. Короткого замыкания нигде не обнаружено, можно продолжать

Установка части компонентов на top

На bottom я буду ставить пассив и часть актива, а именно первичные источники питания. Входное питание моего модуля 3V3. Помимо нескольких DC/DC и LDO, на плате установлен PMIC (MC34PF4210A1ES) контроллер управления питанием, а также несколько вторичных источников питания. У PMIC входное напряжение тоже 3V3, но его устанавливать я пока не буду. Для фиксации платы я использую простой держатель, который не позволяет сдвинуться компонентам на bottom при прогреве платы феном сверху.



Рис.3. Установка части компонентов на top.

Теперь важно произвести визуальный осмотр платы с обеих сторон и убедиться, что все компоненты стоят ровно, нигде нет лишнего припоя и отсутствуют залипы между выводами компонентов. Следующий шаг снова проверка на КЗ мультиметром точек выходов источников питания.

Первая подача напряжения

Напряжение на плату я буду подавать от лабораторного источника питания с ограничением тока. Так как я еще не уверен в правильности схемы и трассировки источников питания, необходимо ограничить ток, например до 100мА, и установить напряжение 3V3. При таком токе сгореть ничего не должно, а в случае КЗ это я увижу на блоке питания.



Рис.4. Подача напряжения на плату.

Просто подпаиваю два проводка и включаю лабораторник. Дыма нет, потребление почти то же. Считаем, что пока все в норме. Кроме контроллера питания от 3V3 питается два DC/DC и два LDO. Для подачи разрешающего сигнала на питатели я использовал супервизор питания, так что, он тоже должен быть запаян. Обнаружилась вторая проблема. При разработке схемы, я забыл рассчитать делитель одного из DC/DC и, как следствие, вместо 0V9 на его выходе оказалось 2V5. Если бы в этот момент был запаян процессор, то с большой вероятностью он бы сгорел, так как это напряжение ядра. Делаю корректировки резисторов для feedback питателя, запускаю, все в норме.

Установка PMIC

Данный контроллер питания имеет несколько встроенных DC/DC и LDO. Помимо этого, он управляется по I2C и имеет несколько сигналов, типа PORb (сигнал сброса процессора) и др.



Рис.5. Установка PMIC на плату.

После установки микросхемы снова проверяем на КЗ входные/выходные цепи питания. Далее устанавливаем ограничение тока лабораторника на 200мА и подаем питание. По умолчанию, все выходы PMIC имеют фиксированные значения, поэтому сверяемся с даташитом и смотрим осциллографом питания. Помимо самих выходных напряжений, я смотрю генерацию выводов SW (перед индуктивностями), чтобы оценить нет ли срывов частоты. Проверяю выдается ли сигнал сброса для процессора. Все в норме. Продолжаем.

Установка процессора и памяти

Процессор имеет 621 болл (от англ. ball шарик), память LPDDR4 на 200 выводов, тоже в BGA исполнении. Их я запаиваю феном с нижним воздушным подогревом, так как корпуса маленькие и нет опасения что можно перегреть.



Рис.6. Установка BGA на плату.

Новый этап пайки новая прозвонка на КЗ и новый визуальный осмотр. Важно, чтобы BGA стояли ровно относительно платы, боковые шарики были одинакового размера и не было перекосов относительно шелкографии. У процессора есть ножка управления питанием VDD_ARM, важно проверить, что она не замкнута ни на питание, ни на землю.



Рис.7. Схема управления питанием VDD_ARM.

У меня этот вывод назван как PWM_LED (нужно будет назвать более корректно, чтобы не было путаницы в дальнейшем). Проверяем PORb, PMIC_nINT, PMIC_ON и другие сигналы на наличие КЗ. На этом этапе нужно особенно внимательно отнестись к тестированию, так как перепаивать процессор долго и дорого, а лишний раз нагревать плату не желательно.

Позволю себе сделать небольшое отступление по поводу выводов, которые находятся под процессором. Так как у нас нет рентген контроля, то сложно оценить пайку всех выводов под BGA, но способ все-таки есть. Если нужно убедиться, что проводник доходит до процессора, можно убрать с него все подтяжки и компоненты и прозвонить мультиметром относительно GND на диодной прозвонке. Например, если в дальнейшем будет не ясно доходит ли вывод PMIC_ON до процессора, можно снять PMIC, резисторы R117, R118 и конденсатор C240 (по схеме на рис.7.), тем самым освободив этот вывод. Есть еще вариант это в u-boot (загрузчик) настроить выводы на выход и выставлять на них логические 0 и 1, проверяя мультиметром напряжение, но это возможно далеко не всегда, например, если u-boot не стартует, либо вывод чипа нельзя сконфигурировать как GPIO, например, как выводы CSI/DSI для камеры и дисплея.

Данный процессор имеет множество вариантов загрузки. Я предусмотрел все возможные варианты с помощью резисторов boot_cfg. Углубляться в эту тему не буду, так как на данном этапе у меня подготовлена SD карта с u-boot. Таким образом, мне нужен только этот режим. В дальнейшем старт u-boot будет происходить с QSPI, а образ загружаться с eMMC. На этапе тестирования наиболее удобной является именно SD карта.

Еще до пайки платы модуля я собрал материнскую плату, на которой у меня выведен USB для консоли (консолей в iMX8 две, поэтому я использовал двухканальную микросхему USB-UART CP2105-F01-GMR). Также плата имеет мощный преобразователь на 3V3 и все необходимые разъемы для тестирования интерфейсов. Плата сложная, но это тоже макет, который позволит быстро все проверить и запустить. Процесс запуска был похожим на описанный выше.



Рис.8.Модуль на материнской плате.

Подаю питание и в консоли ничего. Потребление в норме, все питания на месте. Сигнал сброса присутствует. Проверяю генерацию кварцевых резонаторов и генераторов клоки есть. Нагрев процессора низкий. Для загрузки платы (как я выше писал) может быть использовано несколько интерфейсов: SD/eSD, MMC/eMMC, NAND, QSPI и SPI_NOR. Все эти интерфейсы имеют вывод клоков. Встаем поочередно на эти клоки перезагружая плату. Я увидел клоки на QSPI, следовательно, процессор пытается загрузиться с пустой микросхемы. Вот и третья проблема выбран не тот интерфейс загрузки. Переставляю режим на SD/eSD и:



Рис.9. Первый старт u-boot.

Заключение

После того, как произошел старт u-boot, с помощью программы MSCALE_DDR_Tool от NXP был проведен тест DDR (через USB_OTG), далее зашит образ и постепенно подняты интерфейсы, такие как I2S, MIPICSI, MIPIDSI, USB, HDMI и др. На момент написания статьи не запустилась только физика Ethernet, но, надеюсь, проблема скоро будет решена (обязательно допишу, когда запустится).
Спасибо за внимание и до скорых встреч и быстрых запусков!
Подробнее..

Rocket Lab титановый гном в космосе и мягкая посадка

23.11.2020 02:14:32 | Автор: admin
В пятницу в 15:20:01 по новозеландскому времени с частного космодрома Rocket Lab на полуострове Махия, расположенном на восточном побережье Северного острова Новой Зеландии, стартовала РН Electron в рамках миссии с символичным названием Вернуть отправителю, так как это был первый раз, когда ракета Electron взлетела с парашютами и вспомогательными системами на борту, и первая попытка выполнить полную серию маневров контролируемого спуска.



Первая ступень Electron на своем пути к Земле успешно совершила следующие запланированные маневры:
  • Примерно через 2.5 минуты после старта на высоте около 80 км первая и вторая ступени Electron разделятся в соответствии со стандартной процедурой полета. Вторая ступень Electron продолжает движение к орбите, где разгонный блок разведет спутники на свои орбиты.
  • Теперь, когда двигатели на первой ступени Electron выключены, система управления реакцией развернет ступень на 180 градусов, чтобы направить ее под идеальным углом для входа, чтобы она могла выдержать невероятную температуру и давление воздуха во время его спуска на Землю, известные как The wall.
  • После замедления до скорости <2 Махов тормозной парашют будет развернут для увеличения сопротивления и стабилизации первой ступени при спуске.
  • На последних километрах спуска будет развернут основной парашют, чтобы еще больше замедлить ступень и обеспечить контролируемое приводнение.
  • Судно Rocket Lab встретится со ступенью после приводнения и заберет ее для транспортировки обратно в производственный комплекс Rocket Lab для проверки.


Rocket Lab стала всего лишь второй частной компанией, вернувшей на Землю ракету-носитель орбитального класса в целости и сохранности. Ступень из углеродного композита приводнилась в нескольких сотнях миль от стартовой площадки Rocket Lab в Новой Зеландии.



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

Успешное приводнение первой ступени Electron приблизило калифорнийскую Rocket Lab (компания имеет офис в Калифорнии) к повторному использованию ракетных ускорителей, что, по словам компании, позволит запускать миссии с большей частотой и потенциально сократить расходы. Изначальные планы подразумевают 100 пусков год, при этом молодая компания в этот непростой год уже совершила 6 запусков.

Разработанная для вывода на орбиту небольших спутников, ракета Электрон частной разработки совершила 16 пусков, включая миссию в четверг. В конце прошлого года Rocket Lab оснастила ускорители Electron приборами для изучения тепловых, аэродинамических и структурных нагрузок, с которыми ступень сталкивается при входе в атмосферу.



Почему гном? Геймеры могут узнать в фигурке гнома Чомпски из игры Half-Life 2: Episode 2, где имеется задание перетащить гнома через все уровни игры и в конце посадить на ракету, чтобы запустить в космос. Этот же маленький друг полетит на самом деле.

Созданный при поддержке удостоенной множества наград дизайн-студии Weta Workshop, уникальный космический компонент изготовлен аддитивно из титана и напечатан в форме игрового символа Half-Life Гнома Чомпски, пишет Rocket Lab в пресс-релизе для миссии в четверг. Миссия служит данью уважения инновациям и творчеству геймеров во всем мире, а также направлена на тестирование и верификацию новой технологии 3D-печати, которая может быть использована для компонентов будущих космических кораблей. 150-миллиметровый гном останется прикрепленным к разгонному блоку Electron'а и сойдет с орбиты вместе с ней, когда ступень сгорит при входе в атмосферу Земли.
Создатель игры Half-Life Гейб Ньюэлл из Valve пожертвует по 1 доллару отделению педиатрической интенсивной терапии Оакленда за каждого зрителя на прямой трансляции запуска.

Запись трансляции запуска миссии Return to sender.

В то время как первая ступень спускалась с парашютом в Тихий океан, вторая ступень Электрона вывела 30 полезных нагрузок и ступень на предварительную переходную орбиту. В течение часа после запуска третья ступень, называемая kick stage зажглась, чтобы вывести небольшие полезные нагрузки на круговую орбиту высотой 310 миль (500 километров).

Два космических аппарата для запуска на Electron были построены Millennium Space Systems, дочерней компанией Boeing, для миссии под названием DragRacer для испытания устройства, вызывающего сопротивление, которое могло бы помочь небольшим спутникам на низкой околоземной орбите быстрее сойти с нее. Это устройство называется лентой терминатора (Terminator Tape). Лента, разработанная компанией Tethers Unlimited, имеет ширину всего 5-7 см, но ее можно разматывать на десятки метров.


Этот Terminator не имеет отношения к Terminator Tape.

Согласно предполетным прогнозам, спутник с лентой может повторно войти в атмосферу в течение 45 дней. По словам членов команды миссии, космический аппарат без ленты (контрольный в эксперименте) будет оставаться на орбите около семи лет.


Оба спутника миссии DragRacer в представлении художника.

Первый спутник Новой Зеландии также вышел на орбиту благодаря ракете Electron. Спроектированный и построенный в Оклендском университете, CubeSat получил название Te Waka miorangi o Aotearoa, что в переводе с английского означает новозеландский спутниковый аппарат (Официально аппарат известен как APSS-1).

Другие полезные нагрузки, запущенные в рамках миссии Rocket Lab в четверг вечером, включают два CubeSat размером с чемодан для французского стартапа UnseenLabs. Спутники Bro-2 и Bro-3, созданные датским производителем малых спутников GomSpace, являются вторыми и третьими спутниками, запущенными UnseenLabs.

Французская компания планирует запустить группировку из 20-25 спутников в течение следующих пяти лет для наблюдения за морскими водами. UnseenLabs заявляет, что ее флот наноспутников сможет обнаруживать и идентифицировать корабли по всему миру, предоставлять услуги слежения для морских операторов и помогать силам безопасности следить за пиратами и контрабандистами.


Представленная инфографика показывает все этапы миссии. Источник: Rocket Lab.

Rocket Lab намеревается в конечном итоге использовать вертолет для захвата ступеней ракет, спускающихся на парашютах, чтобы избегать попадания морской воды. Но Бек сказал перед запуском, что Rocket Lab сначала попытается извлечь ускорители Electron из моря и затем тщательно исследует возвращенный экземпляр, чтобы внести необъодимые изменения в дизайн.

То, чего команда достигла сегодня на этом этапе, это настоящий подвиг, сказал Питер Бек, основатель и генеральный директор Rocket Lab. Потребовались колоссальные усилия со стороны многих команд в Rocket Lab, и приятно видеть, что эта работа окупилась, и это важный шаг к превращению Electron в многоразовую ракету.

Источник
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru