LINUX.ORG.RU

Избранные сообщения poshat

На чём нынче лучше делать интернет-магазин?

Форум — Web-development

Комрады. Рассматривается два стека для интернет-магазина (цифрового товара, в перспективе - издание этого товара). Варианта пока вижу два - Ruby и NodeJS.

Команда знает на хорошем уровне NodeJS, средне Ruby (Roda, Sinatra), Python (Django, Flask), на базовом Java, Dart. DB - Mongodb, ибо реляцию не знают на уровне не ORM. Предполагается брать для фронта Angular. Что вы бы использовали?

 , ,

silver-bullet-bfg ()

MINIX-NE

Галерея — Рабочие места

Привет, ЛОР.

В посте полугодичной давности я рассказал о том, как я возился с монохромным монитором от МежДелМаша, подключая его к IBM PS/2. Теперь же я хочу поделиться с вами совсем-таки недавним моим успехом уже софтверного характера, впрочем всё так же занимающим своё заслуженное место в одном из разделов Специальной олимпиады, а именно, — я модифицировал древний MINIX 1.7.5 под нужды своего компьютера, дабы использовать все основные возможности железа. Но начну я своё изложение всё-таки с описания характеристик, ибо именно оно является основным лимитирующим фактором.

Итак, на фото один IBM 8530 (PS/2 Model 30 286) со следующими параметрами

  • Процессор от SIEMENS, клон Intel 80286, 16-bit
  • Память 1 Мб (разбита на 640k+384k)
  • VGA на материнке
  • PS/2 клавиатура и мышь
  • Три ISA слота (мне повезло не возиться с MCA)
  • Compact Flash XT Lite adapter rev 4.1
  • Ethernet от SMC (WD8390 совместимая карта с RJ-45 и BMC)
  • EGA видеокарта от ATI с поддержкой MDA и CGA режимов

Делловский монитор подключён к VGA из материнки, а вот с монохромным монитором пришлось повозиться, сделав переходник с MDA DB-9 на DB-15, плюс выцыганить питание с разъёма для флоппи, ибо IBM решили убрать молексы из дизайна, и запитывать диски с материнки.

Ситуация с подключением двух мониторов довольна нестандартна для конца 80х, однако именно для этой цели адресное пространство у монохромного адаптера и у цветного графического (от которого наследуется текстовый режим VGA) разные, а значит в теории можно использовать VGA+MDA. Однако обычно программы для MS-DOS на это не затачивались, и профита от такой схемы для меня не должно было быть, если бы не…

Если бы не старый MINIX. Версии вплоть до 2.0.4 позволяли в теории запустить полноценный UNIX даже на IBM PC XT с 640k RAM. Однако же найти подходящую именно для меня конфигурацию MINIX оказалось задачей трудной. Я перебрал сначала версию MINIX для MS-DOS, но 1 MB памяти для неё было явно мало (что и не удивительно, ведь MINIX для DOS создаёт виртуальный диск в RAM). В итоге я смог установить в QEMU MINIX 1.7.5 на один из разделов Compact Flash, и потом даже запустить уже на самом PS/2.

Правда, путь к первой введённой в терминале команде был тернист. Во-первых, MINIX подвешивал клавиатуру при загрузке. Причину удалось установить, загрузившись в режиме совместимости с i8086, откуда подозрения сразу пали на злосчастную линию A20, которая управляется контроллером клавиатуры в AT-клонах для совместимости с i8086. В исходном коде kernel/klib88.s A20-линия выставлялась в соответствии с мануалами, вот только оказалось, что для IBM PS/2 появился специальный контроллер для управления A20, а посему код для ядра пришлось сразу же патчить. По итогам доступная память с 640k в режиме совместимости увеличилась до установленной памяти в 1 MB, плюс защищённый режим с его плюсами (ну и минусами тоже, об этом чуть позже).

Следующим шагом было реализации возможности работать одновременно в двух виртуальных tty, используя два монитора. В коде kernel/console.c такой абстракции как монитор или экран не было, поэтому пришлось долго провозиться с возникающими гонками за внутренние переменные, однако усилия были вознаграждены, и теперь я мог например вывести на один экран какой-нибудь man, и параллельно редактировать файл на другом, переключаять по Alt-<- Alt–>.

Ещё одна из проблем оригинального MINIX — он отказывался работать с CF-XT адаптером. Одно время я был удовлетворён работой драйвера, который вызывает функции BIOS int 13h через аппаратный сброс, пока я не захотел наконец-то разобраться с сетевым драйвером (благо он как раз для WD8390 совместимых карт уже был в исходниках). При включении Ethernet в параметрах ядра загрузка зависала на моменте инициализации драйвера диска (забавно, не правда ли?) Вместо того, чтобы пофиксить баг, я решили подойти к вопросу радикально и переписать стандартный драйвер IDE контроллера, чтобы он стал поддерживать CF-XT-lite. И это было увлекательно. Главной подсказской для меня стала принципиальная схема адаптера, потому что сходу отображение адресов CF на шину не гуглилось, и оказалось, что не на все вопросы необходимо искать ответ в Интернете, тем более когда достаточно просто взглянуть глазами на схему платы. Конечно, документация к CF и исходники XTIDE BIOS мне тоже помогли. В процессе переписывания драйвера в момент, когда я наконец-то разобрался с адресами, и драйвер стал идентифицировать устройство, я умудрился несколько раз испортить корневой раздел, но спасали бэкапы и Linux, который до сих пор поддерживает старую добрую MINIX FS.

Как итог: старый MINIX прекрасно себя чувствует на старой же машине с 16-bit разрядностью и 1 MB памяти, при этом позволяет выходить во внешний мир с помощью telnet и ftp и поддерживает мультизадачность. Сейчас я ковыряюсь с httpd сервером, который уже скомпилировался и запускается, но пока возвращает только 403 и 404 (причём делает это он секунд за пять, если не медленнее). Остались ещё мелкие недочёты по типу не работающего SIGTERM по Ctrl-C и мигающего сразу в двух экранах курсора (это сбивает с толку, потому что не знаешь, на какой экран сейчас перенаправлен ввод). Из глобального хочется сделать frame buffer хотя бы для VGA, а то и для обоих мониторов (попробовать видеокарту ATI в режиме Hercules). Другая возможная ветка развития — создание дистрибутива для старых компов и эмуляторов типа даже pcjs.org, чтобы у энтузиастов была возможность попробовать настоящий UNIX на своём ретро железе.

