Как заваривать кофе

Дизайнер пьёт кофе

Инженер помогает дизайнеру

Инженер помогает дизайнеру

Хорошие программисты точно знают что делают

Обновление Hackintosh до macOS 10.14 Mojave

Обновление Hackintosh до macOS 10.14 Mojave

Приветствую на страницах Техноджема. Уже более года являюсь пользователем Хакинтоша. Свой путь пиратского мака, я начал с High Sierra. Как писал в прошлых статьях о маке, он выступил для меня unix альтернативой Винде, вобрав в себя стабильность и поддерживаемость многих популярных, нужных для работы приложений и исключив забагованность и слабую поддержку специализированного софта Linux дистров. В целом всё устраивало, хотя интерфейс, на моей встройке Intel HD 530, был несколько тормознутым если сравнивать с Windows или Linux дистрибутивами. С появлением macOS 10.14 Mojave, решил сразу же обновиться до новой версии. Далее расскажу, какие шаги предпринял для этого.

Конфигурация моей машины описанная в статье «Установка Mac OS High Sierra Hackintosh на GA b250 HD3» несколько изменилась, так как материнская плата к сожалению сгорела. В связи с тем, что я использовал машину в рабочих целях, то есть она была нужна мне срочно, на поиски редкой материнки с идеальной совместимостью у меня не было времени, и я купил в ближайшем «электромаге» мать на том же B250 чипсете — GA B250M Gaming 3. После замены системной платы, не пришлось править конфиги, всё взлетело как родное, единственное что не заработало так это гибернация, но что уже поделать, привык жить без неё.

Итак перед обновлением c High Sierra до MacOS 10.14 Mojave Hackintosh, мне потребовалось обновить до последней версии Clover.

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

  • apfs.efi или ApfsDriverLoader.efi обязательно должен быть в EFI/CLOVER/drivers64UEFI.
  • FakeSMC.kext или VirtualSMC.kext+Lilu.kext в EFI/CLOVER/kexts/Other
  • apfs.efi не нужен ( нужно удалить) при использовании ApfsDriverLoader.efi, который загружает драйвер apfs из apfs контейнера.
  •  Требуется Lilu последней версии и последние версии плагинов. В моём случае я обновил Lilu.kext, AppleALC
  • Так же пришлось установить WhateverGreen.kext, без него графика не хотела взлетать
Обновление Hackintosh до macOS 10.14 Mojave

Обновлял простым скачиванием Mojave из App Store, после чего запустил установку. Перезагрузка происходила раза 3 и на всё обновление ушло чуть более часа.  У меня уже была файловая система APFS, поэтому не было конвертации. Поговаривают, что установить Mojave без APFS нельзя, и если у вас HFS+, то при обновлении происходит довольно длительный процесс конвертации файловой системы.

