Wlancards.ru

ПК техника, WI FI Адаптеры
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Baking Pi – Разработка операционной системы

Baking Pi – Разработка операционной системы

Profile picture for user lamazavr

Недавно мне попался занятный курс Alex Chadwick’а из Кембриджа.
Представляю Вашему вниманию вольный перевод уроков данного курса.
Обратите внимание, что оригинальный курс не адаптирован для Raspberry Pi B+, 2 и 3. В свою очередь для я приведу код для B+.
Надеюсь будет полезно!

Этот веб сайт создан чтобы помочь Вам преодолеть процесс разработки очень простой операционной системы для Raspberry Pi. Этот сайт предназначен для людей старше 16 лет, тем не менее более юные читатели тоже могут найти его интересным особенно с частичной помощью. Уроки могут быть добавлены со временем.

Этот курс проведет Вас через основы разработки операционных систем на языке ассемблера. Я пытался сделать все так, что бы не требовалось дополнительных знаний в области операционных систем или ассемблера. Может быть полезно иметь некоторый опыт программирования, но курсом можно пользоваться и без этого. На форум Raspberry Pi полно приветливых людей, готовых помочь, если у Вас возникли какие-либо проблемы. Курс разделен на уроки, разработанные для выполнения по очереди. Каждый урок содержит немного теории и практическую часть, содержащую полное решение задачи.

Вместо того, чтобы предоставить читателю полную информацию о разработке операционной системы этот курс сосредоточен на решении нескольких общих задач по отдельности. Надеюсь к концу курса у читателя будет достаточно знаний об операционных системах чтобы собрать все, что он выучил воедино. Хотя уроки в общем сфокусированы на конкретной задаче, остается достаточно пространства чтобы поиграть тем, что Вы выучили. Возможно, после прочтения урока о функциях вы увидите лучший стиль написания кода на ассемблере. Возможно, после урока о графике вы представите 3D операционную систему. Т.к. это курс по операционным системам, у Вас есть право спроектировать все как вам нравиться. Если у Вас есть идея, пробуйте! Компьютерные науки все еще очень молоды, поэтому осталось много того, что можно открыть!

1 Требования

1.1 Аппаратные средства

Для прохождения курса Вам понадобиться Raspberry Pi, SD карта и блок питания. Полезно, но не необходимо иметь возможность подключить к Raspberry Pi экран и клавиатуру.
В дополнение к Raspberry Pi, на котором мы будем запускать и тестировать код Вашей операционной системы, Вам также понадобиться отдельный компьютер с Linux, Windows или Mac OS X с возможностью записи SD карты для Raspberry Pi. Этот второй компьютер — Ваша система для разработки и поддержки.

1.2 Программное обеспечение

Вам понадобиться компилятор и набор утилит GNU для ARMv6. Вы должны установить или скомпилировать самостоятельно набор инструментов, который называется кросс-компилятор, на Вашей системе для разработки. Кросс-компилятор преобразовывает файлы с исходным кодом в исполняемые файлы для Raspberry Pi, которые нужно будет поместить на SD карту. Далее карте должна быть перемещена в Raspberry Pi, где может быть проверен исполняемый файл.

Вы можете найти инструкции по установке в разделе загрузок. Там же можно найти и решения для всех уроков.

Визуальное программирование raspberry pi

linux ubuntu raspberry pi4 arm

  • Raspberry Pi 4 Model B – это компактный одноплатный компьютер на базе 4-ядерного процессора Broadcom BCM2711, Cortex-A72 @ 1.5GHz с 4GB оперативной памяти (есть так же версии с 1GB, 2GB и 8GB). Разработчики добавили в Raspberry Pi 4 такие востребованные интерфейсы как USB 3.0, Gigabit Ethernet, Bluetooth 5.0, micro HDMI и реализовали поддержку видео 4К. Также появился новый разъем питания USB Type-C вместо старого разъема micro USB.
  • Вместо полноразмерного разъема HDMI в Raspberry Pi реализованы 2 порта micro HDMI, что дает возможность подключить 2 монитора с разрешением 4K.
  • 40-пиновый GPIO-разъём позволяет подключать к микрокомпьютеру разнообразные датчики, индикацию, элементы управления, программируемые микроконтроллеры, исполняющие устройства и использовать Raspberry Pi в самых различных сферах, таких как – «умный дом», автоматизация процессов, робототехника и т.п.
Читайте так же:
Мобильное приложение для определения местоположения