P.S. Да, чуть не забыл. На фото на левом мониторе telnet на какую-то из BBSок, на правом — стандартные UNIX команды и вывод кусочка ядра на экран.

>>> Просмотр (4000x3000, 4288 Kb)

 , , ,

luke ()

VPN. Your connection is not private.

Форум — Admin

Полный нуб в вопросах сетей решил сделать свой VPN на базе стандартных решений (droplet), предлагаемых DigitalOcean.

Действовал в основном по вот этой инструкции https://khashtamov.com/ru/hosted-open-vpn-server/

Решил, что поднимать свою убунту на удаленном сервере мне не нужно, достаточно воспользоваться имеющимися дефолтными решениями.

Зарегился, включил vpn-сервер. Подключился к нему через OpenVPN, проверка ip показывает, что я в Бостоне.

При попытке зайти на банальный linkedin.com бразер выдает ошибку «Your connection is not private»:

Your connection is not private
Attackers might be trying to steal your information from www.linkedin.com (for example, passwords, messages, or credit cards). Learn more
NET::ERR_CERT_AUTHORITY_INVALID
ReloadHide advanced
www.linkedin.com normally uses encryption to protect your information. When Vivaldi tried to connect to www.linkedin.com this time, the website sent back unusual and incorrect credentials. This may happen when an attacker is trying to pretend to be www.linkedin.com, or a Wi-Fi sign-in screen has interrupted the connection. Your information is still secure because Vivaldi stopped the connection before any data was exchanged.

You cannot visit www.linkedin.com right now because the website uses HSTS. Network errors and attacks are usually temporary, so this page will probably work later.

Vivaldi не дает ничего сделать, а при игноре ошибки в firefox, он выкидывает на страницу блокировки от МГТС.

Пока писал этот пост, пару раз перпроверил. Один раз получилось зайти, второй раз снова ошибка. Второй раз firefox отказался пускать вовсе и выдал вот такое:

Did Not Connect: Potential Security Issue

Firefox detected a potential security threat and did not continue to www.linkedin.com because this website requires a secure connection.

www.linkedin.com has a security policy called HTTP Strict Transport Security (HSTS), which means that Firefox can only connect to it securely. You can’t add an exception to visit this site.
https://www.linkedin.com/

The certificate is not trusted because it is self-signed.
HTTP Strict Transport Security: true
HTTP Public Key Pinning: false

Сейчас сайт опять открывается.

Что надо настроить на vpn-сервере, чтобы такого не было? И вообще, подскажите, что почитать на тему для обычного пользователя, который не собирается становиться админом, но хочет иметь свой vpn.

 

another ()

АПКИТ попросила вице-премьера перенести вступление в силу закона об обязательной предустановке отечественного софта

Новости — Linux в России
Группа Linux в России

Ассоциация предприятий компьютерных и информационных технологий (АПКИТ) попросила вице-премьера Дмитрия Чернышенко перенести на неопределенный срок вступление в силу закона об обязательной предустановке отечественного софта на смартфоны, компьютеры и Smart TV. До вступления закона в силу осталось меньше двух месяцев, но чиновники до сих пор не объяснили, какое ПО и в каком порядке устанавливать на устройства, поясняют участники рынка. Соответствующее постановление пока только прорабатывается в правительстве.

Закон о предустановке отечественного ПО вступает в силу с 1 января 2021 года и обязывает устанавливать на смартфоны, компьютеры и телевизоры Smart TV при их продаже отечественные программы. За нарушения предлагается штрафовать должностных лиц на сумму до 50 тыс. руб., а юридических — до 200 тыс. руб. Закон должен был вступить в силу в июле 2020 года, но 31 марта Госдума отсрочила вступление до 1 января.

АПКИТ напоминает, что до сих пор не определены порядок установки отечественных программ, типы устройств, на которые их нужно ставить, возможность продажи ранее ввезенной в страну электроники без российского программного обеспечения (ПО) и даже его список и виды.

Неясно, и кто будет контролировать исполнение требований закона. Из-за правовой неопределенности производители не успеют к 2021 году обеспечить установку на устройства российского ПО, заключают в АПКИТ.

«Мы неоднократно встречались для обсуждения требований и порядка предустановки с профильными ассоциациями, производителями техники, ритейлерами. Нами была услышана общая озабоченность сроками, и в настоящий момент мы прорабатываем варианты, которые позволят сбалансировать интересы всех участников»,— заявил заместитель главы Минцифры Максим Паршин.

>>> Подробности

 , ,

anonymous ()

Создание загрузочных образов boobstrap v1.2

Новости — Open Source
Группа Open Source

Спустя всего месяц неспешной разработки состоялся релиз boobstrap v1.2 — набор инструментов на POSIX shell для создания загрузочных образов и накопителей.

( читать дальше... )

>>> Исходный код

 ,

Spoofing ()

boobstrap v1.1

Форум — Talks

Скриншот

Спустя несколько дней активной разработки состоялся релиз boobstrap v1.1 — набор POSIX shell скриптов для создания загрузочных носителей с ОС GNU/Linux.