Выкладываю в ознакомительных целях свой config.plist, обращаю внимание что слепое копирование к себе не даст результата, необходимо ОБЯЗАТЕЛЬНО внести правки в раздел SMBIOS, так как я убрал свои серийные номера и UUID всякие, они должны быть уникальные:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Fixes</key>
			<dict>
				<key>AddDTGP</key>
				<false/>
				<key>AddMCHC</key>
				<false/>
				<key>DeleteUnused</key>
				<true/>
				<key>FixDisplay</key>
				<false/>
				<key>FixHDA</key>
				<false/>
				<key>FixMutex</key>
				<true/>
				<key>FixRegions</key>
				<true/>
			</dict>
			<key>Name</key>
			<string>DSDT.aml</string>
			<key>Patches</key>
			<array>
				<dict>
					<key>Comment</key>
					<string>change GFX0 to IGPU</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					R0ZYMA==
					</data>
					<key>Replace</key>
					<data>
					SUdQVQ==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change HDAS to HDEF</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					SERBUw==
					</data>
					<key>Replace</key>
					<data>
					SERFRg==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change HECI to IMEI</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					SEVDSQ==
					</data>
					<key>Replace</key>
					<data>
					SU1FSQ==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change SAT0 to SATA</string>
					<key>Disabled</key>
					<false/>
					<key>Find</key>
					<data>
					U0FUMA==
					</data>
					<key>Replace</key>
					<data>
					U0FUQQ==
					</data>
				</dict>
			</array>
		</dict>
		<key>DropTables</key>
		<array>
			<dict>
				<key>Signature</key>
				<string>DMAR</string>
			</dict>
		</array>
		<key>FixHeaders</key>
		<true/>
		<key>SSDT</key>
		<dict>
			<key>Generate</key>
			<dict>
				<key>CStates</key>
				<false/>
				<key>PStates</key>
				<false/>
			</dict>
		</dict>
		<key>smartUPS</key>
		<false/>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Arguments</key>
		<string></string>
		<key>CustomLogo</key>
		<string>Theme</string>
		<key>DefaultLoader</key>
		<string>boot.efi</string>
		<key>DefaultVolume</key>
		<string>LastBootedVolume</string>
		<key>HibernationFixup</key>
		<false/>
		<key>Legacy</key>
		<string>PBR</string>
		<key>NeverDoRecovery</key>
		<true/>
		<key>NeverHibernate</key>
		<false/>
		<key>StrictHibernate</key>
		<true/>
		<key>Timeout</key>
		<integer>2</integer>
		<key>XMPDetection</key>
		<false/>
	</dict>
	<key>CPU</key>
	<dict>
		<key>BusSpeedkHz</key>
		<integer>100000</integer>
	</dict>
	<key>Devices</key>
	<dict>
		<key>Audio</key>
		<dict>
			<key>AFGLowPowerState</key>
			<true/>
			<key>Inject</key>
			<integer>1</integer>
			<key>ResetHDA</key>
			<false/>
		</dict>
		<key>USB</key>
		<dict>
			<key>AddClockID</key>
			<true/>
			<key>FixOwnership</key>
			<true/>
			<key>Inject</key>
			<true/>
		</dict>
		<key>UseIntelHDMI</key>
		<true/>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Custom</key>
		<dict>
			<key>Entries</key>
			<array>
				<dict>
					<key>Disabled</key>
					<false/>
					<key>Ignore</key>
					<false/>
					<key>Path</key>
					<string>\EFI\Manjaro\grubx64.efi</string>
					<key>Title</key>
					<string>Manjaro Linux</string>
					<key>Type</key>
					<string>All</string>
					<key>VolumeType</key>
					<string>Internal</string>
				</dict>
			</array>
		</dict>
		<key>Hide</key>
		<array>
			<string>Preboot</string>
		</array>
		<key>Mouse</key>
		<dict>
			<key>Enabled</key>
			<true/>
		</dict>
		<key>ScreenResolution</key>
		<string>1920x1080</string>
		<key>Theme</key>
		<string>BeautyDark</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>Intel</key>
			<false/>
		</dict>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<true/>
		<key>FakeCPUID</key>
		<string>0x0506E3</string>
		<key>KernelPm</key>
		<true/>
		<key>KernelXCPM</key>
		<false/>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>change 15 port limit</string>
				<key>Disabled</key>
				<false/>
				<key>Find</key>
				<data>
				g32MEA==
				</data>
				<key>InfoPlistPatch</key>
				<false/>
				<key>MatchOS</key>
				<string>10.13.x</string>
				<key>Name</key>
				<string>com.apple.driver.usb.AppleUSBXHCIPCI</string>
				<key>Replace</key>
				<data>
				g32Mfw==
				</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>change 15 port limit</string>
				<key>Disabled</key>
				<false/>
				<key>Find</key>
				<data>
				g710////EA==
				</data>
				<key>InfoPlistPatch</key>
				<false/>
				<key>MatchOS</key>
				<string>10.12.x</string>
				<key>Name</key>
				<string>com.apple.driver.usb.AppleUSBXHCIPCI</string>
				<key>Replace</key>
				<data>
				g710////Gw==
				</data>
			</dict>
		</array>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>02/08/2018</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>Вставить свой</string>
		<key>Board-ID</key>
		<string>Вставить свой</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardSerialNumber</key>
		<string>Вставить свой</string>
		<key>BoardType</key>
		<integer>10</integer>
		<key>BoardVersion</key>
		<string>1.0</string>
		<key>ChassisAssetTag</key>
		<string>iMac-Aluminum</string>
		<key>ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>ChassisType</key>
		<string>0x09</string>
		<key>Family</key>
		<string>iMac17,1</string>
		<key>FirmwareFeatures</key>
		<string>Вставить свой</string>
		<key>FirmwareFeaturesMask</key>
		<string>Вставить свой</string>
		<key>LocationInChassis</key>
		<string>Part Component</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>Mobile</key>
		<false/>
		<key>PlatformFeature</key>
		<string>0x00</string>
		<key>ProductName</key>
		<string>iMac17,1</string>
		<key>SerialNumber</key>
		<string>Вставить свой</string>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<string>Yes</string>
		<key>InjectSystemID</key>
		<true/>
	</dict>
</dict>
</plist>

Сейчас уже прилетело обновление до Mac OS Mojave Hackintosh до 10.14.1 (18B75), в целом системой доволен, новые баги не появились, а интерфейс стал на порядок более отзывчивым.

Braiins OS — первая Linux система для майнинга с полностью открытым исходным кодом

Braiins OS - первая Linux система для майнинга с полностью открытым исходным кодом

Компания Braiins Systems — оператор первого в истории майнингового пула Slush Pool, объявила о выпуске Braiins OS. Создатели заявляют, что это первая в мире система для майнинга с полностью открытым исходным кодом, которая стандартизирует принципы работы устройств и взаимодействия со Slush Pool, а также предоставляет пользователям полный контроль над своими майнерами.

Braiins OS основана на OpenWrt, — встроенная операционная система, основанная на ядре Linux, и предназначенная, в первую очередь, для домашних маршрутизаторов.

Те, кто знаком с OpenWrt, знают о том, что она очень универсальна. Поэтому Braiins OS также может быть расширена различными приложениями в будущем.

В Braiins Systems заявили, что создание нового программного обеспечения для добычи криптовалюты, стало следствием слишком большого количество различного ПО работающего нестандартно, что приводит к разным проблемам в майнинге. Компания пошла на этот шаг, с целью облегчить работу операторов и майнеров.

Braiins OS - первая Linux система для майнинга с полностью открытым исходным кодом

«Мы верим в философию открытости. Если у вас есть какое-то устройство, вы должны иметь над ним полный контроль, не беспокоясь насчёт всяческих «скрытых функций». Но с большинством современных майнинг-устройств дела обстоят, к сожалению, иначе. Уже несколько лет управляя Slush Pool, мы повидали немало случаев нестандартного поведения наших майнинг-устройств, что, в свою очередь, приводило к совершенно необязательным проблемам. Так почему бы не сделать прошивку, следующую стандартам и гарантирующую нашему пулу предсказуемую работу, принося пользу и пользователям, и оператору пула?»

