Метка «kernel» - 2

Кросс компиляция в OS X под Linux, с использованием инструментария crosstool ng

В данной заметке речь пойдёт о замечательном средстве автоматизации сборки кросс-тулчейнов crosstool-ng, практически незаменимого инструмента для любого уважающего себя embedded-разработчика. Если вам приходилось по-серьёзному собирать софт из x86-linux под arm-linux, то вы наверняка слышали о нём.

В данном руководстве рассматривается не столько кросс-компиляция по архитектуре, сколько кросс-компиляция по системе — сборка под Linux в Darwin.
Читать полностью »

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

На случай, если вы пропустили предыдущие части — вот ссылки:
1 — Миникомпьютер из роутера с OpenWRT: разрабатываем USB-видеокарту
2 — Миникомпьютер из роутера с OpenWRT: пишем USB class-driver под Linux
Итак, приступаем к работе.
Читать полностью »

Миникомпьютер из роутера с OpenWRT: пишем USB class driver под Linux
Добрый день, уважаемыее. В прошлой статье мы с вами разработали простую USB-видеокарту на базе STM32F103 и китайского дисплейного модуля на контроллере ILI9325.
Проверяли мы его из юзерспейса, при помощи LibUSB. Ну что ж, пришло время нам написать свой собственный драйвер, который позволит делать все то же самое, но из-под Linux и без дополнительных библиотек. Этот драйвер мы внесем в дерево исходников OpenWRT и он поселится там наравне со всеми остальными.
Начнем.
Читать полностью »

Миникомпьютер из роутера с OpenWRT: разрабатываем USB видеокарту
Добрый день, уважаемыее. В этом цикле статей мы с вами пройдем достаточно длинный, но весьма интересный путь по превращению обычного роутера в мини-компьютер с LCD-дисплеем. Для этого мы разработаем сначала USB-видеокарту на базе микроконтроллера STM32F103, потом тестовый дравйвер, который позволит нам выводить на него графику, и, наконец – полноценный драйвер фреймбуффера, благодаря которому можно будет запустить настоящие графические приложения, такие как x-сервер. Заодно мы научимся включать наш код в дерево исходников OpenWRT, допиливать его ядро и делать прочие полезные вещи.
Ну а в самом конце мы получим результат, который, я надеюсь, вызовет ностальгическую слезу у многих читателей. Я постараюсь излагать материал таким образом, чтобы в конце каждого этапа мы получали осязаемый результат, не дающий угаснуть энтузиазму. Итак, начнем.
Читать полностью »

image

Пользователь твиттера с ником STUN опубликовал сегодня исходные коды ядра VMware ESX Server.

WILD LEAKY LEAK. FULL VMware ESX Server Kernel LEAKED 1337x.org/torrent/421062/VMware-ESX-Server-Kernel-LEAKED/ #Anonymous #AntiSec

Читать полностью »

Строим Android x86Существует множество задач, для которых требуется пересборка ядра и операционной системы Android в целом. Например, создание и отладка собственных модулей, включение поддержки профилирования системы и просто тестирование своих приложений на новой версии Android.
Возможность запуска Android x86 внутри виртуальной машины VirtualBox позволяет энтузиастам и создателям прошивок покопаться в настройках системы, настроить и пересобрать ядро и при этом не «кирпичизировать» настоящее устройство. VirtualBox предоставляет возможность использования привычных для Linux-разработчика средств отладки ОС. Для рядовых разработчиков Android-приложений отлично подходит эмулятор, использующий технологию Intel Hardware Accelerated Execution Manager. (подробнее можно прочесть здесь)
В статье приведен ряд практических советов по сборке образа Android x86 для запуска под виртуальной машиной VirtualBox и сборке эмулятора. Исходный код Android взят из официального репозитория проекта AOSP (Android Open Source Project), в качестве ядра использована адаптированная версия ядра Linux 2.6 от Intel.
Читать полностью »

Предыстория

Приобрел я себе планшет на SoC Allwinner A10 (sun4i — кодовое название процессора AllWinner A10 ARMv7-A архитектуры семейства Cortex ядро A8). Сначала игрался с ним на Android 2.x потом на 4.x, но со временем мне стало этого мало. Да еще начали выпускать миникомпьютеры на основе этой SoC с Linux на борту. Я подумал: «Хм, а чем мой планшет хуже?» и занялся делом. Как оказалось, за меня уже все сделали, и дела делать не пришлось:

  1. Ядро оптимизировали для данной платформы
  2. Загрузчик оптимизировали к этой платформе
  3. Вышел новый порт debian armhf.

Осталось только все это дело сконфигурирован и собрать.Читать полностью »

Часто бывает так, что поставив новую стабильную систему, да ещё и отмеченную как LTS, вам всё равно хочется поставить новое ядро (в котором, например, улучшено энергосбережение и наконец-то заработает ваш новый планшет Genius).

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

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

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

Поэтому я решил сделать паузу и вспомнить как же это делалось раньше, когда деревья были большими, а иногда даже бинарными.
Читать полностью »

Часто бывает так, что поставив новую стабильную систему, да ещё и отмеченную как LTS, вам всё равно хочется установить новое ядро (в котором, например, улучшено энергосбережение и наконец-то заработает ваш новый планшет Genius).

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

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

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

Поэтому я решил сделать паузу и вспомнить как же это делалось раньше, когда деревья были большими, а иногда даже бинарными.
Читать полностью »

картинка для привлечения внимания(пост из серии «я склонировал себе исходники hotspot, давайте посмотрим на них вместе»)
Все, кто сталкивается с многопоточными проблемами (будь то производительность или непонятные гейзенбаги), неизбежно сталкиваются в процессе их решения с терминами вроде «inflation», «contention», «membar», «biased locking», «thread parking» и тому подобным. А вот все ли действительно знают, что за этими терминами скрывается? К сожалению, как показывает практика, не все.

В надежде исправить ситуацию, я решил написать цикл статей на эту тему. Каждая из них будет построена по принципу «сначала кратко опишем, что должно происходить в теории, а потом отправимся в исходники и посмотрим, как это происходит там». Таким образом, первая часть во многом применима не только к Java, а потому и разработчики под другие платформы могут найти для себя что-то полезное.

Перед прочтением глубокого описания полезно убедиться в том, что вы в достаточной мере разбираетесь в Java Memory Model. Изучить её можно, например, по слайдам Сергея Walrus Куксенко или по моему раннему топику. Также отличным материалом является вот эта презентация, начиная со слайда #38.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js