Что нового в этой версии?

  • Добавлена поддержка busybox, оно не обязательно, но если оно установлено в вашей системе, — оно будет использовано при создании initrd образов. Если нет, то по прежнему весь необходимый набор утилит будет скопирован с вашей системы.
  • Оверлеи (образы систем) теперь можно хранить на любых устройствах хранения данных. В версии 1.0 при создании загрузочного образ система с дистрибутивом линукса «вшивалась» прямо в initrd, в результате чего initrd мог получиться больших размеров и не на всех системах загружаться, но теперь благодаря busybox стало возможным хранить образы на любых накопителях информации. Оверлеи можно хранить на том же ISO образе или на других накопителях отдельно.
  • Добавлена отдельная утилита mkoverlayfs для создания оверлеев, а именно это могут быть директории, cpio-архивы, squashfs-образы. Это удобно для ручного создания оверлеев с последующим их перемещением на initd-образ или создаваемый загрузочный ISO-образ.
  • Утилита mkbootisofs теперь поддерживает все те же опции что и mkinitramfs, так например при создании оверлеев через mkbootisofs `mktemp -d` --overlay rootfs-system/ --overlay rootfs-changes/ --squashfs > boot.iso перечисленные оверлеи будут добавлены на сам ISO-образ. Больше нет необходимости создавать и загружать initrd огромных размеров.
  • Создаваемый initrd теперь может работать сам по себе mkinitramfs `mktemp -d` > initrd.img без необходимости переключаться в какую-либо систему. initrd будет сам пытаться найти систему из оверлеев на всех доступных накопителях и переключаться в неё. Для работы этой функции потребуется наличие busybox.
  • Обеспечена полная обратная совместимость, таким образом, что не имеет значение, откуда и как вы загружаетесь и какими инструментами пользуетесь. Больше нет обязательных к установке программ-зависимостей (кроме как для создания ISO). Загружаемый initrd прекрасно работает при использовании нативных утилит из вашей хост-системы, либо же при использовании busybox. Так же без разницы, где итоговая система будет распологаться, на самом initrd или на отдельном устройстве накопителе информации (ISO, USB, HDD/SSD, CD-ROM...). initrd загрузится в любом случае, если найдёт куда.
  • Добавлена возможность загружать систему в SHMFS (tmpfs, ramfs) и переключаться в чистое окружение tmpfs без использования OVERLAY_FS. Таким образом обеспечена работа с ванильным ядром, просто make defconfig && make и у вас всё будет работать. Стоит при этом учесть, что система может занимать много места в оперативной памяти, подробнее уточняйте у вашего du -csh your-gentoo-chroot/. Так же, теперь использование SHMFS это поводение загрузчика initrd по-умолчанию, и если вы хотите продолжить использование оверлеев, необходимо принудительно их включить.
  • Добавлены следующие опции для передачи ядру Linux при загрузке.
    • boobs.use-shmfs — при использовании данной опции данные со всех оверлеев будут скопированы в одну tmpfs папку, после чего система будет полностью загружена и работать прямиком из чистого tmpfs. Используйте данную опцию с осторожностью. Так например, если ваша система распологается внутри initrd-образа, к примеру, хранится как rootfs.cpio-архив, и размер данного архива 1ГБ, то прежде чем система будет окончательно загружена, она должна быть распакована из архива, а для этого потребуется ещё 1ГБ памяти помимо уже загруженого initrd, и плюс ещё немножко на запущенные программы. И только после того как система будет окончательно загужена, первичный rootfs.cpio-архив будет удалён из памяти и 1ГБ памяти будет освобождён. Учитывайте такие нюансы. Если же система в rootfs.cpio-архиве хранится на каком-либо носителе, например ISO на USB, то тогда потребуется всего 1ГБ памяти для распаковки системы в память. Так же учитывайте, что это поведение по-умолчанию, поскольку SHMFS поддерживается ванильным ядром «из коробки», а CONFIG_OVERLAY_FS нужно включать, что может быть не дружелюбно к пользователю, как женщины не дружелюбны ко мне.
    • boobs.use-overlayfs — опция, при которой будет использована файловая система Overlay FS для монтирования, загрузки и дальнейшей работы всех образов с оверлеями. Например, SquashFS-образ с системой будет смонтирован в папку, после чего система будет загружена и работать из данного SquashFS-образа с использованием Overlay FS. При использовании оверлеев так же добавлена возможность сохранения всех изменений сделанных в системе. Вся история изменений сохраняется в папке /mnt/overlays/rootfs-changes. Например, когда вы загрузились в свою систему, запускаются различные демоны, которые вносят свои данные в корень файловой системы, или например вы создаёте файлы, и так далее и тому подобное. Все эти изменения, внесённые в систему, доступны через папку /mnt/overlays/rootfs-changes. Вы можете её архировать и сохранять с последующей загрузкой как оверлей.
    • boobs.copy-to-ram — опция позволяет скопировать образы с оверлеями в память, прежде чем система будет с ними работать. Например, когда вы загрузились с USB-флешки, все образы соответственно будут смонтированы с данной USB-флешки и система будет загружена и работать с неё. Однако, указав данную опцию, все образы с оверлеями будут предварительно скопированы с USB-флешки в память, и только затем подключены, и система будет окончательно загружена, после чего USB-флешку можно отключить от вашего устройства.
    • boobs.search-rootfs — по-умолчанию все созданные оверлеи сохраняются в папке /system/overlays, но вы можете указать любую свою папку на выбор или даже просто файл, где следует искать и откуда загружать оверлеи с вашей системой. Так например, указав опцию для ядра boobs.search-rootfs=/filesystem.squashfs, и далее создав утилитой mkoverlayfs свой оверлей с системой, положив его в корень любого вашего накопителя информации, будь то диск, флешка... initrd будет искать данный образ в корне каждого накопителя информации, и в случае успеха оверлей с системой будет загружен. Опять же, если вы хотите загрузить несколько оверлеев наложенных друг поверх друга, то укажите, внезапно, директорию!
  • Ну и, конечно же, обновлена документация, за что отдельное спасибо камраду Difrex за перевод файла README в формат Markdown.

Так же, товарищем @swine с IRC-канала #lor @ freenode поступил запрос загружать оверлей не с initrd, не с iso-образа, а именно с жёсткого диска. В качестве примера рассмотрю эту ситацию и опишу как это делается.

Прежде всего, у вас должна быть подготовлена ваша система в отдельной директории, разверните какой-нибудь чрут, да хоть ту же Gentoo скачайте и распакуйте в директорию (шутки кончились, да, теперь всё сульёзна!). Допустим, в gentoo/.

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

# mkoverlayfs gentoo/ --squashfs-xz --output /gentoo.squashfs

Теперь создадим «фирменный» initrd-образ, обычный, без ничего.

# mkinitramfs `mktemp -d` > /boot/initrd

Для загрузки осталось лишь обновить загрузчик и указать загрузку ядра со следеующими опциями:

linux /boot/vmlinuz boobs.use-overlayfs boobs.search-rootfs=/gentoo.squashfs
initrd /boot/initrd