Новая ОС постоянно отслеживает условия работы и мониторит состояние оборудования на предмет ошибок и проблем с производительностью. Так же создатели новинки утверждают, что благодаря использованию Braiins OS на 20{33d8302486bd10b0fde64d2037652320e6f176a736d71849c0427b0d7398501a} снижается энергопотребление, что не может ни радовать рядового майнера.

Начальная версия Braiins OS позволяет загружать образы для Antminer S9 и DragonMintT1. В настоящее время программное обеспечение находится на стадии альфа тестирования, и разработчики попросили майнеров протестировать его и поделиться отзывами  с целью сделать по настоящему отличный и полезный для всех продукт.

Топ 10 JavaScript и CSS библиотек октября 2018 года

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

1. Direction Reveal

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

Топ 10 JavaScript и CSS библиотек октября 2018 года

2. Toast UI Editor

Это markdown и WYSIWYG редактор , легко переключаемый между режимами markdown и WYSIWYG во время использования. Он предлагает просмотр в реальном времени визуализированного HTML, немедленную проверку синтаксических ошибок и синхронизацию прокрутки между режимами markdown и предварительного просмотра. Поддерживает ряд полезных расширений, таких как color picker, блок диаграмм, блок кода UML и многие другие.

Топ 10 JavaScript и CSS библиотек октября 2018 года

3. Micron.js

Micron — это js библиотека, которая позволяет добавлять различные CSS анимации  в элементы DOM. Интеракции могут управляться HTML атрибутами  или путем привязки методов JavaScript для изменения различных параметров, как то скорость, интенсивность и прочие.

Топ 10 JavaScript и CSS библиотек октября 2018 года

4. BaguetteBox

BaguetteBox — это чистая библиотека JavaScript для создания, так называемых, респонсив лайтбоксов. Он очень легкий, готовый для мобильных устройств, прост в использовании и настройке, а также использует потрясающие CSS3 графические переходы.

Топ 10 JavaScript и CSS библиотек октября 2018 года

Рекомендую к прочтению мою статью Топ 10 JavaScript и CSS библиотек ноября 2018 года в которой мы продолжим знакомство с новыми, интересными, на наш взгляд, библиотеками, представляю вашему вниманию новую подборку ноября 2018.

5. Sticky-Kit

Sticky-kit — это плагин jQuery, который позволяет прикреплять элементы к определенной области на странице, заставляя их придерживаться своих границ. Используя его , вы можете закрепить сайдбар, чтобы он оставался всегда на виду при скролинге.

Топ 10 JavaScript и CSS библиотек октября 2018 года

6. Pretty Checkbox

Это чистая библиотека CSS для создания красивых чекбоксов и переключателей. Поддерживает различные формы, цвета и анимации. Может использовать пользовательские значки шрифтов, значки SVG и умеет в SCSS кастомизацию.

Топ 10 JavaScript и CSS библиотек октября 2018 года

7. Bulma

Это бесплатный CSS фреймворк с открытым исходным кодом базирующийся на Flexbox. У Bulma есть 39 файлов .sass, которые можно импортировать отдельно. Вы можете легко его настроить  и создать свои собственные темы. Каждый элемент в Bulma является мобильно-ориентированным и оптимизирован для небольших экранов.

8. T-scroll

Мощная и простая в использовании библиотека прокрутки с полезными опциями и анимациями. Он поставляется с ванильным Sass и включает в себя большое количество CSS3 анимаций , таких как bounceIn, fadeIn, flip, rotate, zoom и многое другое. T-scroll совместим с большинством современных браузеров, включая IE 10+, Firefox, Chrome и Safari.

Топ 10 JavaScript и CSS библиотек октября 2018 года

9. Iconate

JavaScript библиотека , которая позволяет вам кликом мыши трансформировать одну иконку в другую с помощью множества плавных анимаций. Iconate работает со всеми шрифтами значков CSS — просто добавьте значок в свой HTML и используйте простой JavaScript API, чтобы выбрать, во что его преобразовать, и какую из 15 анимаций использовать.

Топ 10 JavaScript и CSS библиотек октября 2018 года

10. Simple Icons

Огромная коллекция бесплатных значков для популярных социальных сетей, приложений, сервисов и прочиих брендов. Поскольку все значки сделаны в SVG, их можно масштабировать до любого размера, не опасаясь пикселизации или пятен. Благодаря SVG они очень легковесные — большинство из них занимает менее 500 байт, более детализированные — 1-2 КБ.

Топ 10 JavaScript и CSS библиотек октября 2018 года

А чем пользуетесь Вы? Если у вас есть на примете какие-то интересные Javascript и CSS библиотеки, просьба поделиться в комментариях.

Гид по установке Hackintosh-KVM High Sierra используя QEMU

Hackintosh-KVM гид установки High Sierra используя QEMU

Благодаря тяжелой работе сообщества QEMU/KVM в течении последних лет, стала реальностью возможность комфортного использования операционной системы Mac OS X на виртуальных машинах, работающих на KVM. В результате использование технологии GPU Passthrough(проброс графики в виртуальную машину) мы получили улучшенную производительность в работе пользовательского интерфейса.

В этой статье я покажу вам, как создать Hackintosh-KVM виртуальную машину использующую QEMU i440fx чипсет. Мы настроим эту виртуальную машину как систему «Hackintosh», без использования оригинального ключа OSK (SMC) Apple. Статья написана исключительно в ознакомительных целях, редакция не несет ответственности за то, как вы неправильно используете полученную информацию. 