Техническая спецификация

  • Процессор: Broadcom BCM2711 (4-core), ARMv8 Cortex-A72 64-bit @ 1.5GHz;
  • Память: 1GB/2GB/4GB/8GB LPDDR4-3200;
  • Связь: 10/100/1000M Ethernet, Bluetooth 5.0 Low Energy (BLE), WiFi 2.4GHz/5GHz IEEE 802.11 b/g/n/ac;
  • USB Host: USB 2.0 х 2, USB 3.0 х 2;
  • Слот MicroSD: MicroSD x 1 для системного загрузчика и данных;
  • LED: Power LED x 1, System LED x 1;
  • GPIO: 2.54mm pitch 40-пиновая колодка с поддержкой 4 × UART, 4 × SPI и 4 × I2C;
  • USB Type-C: Power Input (5V/3A) (блок питания в комплект не входит);
  • HDMI: Micro HDMI x 2;
  • A/V-выходы: 3.5mm jack 4 pin, разъем MIPI DSI, разъем MIPI CSI;
  • Размеры: 88 x 58 x 17mm;
  • Рабочая температура: -20℃ to 70℃;
  • Вес платы: 48g.

Распаковка и сборка

  • Приклеиваем термопроводящие прокладки на чипы, соединяем две части радиатора и прикручиваем их друг к другу винтиками из комплекта;
  • Собирается всё предельно просто.

Программное обеспечение (Ubuntu Mate 20.04)

Открываем ссылку https://ubuntu-mate.org/download/arm64/focal/ и скачиваем образ диска. Далее открываем ссылку https://www.balena.io/etcher/ и скачиваем программу balena Etcher.

  • Запускаем balena Etcher;
  • Нажимаем на кнопку Flash from file и выбираем из списка файлов скачанный ранее файл с образом;
  • Далее нажимаем на кнопку Select target, отмечаем галочкой диск /dev/mmcblk0 и нажимаем на кнопку Select;
  • Затем нажимаем на кнопку Flash!;
  • После того как образу будет записан на MicroSD-карту и отобразится сообщение Flash Complete! закрываем balena Etcher.

  • В записанном образе, по умолчанию размер основного раздела равен около 5ГБ, это очень мало, и если оставить его таким, то при первом запуске, во время первоначальной настройки Ubuntu Mate будут возникать ошибки. Поэтому первым делом необходимо увеличить размер этого раздела хотя бы до 8ГБ. Проще всего воспользоваться для этой процедурой программой GParted.

Запуск Ubuntu Mate без монитора (headless)

При первом запуске Ubuntu Mate на Raspberry Pi, запускается программа-установщик, в которой указывается имя компьютера, временная зона. Во время первого запуска создаётся пользователь для работы, а так же устанавливается и обновляется ряд программ. Если к Raspberry Pi не подключен монитор, клавиатура и мышь – завершить установку почти невозможно.

Для того, чтобы закончить процесс установки Ubuntu Mate без монитора – воспользуемся UART-портом на Raspberry Pi и маленьким USB-донглом USB2UART от компании FriendlyELEC.

Первый блок команд отключает запрет отображения логов запуска ядра на консольном порту, а второй блок команд добавляет запуск сервиса serial-getty для порта ttyS0 в oem-config.target SystemD. При первом запуске Ubuntu Mate будет загружаться таргет oem-config.target.

После того как мы подготовили карточку с Ubuntu Mate к загрузке – подключим консоль нашего Raspberry Pi к имеющемуся компьютеру. На официальной странице документации есть понятные картинки, показывающие как нужно подключаться к UART-порту Raspberry Pi.

Рекомендую обратить внимание на сайт https://pinout.xyz/. Данный сайт в удобной форме содержит описание всех пинов GPIO-разъёма.

  • На схеме видно, что нам нужно будет подключаться к пинам 6 (GND), 8 (TXD) и 10 (RXD).
Читайте так же:
Лучшие программы для оптимизации жесткого диска

На фотографии видно, что я взял небольшой кабель, и подготовил один разъём для подключения к USB-донглу USB2UART, а второй разъём для подключения к Raspberry Pi. Основная идея в том, что пины GND (земля) должны совпадать у обоих устройств (чёрный провод), а пины TXD и RXD должны быть соединены «крест-накрест». Т.е. пин TXD у Raspberry Pi должен быть подключён к пину RX у USB2UART (белый провод), а пин RXD у Raspberry Pi должен быть подключён к пину TX у USB2UART (жёлтый провод). Это необходимо для того, чтобы данные передаваемые (transmit) на стороне Raspberry Piпринимались (receive) на стороне USB2UART и наоборот.