Всё, перезагружаем компьютер, выбираем в загрузчике наши опции и получаем на выходе работающий /gentoo.squashfs через Overlay FS, сохраняющий все изменения в памяти (tmpfs).

При желании можете добавить опцию boobs.copy-to-ram и отнести жёсткий диск на свалку истории, личная рекомендация от Спуфаря.

 

Spoofing ()

Комплекс загрузочных скриптов boobstrap

Форум — Talks

Это черновой вариант моих скриптов, которые я использую для создания загрузочных BIOS/UEFI ISO-образов с линуксами, которыми я пользуюсь сам для жизни в tmpfs. Тупа рабочий код без проверок и «защит от дурака», только чтобы показать всем как создаются ISO. В следующих версиях уже будут все защиты, все проверки на установленные утилиты и прочая, а пока — просто показываю и прошу ваших советов.

И так, код включает в себя три утилиты:

  • mkbootstrap — утилита аналогична debootstrap, pacstrap, создаёт рабочее окружение в chroot/ директории одной командой.
  • mkinitramfs — утилита создаёт initramfs-образ из директории, подключая chroot/ директории как раздельные «слои» (overlay), используя squashfs для сжатия.
  • mkbootisofs — утилита создаёт из директории загрузочный BIOS/UEFI гибридный образ, который можно записать на CD, DVD или dd'шнуть на USB-флешку.

Для работы всего это безобразия необходимы: grub2/grub2-efi, squashfs-tools, dosfstools, xorriso. В принципе, я считаю это немного, никакой экзотики, удалось обойтись малыми жертвами, ИМХО. Все утилиты надо запускать через boobstrap, т.к. они лежат в одном файле, в будущем сделаю симлинками (или разделю на отдельные файлы).

По порядку.

boobstrap mkbootstrap crux_gnulinux chroot/ --ports-dir /usr/ports/packages [--ports-dir /usr/ports/another] [package name] [...]

Утилита установит все пакеты в заданную chroot/ директорию. Можно указать несколько --ports-dir, можно указать только названия пакетов которые будут найдены в заданных директориях и установлены, например, если вам не нужен весь /usr/ports/core, а только ключевые пакеты, то можно их указать списком. Название crux_gnulinux зарезервированная переменная, в будущем я добавлю поддержку gentoo_gnulinux и других дистрибутивов.

В данный момент утилита не будет работать без pkgadd, чтобы её получить вам придётся скачать CRUX и вытащить её оттуда. Напоминаю, что всё это черновой вариант.

Если вы решились ею воспользоваться, то чтобы она заработала прежде установите pkgadd (если у вас не CRUX):

wget http://ftp.morpheus.net/pub/linux/crux/latest/iso/crux-3.5.iso
mount crux-3.5.iso /mnt/crux-media
tar -xOf /mnt/crux-media/crux/tools/pkgutils#*.pkg.tar.gz usr/bin/pkgadd > /usr/bin/pkgadd
chmod +x /usr/bin/pkgadd

Далее ставим в chroot CRUX одной командой.

mkdir chroot-crux-core/

boobstrap \
  mkbootstrap crux_gnulinux chroot-crux-core/ \
    \
    --ports-dir /mnt/crux-media/crux/core

Если хотим минимальный CRUX, то список пакетов можно перечислить (формат перечисления не важен, я просто для красоты так сделал).

mkdir chroot-crux-core-xtreme/

boobstrap \
  mkbootstrap crux_gnulinux chroot-crux-core-xtreme/ \
    \
    --ports-dir /mnt/crux-media/crux/core \
    \
    acl attr bash bzip2 coreutils dash dhcpcd e2fsprogs elfutils eudev \
    file filesystem findutils gawk glibc grep gzip inetutils iproute2 \
    kbd kmod less libcap libdevmapper libpcre linux-pam lzo ncurses \
    openssh openssl pkgutils procps rc readline shadow start-stop-daemon \
    sysfsutils sysklogd sysvinit tar util-linux wget which xz zlib \
    \
    --ports-dir /mnt/crux-media/crux/opt \
    \
    grub2 grub2-efi

Если хотим вообще всё, то перечисляем все директории без указания пакетов.

mkdir chroot-crux-maximum-edishon/

boobstrap \
  mkbootstrap crux_gnulinux chroot-crux-maximum-edishon/ \
    \
    --ports-dir /mnt/crux-media/crux/core \
    --ports-dir /mnt/crux-media/crux/opt \
    --ports-dir /mnt/crux-media/crux/xorg

Далее.

boobstrap mktinitramfs initramfs/ --overlay overlay-one/ [ --overlay overlay-two/] --output $PWD/initrd

Утилита создаст из директории initramfs/ готовый к употреблению initramfs-образ, в данный момент обязательно требуется указывать --overlay, он же chroot/, в который вы будете загружаться. В будущем я расширю настройки, обязательно сделаю --standalone и другие варианты загрузки прямиком в tmpfs, даже без squashfs, просто tmpfs. Но потом.

Сейчас. В чём суть оверлеев. В chroot/ у нас установлена система, но чтобы её не засорять, мы создадим директорию settings/, куда отдельно складываем все настройки.

Например, я хочу отредактировать файл chroot/etc/rc.local, я не буду делать этого в chroot/, чтобы оставить его «ванильным», а скопирую его в директорию settings/etc/rc.local, отредактирую, и при загрузке initramfs наложит поверх слоя chroot/ ещё один слой settings/, таким образом мы сохраняем ванильную систему ИИИИИ применяем наши настройки поверх неё.

Ду ит. Джаст ду ит.

mkdir initramfs/

boobstrap mkinitramfs initramfs/ \
  --overlay chroot-crux-core-xtreme/ \
  --overlay settings/ \
  --output $PWD/initrd

На выходе получили initrd, в котором лежат два squashfs-образа с chroot-crux-core-xtreme и нашими settings.

Другая ситуация. Мы хотим core отдельно, firefox отдельно, libreoffice отдельно, и, конечно же, наш $HOME отдельно. Только для того, чтобы создать иллюзию порядка в системе, — в конечном счёте все эти слои будут вместе друг на друге, но нам ведь не составит труда удалить или обновить один конкретный слой. Этакий flatpack / snapd на минималках. :)