Основная причина, по которой данное руководство сосредоточено на чипсете i440fx, заключается в том, что на q35 чипсете все ещё есть некоторые проблемы с пробросом видеокарт 10 series Nvidia GPU, в то время как i440fx хорошо работает с ними, независимо от оборудования хост-системы. Если вы хотите найти руководства по использованию q35 чипсета, то мы добавим их после проведения тестирования связанного с пробросом видео, обновлением Mac OS X и стабильностью в целом. Мы призываем неравнодушных опытных пользователй присоединиться к нашему серверу Discord и помочь решить другие проблемы.

Синопсис

  • В этом руководстве предполагается, что в прошлом у вас уже была установлена виртуальная машина с пробросом GPU, и у вас есть опыт работы с QEMU и libvirt, в этом руководстве не будут указаны шаги по настройке QEMU / libvirt для проброса GPU, настройки сети, привязку ЦП и т. д. Если вам нужна помощь в настройке этих параметров, обратитесь к нашему англоязычному серверу Discord.
  • Это руководство было проверено только с процессорами Ryzen. При использовании процессоров Intel могут выявиться некоторые проблемы (хотя мы и не ожидаем каких-либо сложностей). Мы просим наших читателей помогать вносить свой вклад в работу с хостами Intel.
  • Автор также рекомендует, чтобы начальная настройка выполнялась с помощью сквозного проброса GPU(GPU pass-through) для упрощения установки, поскольку другие методы отображения могут не работать (QXL, vmwvga и т. д.).
  • В этом руководстве мы используем загрузчик Clover для тонкой настройки и не будем поддерживать Enoch или любой другой загрузчик.
  • Я рекомендую использовать OVMF файлы из репозитория Hackintosh-KVM. Так-же рекомендую использвать последнюю версию ядра Linux, libvirt, and QEMU. Работа с версиями более старыми, чем тестированные нами в момент написания статьи, не гарантирована.
  • Для более старых или патченных версий QEMU и других приложений рекомендую использоать руководство kholia на github.
  • Для достижения наилучшей производительности ввода-вывода мы рекомендуем использовать LVM или стандартный файл образа (.img). Использование, во время тестов, образа .qcow2 с эмулированным контроллером SATA QEMU, привело к крайне низкой производительности. Также можно использовать ZFS vdevs, хотя мы и не тестировали его для этого обзора, но считаем, что производительность ввода-вывода должна быть нормальной.
  • Автор также рекомендует включить ЦПУ в режим «performance» и/или использовать QEMU hook для достижения максимальной производительности виртуальной машины. Файл xml из репозитория Hackintosh-KVM содержит аргументы для PulseAudio и evdev pass-through.
  • С загрузчиком Clover мы будем использовать iMac18,3 SMBIOS, так как другие версии Macintosh включают прошивку Thunderbolt 3, которая после обновления повреждает nvram OVMF, тем самым делая виртуальную машину не загружаемой.

Конфигурация автора

  • AMD Ryzen 5 1600 CPU под управлением Gentoo. Видеокарта Nvidia GTX1070 FE GPU для проброса (pass-through). Так же данное руководство было тестировано на AMD Ryzen 7 2700X и EVGA GTX1050 Ti FTW.
  • Работоспособность тестировалась с QEMU 2.12 используя патченный OVMF созданный автором, который вы можете найти в Hackintosh-KVM репозитории, и с Linux kernel 4.17 (4.16 тоже проходил тестирование и тоже работает).

ВНИМАНИЕ: работоспособность возможна только с процессорами с SSE4.1 и при использовании macOS High Sierra/Mojave. Intel VT-x / AMD SVM так же обязательны.

Подготовка к установке

  • Скачайте macOS High Sierra installer из Apple App Store. Скачайте скрипт create_highsierra_iso.sh из Hackintosh-KVM репозитория для создания ISO образа.
  • Запустите скрипт create_iso_highsierra.sh на вашей действующей Macintosh машине. После отработки скрипта образ High Sierra ISO будет находиться на рабочем столе.
  • Если вы не хотите использовать скрипт Hackintosh-KVM для создания ISO образа, вы можете перейти по ссылке, где вы узнаете как конвертировать dmg в ISO.
  • Перенесите созданный ISO образ с рабочего стола на машину с установленным QEMU/KVM используя Samba/NFS или с помощью USB накопителя.

Подготовка Hackintosh-KVM 

  • Для начала клонируйте репозиторий Hackintosh-KVM
  • Файлы содержащиеся в нём необходимы для создания виртуальной машины и будут необходимы во время установки загрузчика Clover в папку EFI вашего Хакинтоша.
git clone https://github.com/PassthroughPOST/Hackintosh-KVM
  • Прежде чем приступить к следующему шагу выполните из папки с клоном репозитория от root следующую команду:
# virsh define osx_i440fx.xml
  • Далее для добавления GPU, дисков и других устройств воспользуйтесь Virtual Machine Manager. После чего,  непосредственно в витуальной машине, откройте для редактирования xml файл и укажите мнстоположение  ваших OVMF файлов,  CPU pinning, и evdev pass-through. Это  всё так же можно сделать используя команду virsh edit osx_i440fx. Если вы не собираетесь использовать PulseAudio или evdev pass-through, удалите соответствующие строки.
  • В xml прописан адаптер virtio-net на сетевом интерфейсе bridge, вы можете поменять это, в случае не соответствия вашей топологии сети.
  • Для включения pass-through нашего хоста CPU, мы будем подделывать идентификатор поставщика ЦП с помощью аргумента QEMU, показанного ниже. Обратите внимание, что это изменит сделанные ранее настройки в меню CPU в Virtual Machine Manager.