Теперь подключаем к Raspberry Pi сетевой кабель и кабель питания USB Type-C.

  • А после наших изменений, вывод в консоли должен выглядеть примерно так:

Т.е. во-первых отображается процесс загрузки операционной системы, а во-вторых появилось приглашение для логина. Если планируете в дальнейшем использовать эту консоль для работы – обратите внимание на эту заметку (раздел Облагораживание консоли).

Первый вход в систему

Для первого входа в систему воспользуемся сервисной учётной записью oem, у которой пароль по умолчанию тоже oem:

  • Проверим, что Raspberry Pi получила IP-адрес от DHCP-сервера, и что есть доступ в Интернет:
  • Далее нам необходимо установить SSH-сервер. Если сразу после загрузки Raspberry Pi попытаться его установить – мы получим ошибку:
  • Нам пишут, что в данный момент запущен механизм автоматических обновлений, поэтому ручная установка программ недоступна. Для того, чтобы узнать, когда автоматические обновления завершатся – запустим просмотр соответствующих логов:
  • На последней строчке написано, что теперь запущено обновление пакетов (dpkg), поэтому нажмём Ctrl+C и запустим просмотр другого лог-файла:
  • Через какое-то время (в моём случае это заняло около получаса) – добавление новых записей в лог-файл прекратится и мы сможем продолжить работу. Нажмём Ctrl+C, обновим систему и установим SSH-сервер:
  • Теперь попробуем подключиться к нашему Raspberry Pi через ssh:
  • SSH-сервер работает, теперь установим и запустим RDP-сервер, для подключения к Raspberry Pi в графическом режиме:
  • После запуска RDP-сервера, подключимся к нему используя логин и пароль oem. На рабочем столе нажмём правой кнопкой мыши и кликнем по пункту Open Terminal. Далее в терминале выполним следующие команды:

Команду xhost + необходимо выполнять перед sudo oem-config , в противном случае программе oem-config не хватит прав для отображения под учётной записью oem .

  • Таким образом мы запустим графический процесс установки Ubuntu Mate. Нужно будет выбрать язык, временную зону, указать название компьютера и создать пользовательскую учётную запись:

  • После завершения программы oem-config необходимо восстановить нормальную загрузку Ubuntu Mate (в настоящее время симлинк default.target указывает на oem-config.target ):

Удаление программы oem-config:

  • После перезагрузки логинимся под пользовательской учётной записью, которую создали на предыдущем шаге и выполняем следующую команду:

Удаление сервисной учётной записи oem:

Установка дополнительных утилит и настройка рабочего окружения в bash:

Далее можно настроить рабочее окружение в bash по этой заметке. А графическую часть Ubuntu Mate можно настроить по этой заметке (читать начиная с пункта Настройка после установки).

Читайте так же:
Забыла пароль на планшет леново

Installing Visual Studio Code

In this section, we will show you how to install Visual Studio code on your Raspberry Pi.

To achieve this, you will need to have a web browser installed to your Raspberry Pi, such as Chromium.

You will be using this web browser to download the latest available package of Visual Studio Code.

While our steps are written for Raspberry Pi OS, they will also work on alternative operating systems such as Ubuntu.

1. Within your favorite web browser on the Raspberry Pi, go to the Visual Studio Code website.

2. Once on the website, you should scroll down until you see the download buttons, as shown below.

In our case, we have two different architectures that we can choose from. One is the base ARM build, and the other is the ARM64 build.

If you are running the standard edition of Raspberry Pi OS (Non-64-bit edition), then click the “ ARM ” download button (1.).

Alternatively, if you are using the 64-bit edition of the Raspberry Pi OS, make sure you click the “ ARM 64 ” option (2.).

Downloading ARM deb package for Visual Studio Code

Download this .deb file to somewhere easy to locate on your Raspberry Pi.

In our case, we downloaded this package file for Visual Studio Code to the standard “ downloads ” folder for our pi user.

3. With the .deb package file for Visual Studio Code downloaded to your Raspberry Pi, we can now install it.

To start the install process, locate where you downloaded the VS Code package file, then double-click it.

In our case, we downloaded the file to the “ /home/pi/Downloads/ ” directory.

Installing the Visual Studio Code deb on the Raspberry Pi

Double-clicking the file will begin the installation process.

4. You will first be greeted by a message asking if you want to install the file.