mkdir initramfs/

boobstrap mkinitramfs initramfs/ \
  --overlay chroot-crux-core/ \
  --overlay chroot-crux-xorg/ \
  --overlay firefox-bin/ \
  --overlay libreoffice/ \
  --overlay fvwm/ \
  --overlay /home/username \
  --overlay /root \
  --output $PWD/initrd

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

boobstrap mkbootisofs directory/ > output.iso

Вот так вот просто, да. Просто берёт просто директорию и всё что в ней есть просто упаковывает в ISO. Просто просто. Не забудьте только положить туда vmlinuz и initrd.

mkdir bootimage/
mkdir bootimage/boot

cp (возьмите где хотите)/vmlinuz bootimage/boot/vmlinuz
cp                      ./initrd bootimage/boot/initrd

boobstrap mkbootisofs bootimage/ > bootable.iso

Можно сразу dd:

boobstrap mkbootisofs bootimage/ | dd of=/dev/sdX status=progress

Давайте ещё один пример приведу.

Gentoo.

1. Скачиваем, распаковываем в chroot

mkdir gentoo-chroot/
wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200605T133220Z/stage3-amd64-20200605T133220Z.tar.xz
tar xf stage3-* -C gentoo-chroot/

2. Упаковываем в initramfs.

mkdir gentoo-initramfs/
boobstrap mkinitramfs gentoo-initramfs/ --overlay gentoo-chroot/ --output $PWD/gentoo-initrd

3. Упаковываем в ISO.

mkdir gentoo-bootimage/
mkdir gentoo-bootimage/boot

cp (возьмите где хотите)/vmlinuz gentoo-bootimage/boot/vmlinuz
cp               ./gentoo-initrd gentoo-bootimage/boot/initrd

boobstrap mkbootisofs gentoo-bootimage > gentoo.iso

4. ?????

5. PROFIT!

Для загрузки в UEFI:

qemu-system-x86_64 \
  -bios $(locate OVMF.fd) \
  -enable-kvm -m 1G -boot d -cdrom gentoo.iso

Для загрузки в BIOS:

qemu-system-x86_64 \
  -enable-kvm -m 1G -boot d -cdrom gentoo.iso

Скриншот: http://dl.voglea.com/boobstrap.png

Скачать: http://dl.voglea.com/boobstrap.html

Ваши пожелания и предложения, кроме как найти себе женщину, приветствуются!

 , ,

Spoofing ()

Создание загрузочных образов boobstrap v1.0

Новости — Open Source
Группа Open Source

Хочу представить вашему вниманию фреймворк под названием boobstrap, написаный на POSIX shell, для создания загрузочных образов с дистрибутивами GNU/Linux. Фреймворк позволяет пройти весь пусть в три простых шага: от развёртывания системы в chroot, создания initramfs-образа включающего в себя систему из chroot, и в конечном счёте загрузочного ISO-образа. boobstrap включает в себя три утилиты mkbootstrap, mkinitramfs и mkbootisofs соответсвенно.

( читать дальше... )

>>> Получить исходный код

 

Spoofing ()

Релиз Ventoy 1.0.13

Новости — Open Source
Группа Open Source

Ventoy — это инструмент с открытым исходным кодом для создания загрузочного USB-накопителя для ISO-файлов. С ним вам не нужно форматировать диск снова и снова, вам просто нужно скопировать iso файл на USB диск и загрузить его. Вы можете скопировать несколько iso-файлов и выбрать необходимый в меню загрузки. Поддерживаются и Legacy BIOS, и UEFI режимы. Протестировано 260+ ISO-файлов (список).

В этом релизе:

  • Добавлена поддержка образов WinPE типа «N-в-одном»;

  • Добавлен плагин «menu_alias», позволяющий задать псевдоним для конкретного ISO-файла;

  • В плагине «theme» добавлена возможность задания режима дисплея;

  • Добавлен вызов меню загрузки с локального диска по клавише F4;

  • Добавлен режим отладки по клавише F5;

  • Обход ограничений, присущих некоторым Legacy BIOS;

  • Различные оптимизации и исправления ошибок, расширен список поддерживаемых ISO-файлов.

>>> Подробности

 , , ,

cocucka ()

CRUX в редакции MATE

Форум — Talks

http://62.109.19.86/dist/crux-amd64-mate.iso

Для тех, кто хотел бы пощупать CRUX, но ставить/разбираться лень. Загрузочный ISO с последними версиями пакетов на момент создания треда. Ядро Linux 5.7 ваниль, я не гарантирую, что оно у всех заведётся, включены только intel, nouveau и amd_gpu, ну и звук ещё. inb4: не умеешь — не берись.

Пишу скрипты для создания образов дистрибутивов и решил поделиться результатами работы.

Там же рядом ещё лежит, http://62.109.19.86/dist/crux-amd64-netboot.iso, минимально возможный CRUX, включающий в себя всего 47 пакетов, только чтобы загрузился и работал в сети.

acl			inetutils		rc
attr			iproute2		readline
bash			kbd			shadow
bzip2			kmod			start-stop-daemon
coreutils		less			sysfsutils
dhcpcd			libcap			sysklogd
e2fsprogs		libdevmapper		sysvinit
elfutils		libpcre			tar
eudev			linux			util-linux
file			linux-pam		vim
filesystem		lzo			wget
findutils		ncurses			which
gawk			openssh			xz
glibc			openssl			zlib
grep			pkgutils
gzip			procps

Ну а вообще, вы хотели бы видеть сборки на основе CRUX?

 , ,

Spoofing ()

пайнбука

Галерея — Скриншоты

pinebook с 64 битным gentoo/wmaker и 32 битным ARM Linux Oberon.

вообще набор комманд aarch64 не имеет ничего общего с наборами инструкций 32 битных ARM, но процессор пайнбука может выполнять оба набора.

>>> Просмотр (1920x1080, 339 Kb)

 , , , ,

noch ()

Firefox Better Web with Scroll — новая модель монетизации от Mozilla

Новости — Mozilla
Группа Mozilla

24 марта, в своём блоге компания Mozilla предложила пользователям Firefox стать участниками тестирования сервиса «Firefox Better Web with Scroll», который нацелен на новую модель финансирования сайтов.