Гид по установке Hackintosh-KVM High Sierra используя QEMU
  • Не рекомендуем устанавливать многопоточность процессора в этом меню, из-за ошибки Clover, так Mac OS X QUEMU не может работать в многопоточном режиме. Гораздо лучше в тестах себя показала конфигурация состоящая из 2-8 ядер и 1 потока.
qemu:arg value='-cpu'
qemu:arg value='host,vendor=GenuineIntel,kvm=on,vmware-cpuid-freq=on,+invtsc,+hypervisor'
  • Создайте виртуальный HDD куда будете устанавливать macOS. Это можно сделать с помощью утилиты Storage которая находится в Edit > Connection Details > Storage > Add-Pool.
  • Создайте загрузочный диск Clover , для этого действия необходим пакет libguestfs.
  • Для начала вам нужно отредактировать $HOME/YourFolderHere/config.plist и установить желаемое разрешение экрана (по умолчанию OVMF — 1024 × 768). Обратите внимание, что неверно выставленные значения могут повредить ваш дисплей с высоким разрешением.
sudo ./clover-image.sh --iso Clover-v2.4k-4630-X64.iso --cfg $HOME/YourFolderHere/config.plist --img clover.qcow2
  • Затем вам нужно добавить необходимые kext на ваш новый загрузочный диск Clover. Необходимые файлы kexts также находятся в репозитории Hackintosh-KVM. Файлы kext в этом репозитории используются для датчиков GPU, проброса PulseAudio и сетевого устройства Virtio-Net. WhateverGreen.kext также необходим, если вы используете графический процессор AMD, однако он не был протестирован. Далее нам потребуется загрузка модуля ядра NBD:
sudo modprobe nbd sudo qemu-nbd --connect=/dev/nbd0 /$HOME/YourFolderHere/clover.qcow2
fdisk /dev/nbd0 -l
sudo mount /dev/nbd0p1 /mnt/somemntpoint/
  • Отключите и отмонтируйте clover.qcow2 образ:
umount /mnt/somemntpoint/
sudo qemu-nbd --disconnect /dev/nbd0
sudo rmmod nbd
  • Для облегчения вам задачи, вместо создания собственного загрузочного диска Clover вы можете использовать образ диска clover.qcow2 из репозитория Hackintosh-KVM, он содержит все необходимые файлы kext и предлагает разрешение экрана 1920 × 1080 пикселей. Кроме того, образ clover.qcow2 может быть полезен как резервный загрузчик EFI, если вы испортите загрузчик во время обновления Clover.
  • Прежде чем впервые запустить Clover на вашей новой виртуальной машине, следует убедиться, что разрешение OVMF установлено равным разрешению, установленному в вашем файле clover.qcow2. Значение по умолчанию OVMF равно 1024 × 768, а образ clover.qcow2, который вы будете использовать, установлен на 1920 × 1080, что неверно и в самом негативном развитии событий может привести к повреждению дисплея и возможным сбоям при загрузке. Разрешение можно установить через меню загрузки OVMF, которое вызывается нажатием ESC во время демонстрации логотипа OVMF, до появления экрана загрузки Clover.

Установка

  • После загрузки увидите меню выбора языка. Выберите нужный язык, затем выберите «Дисковая утилита» и сотрите целевой диск. Вы можете использовать HFS + или APFS, так как образ clover.qcow2, который мы используем, уже имеет драйвера EFI для любой файловой системы. Если вы выбираете APFS, убедитесь, что вы поместили файл apfs.efi в папку EFI при установке Clover на ваш загрузочный диск.
  • High Sierra’s (< 10.13.3) не отображает неотформатированные диски пока вы не выполните Вид > Показать все устройства, затем выйдите из дисковой утилиты и запустите её вновь.
  • В некоторых редких случаях целевой диск может не отображаться в Disk Utility, для этого вам нужно будет использовать приложение Terminal в установщике и подготовить жесткий диск для установки вручную, используя приведенные ниже команды.
diskutil list
diskutil eraseDisk JHFS+ macOS disk0 # измените диск на тот который у вас будет отображён предыдущей командой
  • После выполнения команды закройте Terminal.
  • Далее продолжите установку в нормальном режиме.
  • По окончании установки виртуальная машина перезагрузится автоматически. Поздравляем вы стали обладателем Hackintosh-KVM виртуальной машины. Остался, последний шаг — выполнить некоторые шаги после установки и поместить загрузчик Clover на диск, на который вы только что установили macOS. Это нужно для того, чтобы вы могли добавить дополнительные файлы kext в будущем, для улучшения работы виртуальной машины.

Пост установка

  • Во-первых, необходимо установить Clover на основной диск, где установлена система macOS High Sierra. Далее поместить файл i440fx-acpi-dsdt.aml из репозитория Hackintosh-KVM в папку EFI/CLOVER/ACPI/, и не забудьте необходжимые вам файлы kext в папку EFI/CLOVER/Kexts/Other.
  • Вам необходимо убедиться, что эти параметры включены в разделе «Kernel and Kext Patches» утилиты Clover Configurator
Гид по установке Hackintosh-KVM High Sierra используя QEMU

Так же вы можете удалить +hypervisor из аргументов QEMU и выставить настройки в секции CPU в Clover Configurator как можно ближе по параметрам вашей системы.

Гид по установке Hackintosh-KVM High Sierra используя QEMU
qemu:arg value='-cpu'
qemu:arg value='host,vendor=GenuineIntel,kvm=on,vmware-cpuid-freq=on,+invtsc'

Для подключения PS/2 мыши и клавиатуры в Mac OS X QUEMU необходим  VoodooPS2.kext, для проброса ICH6 или ICH9 PulseAudio звука нужен VoodooHDA.kext. Автор обнаружил, что с использованием эмулируемых USB-драйверов мыши и клавиатуры периодически возникает проблема с залипании при длительном нажатии. В вашей конфигурации это может и не повториться. Для эмуляции USB мыши и клавиатуры никаких дополнительных kext’ов не требуется.

Для монтирования других файловых систем (NTFS,EXT, и т.д.) пройдите по ссылке: https://github.com/macOSfuse/macOSfuse

Для Nvidia драйверов: https://github.com/Benjamin-Dobell/nvidia-update/blob/master/README.md

Репозиторий с обновлениями kext’ов Hackintosh kexts

Статья является переводом с английского статьи  Daniel Hanson: Hackintosh-KVM Guide: High Sierra+ Using QEMU’s i440fx Chipset 

Если кому-то вдруг потребуется iso образ Mac OS X High Sierra или Mojave, пишите в комментариях, подготовлю и пришлю. 

Устанавливаем ZFS в Linux — часть 2. ZVols, LZ4, ARC, и ZILs

Устанавливаем ZFS в Linux - часть 2. ZVols, LZ4, ARC, и ZILs

В прошлой статье мы коснулись конфигурации и основ использования ZFS в Linux. Мы выяснили как устанавливать ZFS в различные дистрибутивы,как создавать снэпшоты, клоны, и [simple_tooltip content=’Набор данных. Общее название следующих объектов ZFS: клонов, файловых систем, снимков или томов. Каждый набор данных идентифицируется по уникальному имени в пространстве имен ZFS.’] датасеты(dataset)[/simple_tooltip]. ZFS включает в себя множество дополнительных функций, таких как ZVols и ARC. В этой статье я попытаюсь объяснить их полезность.

Если не читали первую статью, то рекомендую ознакомиться сначала с ней Устанавливаем ZFS в Linux. Установка и настройка

ZFS Volumes или ZVols

По сути ZVols или «Z том» — набор данных, используемый для эмулирования физического устройства. ZVols могут использоваться в качестве устройств хранения блоков другими системами.

Для создания ZVol выполните в терминале:

sudo zfs create -V 10gb poolname/zvolname

Выполнив ls вы увидите примерно следующее:

# zfs create -V 10gb testpool/zvoltest1
# ls /dev/zvol/testpool
zvoltest1
#

В моём примере  ZVol располагается в /dev/zvol/testpool/zvoltest1
Вы можете использовать его иначе, например, /dev/sda3 или /dev/sdd5. Чтобы пробросить его в виртуальной машине, вы можете использовать Z Volume вместо файла .img, как в примере на изображении ниже:

Устанавливаем ZFS в Linux - часть 2. ZVols, LZ4, ARC, и ZILs

Обратите внимание на режим кэша (Cache Mode)  и режим ввода-вывода(I/O mode). Эти настройки, могут предотвратить подвисания ввода-вывода и увеличить отзывчивость. 

Помимо виртуализации, ZVols также широко примененим. Например его можно использовать по типу раздела подкачки (Swap). Как указано на ZoL Wiki, Swap тома могут быть созданы такими нехитрыми манипуляциями :

sudo zfs create -V 4G -b $(getconf PAGESIZE) -o compression=zle \
 -o logbias=throughput -o sync=always \
 -o primarycache=metadata -o secondarycache=none \
 -o com.sun:auto-snapshot=false poolname/swapzvol

Конечно «4G» необходимо заменить на необходимый вам размер тома подкачки. После чего форматируем его и включаем:

sudo mkswap -f /dev/zvol/poolname/swapzvol
sudo bash -c 'echo /dev/zvol/poolname/swapzvol none swap defaults 0 0 >> /etc/fstab'
sudo swapon -av

Ну и последний пример использования ZVols, о котором я упомяну в этой статье, это возможность использование других файловых систем поверх Z Volume. Это удобно и применимо например в тех случаях, когда ваше приложение не поддерживает ZFS, то вы легко можете накатить поверх ZVol любую файловую систему, например ext4:

sudo mkfs.ext4 /dev/zvol/poolname/zvolname

LZ4 compression

ZFS имеет нативную поддержку сжатия с удивительно низкой нагрузкой на процессор. LZ4, является наиболее подходящим для этого алгоритмом сжатия. Он может быть установлен, как для датасета так и для ZVol:

# для ZVol
sudo zfs set compression=lz4 poolname/compressedzvol
# для dataset
sudo zfs set compression=lz4 poolname/compresseddataset

При использовании сжатия можно использовать значительно меньшее дисковое пространство для хранения того же объема данных. С ZFS в Linux, сжатие полностью прозрачно и происходит что называется «на лету» так что все приложения должны работать с ним.

ARC

ARC, или «адаптивно заменяемый кэш» (adaptive replacement cache) это кэш ZFS встроенный в ОЗУ. Он более агрессивен, чем встроенное кэширование оперативной памяти Linux.

ARC или «адаптивный кеш замены» — это встроенный кеш ZFS в ОЗУ. Он намного более агрессивный, чем встроенное кэширование оперативной памяти Linux. По этой причине некоторые пользователи могут обнаружить, что кеш ARC использует слишком большую часть их оперативной памяти. Тогда как им следовало бы знать, что свободная оперативная память — это потерянная оперативная память. OpenZFS предлагает достаточно широкие настройки использования кеша ARC. Вы можете настроить его с помощью параметров ядра. Для GRUB найдите следующую строку в файле /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

Добавьте строку “zfs.zfs_arc_max=(size)” указав размер в байтах:

GRUB_CMDLINE_LINUX_DEFAULT="quiet zfs.zfs_arc_max=1073741824" # For 1GiB

После чего перезапишите конфигурационный файл GRUB с учётом изменений:

sudo grub-mkconfig -o /boot/grub/grub.cfg

Для повышения производительности рекомендуется делать это значение настолько большим, насколько позволяет ваше ОЗУ.

L2ARC

Level 2 ARC — великолепное решение для тех, кто хочет получить высокую скорость от механических жестких дисков. С помощью него, вы можете использовать быстрый диск, например SSD, для кэширования данных. Чтобы добавить L2ARC, выполните следующие действия:

sudo zpool add poolname cache ID_ВАШЕГО_УСТРОЙСТВА

Где вместо ID_ВАШЕГО_УСТРОЙСТВА вам следует указать ID из  /dev/disk/by-id/. Например:

# ls /dev/disk/by-id
ata-WDC_WD1002FAEX-00Y9A0_WD-WCAW33641222 wwn-0x50014ee25e646ba3
ata-WDC_WD1002FAEX-00Y9A0_WD-WCAW33641222-part1 wwn-0x50014ee25e646ba3-part1
ata-WDC_WD10EZEX-00KUWA0_WD-WCC1S5941691 wwn-0x50014ee25e646ba3-part2
ata-WDC_WD10EZEX-00KUWA0_WD-WCC1S5941691-part1 wwn-0x50014ee25e646ba3-part3
ata-WDC_WD10EZEX-00KUWA0_WD-WCC1S5941691-part2 wwn-0x50014ee2b1a6926d
ata-WDC_WD10EZEX-00KUWA0_WD-WCC1S5941691-part3 wwn-0x50014ee2b1a6926d-part1

Или выполнив:

# blkid

ZIL

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

sudo zpool add poolname log ID_ВАШЕГО_УСТРОЙСТВА

Монтируем XML как dataset

Вы можете создать полностью раздельный набор данных для хранения XML-файлов libvirt. Libvirt хранит XML-файлы в /etc/libvirt/qemu. Для этого, вам следует временно переместить все файлы, создать датасет, смонтировать его и переместить файлы на него.