Verify that the deb package name is correct, then click the “ Install ” button.

Visual Studio Code Install Dialog

5. As we downloaded the Debian package straight from the internet with no package keys, you will be required to complete some additional authentication.

When prompted, type in the password for the pi user (1.). By default, this password will be set to “ raspberry “.

Once you have entered the user’s password, click the “ OK ” button (2.) to proceed with the installation of Visual Studio Code.

Enter Password to Install VS Code

6. The operating system will now download and install Visual Studio Code to your Raspberry Pi.

During this process, the package manager will also install any dependencies that VS Code may require.

Visual Studio Code Installation Process on Raspberry Pi

Once the installation process has finished, you can now run Visual Studio Code on the Raspberry Pi.

Top – диспетчер задач

Встроен в систему

Запуск: top

image

Htop – диспетчер задач

Установка: sudo apt-get install htop

Запуск: htop

image

Мой любимый диспетчер задач 🙂

Mc – файловый менеджер

Установка: sudo apt-get install mc

Запуск: mc

image

Weechat – IRC клиент

Установка: sudo apt-get install weechat

Запуск: weechat-curses

image

Links – текстовый браузер

Установка: sudo apt-get install links

Читайте так же:
Видеоурок по работе в excel

Запуск: links

image

Клавиша Esc откроет меню браузера

Кратко о бюджетном конструкторе Raspberry Pi

Продукт Raspberry Pi — детский конструктор и программатор, по факту является полноценным компьютером. Аппарат сравним по техническим параметрам с моделями среднего класса ПК настольной конфигурации. Обработка видео, графики, погружение в игры и т.д. – для этой «машинки» не проблема.

Авторский прототип устройства изобретатели сделали в 2011 году. Спустя ещё год, стартовало серийное производство. За пять прошедших лет (2012-2017 гг.) разработчики создали несколько серийных моделей конструктора Raspberry Pi (8 серийных моделей на момент 2017 года).

Мини компьютер конструктор программатор

Raspberry Pi помещённый в корпус. Но даже в таком виде девайс свободно помещается на ладони руки и ещё оставляет место для шариковой ручки

Самые молодая модель мини компьютера получила имя «Raspberry Pi Zero». Причём эта серия – представитель уже «Pi 3» поколения конструктора для детей. Правда, детским развлечением подобное устройство назвать сложно. Может быть, юношеским?

Особенности сборки миниатюрного ПК

Сборка конструктора выполнена на базе четырёхслойной печатной платы. Потому как мини компьютер по умолчанию рассматривается детским конструктором, будущим пользователям доступно купить каждую деталь сборки в отдельности:

  • печатную плату;
  • корпус компьютера;
  • адаптер питания;
  • жёсткий диск SSD;
  • клавиатуру, мышь, кабели;
  • карту SD, MMC, SDIO (8 ГБ и более);
  • модули расширения.

Есть возможность получить в подарок любую серийную модель, но не бесплатно, как часто позиционируется в сети. Подарком девайс оформляется через подписку на новости сайта разработчиков. Подписка платная от $5 до $90, исходя из периодики.

Техническое оснащение Raspberry Pi

Конфигурация мини компьютера, с точки зрения технических параметров, определяется серийными версиями. Тройка первых моделей сделана на базе микропроцессора Broadcom BCM2835 архитектуры ARM11. Максимально допустимая тактовая частота для этих аппаратов — на уровне 700 МГц.

Две серии компьютера Raspberry

Два устройства, выпущенные в рамках разных серий: 1 — самая первая серия «А» без поддержки интерфейса GPIO; 2 — одна из последних моделей выпуска серии «В+», значительно продвинутая модель

Конструктивно процессор Raspberry Pi («А», «А+», «В») BCM2835 выполнен по технологии «package-on-package». Этой технологией поддерживается размещение модулей оперативной памяти непосредственно на теле чипа микропроцессора. Поддерживаются модули на объём 256-512 МБ.

Для следующих серий детских конструкторов Raspberry Pi разработчики внедрили уже более мощные компоненты. К примеру, серия «2В» наделена четырёхядерным микропроцессором типа Cortex-A7.

Этим чипом поддерживается 1 ГГц тактовой частоты и до 1ГБ оперативной памяти. А серийный ряд Raspberry Pi3 (разработки 2017 года) оснащается CPU на основе четырехядерной архитектуры ARMv8 с частотным диапазоном до 1,2 ГГц.