Цель проекта — возможность использования платной подписки для финансирования создания контента. Это должно позволить владельцам сайтов обойтись без рекламы. Сервис организован совместно с проектом Scroll.

Модель выглядит примерно так: пользователь оплачивает подписку на сервис и может просматривать сайты, присоединившиеся к Scroll, без рекламы. Около 70% от полученных средств перечисляется владельцам сайтов (что на 40% превышает их обычный доход от рекламы).

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

>>> Подробности

 , ,

Satori ()

PinePhone BraveHeart Edition

Галерея — Рабочие места

Доехал до меня неделю назад Pinephone Braveheart edition.

Как и следовало ожидать, все существующие прошивки очень сырые. Наиболее отзывчивый интерфейс у ubuntu phone, но не могу сказать что удобный. В LuneOS интерфейс вроде поудобнее, но там не получилось подключиться к wifi с авторизацией.

Камера не заработала из коробки нигде.

То, что печалит больше всего, - энергоэффективность. Ubuntu phone во включенном состоянии (с выключенным экраном, без sim-карты) на полностью заряженном аккумуляторе, садится меньше чем за ночь. Остальные прошивки, думаю, так же.

В целом кажется, что пользоваться им как телефоном в ближайшее время не получится. Пока не придумал, как буду его использовать.

cast @eR

Если кому-то интересно, могу дать в Москве на время поиграться и/или зайти с ним на встречу МЛУГа (@DR_SL, @Goury, они сейчас проводятся?)

>>> Просмотр (4208x3120, 1303 Kb)

 ,

Tanger ()

Porteus Kiosk 5.0.0 - дистрибутив для реализации демонстрационных стендов и терминалов самообслуживания

Новости — Gentoo Linux
Группа Gentoo Linux

2-го марта вышла в свет пятая версия дистрибутива Porteus Kiosk 5.0.0, основанного на Gentoo Linux, и предназначенного для быстрого развертывания демонстрационных стендов и терминалов самообслуживания. Размер образа составляет всего 104 мб.

Дистрибутив включает в себя минимальное окружение, необходимое для запуска веб-браузера (Mozilla Firefox или Google Chrome) с урезанными правами — запрещены изменения настроек, установка дополнений или приложений, закрыт доступ к страницам, не попадающим в белый список. Также имеется предустановленный ThinClient для работы терминала в роли тонкого клиента.

Настройка дистрибутива осуществляется с помощью совмещенного с установщиком специального мастера настройкиKIOSK WIZARD.

После загрузки ОС проводит верификацию всех компонентов по контрольным суммам, а монтируется система в состоянии только чтения.

Основные изменения:

  • Пакетная база синхронизирована с репозиторием Gentoo на 2019.09.08
    • Ядро обновлено до версии Linux 5.4.23
    • Google Chrome обновлен до версии 80.0.3987.122
    • Mozilla Firefox обновлена до версии 68.5.0 ESR
  • Появилась новая утилита для настройки скорости курсора мыши — Скриншот
  • Появилась возможность настройки разных по длительности интервалов смены вкладок браузера в режиме киоскаСкриншот
  • Firefox научили показывать изображения в формате TIFF (через промежуточное преобразование его в формат PDF)
  • Системное время теперь синхронизируется с NTP сервером каждый день (ранее синхронизация работала только при перезагрузке терминала)
  • Добавлена виртуальная клавиатура для облегчения ввода пароля сессии (ранее требовалось подключение физической клавиатуры)

>>> Подробности

 ,

Zhbert ()

Установка MicroG с нуля - руководство по noob

Форум — Mobile

Привет всем. Правильная установка MicroG - это то, с чем у меня некоторое время были проблемы; в основном потому что (1) Я не смог найти надежный способ включить подделку подписи (2) потому что я не смог найти установщик, который сделал то, что я хотел. Это означало, что мне пришлось придерживаться устройств, официально поддерживаемых LineageOS, и установить сборку Lineage for MicroG - что не идеально, поскольку существует множество устройств со стабильными неофициальными ПЗУ.

Вчера мне удалось получить совершенно функциональную установку на Galaxy S6 - вот как. Обратите внимание, что это руководство может очень хорошо работать для любого другого устройства, нет никаких оснований ограничивать его S6.

Что такое microG?

Проект microG является «клоном свободного программного обеспечения собственных библиотек и приложений Google». Более конкретно, это поле FLOSS (бесплатное / бесплатное программное обеспечение с открытым исходным кодом), которое позволяет приложениям, разработанным для служб Google Play, работать в системах, где службы Play недоступны. Он предоставляет все необходимые API-интерфейсы, предоставляемые сервисами Google Play, чтобы приложения, работающие с ним, могли нормально работать.

Как установить MicroG

Установка MicroG не так проста, потому что она должна стать частью системы, будет гораздо проще использовать ПЗУ, на котором она уже установлена. После успешной установки и внедрения каждый может использовать microG и поддерживать его в актуальном состоянии.

Шаг 01 - Перейдите в Настройки> Настройки Emteria и затем включите «Подмена подписи».

Шаг 02 - Откройте F-Droid и добавьте хранилище microG microgdownload.com для загрузки файлов, связанных с microG.

Шаг 03 - следуйте инструкциям по установке на странице загрузки

Вот и все. Кажется, все работает, и все проверено в приложении настроек MicroG.

Надеюсь, что это окажется полезным!

 ,

stepzzzz ()

PeerTube 2.1 — свободная децентрализованная система видеовещания

Новости — Open Source
Группа Open Source

12 февраля состоялся релиз системы децентрализованного видеовещания PeerTube 2.1, развиваемой как альтернатива централизованным платформам (таким как YouTube, Vimeo), работающая по принципу «peer-to-peer» — контент хранится непосредственно на машинах пользователей. Исходный код проекта разрабатывается на условиях лицензии AGPLv3.

( читать дальше... )

В настоящее время в федеративной сети видеовещания PeerTube насчитываются около 300 серверов, основанных и поддерживаемых добровольцами.

>>> Обсуждение на OpenNET

>>> Обсуждение на HN

>>> Обсуждение на Reddit

>>> Подробности

 ,

Zhbert ()

Использование ProtonVPN без заворачивания всего трафика

Форум — Admin

Как заюзать ProtonVPN только для браузерного трафика? Думаю о создании и запуске docker-контейнера, в котором будет openvpn и socks5-прокси, адрес этого прокси пропишу в настройках браузера.

Реально ли такое? И можно ли как-то проще?

 , ,

kinkstarter ()

Второй кандидат в релизы libmdbx v1.0 после пяти лет разработки

Новости — Open Source
Группа Open Source

Библиотека libmdbx является существенно переработанным потомком LMDB — предельно высокопроизводительной, компактной встраиваемой базой данных класса ключ-значение. Текущая версия v0.5 является техническим релизом, отмечает завершение каких-либо доработок и переход к фазе публичного финального тестирования и стабилизации, с последующем формированием первого полноценного релиза библиотеки.

LMDB является достаточно известной транзакционной встраиваемой СУБД класса «ключ-значение» на основе дерева B+ без упреждающей журнализации, которая позволяет рою многопоточных процессов конкурентно и предельно эффективно работать с локально-разделяемой (не сетевой) БД. В свою очередь MDBX быстрее и надежнее LMDB, при этом libmdbx сохраняет все ключевые возможности своего прародителя, такие как ACID и неблокирующее чтение с линейным масштабированием по ядрам CPU, а также добавляет несколько новых.

Описание отличий и усовершенствований libmdbx относительно LMDB заслуживает отдельной статьи (планируется публикации на «Хабре» и «Medium»). Здесь же уместно упомянуть самые важные и заметные:

( читать дальше... )

 , , , ,

Deleted ()

u-boot некорректно исполняет boot.scr

Форум — Development

Поставил задачу - сделать загрузочную SD-карту для Orange Pi Zero с u-boot и ядром 4.15 (для дистрибутива Ubuntu 18.04 LTS)

Имеющиеся дистрибутивы на оф.сайте Orange Pi плохо поддерживаются и практически не обновляются.

Orange Pi Zero (https://linux-sunxi.org/Xunlong_Orange_Pi_Zero), SoC Allwiner H2+ 1 ГГц, ОЗУ 256 Мб

1. ПОДГОТОВКА

Собрал загрузчик из последней ревизии главной ветки проекта u-boot git clone --depth 1 --single-branch --branch master https://github.com/u-boot/u-boot.git

В целях отладки перед сборкой установил в .config параметр CONFIG_LOGLEVEL=8 (вместо стандартного 4).

Получил на выходе:

u-boot-sunxi-with-spl.bin – загрузчик

sun8i-h2-plus-orangepi-zero.dtb – древовидное описание устройства

Собрал ядро Linux версии 4.15 (с этой версией, согласно Википедии, работает LTS дистрибутив Ubuntu 18.04).

Получил на выходе:

uImage – образ ядра

Составил boot.cmd следующего содержания:

echo BOOT.SCR BEGIN
#setenv machid 1029
setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p2 init=/sbin/init rootwait rootfstype=ext4 panic=10 consoleblank=0 enforcing=0 loglevel=7
load mmc 0 0x42000000 uImage
load mmc 0 0x43000000 sun8i-h2-plus-orangepi-zero.dtb
bootm 0x42000000 - 0x43000000

Преобразовал это в boot.scr mkimage -C none -A arm -T script -d boot.cmd boot.scr

2. ЗАПИСЬ

Записал на флешку с помощью dd u-boot-sunxi-with-spl.bin

На первый раздел с «загрузочным» флагом скопировал файлы: uImage, sun8i-h2-plus-orangepi-zero.dtb, boot.cmd

3. ПРОВЕРКА

Первая загрузка. Вывод консоли контролирую через последовательный порт.

U-Boot SPL 2020.01-rc3 (Nov 19 2019 - 19:19:59 +0300)
DRAM: 256 MiB
Trying to boot from MMC1


U-Boot 2020.01-rc3 (Nov 19 2019 - 19:19:59 +0300) Allwinner Technology

CPU:   Allwinner H3 (SUN8I 1680)
Model: Xunlong Orange Pi Zero
DRAM:  256 MiB
MMC:   mmc@1c0f000: 0, mmc@1c10000: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   phy interface0
eth0: ethernet@1c30000
starting USB...
Bus usb@1c1a000: USB EHCI 1.00
Bus usb@1c1a400: USB OHCI 1.0
Bus usb@1c1b000: USB EHCI 1.00
Bus usb@1c1b400: USB OHCI 1.0
scanning bus usb@1c1a000 for devices... 1 USB Device(s) found
scanning bus usb@1c1a400 for devices... 1 USB Device(s) found
scanning bus usb@1c1b000 for devices... 1 USB Device(s) found
scanning bus usb@1c1b400 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
395 bytes read in 4 ms (95.7 KiB/s)
## Executing script at 43100000
BOOT.SCR BEGIN
Wrong Image Format for bootm command
ERROR: can't get kernel image!
SCRIPT FAILED: continuing...
15297 bytes read in 8 ms (1.8 MiB/s)

Device 0: unknown device
_sun8i_emac_eth_init: Timeout
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/01-02-42-c1-50-2c-d1
ethernet@1c30000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000

Провал!

Почему-то команды из boot.scr на копирование файлов в память устройства fatload игнорируются, но echo и bootm выполняются.

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

=> crc32 0x42000000 0x3a1570
crc32 0x42000000 0x3a1570
crc32 for 42000000 ... 423a156f ==> aa7c90eb
=> fatload mmc 0 0x42000000 uImage
fatload mmc 0 0x42000000 uImage
3806576 bytes read in 198 ms (18.3 MiB/s)
=> crc32 0x42000000 0x3a1570
crc32 0x42000000 0x3a1570
crc32 for 42000000 ... 423a156f ==> dccd4918

dccd4918 – это правильная контрольная сумма. Т.е. загрузка в память из boot.scr действительно не выполнялась, а вручную файл в память загружается нормально.

Если в самом начале загрузки перехватить управление в u-boot и проверить доступ к SD-карте – всё ОК, доступ есть (да и boot.scr u-boot без проблем берет с карты).

=> fatls mmc 0
fatls mmc 0
    15297   sun8i-h2-plus-orangepi-zero.dtb
  3806576   uImage
      395   boot.scr

3 file(s), 0 dir(s)

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

U-Boot SPL 2020.01-rc3 (Nov 19 2019 - 19:19:59 +0300)
DRAM: 256 MiB
Trying to boot from MMC1


U-Boot 2020.01-rc3 (Nov 19 2019 - 19:19:59 +0300) Allwinner Technology

CPU:   Allwinner H3 (SUN8I 1680)
Model: Xunlong Orange Pi Zero
DRAM:  256 MiB
MMC:   mmc@1c0f000: 0, mmc@1c10000: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   phy interface0
eth0: ethernet@1c30000
starting USB...
Bus usb@1c1a000: USB EHCI 1.00
Bus usb@1c1a400: USB OHCI 1.0
Bus usb@1c1b000: USB EHCI 1.00
Bus usb@1c1b400: USB OHCI 1.0
scanning bus usb@1c1a000 for devices... 1 USB Device(s) found
scanning bus usb@1c1a400 for devices... 1 USB Device(s) found
scanning bus usb@1c1b000 for devices... 1 USB Device(s) found
scanning bus usb@1c1b400 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  2 
 0 
=> fatload mmc 0 0x42000000 uImage
fatload mmc 0 0x42000000 uImage
3806576 bytes read in 198 ms (18.3 MiB/s)
=> fatload mmc 0 x 0x43000000 sun8i-h2-plus-orangepi-zero.dtb
fatload mmc 0 0x43000000 sun8i-h2-plus-orangepi-zero.dtb
15297 bytes read in 7 ms (2.1 MiB/s)
=> bootm 0x42000000 - 0x43000000
bootm 0x42000000 - 0x43000000
## Booting kernel from Legacy Image at 42000000 ...
   Image Name:   Linux-4.15.0
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3806512 Bytes = 3.6 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
EHCI failed to shut down host controller.
   Loading Kernel Image
   Loading Device Tree to 49ff9000, end 49fffbc0 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.15.0 (slarti@RUMP) (gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)) #2 SMP Tue Nov 19 21:05:53 MSK 2019
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Xunlong Orange Pi Zero
...
[    2.166572] [<c0150380>] (cpu_startup_entry) from [<401017ac>] (0x401017ac)
[    2.173537] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Учитывая отсутствие второго раздела на SD-карте, ловлю Kernel Panic - это нормально.

Пробовал в boot.cmd менять fatload на load – безрезультатно, пробовал указывать вместо «mmc 0» адрес с разделом «mmc 0:1» – безрезультатно.

printenv ниже:

arch=arm
baudrate=115200
board=sunxi
board_name=sunxi
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=fel mmc0 usb0 pxe dhcp
bootargs=console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p2 init=/sbin/init rootwait rootfstype=ext4 panic=10 consoleblank=0 enforcing=0 loglevel=7
bootcmd=run distro_bootcmd
bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010:UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_fel=if test -n ${fel_booted} && test -n ${fel_scriptaddr}; then echo '(FEL boot)'; source ${fel_scriptaddr}; fi
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=devnum=0; run usb_boot
bootdelay=2
bootfstype=fat
bootm_size=0xa000000
console=ttyS0,115200
cpu=armv7
dfu_alt_info_ram=kernel ram 0x42000000 0x1000000;fdt ram 0x43000000 0x100000;ramdisk ram 0x43300000 0x4000000
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
eth1addr=12:42:c1:50:2c:d1
ethact=ethernet@1c30000
ethaddr=02:42:c1:50:2c:d1
fdt_addr_r=0x43000000
fdtcontroladdr=4bf59080
fdtfile=sun8i-h2-plus-orangepi-zero.dtb
fileaddr=43000000
filesize=3bc1
kernel_addr_r=0x42000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
mmc_bootdev=0
partitions=name=loader1,start=8k,size=32k,uuid=${uuid_gpt_loader1};name=loader2,size=984k,uuid=${uuid_gpt_loader2};name=esp,size=128M,bootable,uuid=${uuid_gpt_esp};name=system,size=-,uuid=${uuid_gpt_system};
preboot=usb start
pxefile_addr_r=0x43200000
ramdisk_addr_r=0x43300000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done; setenv devplist
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable media binary efi/boot/bootarm.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x43100000
serial#=02c00042c1502cd1
soc=sunxi
stderr=serial
stdin=serial,usbkbd
stdout=serial
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
uuid_gpt_esp=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
uuid_gpt_system=69dad710-2ce4-4e3c-b16c-21a1d49abed3

Environment size: 4665/131068 bytes 
ВОПРОС: почему не выполняются fatload из boot.scr? При этом echo и bootm выполняются исправно.

 , ,

yohabi ()

PineTime — свободные смарт-часы за 25$

Новости — Hardware and Drivers
Группа Hardware and Drivers

Сообщество Pine64, недавно анонсировавшее производство свободного смартфона PinePhone, представляет свой новый проект — смарт-часы PineTime.

Основные возможности часов:

  • Мониторинг сердечного ритма.
  • Емкая батарея, которой хватит на несколько дней.
  • Настольная док-станция для зарядки часов.
  • Корпус из цинкового сплава и пластика.
  • Наличие WiFi и Bluetooth.
  • Чип Nordic nRF52832 ARM Cortex-M4F (на частоте 64MHz) с поддержкой технологий Bluetooth 5, Bluetooth Mesh, проприетарным стеком ANT на 2,4 GHz и NFC-A.
  • Точные характеристики RAM и Flash-памяти пока не подтверждены, но, скорее всего, это 64KB SRAM и 512KB Flash.
  • Сенсорный экран 1.3" 240x240 IPS LCD.
  • Встроенная вибрация для уведомлений.

Предполагаемая цена — всего 25$.

В качестве основной операционной системы предлагается использовать «ОС реального времени» с открытыми исходниками - FreeRTOS. Так же в планах адаптировать ARM MBED. Но сообщество получит возможность адаптировать и другие известные системы для смарт-часов.

По словам Pine64: «Мы позволим сообществу и разработчикам развивать проект в нужном направлении».

>>> Подробности

 , , , ,

fail2ban ()