sudo mkdir /tmp/qemubak
sudo mv /etc/libvirt/qemu/* /tmp/qemubak
sudo zfs create -o mountpoint=/etc/libvirt/qemu poolname/xml
sudo mv /tmp/qemubak/* /etc/libvirt/qemu/

Это всё что требуется. теперь вы можете создавать снэпшоты poolname/xml датасета и откатываться к ним после неудачного изменения XML файлов.

Статья является переводом с английского статьи  Ryan El Kochta: «ZFS Configuration Part 2: ZVols, LZ4, ARC, and ZILs Explained»

Устанавливаем ZFS в Linux. Установка и настройка

Устанавливаем ZFS в Linux

Допускаете ли вы возможность того, что можете не сделать своевременно резервную копию важных файлов или папки и по какой-то роковой случайности можете их потерять? Возможна ли ошибочная команда «rm -rf» в вашей музыкальной библиотеке? Могут ли у вас быть повреждены основные системные файлы виртуальной машины? Люди не совершенны и все способны на ошибки, так что, чем скорее вы перейдете на ZFS, тем скорее сможете перестать беспокоиться о безвременной утрате драгоценных данных.

Установка и настройка ZFS в Linux очень проста для большинства дистрибутивов.

Arch или Manjaro linux

У пользователей Arch есть несколько вариантов установки ZFS. Так пакет AUR «zfs-dkms» целесообразен, если вы хотите использовать ветвь ядра LTS. Если нет, то другие два варианта — «zfs-linux-git» и «zfs-linux». Первый пакет, как видно из названия, собран из репозитория ZFS Git и, как следствие, будет получать обновления для более новых ядер намного быстрее. Последнее иногда отстает и порой блокирует обновления ядра ядра на вашем компьютере.
Как правило, лучше использовать «zfs-linux-git», поскольку обновления ядра будут очень быстрыми. Скомпилируйте его следующей командой:

yaourt -S zfs-linux-git # для пользователей yaourt
pacaur -S zfs-linux-git # для пользователей pacaur
sudo systemctl enable zfs.target
sudo systemctl enable zfs-import-cache
sudo systemctl enable zfs-mount
sudo systemctl enable zfs-import.target

Более подробную информацию можно найти на Arch Wiki

Debian

В Debian начало использования ZFS происходит с добавления в файл /etc/apt/sources.list следующего репозитория:

deb http://mirrors.kernel.org/debian/ stretch main contrib

Далее устанавливаем ZFS:

sudo apt update
sudo apt install linux-headers-$(uname -r) zfs-dkms

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

Ubuntu

Начиная с Xenial, Ubuntu включает в себя модуль ядра ZFS. Все, что вам следует сделать, это добавить пользовательские инструменты и перезагрузиться:

sudo apt install zfsutils-linux

Fedora

Если верить ZFSOnLinux Wiki, то пользователи Fedora могут установить ZFS используя следующие простые команды:

sudo dnf install http://download.zfsonlinux.org/fedora/zfs-release$(rpm -E {33d8302486bd10b0fde64d2037652320e6f176a736d71849c0427b0d7398501a}dist).noarch.rpm
gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux
sudo dnf install kernel-devel zfs

Эти команды добавят ZoL репозиторий и установят ZFS.

Gentoo

Будучи source-based дистрибутивом, ZFS на Gentoo не требует DKMS. Чтобы установить его, сначала убедитесь, что у вашего ядра есть поддержка сжатия Deflate. В «make menuconfig» включите его:

Cryptographic API -->
        <*> Deflate compression algorithm

Затем разрешите использовать git-версии ZFS, выполнив следующие команды с правами root:

echo "=sys-kernel/spl-9999 **" >> /etc/portage/package.accept_keywords/zfs
echo "=sys-fs/zfs-kmod-9999 **" >> /etc/portage/package.accept_keywords/zfs
echo "=sys-fs/zfs-9999 **" >> /etc/portage/package.accept_keywords/zfs

После чего установите и активируйте ZFS:

Creating a ZFS “partition”

Теперь, когда вы установили поддержку файловой системы, вам нужно создать пул. Пулы могут быть очень сложными, охватывая многие диски и предлагая избыточность. Однако в этом примере будет использоваться один раздел без избыточности. Во-первых, требуется пустой раздел. ZFS в Linux можно использовать в качестве корневой файловой системы, но это не рекомендуется. Поэтому перераспределите другой диск, используя привычный вам инструмент управления разделами, например, GParted. Если вы изменяете размер корневой файловой системы, чтобы освободить место, вам понадобится Live образ, например, GParted Live Disk.

После разбивки и перераспределения создадим новый zpool:

sudo zpool create -m /your/mount/point yourpoolname /dev/sdXY
Устанавливаем ZFS в Linux. Установка и настройка

Read moreУстанавливаем ZFS в Linux. Установка и настройка

Новая партнёрка на пушах

Каждый год на просторах Интернета появляются все новые и новые виды рекламы. На «хайпе» то один канал, то другой. Если брать 2018-ый и 2019-ый годы, то таким новым рекламным каналом стали push-уведомления.

Что это такое и как работает?

1. Пользователь заходит на сайт;
2. В браузере у него появляется вот такое окошко, которое спрашивает разрешения о рассылке сообщений

Новая партнёрка на пушах

3. Человек подписывается (или нет) и через какое-то время начинает получать уведомления прямо в браузере (или на экране телефона) от сайта, на котором совершил подписку.

Это если вкратце.

До 2018 года этот канал связи со своими пользователями использовали крупные ресурсы, а потом кто-то придумал, что с помощью push-уведомлений можно рассылать все, что угодно. Так началась эра монетизации «пушей» 🙂

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

Одной из таких платформ является — RedPush.biz

Почему стоит смотреть в сторону именно этой партнерки?

Например:

  1. Большой пул рекламодателей. В данный момент к ПП подключено несколько крупных рекламных сетей, которые всегда готовы выкупить практически любые объемы трафика (от 20 млн ежесуточных посетителей).
  2. В РедПуш можно добавлять любые сайты на https (адалт тоже принимается и успешно монетизируется) и самому регулировать количество рассылок, которые можно производить. Если вы не хотите бесить пользователя, то можно поставить — 3. Если у вас дорвеи, то можно смело ставить -8. Принимается трафик любых стран.
  3. В партнерке нет минимальной суммы на вывод средств, а выплаты можно осуществлять хоть каждый день.
  4. Цена клика в системе остается одной из самых высоких на рынке из-за аукционной системы формирования этой самой цены (клик уходит тому, кто больше за него заплатит). Больше рекламодателей, больше конкуренция, больше конечная цена клика.
  5. Отзывчивый саппорт, с которым можно поговорить по душам 😉

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

Интерфейс

Здесь все довольно просто. Добавляете сайт:

Новая партнёрка на пушах

Выбираете имя для воркера и число отправок пушей в день:

Новая партнёрка на пушах

После модерации можно размещать коды и уже накапливать подписки.

При настройках рекламного блока рекомендуется поставить затемненение и написать какой-то текст. Тесты показали, что текстовка очень сильно влияет на CR (conversion rate) — отношение числа пользователей увидивших предложение о подписке к числу подписавшихся. Это важный момент.

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

Здесь стоит добавить, что по мере накопления базы будет расти и конечный профит. То есть, нужно копить базу, как минимум, месяц-полтора, чтобы увидеть существенную прибавку к вашей текущей монетизации. Тесты показали, что спустя всего месяц можно получать на 30-50% больше с имеющегося у вас трафика (тут есть нюансы, такие как — категория сайта, гео, демография).

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

Сколько можно заработать?

Пример вебмастера с хорошим трафиком:

Новая партнёрка на пушах

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

Пример вебмастера со средним трафиком:

Новая партнёрка на пушах

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

В данный момент все поисковые системы лояльно относятся к такого рода монетизации, поэтому не стоит бояться каких-либо санкций.

Зарегистрироваться в партнерке и попробовать свой трафик можно здесь — https://redpush.biz