Также, с учётом конструкторской сборки соответствующей версии, изменяется число и назначение системных портов. Так, если модель «А» имеет один порт USB 2.0, версия «2В» оснащена уже четырьмя интерфейсами USB и дополнена каналом Ethernet.

Модель Raspberry Zero

Модель Raspberry Zero: 1 — SD карта; 2 — интерфейс GPIO (40); 3 — размер платы 65х30х5 мм; 4 — контакты кнопки сброса; 5 — RSA видео; 6, 7 — порт USB; 8 — процессор; 9 — мини HDMI

Видеосигнал выводится методом подключения монитора или ТВ через кабель RCA либо путём цифрового интерфейса HDMI. Опять же поддержка того или иного способа вывода видеосигнала индивидуально организована для каждой версии компьютера Raspberry Pi.

Программное обеспечение – установка, применение

Базовое программное обеспечение уникальный детский конструктор получил от Linux. Между тем не исключена возможность оснастить компьютер программной средой Windows (в частности, Windows 10 IOT). Явно поддерживаемые ОС следующие:

  • Raspbian
  • Raspbmc (OSMC)
  • Fedora
  • OpenELEC
  • RISC OS
Читайте так же:
Музыка на звонок майкрософт люмия

Есть ещё целый ряд «операционок» (более десятка), подходящих к мини компьютеру. Однако этот список не считается официально признанным и распространяется на условиях «как есть».

Применять (загружать) операционные системы на компьютер рекомендуется при помощи утилиты NOOBS (создаёт образ ОС) с последующей развёрткой образа ОС на карте SD. Но в принципе образ можно создать любой другой подходящей программой.

Утилиты для Raspberry Pi

Утилита создания образа операционной системы для компьютера конструктора. Созданный образ впоследствии загружается через SD карту

Однако главная особенность уникального компьютера конструктора для детей – это наличие GPIO – портов ввода-вывода. Именно благодаря интерфейсу GPIO, Raspberry Pi 2-й и 3-й серий лёгким движением рук превращается в программатор микросхем EEPROM и FLASH.

Для тех кто разрабатывает на Simple UI

Есть некоторые отличия и ограничения в конфигурациях для стационарных рабочих мест. В конструкторе я сделал переключалку “Стационарное решение|Мобильное решение ” чтобы конфа сама проверяла что можно а что нет.

Вот список этих отличий:

  • Только контейнеры. Экраны размечаются только через контейнеры, причем уровень вложенности – 2. Т.е. вертикальный контейнер с любым количеством строк, в каждой стоке либо один горизонтальный контейнер с любым количеством элементов либо просто элемент. Т.е. получается эдакая 2D таблица.
  • Размеры если указывать их числами – в «символах», т.е. высота = 2- это 2 строки
  • Только "произвольный запуск экранов" – все переключения через ShowScreen
  • Высота в таблице -это количество строк, ширина – высота строки
  • В настоящее время не все элементы контейнера доступны, перечень элементов органичен в конструкторе
  • Прокрутка корневого контейнера/без прокрутки – работает немного не так как в Андроиде (появляется скролл-бар для мыши), лучше посмотреть в демке
  • Пока только «он-лайн» режим через 1С, офлайн не нужен, так как это стационарное рабочее место, позже появится поддержка скриптов Python как в мобильной платформе и на них уже можно делать requests и т.д. и т.п. куда надо, парсить и отображать на экранах — хоть в PostgREST, хоть в свой бэкенд

12. Веб-сервер

У вас есть собственный сайт, блог или что-то в этом духе, и вам надоело постоянно платить за хостинг? Почему бы не разместить своё творение на Raspberry Pi? Конечно, одноплатник вряд ли потянет огромный ресурс с миллионами посетителей, но если сайт у вас небольшой, устройство с ним справится.

Можете установить на Raspberry Pi Apache, PHP, MySQL, WordPress — любые инструменты, которые вам понадобятся, и миниатюрный компьютер станет вполне неплохим веб-сервером. Остаётся только приобрести у интернет-провайдера статический IP. Или даже обойтись без этого, воспользовавшись сервисом No-IP.com.

Это далеко не всё, что можно сделать с Raspberry Pi. Умельцы в Сети делают из него собственные метеостанции, системы видеонаблюдения, автоматические раздатчики корма для собак и удобрений для цветов, и даже огромных боевых роботов. Наконец, ничто не мешает задействовать Raspberry Pi для нескольких задач сразу — всё зависит только от ваших потребностей и фантазии.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector