Как установить ос на новый ноутбук lenovo
Перейти к содержимому

Как установить ос на новый ноутбук lenovo

  • автор:

Переустановка windows lenovo ideapad 300

Как установить windows 10 с флешки на ноутбук lenovo

Установка windows 10 с флешки на ноутбук lenovo

Как установить windows 10 с флешки на ноутбук lenovo: Новые ноутбуки Lenovo часто продают с предустановленной операционной системой.

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

Загрузка возможна как на ПК с другой операционной системой, так и на новый, где ранее не было никакой системы.

Перед тем как переустановить виндовс на ноутбуке леново с помощью флешки, необходимо выбрать накопитель с объемом не менее 8 гб и отформатировать его.

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

Загрузка программного обеспечения

Установку ОС на Lenovo стоит начать с отключения защиты BIOS.

Для этого необходимо перезагрузить устройство и нажать на клавишу F2 чтобы открыть меню BIOS. Если меню не открылось можно попробовать нажать Delete или использовать кнопку FN совместно с клавишей из группы F.

Для отключения защиты следует открыть пункт Security далее Secure Boot нажатием клавиши Enter.

В Secure Boot необходимо перейти в режим Disabled, чтобы отключить защиту.

Вернуться в главное меню можно нажатием на Esc, затем стоит перейти в раздел Boot (Sturtap).

Этот раздел отвечает за настройку загрузки ПК с флешки или компакт-диска.

  1. Для применения флэш-накопителя нужно выбрать и поместить в верх списка, используя клавиши +/- .
  2. В разделе UEFI/Legacy Boot выбрать Legacy Only.
  3. Нажать F10 и сохранить изменения с помощью кнопки Enter.

Создание загрузочной флешки windows 10 с помощью ultraiso

Для подготовки загрузочной флешки необходимо с официального сайта скачать программу UltraIso.

Далее проводится запуск скачанной программы, следуя рекомендациям производителя.

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

После полной загрузки программы можно запустить образ ISO:

Файл-Открыть. Выбрать образ диска с windows 10.

В разделе «Самозагрузка» нужно перейти в раздел «Записать образ жесткого диска»

После нажатия клавиши «Записать», появляется окно с предложением удалить все данные с накопителя, стоит кликнуть «Да».

Установка Windows на ноутбук леново

Для установки ОС необходимо выполнить следующие действия:

  1. Вставить флешку в устройство и перезагрузить его.
  2. Некоторое время Windows будет распаковывать файлы, после завершения процесса программа предложит операционную систему, которую нужно установить. Необходимо указать ту Windows, на которую имеется лицензия. Чтобы активировать ОС нужно ввести ключ продукта, либо сделать это позже. При наличии кода ключ активируется автоматически после подключения к сети интернет. Нажать «Далее».

Вам стоит ознакомиться с условиями Лицензионного соглашения и нажать клавишу «Принять».

Указываем тип установки:

Первый пункт подразумевает обновление системы с сохранением старых настроек операционной системы и файлов.

Второй вариант применяется для полной переустановки системы.

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

Если их несколько, и имеется SSD, то лучше выбрать SSD-накопитель, он самый производительный и работает быстрее, чем HDD.

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

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

Данная процедура занимает 10-15 минут, после которого произойдет автоматическая перезагрузка компьютера.

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

Указываем регион пользователя и настроить параметры подключения к сети интернет.

Возврат настроек BIOS в исходное состояние

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

Если ОС Windows была скачана с официального сайта, все обновления должны быть установлены автоматически. Проверить наличие всех обновлений можно с помощью бесплатной программы DriverPack Solution.

Самостоятельная установка операционной системы не такая сложная задача, как кажется. Даже начинающий пользователь, который не знает как на ноутбуке lenovo переустановить windows может справиться с ней, следуя простым рекомендациям указанным в тексте.

В статье мы разобрали, как установить windows 10 с флешки на ноутбук lenovo.

IT News

Last update Вс, 29 Янв 2017 11pm

ТЕМА: Установка Windows 7 на Lenovo Ideapad 300

Установка Windows 7 на Lenovo Ideapad 300 3 года 10 мес. назад #1

  • admin
  • Вне сайта
  • Администратор
  • Сообщений: 154
  • Спасибо получено: 7
  • Репутация: 1

Для установки Windows 7 на Lenovo Ideapad 300-15ISK
вместо предустановленной Windows 10 использовал образ записанный на флэшку.

1. Для загрузки с флэшки заходим в BIOS —> клавиша F2 (Или Fn+F2 в моем случае т.к. по умолчанию были включена функция горячих клавиш (Раздел Configuration—> HotKey Mode —> Enabled))
2. Выключаем Secure Boot: Security —> Secure Boot —> Disabled
3. Переходим в раздел Boot и переключаем режим с UEFI на Legacy (т.к. в моем случае у меня обычная загрузочная флэшка, а не UEFI) Boot Mode —> Legacy
4. В этом же разделе Выставляем приоритет: Boot Priority —> Legacy First
5. Режим USB Boot включен по умолчанию и последнее что осталось это вставить ниже приоритеты загрузок Legacy в списке доступных устройств. т.к. Единственный Legacy в этой системе это моя флэшка, я ничего там не менял.
6. Exit —> Exit Saving Changes (Сохраняемся и перезагружаемся)
Все мы загрузились с установочной флэшки.

Далее после далее-далее у меня выпала ошибка загрузки драйвера:
«Не найден необходимый драйвер для дисковода оптических дисков. Если у Вас есть дискета, CD, DVD или флэш-накопитель USB с этим драйвером, вставьте этот носитель. «

Попробовал другой образ с UEFI Windows — Результат — Установщик висит с приветствие загрузка Windows.

Технический блог лицея №4

Установка Windows 7 на lenovo ideapad 300-15ibr

Печально известный ноутбук lenovo ideapad 300-15ibr запомнился покупателям особенностью превращаться в «кирпич» при комбинации определенных настроек UEFI. Многие, желая заменить предустановленную Windows 10 на Windows 7, устанавливали параметры AHCI -> compatible, UEFI->legacy, что проводило к программно-аппаратному сбою видеоподсистемы (черный экран) и очевидной неработоспособности ноутбука. Тем не менее это не повод отказываться от привычной ОС седьмой редакции в угоду прожорливой и громоздкой «Десятке». Преимущества последней здесь вряд ли будут актуальны. В ноутбуке установлен довольно старый и не отличающийся производительностью процессор, а сам портативный компьютер не предназначен для игр, где могли бы раскрыться мультимедийные нововведения Windows 10. Еще одим доводом ЗА установку Windows 7 является наличие официальных драйверов для 64-рязрядной платформы. Их интеграция в дистрибутив позволит системе загружаться в режиме AHCI, таким образом «опасные» настройки UEFI останутся нетронутыми. Единственный пункт который придется отключить — SECURE BOOT.

Для интеграции драйверов в дистрибутив можно использовать программный продукт nlite, либо осуществить установку через программу WinNTSetup, которая может «подхватывать» драйверы из папки в ходе альтернативного первого этапа установки Windows 7.

Интерфейс программы WinNTSetup

После установки системы и пакета драйверов с сайта Lenovo в диспетчере устройств останется два неустановленных компонента: первый — Lenovo Energy Management Driver, а второй — Intel(R) Trusted Execution Engine Interface.

Таким образом, после всех установок система становится полностью работоспособной и стабильной.

Запись опубликована 29.05.2018 в 00:20 и размещена в рубрике Программы. Вы можете следить за обсуждением этой записи с помощью ленты RSS 2.0. Комментарии и уведомления сейчас закрыты.

Технический блог лицея №4 работает на WordPress
RSS записей и комментариев.

Как установить Виндовс 7 с флешки на ноутбук Леново

Операционная система Windows 7 отличается неприхотливостью и отличной оптимизацией. Для стабильной работы, компьютер должен обладать следующими характеристиками:

  • процессор (32-разрядный или 64-разрядный) с частотой от 1 ГГц;
  • 1 Гб оперативной памяти для версии 32 бит или 2 Гб ОЗУ для версии 64 бит;
  • 20 Гб свободного места на жестком диске;
  • Графический адаптер с поддержкой DirectX 9.

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

Как установить виндовс 7 на ноутбук с флешки Как установить виндовс 7 на ноутбук с флешки Как установить виндовс 7 на ноутбук с флешки Как установить виндовс 7 на ноутбук с флешки

Как переустановить систему на нетбуке

У нетбука, по сравнению с ноутбуками параметры гораздо ниже. Компьютеры данного вида в основном предназначены для офисных программ, работы в интернете и для веб-серфинга. Нетбуки даже не имеют дисководов. Приобретая себе такую вещицу, вы сразу обратите внимание, что операционная система в нем уже установлена. Но, как часто бывает, что данная ОС вас не устраивает, и есть желание ее переустановить. И вы сразу задумываетесь, как переустановить эту операционную систему. Давайте рассмотрим, как переустановить операционную систему на нетбуке.

  • Для начала возьмите флешку, так как нет дисковода, отформатируйте ее и загрузите на нее дистрибутив ХР (как пример). Далее запустите программу в разделе «Devise» выберете свою флешку. Далее в разделе «File System» необходимо о и присвоить имя в «Volume Label». Следует отметить, что имя не должно быть более 11 символов. Затем нажмите на кнопку «Start» и вы включите форматирование флешки в файловой системе FAT.
  • Чтобы «залить» программу нам потребуется образ, или загрузочный диск, программа Alcohol 120% и утилита для создания загрузчика «PEBuilder», которую можно найти в интернете. Далее нужно вставить загрузочный диск, или просто подгрузить образ в Alcohol 120% и запустить PEBuilder. Далее программа создает загрузчик, после чего мы копируем все на флешку.
  • Для того, чтобы скопировать данные на флешку, необходимо воспользоваться утилитой peints, которая находится в PEBuilder в папке с плагинами. Далее откроется DOS-окно, здесь нажмите 1 и исправьте исходный каталог Sourse path на C:/pebuilder3110/bartpe. При помощи кнопки 2 задайте целевой каталог Target path, как букву вашей флешки. Кнопкой 5 выберете установку, а нажав на 1, установка начнется автоматически. После такой процедуры все данные будут перенесены на флешку. Загрузочная флешка готова.
  • А теперь можно приступить непосредственно и переустановке операционной системы. Она происходит таким же образом, как и переустановка на персональном компьютере, так и на ноутбуке. Когда нетбук начнет загружаться с флешки, вам только останется следовать инструкциям по установке.

Подготовка настроек BIOS

Как установить Виндовс 10 с флешки на ноутбук HP

Установка Windows на Lenovo мало чем отличается от аналогичных процессов с другими аппаратами. Непосредственно перед началом установки необходимо должным образом настроить BIOS.


Настройка BIOS

  1. Отключить ноут.
  2. Нажать кнопку включения.
  3. Как только на экране появится заставка с названием бренда, необходимо сразу же нажать на клавиатуре кнопку для доступа в БИОС. На ноутбуках Lenovo за это отвечает кнопка F2. Клавиша F12 позволяет выбирать конкретное загрузочное устройство.
  4. Теперь нужно перейти в раздел «Security» и открыть вкладку «Secure Boot» нажатием кнопки «Enter» при выборе соответствующего пункта.
  5. Напротив позиции «Secure Boot» нужно поставить параметр «Disabled», обозначающий отключение защиты загрузчика.
  6. Перейти в главное меню БИОСа и открыть раздел «Boot».
  7. При помощи клавиш со стрелками необходимо перенести интересующий загрузочный носитель в самый верх списка. Это позволит задать необходимый приоритет для загрузки.
  8. В главном меню БИОСа открыть раздел «UEFI/Legacy Boot» и активировать режим «Legacy Only».
  9. Нажать кнопку F10 для сохранения настроек.

Загрузка с помощью UEFI boot

Иногда ноутбук загружается настолько быстро, что в BIOS нельзя зайти по нажатию кнопки «F1», «F2+Fn», или «F12». Если у ноутбука отсутствует кнопка «Novo Button», но при этом он может нормально загружать операционную систему с жесткого диска, то войти в загрузочное меню UEFI BIOS можно прямо из Windows 8/8.1/10.

Как зайти в меню UEFI

Для Windows 8/8.1
  1. Сдвинуть указатель мыши в правый верхний или нижний угол дисплея, и переместить мышь вверх или вниз. Появится панель «Charm», где нужно щелкнуть «Параметры» (значок шестеренки).

Для Windows 10
  1. Нажать «Пуск» – «Настройки» (значок шестеренки).

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

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

Читайте более подробную информацию с инструкцией в нашей новой статье — «Как загрузить компьютер с флешки».

Создание загрузочной флешки

Как установить с флешки Виндовс 10 — переустановка ОС

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


Создание загрузочной флешки

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

Далее обязательно потребуется специальная программа для создания загрузочной флешки. Наиболее распространенными считаются приложения UltraISO и Rufus. Скачать софт можно бесплатно на официальных ресурсах.

Создание загрузочного носителя на примере программы UltraISO:

  1. В главном окне нужно через меню «Файл» открыть предварительно скачанный образ.
  2. Теперь стоит выбрать позицию «Записать образ жесткого диска».
  3. Выбрать из предложенного списка нужный накопитель.
  4. Выставить необходимые настройки.
  5. Нажать на клавишу «Записать». Софт предложит удалить все имеющиеся на накопителе данные. Необходимо согласиться.
  6. Как только программа выдаст сообщение о завершении процедуры, накопитель можно извлекать и использовать для переустановки Windows на Lenovo.

Важно! При создании загрузочной флешки в любом случае выбирается режим USB-HDD+.

Диск с ОС

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

Бесплатную версию системы с ключами можно легко найти в Интернете. Для этого введите запрос в Google или зайдите на форумы, чтобы получить ссылку для скачивания файла. Приемлемая версия для стандартного юзера Home Premium.

Если у вас уже имеется диск, то можно переходить ко второму пункту, а если нет, ниже можете ознакомиться с тем, как записать ОС на диск.

Как записать виндовс на диск?

Вам понадобится чистый диск (DVD-R или DVD-RW). Далее нужна программа для записи на этот носитель информации. Например, Nero. Запись производится следующим образом:

  • Вставляете чистый диск в дисковод;
  • Запускаете программу – Nero;
  • Нажимаете Browse и выбирайте ваш скаченный файл с виндовс;
  • Жмете «Открыть»;
  • Затем ставите параметры записи и ожидаете.

Процесс установки

Для установки системы на ноутбук нужно выключить его и подсоединить к порту созданных загрузочный носитель. Предварительная настройка БИОСа позволит системе самостоятельно определить, с какого диска нужно осуществлять загрузку. Иногда может потребоваться на этапе включения нажать любую кнопку для активации установщика. Информация об этом появится на экране.

Как установить Виндовс без диска и без флешки

Система начнет распаковывать установочные файлы, после чего перед пользователем откроется главное окно ОС. Тут потребуется выбрать пункт «Полная установка».

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

Внимание! Компьютер во время установки ОС будет несколько раз перезагружаться. В это время нельзя пытаться его использовать или полностью отключать от питания.

Установка Windows на ноутбук леново

Для установки ОС необходимо выполнить следующие действия:

  1. Вставить флешку в устройство и перезагрузить его.
  2. Некоторое время Windows будет распаковывать файлы, после завершения процесса программа предложит операционную систему, которую нужно установить. Необходимо указать ту Windows, на которую имеется лицензия. Чтобы активировать ОС нужно ввести ключ продукта, либо сделать это позже. При наличии кода ключ активируется автоматически после подключения к сети интернет. Нажать «Далее».

Вам стоит ознакомиться с условиями Лицензионного соглашения и нажать клавишу «Принять».

Указываем тип установки:

Первый пункт подразумевает обновление системы с сохранением старых настроек операционной системы и файлов.

Второй вариант применяется для полной переустановки системы.

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

Если их несколько, и имеется SSD, то лучше выбрать SSD-накопитель, он самый производительный и работает быстрее, чем HDD.

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

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

Данная процедура занимает 10-15 минут, после которого произойдет автоматическая перезагрузка компьютера.

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

Указываем регион пользователя и настроить параметры подключения к сети интернет.

Что делать после установки

Непосредственно после установки операционной системы следует несколько основных этапов, подготавливающих компьютер к использованию:

  1. Выбирается часовой пояс, а также выставляются параметры даты и времени.
  2. В соответствующем окне вводится имя пользователя и пароль для доступа в систему. Пароль при необходимости можно не вводить.
  3. Также система предложит сразу же настроить подключение к интернету. Тут нужно выбрать подходящую сеть и ввести пароль доступа.
  4. Отдельно настраиваются параметры безопасности. Встроенный защитник системы можно активировать или же выключить полностью.
  5. В качестве финального этапа осуществляется установка всех необходимых драйверов и программ для последующего использования всех возможностей компьютера.


Завершение установки ОС

Установка нового программного обеспечения

Если вы сделали все правильно, то после перезагрузки появится надпись Boot from Cd, а затем Press any key to boot. Это значит, что вам нужно нажать любую кнопку для запуска загрузки системы. Если появится серая полоска, сигнализирующая об этом – все было сделано правильно.

Вам потребуется около десяти минут, чтобы завершился процесс загрузки. Далее появится окно для выбора языка. Настройте все так, как вам нужно и приступайте к следующему пункту – нажимайте «Установить».

Спустя некоторое время появится наверняка уже знакомое вам окно лицензии, принимаете условия и жмете «Далее». Следующий клик – на «Полной установке» и диске, где находится нынешняя операционная система.

Перед тем как переустановить windows на ноутбуке, нужно форматировать старую винду. Нажимайте « » и «Форматирование».

После нажатия кнопки «Форматирование» все данные, которые хранились на носителе, будут безвозвратно удалены.

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

Если все сделано правильно, то по истечении этого времени появится окно, в котором нужно будет ввести Имя пользователя». Также система попросит вас указать пароль, но это необязательно и зачастую такую опцию можно пропустить.

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

Возможные проблемы

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

Первым делом нужно убедиться в правильности выбранного формата используемой флешки. Непосредственно при создании установочного накопителя нужно выбирать форматирование FDD или HDD.

Обратите внимание! При создании загрузочного носителя через программу. Необходимо внимательно изучать каждый пункт и выставлять правильные параметры в соответствии с инструкцией.

Особое внимание нужно уделять загрузочному образу. Все установочные диски с операционной системы делятся на загрузочные и для восстановления. Второй вариант невозможно запустить из БИОСа. А значит, установку совершить не удастся.

Поняв, как правильно установить Windows 7 с флешки на ноутбук Lenovo, пользователь сможет без проблем повторять данную процедуру в любое удобное время. Причем никаких затрат на использование услуг специалистов в сервисных центрах не возникнет.

Причины, по которым ноутбук Lenovo не видит USB устройства и не работают порты.

1. Чаще всего именно неисправный южный мост становится причиной того, почему ноутбук Lenovo не видит USB. Не смотря на то, что он представляет собой всего лишь маленькую микросхему, южный мост исполняет огромное количество важных функций, среди которых и качественная работа портов. Вывести из строя данную комплектующую на самом деле очень просто. Для этого достаточно будет одного короткого замыкания, которое может быть вызвано разлитым кофе или другой жидкостью. Восстановить работу южного моста на самом деле получается далеко не в каждом случае. Как правило, микросхему приходиться полностью менять.
2. Если в Леново

не работает один USB порт, скорее всего, он просто пришел в негодность. Как правило, происходит это в результате неправильной эксплуатации или когда аппарат получает сильные механические повреждения. Достаточно часто его приходиться полностью менять для того, чтобы лэптоп Леново снова заработал. Мы совершим такой ремонт без проблем.

3. Через проблемы в операционной системе Lenovo

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

4. Намного реже ноутбук Lenovo не видит USB устройства и мышь

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

Достаточно часто юсб

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

Не менее распространенный случай, когда отходят контакты, которые идут непосредственно от материнской платы. Естественно они находятся внутри Леново АйБиЭм

. Контакты могут повредиться в результате вдавливания флешки или любого другого устройства.

Подготовка: разбивка диска

Почему 2 системы лучше:

В принципе, если вы не планируете ставить себе 2 ОС — можете этот шаг пропустить. В нем я расскажу о разбивке диска.

Операционная система FreeBSD на ноутбуке Lenovo

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

Моя статья посвященная настройке САПР КОМПАС-3D под FreeBSD получила ряд одобрительных комментариев, поэтому мне захотелось продолжить тему «FreeBSD на десктопе». К тому же, есть добрые предпосылки — недавно я приобрел новый современный ноутбук Lenovo Ideapad 3 Gaming взамен окончательно рассыпавшегося на несколько частей Asus VX7, а с ним и массу приятного и затейливого опыта установки и настройки ОС FreeBSD для работы на новом «железе». В этой статье я не будут касаться установки и настройки специализированного ПО и прочих САПР, будет рассмотрен только системный вопрос: установка операционной системы, драйверов, патчей, библиотек, настройка и борьба с железом. Будет много выдержек из системного руководства (мануала — man) — уж сильно я к нему пристрастился за последние 130 лет.

В этом выпуске:

1. Аппаратный вопрос

Для начала немного слов про выбор ноутбука. Опыт эксплуатации FreeBSD на моём старом ноутбуке Asus VX7 показал, что при приобретении нового ПК нужно тщательнейшим образом подходить к выбору аппаратуры на которой этой ОС предстоит работать. Ни для кого не является секретом то, что во FreeBSD с драйверами дела обстоят несколько кхм. похуже чем в Linux и на то есть свои причины — команда разработчиков этой ОС достаточно небольшая, вокруг системы нет такого количество сторонних комиттеров как в Linux, а система проходит почти незамеченной крупными игроками в IT индустрии и у производителей аппаратуры. В общем, драйвера к ней создаются либо отъявленными энтузиастами, либо по целевому финансированию от компаний бизнес которых выстроен вокруг FreeBSD. По большей части финансируются разработки драйверов сетевых и дисковых адаптеров, так как FreeBSD, в подавляющем большинстве случаев, используется на тяжело нагруженных серверах, а о поддержке «десктопа» мало кто думает.

Справедливости ради стоит заметить, что такой известный производитель видео карт с GPU как NVIDIA регулярно выпускает билды драйверов к своим видюхам в том числе и для FreeBSD amd64. Вот только вокруг изделий этой фирмы сложилась странная аура неприязни к качеству их продукции и многие фрюховоды и линуховоды настоятельно рекомендуют GPU от AMD в качестве альтернативы.

Так как новые ПК я приобретаю не часто, то хотелось взять сразу такой, чтоб навсегда. Ну или хотя бы лет на пять. И чтоб был очень очень производительный и при этом не грелся как чайник. И, разумеется, чтобы не дорогой. И удобный. Полистав глянцевые страницы интернет-журналов с обозреванием современных ноутбуков я пришел к выводу, что мне нужен ноутбук на процессоре AMD Ryzen 5, 7 или даже 9. Так получилось, что ноутбук я приобретал в марте 2022г, когда ценник на всю вычислительную технику резко взлетел вместе с курсом доллара. Прикинув остатки барышей я понял, что Ryzen 5 — мой выбор. В магазинах имелся на тот момент достаточно богатый выбор ноутбуков на этом процессоре, в том числе от известных брендов (Asus, Dell, MCI), но моё внимание привлек незатейливый ноут от Lenovo под названием Ideapad 3 Gaming. Привлёк он меня вот чем:

1. У Lenovo Ideapad 3 Gaming очень приятная на ощупь клавиатура (приятный клик) и с правильной раскладкой. Нет, кнопку «windows» на нём не ликвидировали, но в остальном расположение клавиш очень годное и мне привычное. В BIOS есть фича которая из бесполезной кнопки Fn делает еще один LeftCtrl — при работе в командной строке это благодать.

2. Процессор AMD Ryzen 5 5600H работающий на частоте 3293.96 MHz со встроенным видео ускорителем Radeon Graphics — всё как рекомендовано лучшими фрюховодами.

3. Второй (дискретный) GPU NVIDIA GeForce RTX 3050. Таким образом получается два GPU и вроде как оба поддерживаются во FreeBSD.

4. SSD диск объемом 238 GiB производства Samsung с интерфейсом NVMe — хоть и не большой по объему, но должен быть очень быстрый.

В остальном, достаточно стандартная начинка.

Не сильно долго размышляя, но и не торопясь я поехал в ближайший магазин и приобрел этот ноут, а к нему дополнительно оперативной памяти — суммарным объемом получилось 24 GiB. Так же приобрел запасной блок питания на 170 W. Во-первых, у ноута нестандартный разъем питания (прямоугольный, чем-то похож на USB type A), а блоки питания имеют свойство быстро дохнуть. Во-вторых, приятно иметь по отдельному БП дома и на работе, чтобы не носить с собой лишний груз.

Привез я это все домой, плотно поужинав и уложив детей спать, принялся в спокойной ночной обстановке под музыку в стиле Sovietwave устанавливать операционную систему. Повторюсь, моя цель — сделать на ноутбуке полноценное рабочее место с преферансом и куртизанками на базе ОС FreeBSD.

2. О версиях ОС FreeBSD

Первая версия ОС FreeBSD увидела свет в ноябре 1993 года и имела номер 1.0R. Это был «fork» версии ОС 386BSD разрабатываемой в калифорнийском университете в Berkley группой программистов Berkley Software Distribution (BSD), которая в свою очередь являлась переносом ОС 4.4BSD на платформу i386. Номер версии операционной системы FreeBSD некоторое время был многозначным (например 1.1.5.1 или 2.0.5), но с версии 6.0 разработчики перешли на двухзначное обозначение номера версии. Буква «R» в конце означает «release» («релиз» — выпуск) и чуть позже её заменили на суффикс обозначающий готовность системы к изнурительному труду. На данный момент имеется четыре суффикса, а значит четыре состояния готовности:

Суффикс -RСx указывает на версию системы подготовленную к релизу (т. н. «release candidate X» — «релиз кандидат»), но еще не совсем дозревшую. Обычно, перед релизом может быть выпущено несколько кандидатов, которые тестируются широким кругом пользователей и вносятся незначительные корректировки. Например: 13.1-RC5 означает, пятый по счету кандидат в релизы перед выпуском версии 13.1.

Суффикс -RELEASE означает, что система стабильная и надежная как гранит и является очередным выпуском (релизом). Например, ОС FreeBSD 13.1-RELEASE рекомендована к установки на высоко нагруженные вычислительные системы.

Суффикс -STABLE означает, что в системе имеются кое-какие изменения относительно релиза, не всегда сказывающиеся в лучшую сторону на её стабильности. Например, могут присутствовать новые, не до конца отлаженные драйверы или патчи к проблемам безопасности «на скорую руку». К версии -STABLE нужно относится с некоторым вниманием, потому как не все патчи одинаково полезны.

И на конец суффикс -CURRENT указывает на то, что данная версия — это самое последнее достижение в разработке системы, т. е. экспериментальная версия системы со всеми нововведениями. Данная версия рекомендуется только для разработчиков системы, для экспериментаторов или бета-тестеров. На момент написания данной статьи, таковой являлась версия FreeBSD 14-CURRENT.

3. Установка ОС FreeBSD и первые звоночки

Инсталляционный образ FreeBSD (на тот момент 13.0-RELEASE) был мной уже ранее выкачан и записан на USB носитель, загрузка с которого прошла без особых проблем. Для желающих попробовать FreeBSD привожу ссылку на официальную инструкцию для версии 13.1-RELEASE: https://www.freebsd.org/releases/13.1R/announce/

Сам процесс инсталляции тривиальный. Инсталлятор задаст несколько вопросов: как распределить дисковое пространство, какие системные пакеты установить, предложит настроить сеть и завести первого пользователя, а так же предложит установить пароль для системного пользователя root. Обычно от настройки сети на этом этапе я отказываюсь, так как могут быть нюансы.

Доверившись инсталлятору я разбил диск по-умолчанию, т. е. все файловые системы в одном разделе и запустил установку. Инсталлировал полный комплект вместе с портами, исходными текстами ядра и системных утилит — опыт подсказывал, что исходники обязательно понадобятся. Новой машине дал название butterfly, завел себе пользователя rz, добавил его в группу wheel и на этом — всё.

Тут следует заметить, что установка FreeBSD происходит целиком и полностью в консольном (текстовом) режиме. Более того, базовая установка не предполагает установки каких либо графических подсистем, т. е. после загрузки ОС по окончанию инсталляции Вы получаете сообщение «Добро пожаловать» и промпт «login:» от одноименной утилиты. В общем, эталон минимализма.

После перезагрузки и входа в систему сразу выяснилось, что система не обнаружила Wi-Fi карту MediaTek MT7961, но обнаружила Ethernet карту RealTek RTL8168 и это уже порадовало — значит я смогу продолжить доустановку системы. Вот, что об имеющихся в ноутбуке сетевых адаптерах говорит утилита pciconf:

Немного погуглив, я выяснил, что поддержка адаптера MT7961 появилась в ядре Linux совсем недавно, с версии 5.13, а это давало понять, что во FreeBSD её можно не ждать в ближайшие годы. Очевидно, что в таком случае самый простой способ сделать поддержку Wi-Fi на этом ноутбуке это купить новый Wi-Fi адаптер (из списка подерживаемых) и попросту заменить, благо ноутбук легко разбирается и карта адаптера доступна для замены.

Тем временем решил двигаться далее. Легким движением руки настроил сеть путем добавления в системный конфигурационный файл /etc/rc.conf одной строки ifconfig_re0=»DHCP», для этого воспользовался следующими командами:

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

по завершению которой убедился в готовности сетевого интерфейса командой ifconfig re0:

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

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

root@butterfly:/home/rz # pkg inst —yes sudo && rehash

После установки sudo необходимо подредактировать конфигурационный файл с помощью специальной утилиты visudo (устанавливается вместе с пакетом sudo), в файле требуется раскомментировать или добавить строку вида:

%wheel ALL=(ALL:ALL) ALL

После чего сохранить изменения и выйти из visudo. Если Вы используете редактор vi, что наиболее вероятно, то требуется нажать следующую последовательность клавиш: <ESC>:wq<ENTER>

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

4. Апдейт и апгрейд ОС FreeBSD

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

Обновить текущую систему и установить критические обновления (патчи) без смены номера версии ОС.

Обновить систему на более новую версию (minor version update).

Обновить систему на более новую ветку (major version update).

Во всех случаях утилита freebsd-update выкачивает и устанавливает набор обновлений к ядру ОС, к системным утилитам и системным библиотекам в бинарном виде. Происходит это в два этапа: 1) выкачивание патчей и подготовка новых версий ядра, утилит и библиотек к установке, и 2) собственно установка, и, по необходимости, перезагрузка системы и дальнейшая доустановка.

Небольшое замечание: устанавливать обновление к ядру ОС утилита freebsd-update будет только в том случае, если Вы используете конфигурацию ядра по-умолчанию (ядро GENERIC). Если же на Вашей машине используется своё, кастомное ядро, то сборку ядра и его установку после обновления придется выполнить вручную, но утилита выкачает и применит все необходимые патчи к исходным кодам ядра.

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

Прежде всего утилита sudo попросит Вас авторизоваться — ввести пароль пользователя (rz), после чего она запустит утилиту freebsd-update. Далее утилита freebsd-update сообщит о том, какие патчи она выкачала и предложит просмотреть список. Меня в этом списке всё устраивает, поэтому я нажимаю q для выхода.

Установить выкачанные обновления можно командой:

% sudo freebsd-update install

Повторное использование утилиты sudo больше не просит ввода пароля — она запомнила его на некоторое время, таким образом избавив пользователя (меня) от необходимости постоянно вводить его при активной работе и настройке системы.

Если после установки обновлений что-то пошло не так, то по команде freebsd-update rollback можно откатиться к предыдущему состоянию системы, в том числе вернуть старую версию ядра ОС и выполнить перезагрузку (если требуется).

Так как утилита freebsd-update работает накопительным образом, т. е. постепенно выкачивает и складывает накопленные патчи, то рекомендуется добавить ежедневный вызов freebsd-update из cron-а. Cron это фоновый процесс который запускает другие процессы по расписанию. Запустить редактор таблицы cron можно командой:

Утилита crontab запустит редактор vi и предложит Вам отредактировать пустой файл, в него нужно добавить строку вида:

Здесь <TAB> это символ табуляции. Сохранить изменения и выйти из редактора vi.

Это позволит ежедневно выкачивать все критические обновления и накапливать их в локальной системе. Установить накопленные обновления можно в любой удобный момент по команде sudo freebsd-update install.

Апгрейд операционной системы со сменой номера версии немного более сложен и происходит в три фазы. Для выполнения апгрейда нужно знать номер версии системы (с суффиксом) до которой предполагается выполнить этот апгрейд, при этом возможно делать не только повышение номера версии, но и понижение. Список поддерживаемых версий ОС FreeBSD можно подсмотреть на сайте проекта: https://www.freebsd.org, другой метод мне не известен.

В обоих случаях операция смены версии ОС достаточно рисковая и не плохо бы позаботиться о резервной копии важных данных (как минимум файла с паролями). Так как ОС FreeBSD только что установленная на мой ноутбук еще не представляет никакой ценности, то смело выполним апгрейд системы до версии 13.1-RELEASE следующей командой:

% sudo freebsd-update upgrade -r 13.1-RELEASE

По этой команде утилита freebsd-update, во-первых проверит наличие в репозитории указанной версии ОС, во-вторых проверит целостность установленной системы и подготовит список патчей, а так же сообщит какие компоненты отсутствуют в системы, т. е. не будут изменяться. После подтверждения пользователя, утилита выкачает все требуемые патчи и подготовит их к установке. На этом заканчивается первая фаза. Дальнейшая установка производится, как обычно, по команде:

% sudo freebsd-update install

По команде install утилита freebsd-update выполнит установку нового ядра и системных библиотек и потребуется перезагрузки операционной системы. Это конец второй фазы.

Выполним перезагрузку командой reboot, дождемся окончания загрузки ОС, войдем в систему и перейдем к третьей фазе — продолжим доустановку повторным вводом команды:

% sudo freebsd-update install

по завершению которой не плохо бы еще раз перезагрузить систему с цель проверки её работоспособности и отсутствия проблем с загрузкой модулей. Всякое бывает!

Проверить текущую версию установленной ОС FreeBSD можно командой:

либо традиционным способом:

5. «Фатальная» особенность оболочки tcsh

Кто-то уже наверное обратил внимание, что в приводимых мной командах в качестве приглашения (промпта) командной строки используется символ % (процент) в вместо привычного многим символа $ (денежной единицы) — это признак того, что мы имеем дело с оболочкой tcsh.

В ОС FreeBSD, как и у остальных операционных систем группы BSD, традиционно используется командная оболочка типа C-Shell (csh, tcsh), вместо Bourne и Bourne Again Shell (bash) распространенных в среде ОС Linux. Отличия этих оболочек весьма существенные и я почти на 100% уверен, что пользователи привыкшие к bash будут долго плеваться от tcsh и, в конечном счете, просто установят bash из пакетов. Так, как я вырос на BSD, то мне видится всё наоборот — tcsh гораздо удобнее и приятнее в работе. В частности, в tcsh «из коробки» работает авторасширение и поиск по истории команд с помощью клавиш перемещения курсора «вверх» и «вниз». При этом, в отличии от bash, где тоже есть такая функция, поиск идет по части уже введенной команды. В bash так же присутствует данная фича, но реализована она крайне убого. Хотя, уверен, я просто плохо знаю bash.

Но в этой главе я хотел бы рассказать не о достоинствах и недостатках двух разных оболочек, в конце концов это дело привычки, а об одной особенности оболочки tcsh о которую буквально спотыкаются все новые пользователи FreeBSD. Дело в том, что tcsh по-умолчанию, в отличии от bash, не переиндексирует список исполняемых файлов в доступных путях описанных переменной окружения $PATH каждый раз при вызове внешней команды. Это приводит тому, что после окончания установки какого либо нового пакета, допустим компилятора С/C++, введя команду cc мы рискуем получить сообщение об ошибке типа:

cc: Command not found.

Для переиндексации внутренней hash-таблицы у оболочки tcsh есть встроенная команда rehash, которую следует вводить каждый раз при появлении в путях нового исполняемого файла, вот так:

Для пользователей Linux это может показаться странным и неудобным, но на самом деле это не так и я объясню почему. Представьте, что Вы работаете на относительно медленной аппаратуре и у Вас в файловой системе располагаются сотни тысяч файлов (привет embedded разработчикам). Каждый раз когда Вы вводите команду, или нажимаете клавишу TAB, оболочка bash проводит поиск исполняемого файла по всем подкаталогам указанным в переменной окружения $PATH. Если файлов много, то это выражается в явной задержке, иногда очень даже надоедливой. В оболочке tsch по-умолчанию включен поиск по hash-таблице и поэтому tcsh выглядит более динамично (особенно при активном использовании клавиши TAB). Поиск по таблице можно выключить командой unhash или снова включить командой hash, а обновить таблицу командой rehash. О оболочке bash все строго наоборот.

6. Несколько слов о системной документации

Если верить словам Брайна Кернига из его книги «Время UNIX: A History and Memoir», то разработанная узким кругом программистов в Bell Labs ОС UNIX была преподнесена руководству компании как инструмент для обработки документации. Да, это был такой хитрый план Томпсона, Кернигана, Ричи и других обитателей «комнаты UNIX» для того, чтобы выбить финансирование на новую машину PDP-11 для их инициативной разработки, ибо старенькая PDP-7 уже порядком разваливалась и не удовлетворяла потребностям коллектива по развитию ОС UNIX. План сработал, а ОС UNIX дала миру такие средства как roff/ntoff, troff и ditroff для обращения с документацией как со структурированными взаимосвязанными данными. На базе языка troff была организована и внутрисистемная документация по командам и утилитам в самой ОС UNIX, для обращения к которой была введена команда man (от «manual») и расширенный язык для описания страниц руководства — mdoc.

Следуя лучшим традициям ОС UNIX в ОС FreeBSD на всё есть man-страницы, в том числе на системные и пользовательские утилиты, на приложения, на конфигурационные файлы, на API и ABI, на библиотеки и даже на драйверы устройств. Вообще, следует заметить, что по части системной документации и различных руководств для пользователя ОС FreeBSD нет равных. Важно и то, что в ОС FreeBSD непрерывно поддерживается целостность этой документации! Во многих ОС на базе Linux тоже есть команда man, но по большей части присутствует она там номинально и в некоторых случаях содержимое её страниц позаимствовано из FreeBSD. Среди пользователей группы операционных систем BSD есть негласное правило: если не знаешь с какой стороны подступиться к проблеме — начни с чтения различных man-ов и узкая тропинка будет становиться все шире и приведет тебя к решению проблемы. А легенда гласит, что известный термин RTFM возник именно в отношении к man-ам. 😉

Давайте выясним, какую информацию может предоставить нам man в ОС FreeBSD, для этого введем следующую команду:

Страница по man сообщает нам формат команды man и её параметров, а так же выдает нам ряд интересной справочной информации о номерах секций системной документации и их назначении. Видно, что в системе присутствует девять секций (категорий) с различными руководствами, в том числе по разработке ядра ОС (9) и по играм (6) — как же без них! 🙂

Давайте выясним, что системе известно про сетевой адаптер RealTek 8168 установленный в моём новом ноутбуке и как вообще этот драйвер называется. Для этого введем команду:

Команда apropos производит поиск строки символов (без учета регистра) по всем man-страницам зарегистрированным в системе и выдает сокращенный список страниц на которых есть упоминание заданной строки текста. В данном случае мы получили список всех man-страниц с упоминанием про RealTek.

Из вывода команды apropos видно, что для имеющегося у меня сетевого адаптера используется два драйвера: драйвер re для самого Ethernet адаптера подключенного к шине PCIe и драйвер rgephy для управления трансивером (Ethernet PHY). В выводе команды apropos в скобках указан номер секции (категории) руководства.

Давайте посмотрим, что содержится в 4-й секции руководства по драйверу re:

Как видно, в руководстве приведена исчерпывающая информация о поддерживаемых моделях сетевых адаптеров и то, как этот драйвер установить. В данном случае предлагается два способа: 1) статический — вкомпилить драйвер в ядро операционной системы подправив конфигурационный файл ядра, и 2) динамический — дать указание загрузчику (bootloader-у) загружать соответствующий модуль. Второй вариант считается более предпочтительным, но так как в инсталлированном по-умолчанию ядре уже содержится этот драйвер, то никаких действий для его подключения от меня не потребовалось.

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

Система нам сообщает, что ничего конкретного про MediaTek она не знает. Печально. Что-ж, придется отказаться от MediaTek в пользу другого производителя.

7. Про FreeBSD Handbook

Проектом FreeBSD Documentation Project написана и постоянно актуализируется большая книга по ОС FreeBSD, которая называется «FreeBSD Handbook» (или просто «хэндбук»). Хендбук бесплатно распространяется с ОС FreeBSD в электронном виде в формате HTML, а так же доступен на сайте проекта, в том числе имеется версия на русском языке: https://docs.freebsd.org/ru/books/handbook/ которая немного отстает от англоязычной версии: https://docs.freebsd.org/en/books/handbook/

«FreeBSD Handbook» содержит огромный объём информации по установке, настройке и администрированию ОС FreeBSD. В отличии от внутрисистемной документации man-страниц, хэндбук не содержит справочной информации по командам и их ключам, а скорее представляет собой набор рецептов вида «как сделать то-то или как настроить что-то», при этом имеет четкую последовательность в повествовании — от простых тем к более сложным. «FreeBSD Handbook» уникальная книга, написана понятным языком и легко читается как художественная литература «на ночь, перед сном» — настоятельно рекомендую!

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

Помимо хэндбука, по ОС FreeBSD написаны и другие книги, так же доступные в электронном виде, их список можно посмотреть тут: https://docs.freebsd.org/en/books/

Существует печатная версия хэндбука, а на сайте FreeBSD Mall в продаже находится 3-е издание хэндбука за $7 описывающее FreeBSD версии 4.x и 5.x — несколько старовато, но для начинающих рекомендую к прочтению, да бы полностью погрузиться в этот страшный подземный мир FreeBSD.

На этом же сайте есть в продаже еще одна, совсем свежая, книга — FreeBSD Mastery: ZFS за $23. Не читал, но одобряю.

Еще одна печатная книга по «потрохам» ОС FreeBSD: «Design and Implementation of the FreeBSD Operating System, 2nd Edition» за авторством МакКузика и сотоварищей. Цена кусачая — $65 на Амазоне, но книга очень стоящая, особенно для студентов изучающих операционные системы и системное программирование. К этой книге МакКузик выпустил курс видео-лекций в составе 12 видеороликов по одному часу. Лекции платные, но для затравки на Youtube доступна первая часть: FreeBSD Kernel Internals, Dr. Marshall Kirk McKusick

8. Менеджмент пакетов в ОС FreeBSD

Так же, как и у многих дистрибутивов ОС Linux, у ОС FreeBSD есть свой репозиторий с огромным количеством портированных под неё свободных (open source) программ, библиотек и всего прочего, что у нас называют аббревиатурой СПО. На момент написания данной статьи количество этого СПО составляло 38 487 единиц. Однако, в отличии от большинства Linux дистрибутивов, в ОС FreeBSD есть целых два репозитория: первый называется FreeBSD Ports Collection или в простонародье — «порты», содержит он исходные коды портированных на FreeBSD свободных программ, набор соответствующих патчей к ним и Makefile-ы для сборки (компиляции). Патчи прикладываются к оригинальным исходным кодам автоматически в процессе сборки соответствующего порта, чтобы он без проблем компилировался и исполнялся в среде ОС FreeBSD. Во FreeBSD, как минимум, своя специфическая структура каталогов и почти все программы требуется пропатчить на соответствие этой структуре, но об этом чуть позже. Все порты разбиты на категории и подкатегории и на машине пользователя представляют собой набор Makefile-ов который хранится в хорошо структурированном подкаталоге /usr/ports/. Набор этих файлов можно установить в процессе инсталляции системы либо скачать отдельно. Управление портами осуществляется с помощью утилиты portsnap, цитирую:

Второй репозиторий содержит так называемые пакеты (packages). Это уже скомпилированные и готовые к работе пакеты программ, библиотек и всего того, что есть в портах, в бинарном виде. Пакет как правило содержит некоторое количество метаданных о себе: краткое и полное описание содержимого, адрес и имя мантейнера, а так же список зависимостей от других пакетов. Для управления пакетами предназначена утилита pkg, цитата:

Утилита pkg отслеживает список зависимостей, доустанавливает необходимые пакеты или удаляет неиспользуемые пакеты и файлы при деинсталляции какого-то пакета. Фактически это аналог RPM пакетов в ОС Linux, но есть нюансы. Один из них состоит в том, что репозиториев с пакетами не один, а целых два: latest и quarterly — первый содержит самые новые изменения в пакетах (новые пакеты, самые последние патчи и обновления к ним), а второй отстает от первого по времени на четверть года, т. е. содержит более стабильные и объезженные версии пакетов. Но и это еще не все. Для каждой поддерживаемой версии FreeBSD ведется свой набор репозиториев с пакетами (свой latest и quarterly) и они не совпадают друг с другом. Файл конфигурации /etc/pkg/FreeBSD.conf указывает какой именно репозиторий будет использован утилитой pkg:

При установке ОС FreeBSD «с нуля» соответствующий файл будет создан инсталлятором автоматически, он будет настроен на репозиторий quarterly для нашей версии FreeBSD. Так как меня интересует свежачок, то я создал аналогичный файл, но в другом месте файловой системы (обратите внимание, об этом сказано в комментарии) и в нём изменил значение параметра url на «pkg+http://pkg.FreeBSD.org/$/latest»:

Здесь переменная $ задает версию FreeBSD и подставляется автоматически утилитой pkg.

И так, краткий справочник по команде pkg от Кэпа:

1. Обновление репозитория:

% sudo pkg update

2. Поиск пакета по текстовому описанию:

% pkg search <some_text>

3. Установка пакета по его имени:

% sudo pkg install <package>

% sudo pkg install -f <package>

4. Апгрейд пакета на его более новую версию:

% sudo pkg upgrade <package>

% sudo pkg delete <package>

6. Просмотр списка установленных пакетов:

7. Просмотр информации об установленном пакете:

% pkg info <package>

К слову, порты тоже отслеживают зависимости, поэтому запустив сборку, скажем, firefox из портов Вы рискуете выкачать и скомпилировать весь богатый мир СПО на своей машине, будьте готовы к такому повороту событий. 😉

Для прочтения хэндбука и посещения web сайтов из терминала нам понадобится утилита lynx которая представляет собой консольный web браузер. Установим её следующей командой:

9. Замечание по структуре каталогов в ОС FreeBSD

Небольшое замечание по структуре дерева каталогов. В ОС FreeBSD идеологически постулируется, что всё, что устанавливается или изменяется суперпользователем должно располагаться в подкаталоге /usr/local. Так, бинарные файлы устанавливаемые утилитой pkg кладутся в подкаталог /usr/local/bin или /usr/local/sbin, библиотеки кладутся в /usr/local/lib, а файлы настроек и скриптов автозапуска в /usr/local/etc/ и /usr/local/etc/rc.d. Иными словами, данные пользователя не перемешиваются с данными системы. На первый взгляд это кажется несущественным, но это важный принципиальный момент, который отличает ОС FreeBSD от большинства дистрибутивов Linux.

Следствие у этого принципа такое: почти все конфигурационные файлы от устанавливаемых отдельно утилит (пакетов или портов) находятся в подкаталоге /usr/local/etc/, а не /etc/ как это принято в других подобных ОС.

10. Установка компилятора

Как любая UNIX-совместимая операционная система, операционные системы группы BSD разрабатывались программистами для программистов. А это означает, что основным инструментом пользователя, после командной оболочки, являются компиляторы с языков C, C++, FORTRAN и assembler, а так же утилиты для работы с ними. ОС FreeBSD унаследовала этот идеологический момент и преумножила его: предполагается, что всё, что окружает пользователь в системе должно быть собираемо из исходных кодов, от самого компилятора и ядра ОС до библиотек, системных утилит и приложений пользователя. Существование портов, собственно, и подтверждает данный тезис.

Одной из давних особенностей системы является то, что Вы можете установить самый минимум операционной системы на поддерживаемую аппаратную платформу, далее зайти в каталог /usr/src и ввести команду make buildworld, после чего система выкачает базовый компилятор, затем самые последние исходники компилятора, соберет его, а с его помощью соберет ядро и все остальные части системы, т. е. воссоздаст себя буквально из ничего. Разумеется тут есть масса нюансов и даже продвинутому пользователю вряд ли когда либо придется «создавать мир», тем не менее такая возможность имеется и она используется для тестирования нового «железа» или новой версии операционной системы на собираемость, совместимость и выносливость — если система не упала в «panic» в процессе сборки своего мира, то все в полном поряде!

Другой момент состоит в том, что некоторые редко используемые особенности системы требуют включения в ядро ОС определенных участков кода которые отключены по-умолчанию. И не смотря на то, что разработчиками ОС проделан большой труд по разделению частей монолитного ядра на отдельные загружаемые модули (Kernel Loadable Modules), пользователю всё еще может потребоваться сборка кастомного ядра и пересборка отдельных модулей/драйверов. Пересобрать ядро так же придется и при наложении определенных патчей связанных с безопасностью ОС или её стабильностью. По мимо этого, драйверы устройств для ОС FreeBSD часто поставляются в виде исходных кодов (NVIDIA).

Поэтому любому пользователю FreeBSD потребуется компилятор, точнее целый набор компиляторов и инструментария разработчика (toolchain), а так же некоторые знания как с этим добром обращаться. Начиная с версии 10-RELEASE, в ОС FreeBSD используется С/C++ toolchain на базе компилятора Clang (LLVM) вместо привычного, для многих пользователей ОС Linux, GNU Compiler Collection (GCC). Связано это в первую очередь с лицензией: лицензия GPLv3, которой покрывается компилятор GCC, противоречит идеалам BSD и создавала много трудностей для коммерческих применений FreeBSD. Цитата с известного сайта:

The primary reason for switching from GCC to Clang is the incompatibility of GCC’s GPL v3 license with the goals of the FreeBSD project. There are also political issues to do with corporate investment, as well as user base requirements. Finally, there are expected technical advantages to do with standards compliance and ease of debugging. Real world performance improvements in compilation and execution are code-specific and debatable; cases can be made for both compilers.

Откровенно говоря, тезис на счет лицензионной несовместимости весьма спорный. Почему-то лицензия GPLv3 не мешает никому предлагать свои проприетарные разработки на основе Linux даже без открытия кода, почему же это вдруг стало проблемой для BSD ? По этому поводу в интернетах написано много статей, много флейма на форумах, но ясности они не придают. Короче, в ОС FreeBSD используем Clang.

С точки зрения меня как программиста и разработчика, Сlang гораздо приятнее в обращении, но разрабатывать мне приходится всё равно под Linux и с использованием GCC.

Для установки Clang/LLVM 13.0.1 воспользуемся командой pkg search для поиска нужного нам пакета:

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

% sudo pkg install llvm13-13.0.1_3

Утилита pkg проведет анализ зависимостей и предложит нам установить (или удалить и переустановить) некоторое количество пакетов от которых зависит пакет llvm13-13.0.1_3. И после получения подтверждения от пользователя запустит процесс выкачивания и установки пакетов, последним из которых будет сам llvm (Clang). Если Вы видите, что что-то пошло «не так», не бойтесь нажать Ctrl-C — ничего не сломается. В крайнем случае Вы всегда можете переустановить пакет командой pkg install -f.

После окончания установки убедимся, что компилятор присутствует в путях поиска исполняемых файлов и может быть вызван, так же не забываем про команду rehash:

Для того, чтобы у нас была возможность вести сборку СПО, в том числе и из коллекции портов, нам потребуется утилита make, точнее её GNU разновидность (или GNU make). В ОС FreeBSD есть своя, родная утилита make родом из Berkley и известная как «BSD make» и она, как Вы догадываетесь, не совместима с «GNU make» которая сейчас широко используется в среде Linux. Так же нам потребуется еще пара широко применяемых утилит, а именно CMake и Git. Поэтому установим соответствующие пакеты одним вызовом команды pkg:

% sudo pkg inst gmake cmake git && rehash

Обратите внимание на то, что в данном случае я указываю только начальные строки названий пакетов, а вместо команды install даю её сокращенный вид inst. Всё это фичи утилиты pkg.

11. Проверка работоспособности компилятора и системы сборки

Проверим на сколько наша система готова к компиляции портов. Для этого пойдем в каталог /usr/ports/ и чего нибудь там соберем, например широко известную в узких кругах игру NetHack:

Из вывода видно, что по команде make BATCH=yes были прослежены зависимости, выкачаны и распакованы соответствующие distfiles — архивы с исходными кодами затаренные гнутым зипом, выкачаны и приложены ряд патчей, после чего запущена сборка и подготовка к инсталляции собранного порта.

Параметр BATCH=yes указывает системе сборки на то, что на все глупые вопросы следует отвечать утвердительно (Yes Man) и не отвлекать пользователя от наслаждения чашечкой горячего чая.

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

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

Выясним, что за привилегии:

Видно, что установлен атрибут SGID, присвоены пользователь и группа games, т. е. игра NetHack исполняется от эффективного имени пользователя games. Будем считать что это относительно безопасно.

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

Любой порт можно установить повторно, дабы исправить поврежденные файлы, командой make reinstall (аналог команды pkg install -f для пакетов).

Проверим, запускается ли игра:

Вроде бы все в порядке, игра запускается, а значит компилятор и система сборки у нас работают нормально. Выйдем из NetHack нажав клавишу q и продолжим заниматься установкой и настройкой ОС FreeBSD.

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

12. Утилита sysrc

Утилита sysrc позволяет безопасно (без внесения синтаксических ошибок) отредактировать системный конфигурационный файл из командной стоки. Вот, что сообщает нам страница системной документации по этой утилите:

Что-ж, очень полезно, возмём на вооружение!

13. Проблема с загрузчиком

В процессе установки одного из требуемых мне драйверов неожиданно обнаружилось, что во FreeBSD 13.0 и 13.1 есть баг приводящий к зависанию начального загрузчика (booloader-а) если в его конфиге (в файле /boot/loader.conf) присутствуют ссылки на любые модули. Честно сказать я не стал сильно долго разбираться с причинами такого поведения bootloader-а на моём ноутбуке, но сделал вывод, что загружать модули из /boot/loader.conf нельзя. Вместо этого я буду загружать их из rc скриптов, т. е. буду добавлять имена нужных мне для загрузки модулей в файл /etc/rc.conf в строку kld_list разделяя пробелом.

На случай если кто-то из будущих фрюховодов случайно наткнулся на эту проблему (то есть Ваша система намертво подвисла сразу после старта загрузчика или после загрузки какого-то «нерадивого» модуля), то сообщаю, что имеется способ загрузить «голое» ядро системы без попытки загрузки модулей загрузчиком. Делается это так:

При загрузке в меню выбрать «3. Escape to loader prompt».

В появившемся промпте Ok от загрузчика ввести следующие команды:

Это проинструктирует загрузчик о том, что всё, что было записано и загружено через loader.conf нужно выгрузить и загрузить «голое» ядро GENERIC установленное при инсталляции ОС. Более подробно о процессе загрузки ОС FreeBSD и командах загрузчика читайте в статье хэндбука: https://docs.freebsd.org/en/books/handbook/boot/

14. Управление электропитанием

Управление электропитанием на ПК типа ноутбук является немаловажным компонентом системы и в ОС FreeBSD имеются все необходимые для этого средства. В частности, FreeBSD поддерживает промышленный стандарт управления электропитанием «Advanced Configuration and Power Management» (ACPI), для чего в ядре ОС имеется специальный драйвер — acpi.

14.1 Настройка режимов «сна»

Прежде всего ознакомимся со страницей руководства по драйверу acpi:

Как следует из документации, драйвер acpi подгружается автоматически начальным загрузчиком (boot loader-ом), а текущие настройки и состояние подсистемы ACPI можно выяснить с помощью команды sysctl просмотрев дерево переменных MIB в ветке hw.acpi, как показано ниже:

Данная команда предоставляет много интересной информации о поведении операционной системы при различных условиях. Видно, что система и аппаратура поддерживает ряд состояний энергосбережения для режима «suspend» (режима «сна»), а именно состояния S3, S4 и S5. Из той же страницы руководства man acpi можно выяснить, что это за состояния:

Т.е. операционная система и аппаратура на данном ноутбуке поддерживает состояния: «Suspend to RAM», «Suspend to disk» и «Power off» для команды перехода в режим «сна».

Настроим режим «сна» для нашей ОС. Состояние «Suspend to disk» (S4) в ОС FreeBSD не поддерживается если в ПК не установлен соответствующий BIOS, да и на системах с небольшим SSD это состояние мало интересно, так как потребуется зарезервировать огромную часть диска для образа RAM, а запись содержимого RAM на диск в процессе перехода в режим «сна» может занять достаточно длительное время. В общем, для режима «сна» у нас имеется практически только один вариант — «Suspend to RAM» (S3), поэтому установим значение MIB переменной hw.acpi.suspend_state в значение S3 следующей командой:

Для того, чтобы эта переменная устанавливалась в нужное значение каждый раз при загрузки ОС, добавим эту переменную в файл /etc/sysctl.conf:

Так же я хочу установить значение переменной hw.acpi.power_button_state равное S3 чтобы мой ноутбук переходил в состояние «Suspend to RAM» при нажатии на кнопку питания (power button):

Аналогичным образом можно установить значение переменной hw.acpi.lid_switch_state которая задает состояние системы при закрывании крышки ноутбука. Для себя я оставлю эту переменную в состоянии NONE, т. е. без реакции — люблю слушать музыку с закрытым ноутбуком, чтобы дети по кнопкам не давили. 🙂

Проверим что у нас получилось. Сначала выполним два раза команду sync — ритуальное действие направленное на то, чтобы сбросить содержимое кэша файловой системы на диск на случай если операционная система решит «повеситься на мертво». После этого однократно и кратковременно нажмем кнопку «Power» на корпусе ноутбука. Примерно через 2 секунды мы увидим, что операционная система выдала ряд системных сообщений в dmesg, тут же погасила экран и подсветку клавиатуры, т. е. перешла в режим «сна». Попытаемся пробудить систему еще одним кратковременным нажатием кнопки «Power» — и, о чудо, через 1-2 секунды операционная система полностью возобновила работу и вернулась к состоянию «до сна». Таким образом мы успешно проделали цикл операций suspend/resume. Скажу честно, проблема пробуждения после операции suspend во FreeBSD ранних версий работала крайне отвратительно, но с версии 13.0-RELEASE ситуация радикально поменялась в лучшую сторону. Правда, и тут не обходится без нюансов — некоторые проприетарные драйверы, например от NVIDIA, до сих пор не поддерживают операции suspend/resume, но об этом будет сказано далее.

Очень часто случается, что операционная система зависает (или вовсе не реагирует) при попытке перехода в состояние «сна». Чтобы выяснить какой из драйверов или компонентов системы ведет себя неподабающим образом можно установить значение переменной hw.acpi.verbose в 1. В этом случае ОС при переходе в режим «сна» будет выводить в dmesg подробную информацию о том, как каждый из загруженных драйверов отреагировал на операцию suspend, что может помочь выявить проблемный элемент и, при необходимости, ликвидировать его. Если Вы столкнулись с такой проблемой, то рекомендую прочитать статью https://wiki.freebsd.org/SuspendResume.

Отправить систему в состояние «сна» можно и из командной строки выполнив команду: sudo zzz, вот что написано в странице руководства об этой команде:

14.2 Настройка управления частотой центрального процессора

Подавляющее большинство современных микропроцессоров и систем-на-кристалле обладают возможностью динамического регулирования основных частот тактирования своих подсистем, в том числе и частоты центрального процессора. Делается это для уменьшения энергопотребления — на меньших частотах кремниевые микро- и нано-структуры во-первых потребляют меньший ток, а во-вторых — могут быть запитаны от меньшего напряжение, что в сумме дает меньшую потребляемую мощность. Очевидно, что на устройствах с батарейным питанием данная возможность оказалась весьма к месту — зачем потреблять электроэнергию и зазря разряжать батарею, если пользователь уснул за компьютером. Подавляющее большинство современных операционных систем имеют средства для непрерывного контроля нагрузки на ОС и динамического подстраивания тактовой частоты (или группы частот) с одновременным регулированием напряжения питания для всех подсистем на кристалле микропроцессора. В ОС FreeBSD этой задачей занимается отдельный фоновый процесс — демоном (от слова «daemon»), который непрерывно мониторит нагрузку на систему посредством анализа группы счетчиков dev.cpu.*.cx_usage_counters и подает в систему команды через драйвер acpi. По-умолчанию данная функция в операционной системе отключена, т. е. демон не запущен и вычислительная система работает на номинальной тактовой частоте. В базовый комплект ОС входит демон powerd, и, в целом, он неплохо справляется со своей задачей, но настоящие фрюховоды устанавливают powerd++ (powerdxx) который имеет несколько больший функционал и содержит в комплекте две полезные утилиты: loadrec и loadplay. Эти утилиты позволяют произвести «запись» нагрузочных показателей системы за определенный интервал времени и в последствии «проиграть» (просимулировать) нагрузку, проанализировать поведение системы и оценить работу настроек демона powerdxx. Сейчас я не буду рассказывать о тонкостях этого процесса, просто покажу как установить демона:

Параметры запуска (флаги) -a maximum и -b adaptive задают поведение демона при работе от источника переменного тока (AC) и от батареи соответственно. В данном случае я хочу, чтобы при питании от AC мой ноутбук работал на максимальной частоте, а при питании от батареи переходил на адаптивную схему управления тактовой частотой. Под «адаптивной» подразумевается, что демон будет отслеживать наличие нагрузки и плавно понижать или повышать тактовую частоту в некоторых (заданных по-умолчанию) пределах.

После установки и внесения его настроек в системный конфиг, запустим демона командой:

после чего быстро пробежимся взглядом по страницам руководства:

Руководство по powerdxx ссылается на два других руководства: man loadrec и man loadplay. Предоставлю читателю удовольствие ознакомиться с ними и немного поэкспериментировать самостоятельно. Так же в руководстве по powerdxx сказано, что узнать текущую частоту тактирования вычислительных ядер можно следующей командой:

15. Настройка шедулера и прочих параметров ядра ОС

Раз уж мы взялись за тонкую настройки системы, то продолжим в этом же духе. Для эксплуатации ОС FreeBSD на персональном рабочем месте я рекомендую установить перечисленные ниже MIB переменные в соответствующие значения.

Так как я не собираюсь заниматься отладкой приложения для ОС FreeBSD на этом ноутбуке, то особой надобности в «корках» у меня нет. Отключить запись «корки» при падении пользовательских и системных процессов можно установив в ноль значение переменной kern.coredump, ровно как и мгновенно включить эту фичу обратно можно установив переменную в значение 1:

sysctl -w kern.coredump=0

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

sysctl -w kern.sched.preempt_thresh=224

Выключим PC speaker — его назойливый звук при работе в консоли меня раздражает:

sysctl -w kern.vt.enable_bell=0

На система с SSD рекомендуется увеличить «read-ahead» — параметр указывающий объем считываемых наперед данных при работе с диском:

sysctl -w vfs.read_max=128

Так как я собираюсь монтировать сетевые диски, то имеет смысл разрешить всем пользователям системы выполнять операцию монтирования если они являются владельцем точки монтирования. Это позволит мне выполнять команду mount без sudo, не светя лишний раз свой пароль, да и просто меньше кнопок давить:

sysctl -w vfs.usermount=1

Имеет смысл увеличить размеры входных сетевых буферов для того, чтобы видео-стриминговые сервисы и VoIP приложения не теряли пакеты:

sysctl -w net.inet.udp.recvspace=128000

sysctl -w kern.ipc.maxsockbuf=8388608

Разумеется, чтобы операционная система устанавливала значения этих переменных каждый раз при загрузке необходимо добавить их в файл /etc/sysctl.conf, вот как его содержимое выглядит в моей системе:

16. Запуск Wi-Fi

В главе «3. Установка ОС FreeBSD и первые звоночки» я писал, что сетевой Wi-Fi адаптер MediaTek MT7961 в ОС FreeBSD на данный момент не поддерживается и единственное решение здесь — заменить этот адаптер на что-то более распространенное и от более известного производителя. В ноутбуке Lenovo Ideapad 3 Gaming Wi-Fi адаптер устанавливается в стандартный слот M.2, так что с заменой проблемы быть не должно — нужно только выяснить как разобрать корпус ноутбука не разворотив и не сломав нежные пластиковые детали. Ответ на данный вопрос был быстро получен через Youtube — вот видео с разборкой Lenovo Ideapad 3 Gaming.

С выбором Wi-Fi адаптера пришлось немного повозиться. В процессе чтения форумов я пришел к выводу, что нужно искать адаптер производства Intel — с ними менее всего шансов нарваться на проблемы. Пробежавшись по известным интернет-магазинам я обнаружил единственный доступный в наличии вариант: Intel(R) Dual Band Wireless AC 7265, который по счастливой случайности поддерживается во FreeBSD, поэтому тут же его заказал вместе с доставкой. Данный сетевой адаптер работает в двух диапазонах 2.4 ГГц и 5 ГГц, поддерживает стандарты 802.11a/b/g/n/ac, что в теории могло позволить работать со скоростью 500 Mbit/s.

Пока приобретенный мной адаптер доставляется, я решил потратить один вечер на более плотное изучение «драйверного» вопроса. И вот, что я выяснил. Для этого адаптера в ОС FreeBSD существуют два разных драйвера: iwm и iwlwifi.

Драйвер iwm это «родной» фрюшный драйвер, достаточно старый и хорошо отлаженный, но есть одна ложка дёгтя — он не поддерживает стандарт 802.11ac, а значит скорость выше 54 Mbit/s на нём не получить. Вот, что написано в системном руководстве на сей счет:

Второй драйвер — iwlwifi, сначала показался мне более интересным, но позже выяснилось, что это не так. Этот драйвер появился в ОС FreeBSD путем портирования одноименного драйвера из ядра Linux посредством фреймворка LinuxKPI (об этом фреймворке я расскажу чуть более подробно при установке и настройки драйверов графических ускорителей и подсистемы DRM).

Драйвер iwlwifi появился совсем недавно, с версии FreeBSD 13.1-RELEASE, т. е. его разработка активно ведется и сам автор на страничке https://wiki.freebsd.org/WiFi/Iwlwifi утверждает, что драйвер сыроват, а следовательно возможен «спонтанный выброс глюка». Помимо этого в системном руководстве имеется следующее замечание:

Иными словами, получить соединение с сетью Wi-Fi на скоростях выше 54 Mbit/s у меня прямо сейчас с этим Wi-Fi адаптером не выйдет — оба драйвера не поддерживают стандарт 802.11ac.

Что-ж, дареному коню, как известно… В общем я решил попробовать оба драйвера и понять, какой из них более пригоден для повседневной работы.

16.1 Установка и настройка сетевого драйвера iwm

Эксперименты я начал с установки и настройки родного фрюшного драйвер для Wi-Fi адаптеров производства Intel. Установка в данном случае слишком громкое слово, данный драйвер установлен в ОС FreeBSD что называется «из коробки». Для его включения достаточно подгрузить модули if_iwm (сам драйвер) и iwm7265fw (прошивка для адаптера), после чего настроить соответствующим образом wpa_supplicant и сетевой интерфейс.

Проделаем это по-шагам.

Прежде всего добавим загрузку «ядрёных» модулей драйвера в системный конфигурационный файл /etc/rc.conf указав их имена в списке в переменной kld_list. Сделаем это с помощью утилиты sysrc:

После чего необходимо ассоциировать драйвер iwm с сетевым интерфейсом wlan0, для этого в этот же файл /etc/rc.conf необходимо добавить стоку wlans_iwm0=»wlan0″ . Сделаем это следующей командой:

Далее нужно настроить IP адрес для интерфейса wlan0 или указать системе, что данный интерфейс должен получать IP адрес по протоколу DHCP. Делается это путем задания строки в /etc/rc.conf вида: ifconfig_wlan0=»XXX» где XXX — перечень параметров интерфейса в том виде, как они передаются утилите ifconfig (на всякий случай рекомендую к прочтению страницу системной документации man ifconfig).

В моё случае я хочу, чтобы система запрашивала IP адрес по протоколу DHCP, а вся работа с обслуживанием ассоциаций в сети Wi-Fi проводилась с помощью системного демона wpa_supplicant, поэтому еще раз воспользовавшись утилитой sysrc укажу следующее:

Теперь займемся настройками непосредственно Wi-Fi, т. е. ассоциируем адаптер с Wi-Fi точкой доступа. Для этого необходимо создать конфигурационный файл /etc/wpa_supplicant.conf следующего содержания:

Здесь блоками network= <. >описываются отдельные точки доступа или имена Wi-Fi сетей. Внутри блоков задается имя сети (ssid), пароль (psk), приоритет при выборе (priority) и ряд других опциональных параметров. Параметр scan_ssid указывает на то, что данную сеть нужно опрашивать по имени (а не просто слушать эфир), так как точка доступа организующая эту сеть настроена в режиме «радиомолчания».

Все готово к подъему сетевого интерфейса. Загрузить модули драйвера без перезагрузки ОС можно следующей командой:

% sudo kldload if_iwm iwm7265fw

При этом, в dmesg должны появится следующие сообщения:

Создать и поднять сетевой интерфейс wlan0 можно командой:

Видно, что система создала новый сетевой интерфейс wlan0 и запустила демона wpa_supplicant для обслуживания этого интерфейса. В dmesg наблюдаем сообщения:

Через несколько секунд с помощью утилиты ifconfig можно посмотреть, удалось ли wpa_supplicant-у ассоциироваться с какой либо из заданных Wi-Fi точек доступа и какой IP адрес нам выдали:

Из вывода утилиты ifconfig видно, что установлено соединение по протоколу 802.11g на частоте 2427 МГц с точкой доступа MAC адрес которой 52:ff:20:58:f8:23 и мне выдали IP адрес 192.168.168.230. Сетевой интерфейс wlan0 связан с родительским интерфейсом драйвера iwm0.

Не смотря на то, что моя домашняя точка доступа поддерживает режим 802.11ac, видно что в данном случае этот режим не доступен. Попробуем использовать во благо то, что есть.

16.2 Тестирование сетевого интерфейса с драйвером iwm

Настало время немного протестировать получившееся сетевое соединение при работе с драйвером iwm. Для этого установим утилиту iperf3:

% sudo pkg inst —yes iperf3

На другом хосте в локальной сети установим и запустим эту же утилиту с параметром -s (в режиме сервера):

Запустим тест на ноутбуке:

Результат на лицо — суммарная скорость передачи данных (туда+обратно) составляет 22.6 + 22.3 = 44.9 Mbits/s, что очень близко к теоритически возможным 54Mbit/s для режима 802.11g учитывая сетевой оверхэд.

Меня интересовало как драйвер iwm будет работать с сетями 5 ГГц, поэтому я подключился в админский интерфейс к своей домашней точке доступа и заблокировал у неё режим 2.4 ГГц, т. е. оставил только 5 ГГц. Через несколько секунд сетевой интерфейс на моём ноутбуке переподключился и вот что я наблюдал по команде ifconfig wlan0:

Видно, что сетевой адаптер успешно ассоциировался с точкой доступа по протоколу 802.11a (не путать с 802.11ac) на скорости 54Mbit/s что, согласно руководству, является максимально возможным для драйвера iwm.

Запустим iperf3 еще раз и протестируем сетевое соединение в таком режиме:

Результат стабильно одинаковый, что не может не радовать.

А теперь самый сложный тест: проверка на то, как драйвер iwm поддерживает режим «сна» и на сколько успешно выходит из него (цикл операций suspend/resume).

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

Посмотрим какие у нас появились сообщения в dmesg относительно сетевого интерфейса и драйвера его обслуживающего:

Никаких сообщений об ошибках или таймаутах нет, всё логично. Я еще пару раз проделал этот тест с кнопкой «Power», дабы убедиться в повторяемости эффекта — всё в норме и это прекрасно!

16.3 Установка, настройка и тестирование драйвера iwlwifi

Как я уже упомянул выше, драйвер iwlwifi появился в ОС FreeBSD с версии 13.1-RELEASE, а это означает, что его так же просто установить «из коробки» как и драйвер iwm, но есть нюанс. Так, как данный драйвер находится в активной разработке, вместе с фреймворком LinuxKPI, то с момента выхода релиза ОС драйвер претерпел ряд изменений. И действительно, заглянув Git репозиторий исходных кодов ОС я обнаружил с десяток коммитов в дерево этого драйвера с даты релиза ОС. Что же тут предпринять ?

Во-первых, можно игнорировать эти изменения и попробовать то, что поставляется с релизом ОС. Во-вторых, можно проапгрейдить ОС FreeBSD до версии 13-STABLE, т. е. перейти на ветку -STABLE. Попробуем оба варианта последовательно.

Первый вариант осуществить достаточно просто. Для этого нужно добавить модуль ядра if_iwlwifi в список lkd_list в системном конфигурационном файле /etc/rc.conf, при этом не забыть убрать из него модули if_iwm и iwm7265fw от драйвера iwm — два драйвера хоть и могут сосуществовать вместе, но для чистоты эксперимента выполним:

Далее, необходимо ассоциировать сетевой интерфейс wlan0 с устройством iwlwifi0:

Собственно на этом все настройки заканчиваются — интерфейс wlan0 и wpa_supplicant уже были ранее законфигурированы при настройки драйвера iwm. Поэтому можно либо перезагрузить систему командой sudo reboot, либо выгрузить модули предыдущего драйвера вручную и загрузить новый, после чего перезапустить сетевой интерфейс. Я, пожалуй, в данном случае предпочту перезагрузиться.

После перезагрузки операционной системы в dmesg я обнаружил следующие сообщения от драйвера iwlwifi:

из чего я сделал вывод, что драйвер успешно загрузился и проинициализировал сетевой адаптер.

И действительно, не успел я войти в систему, как сетевой интерфейс wlan0 был уже ассоциирован с Wi-Fi сетью и IP адрес был назначен по DHCP. Вот, что я увидел в ответ от утилиты ifconfig:

Из вывода ifconfig видно, что сетевой интерфейс wlan0 использует родительский интерфейс iwlwifi0, а связь с точкой доступа Wi-Fi произведена по протоколу 802.11a на скорости 36Mbits. И тут встает вопрос — почему скорость всего 36Mbits ? Точка доступа находится от моего ноутбука в 2х метрах. Я пробовал крутить антенны, передвигать ноутбук в другое место, «стучать по колёсам и плевать под капот» — всё безрезультатно. Ок, спишем это на «электромагнитную несовместимость».

Запустив утилиту iperf3 я наблюдал еще более странный результат:

т. е. эффективная скорость передачи по Wi-Fi сети получается 5.7 + 5.56 = 11.26 Mbit/sec. Я провел еще несколько вариантов тестов с утилитой iperf3 и все они показывали, что сеть работает крайне медленно и наблюдается существенная ассиметрия — «на прием» сетевой интерфейс работает в два раза быстрее, чем «на передачу», но существенно медленней чем со старым фрюшным драйвером iwm.

Еще один малоприятеный эффект — сетевой адаптер периодически теряет связь с точкой доступа, а в dmesg появляются вот такие сообщения:

Попытка проверить драйвер на устойчивость к suspend/resume с помощью кнопки «Power» показала следующее: система успешно уходит в «сон» и возвращается из него, но сетевой интерфейс становится неработоспособным, а в dmesg наблюдается масса сообщений от драйвера:

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

Но у нас есть еще один вариант — перейти на FreeBSD 13-STABLE, и мы обязаны его попробовать.

16.4 Апгрейд ядра ОС FreeBSD до 13-STABLE и обратно до 13.1-RELEASE

Переход на ветку -STABLE или -CURRENT возможен только путем выкачивания полного репозитория исходных кодов ОС и их последующей локальной сборки и установки. Для проверки драйвера iwlwifi мне будет достаточно собрать ядро и модули, всю остальную часть системы я менять не собираюсь.

Для того, чтобы осуществить задуманное, клонируем часть репозитория исходных кодов, укажем имя ветки stable/13 и глубину в 1 коммит — дабы сильно не пригружать удаленный сервер и Сеть выкачиванием бесполезной информации:

Далее зайдем в каталог с репозиторием, осмотримся:

и запустим сборку ядра:

. пока идет сборка ядра, а процесс этот долгий, переключимся в другой терминал нажатием Ctrl-Alt-F2 и попробуем пройти пару уровней в игре NetHack, периодически переключаясь в первый терминал, нажимая Ctrl-Alt-F1, для наблюдения за процессом компиляции…]

Окончание сборки выглядит вот так:

Инсталлируем собранное ядро и модули:

Командой sudo reboot выполним перезагрузку системы и посмотрим что у нас получилось.

Сразу после перезагрузки, войдя в систему, посмотрим на версию ядра ОС:

Вроде бы замена ядра прошла успешно, а что же с драйвером iwlwifi ? Напомню, что все настройки у нас остались прежние и если с драйвером всё в порядке, то сетевой интерфейс должен подняться автоматически и без проблем. Выясним, так ли это:

Действительно, интерфейс wlan0 поднят и сетевой адаптер присоединился к точке доступа на скорости 54Mbits, что как бы намекает на благополучный исход, но.

Очередной тест пропускной способности с помощью iperf3 показал всё тот же вялый результат:

Хотя, по ощущениям сеть Wi-Fi работать стала стабильнее — самопроизвольно не отваливается от точки доступа и ругательств в dmesg не производит.

Проверим как «улучшенный» вариант драйвера относится к циклу suspend/resume нажав кнопку «Power». Система уходит в «сон» и пробуждается нормально, но в dmesg присутствует та же портянка с регистрами и сообщениями об ошибках:

Что-ж, мы с Вами на практике убедились, что драйвер iwlwifi пока еще не достаточно хорош и пора откатиться обратно на ядро версии 13.1-RELEASE и вернуться к драйверу iwm.

Для того, чтобы вернуться на ядро ветки -RELEASE перейдем в каталог /usr/src/ — тут находятся исходные коды ядра ОС устанавливаемые при инсталляции системы и поддерживаемые утилитой freebsd-update, из них и соберем себе ядро:

По окончанию сборки и установки ядра вернём настройки интерфейса wlan0 на использование драйвера iwm:

И отправим систему на перезагрузку:

После загрузки зайдем в систему и убедимся, что загружено ядро нужной нам ветки -RELEASE:

На этом изыскания с драйверами к Wi-Fi адаптеру я хочу закончить и плавно перейти к более интересным делам — к настройке графической подсистемы.

17. Установка графической подсистемы X11

В ОС FreeBSD, следуя лучшим традициям, используется графическая подсистема X Window System на базе протокола X11. Безусловно, ведутся эксперименты с запуском Wayland (и даже с Mir), но его использование во многих смыслах не является каноническим и по этому мной не рассматривается принципиально.

Прежде чем мы перейдем непосредственно к установке требуемых пакетов, я хотел бы немного рассказать о том, что такое X Window System и почем это есть хорошо и правильно, а всё остальное — от лукавого.

Графический интерфейс пользователя в UNIX системах появился не сразу, где-то спустя полтора десятка лет, а именно в 1984 году в стенах MIT был запущен проект под названием «X Window System» или просто «X» (в простонародье «Иксы»). До этого конечно же были и другие потуги в создании GUI для UNIX систем, но все они не оказались столь популярными по причине своей мелкотравчатости, т. е. не глубокой концептуальной продуманности. А еще, по причине того, что Иксы с нулевого дня были с открытым исходным кодом и к проекту могли подключаться другие разработчики по мери его развития.

X Window System предполагает концепцию типа «клиент-сервер» в составе которой имеются следующие сущности:

Рис. 1. Упрощенная архитектура X Window System.

Рис. 1. Упрощенная архитектура X Window System.

1) X сервер (X Server) — устройство ввода и отображения информации. Является отдельной, независимой от основной (хост) системы сущностью. X сервер в рамках X Window System может быть как отдельно стоящим аппаратным устройством (в конце 80 -х и 90 -х так оно и было), так и просто процессом на хост системе.

2) Устройство (Device) — физическая сущность которой располагает и оперирует X сервер: графический дисплей, графический акселератор, клавиатура, мышь, манипуляторы «joystick», и т. д.

3) Ресурс (Resource) — блок информации который можно загрузить на X сервер или попросить X сервер загрузить самостоятельно из файла. К ресурсам относятся графические файлы (битмапы), различные шрифты (fonts), файлы данных и т. д.

4) X клиент (X Client) — пользовательский процесс, который функционирует на хост системе и с помощью специального сетевого протокола может иметь доступ к X серверам, отправлять в них запросы на манипуляцию ресурсами и устройствами, т. е. отображать графическую информацию на один и более X серверов, получать от X серверов ввод пользователя (нажатия клавиш клавиатуры, перемещение мыши, отклонение манипуляторов типа «joystick» и т. д.).

5) X протокол (X protocol) — сетевой протокол, позволяет вести обмен данными между X клиентами и X серверами. X протокол позволяет одному клиенту общаться сразу с несколькими X серверами (несколькими физическими дисплеями), а одному X серверу — обслуживать запросы сразу от нескольких X клиентов независимо от того где они физически располагаются. В качестве транспорта в X протоколе используется либо TCP для разнесенных клиента и сервера, либо UNIX-сокеты — в случае, когда клиент и сервер исполняются на одном хосте. Разумеется, что в X протоколе предусматривается протокол авторизации (XAuth) позволяющий серверам регламентировать доступ клиентов к своим устройствам и ресурсам. Стандартный протокол авторизации XAuth достаточно примитивен и поэтому считается небезопасным, но существует воз и маленькая тележка расширений под общим названием X Access Control Extension (XACE). Более того, всеми любимый протокол SSH имеет «от рождения» возможность пробрасывать (туннелировать) X сеанс через себя и эту его фичу часто используют для доступа к вычислительным системам в крупных корпоративных сетях. Здесь вся авторизация ложится на плечи SSH.

Для полноты следует еще упомянуть про существование такой сущности как X Font Server (сервер шрифтов или xfs), но в этой статье мне не хочется так глубоко погружаться в X11. К тому же, подавляющее большинство приложений сейчас рендерят шрифты на стороне клиента.

Первая спецификация X Window System вышедшая в июне 1984 года имела протокол версии X1, далее протокол быстро развивался и к 1987 году достиг версии X11. Так номер версии с тех пор и закрепился в его названии, а настоящий номер версия (номер релиза) добавляется через букву R. На данный момент самая последняя версия протокола X11 имеет номер X11R7.7 и была она выпущена в июне 2012 года.

Среди обывателей бытует мнение, что протокол X11 не развивается, давно устарел и его нужно списать на свалку истории, но я считаю что это не так! Графическая подсистема X Window System, выстроенная за несколько десятков лет на его основе, очень мощная и с очень объемной экосистемой, хоть местами и с изъянами. Любые попытки «переосмыслить» и изобрести что-то новое и более идеологически правильное, в конечном счете напарываются на все те же сложности, и в результате становятся еще более убогими и конкретно недопиленными (привет Wayland).

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

Набор библиотек реализующих протокол X11. На данный момент широко используются Xlib и XCB.

Одну из немногих реализаций X сервера. На данный момент это Xorg. Подробнее о нём чуть ниже.

Менеджер окон (Window Manager — WM) — X клиент реализующий одну из множества оконных систем.

Менеджер дисплеев (Display Manager — DM) — графическая утилита (тоже X клиент), которая обеспечивает авторизацию пользователя у конкретного X сервера и организует сеанс. Чтобы было более понятно, DM это то первое графическое приложение с которым взаимодействует пользователь при входе (логине) в систему.

Пара замечаний про свободный X сервер.

С 1991 по 2004 год на платформе x86 широко использовался X сервер от проекта XFree86, но в феврале 2004 у проекта возникли проблемы с Free Software Foundation из-за кусков кода закрытых лицензией GPL. В результате был сделан «fork» под названием X.org и создана новая некоммерческая организация разрабатывающая и поддерживающая эту реализацию X сервера и по сей день. X.org так же ведет разработку и поддерживает набор библиотек Xlib и XCB (X for C bindings) и на данный момент является стандартом «де-факто», причем не только на x86.

X сервер Xorg состоит из двух частей: аппаратно независимой (Device Independent X) и части зависимой от конкретной видео карты или видео ускорителя (Device Dependent X). В свою очередь DDX часть требует наличия в системе драйвера для видео карты реализующего Direct Rendering Infrastructure (DRI). DRI был введен в ОС Linux для быстрого доступа пользовательским процессам к аппаратным ускорителям и, в частности для OpenGL. Из Linux-а DRI перекочевал во многие другие свободные ОС, в том числе и во FreeBSD. Получается, что перед тем как устанавливать Xorg сервер нам нужно озаботиться видео драйверами. Напомню, что в моём новом ноутбуке две видео карты: встроенная от AMD и дискретная от NVIDIA (и хочу заметить, что тут кроется серьезный подвох, но пока не буду раскрывать какой).

Тут так же следует сказать, что в пакете Xorg имеется «универсальный» видео драйвер позволяющей использовать видео карту без режимов аппаратного ускорения с помощью стандарта VESA — его поддерживают подавляющее большинство видеокарт. Этот драйвер (или скорее режим работы) называется scfb. Дабы заранее не усложнять себе жизнь с поиском и установкой правильных видео драйверов, я решил для начала настроить Xorg в этом режиме и получить хоть какой-то визуальный эффект радующий глаз, но об этом чуть далее.

Запустим установку требуемых нам пакетов. Сначала установим библиотеки:

Указанные в данной команде имена пакетов на самом деле являются мета-пакетами которые содержат огромное количество зависимостей. Утилита pkg проследит, пересчитает и предложит пользователю установить их все и здесь важно, чтобы в файловой системе оказалось достаточно свободного места. Следующим этапом установим Xorg сервер:

Xorg вытянет за собой оставшуюся половину интернета.

Разумеется все пакеты можно установить одной командой, последовательно перечислив их имена через пробел. Параметр —yes проинструктирует утилиту pkg не задавать лишних вопросов и со всем соглашаться.

Процесс установки этих пакетов может занять некоторое время, поэтому заварим чашку чая и пойдем в другой виртуальный видео терминал играть в NetHack — вдруг повезет раздобыть Амулет Йендора.

Чтобы переключаться между виртуальными видео терминалами (VTY) необходимо нажать Ctrl-Alt-F1 или F2, или F3 и так до F8 — всего по-умолчанию включено восемь виртуальных видео терминалов.

18. Настройка Xorg в режиме scfb

Теоретически, сразу после окончания установки Xorg можно попытаться запустить X сервер без всякой предварительной настройки — Xorg достаточно интеллектуален для того, чтобы самостоятельно определить тип видео адаптера, мыши и клавиатуры и подгрузить соответствующие аппаратно зависимые модули. Но, к сожалению, на моём ноутбуке Lenovo Ideapad 3 Gaming оказалось предостаточно аппаратных нововведений с которыми Xorg самостоятельно справится не может.

Тем не менее, посмотрим как это выглядит. Выполним команду X и посмотрим на результат:

В моём случае Xorg сразу завершился с сообщением об ошибке. Заглянув в файл /var/log/Xorg.0.log я обнаружил следующие сообщения:

Из лога следует, что Xorg попытался что-то предпринять: перебрал несколько вариантов видео драйверов, обнаружил целых два видео адаптера, но не смог определить их принадлежность к какому-то видео драйверу, а самих аппаратных драйверов не нашел (отсутствуют файлы устройств /dev/dri/cardX). Xorg попытался использовать драйвер scfb, но с ним тоже не срослось из-за того, что в системе два видео адаптера и драйвер scfb просит указать BusID того адаптера, который будет использован для переключения видеорежима (процедура переключения называется «modesetting»).

Раз так, попытаемся указать Xorg-у, что для переключения видеорежима следует использовать встроенную видео карту от AMD. Для этого создадим файл /etc/X11/xorg.conf следующего содержания:

Здесь мы сообщаем Xorg-у, что следует использовать видео драйвер scfb с видео адаптером который находится на шине PCI по адресу 5:0:0 — этот адрес подсказал нам сам Xorg в логе и он совпадает с тем, что выдает утилита pciconf:

Запустим еще раз команду X и обнаружим абсолютно черный экран без какой либо реакции на внешние раздражители, посылка сигнала SIGINT нажатием комбинации клавиш Ctrl-C ни к чему не приводит. Попав в такую ситуацию новичку может показаться, что система полностью зависла, однако это не так. Всё работает так, как мы этого и просили: Xorg запустился, включил видеорежим по-умолчанию и ждет запросов от X клиента, при этом клавиатура (и прочие устройства ввода) находится в монопольном владении X сервера.

Для выхода из сложившейся ситуации нажмем комбинацию клавиш Ctrl-Alt-F1, которую операционная система (точнее драйвер видеотерминала — VTY) обработает как переключение виртуального видео терминала. Это нажатие приведет к переключению видеорежима обратно в текстовый и вернет нас в нулевой терминал (ttyv0) из которого мы запустили X сервер). Далее привычным нажатием Ctrl-C остановим исполнение X сервера.

Замечание: запущенный процесс X сервера Xorg добавляет в систему еще один, девятый, видео терминал — графический, с идентификатором ttyv8. Переключиться в него можно обратно из текстового нажатием Alt-F9 или (Ctrl-Alt-F9).

Чтобы продолжить эксперименты с «Иксами» нам теперь требуется какой-то X клиент, который мы должны заставить общаться с нашим X сервером. В качестве такого X клиента может быть, и часто выступает, утилита xterm — графический эмулятор телетайпа (терминала). Установим её из пакетов командой:

и посмотрим, что написано про xterm в системной документации:

Теперь встает вопрос, как запустить одновременно X сервер и X клиент (xterm) и как клиенту объяснить где находится сервер. Ответ на вторую часть этого вопроса прост: переменная окружения $DISPLAY указывает X клиенту адрес (IP или host name) и идентификатор сеанса. По-умолчанию можно использовать значение :0.0 — это говорит X клиенту о том, что сервер находится на этой же машине и к нему можно подключиться на нулевой дисплей и нулевой экран. Полный формат этой переменной окружения и назначение полей можно почерпнуть из системной документации по команде man X в главе DISPLAY NAMES.

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

Выполним команду startx и… обнаружим много интересного, а именно:

запустился X сервер и переключился в графический режим;

на черном экране видно несколько окон с терминалом — это утилита xterm;

в верхнем правом углу видны аналоговые часы — это утилита xclock;

ввод с клавиатуры отрабатывает нормально, а вот мышь (в моём случае TouchPad) не работает — в центре экрана висит «примерзший» указатель в виде символа X.

По нажатию комбинации Ctrl-Alt-F1 вернемся в текстовый терминал и завершим сеанс нажатием Ctrl-C остановив исполнение команды startx.

На данном этапе мы имеем рабочую графическую подсистему X11 с одним неприятным нюансом — не работает TouchPad. Решением этой проблемы займемся завтра, а сейчас пора спать!

19. Заставляем работать TouchPad

[прошло пару дней]

В подавляющем большинстве ноутбуков устанавливаются тачпады производства известной калифорнийской фирмы Synaptics и такие тачпады работают с подавляющим большинством операционных систем, в том числе и с ОС FreeBSD, что называется «из коробки». Тачпады Synaptics имеют популярный интерфейс PS/2, что по сути является последовательным портом, к ним написана масса драйверов, а сами драйвера весьма примитивны в реализации. Но на моём Lenovo Ideapad 3 Gaming установлен совершенно другой тачпад.

Перед тем, как решать проблему с драйверами к тачпаду, необходимо выяснить «что за зверь перед нами». Данный тачпад никак не обнаруживается системой: ни на шине PCI, ни на шине USB его не видно. Гугление тоже не дало какого либо вразумительного ответа о модели тачпада, кроме имени производителя — ELAN. Честно говоря, я ранее и не слышал о таком производителей. Гугление по имени производителя и по имени ноутбука дало противоречивые результаты — у «Елань», как выяснилось, имеется много различных тачпадов с разными видами интерфейсов, в том числе и с PS/2. В общем, печаль — не ставить же мне сейчас на этот ноутбук «винду», чтобы выяснить модель тачпада. И тут пришла одна мысль.

Где-то в глубине сайта Lenovo мне удалось раздобыть пакет с драйверами озаглавленный как ELAN Touchpad Driver, выкачанный файл имел названием 2tlf0faf40.exe — самораспаковывающийся архив и инсталлятор в одном флаконе для ОС Windows. Сначала я попробовал распаковать его утилитой 7z — ресурсы из EXE файла изъялись, но большой блоб данных в получившемся файле оказался в неизвестном мне сжатом формате. Тогда я прибег к простой хитрости — запустил 2tlf0faf40.exe в среде Wine32 на другой машине, дождался пока отобразится окошко с подтверждением инсталлятора, запустил «инсталляцию» и остановил процесс командой kill -9. В результате, в каталоге

/.wine32/drive_c/DRIVERS обнаружился подкаталог ./Elan\ Touchpad\ Driver, а в нём и сам драйвер со всеми сопутствующими .INF файлами.

Немного покопавшись в добытых .INF файлах я понял, что в моём ноутбуке Lenovo установлено устройство сенсорного ввода типа HIDI2C (HID over I2C) — стандарт придуманный в стенах небезызвестной корпорации Microsoft. Команда pciconf показала, что в ноутбуке действительно имеется I2C (SMBus) контроллер:

Этой информации оказалось более чем достаточно. По команде apropos i2c я быстро выяснил, что в ОС FreeBSD имеется поддержка шины I2C/SMBus, а так же HID устройств подключенных к этой шине. Из чтения предложенных man-страниц выяснилось какие именно драйвера требуется подключить, это: ig4, iicbus и iichid. Для проверки теории я вручную подгрузил соответствующие модули командой:

и тут же увидел в dmesg следуюшие сообщения:

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

Ура! Осталось объяснить X серверу, что у нас есть устройство ввода типа тачпад, для этого добавим в файл конфигурации X сервера /etc/X11/xorg.conf следующие секции:

Запустим «Иксы» командой startx и убедимся, что X сервер обнаружил устройство ввода указательного типа, а сам указатель перемещается и графическая подсистема реагирует на нажатия кнопок тачпада и жесты прокрутки.

Единственное, что пока смущает, так это сообщение от драйвера iichid:

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

Чтобы нужные нам драйверы загружались автоматически, запишем в файл /etc/rc.conf в переменную kld_list их имена. Сделаем это традиционно утилитой sysrc:

20. Установка WM и DM

Как я уже упоминал выше, для того, чтобы в графической подсистеме появились красивые окошки, кнопки и прочие элементы современного GUI, нам необходимо установить какой либо из доступных Window Manager-ов (WM). Мой выбор в данном случае упал на Xfce потому, что он легкий и быстрый, модульный, очень гибко настраиваемый и при этом весьма неплохо выглядит. Все настройки Xfce можно выполнить через графический интерфейс, но при этом сохраняются они в текстовые файлы, которые можно подправить вручную. Каждый модуль ведет свой конфигурационный файл. В общем, Xfce соответствует всем канонам. А еще, Xfce является клоном старого доброго Common Desktop Environment (CDE) который мне довелось увидеть на 386 -й машине под управлением SCO UNIX в далеком 1993 году. Вот как это выглядело в 90-х:

Рис. 2. Common Desktop Environment образца конца 90-х.

Рис. 2. Common Desktop Environment образца конца 90-х.

Просто прелесть, правда ?

Установим оконную оболочку Xfce версии 4:

Помимо Window Manager-а нам еще не плохо бы установить Display Manager — приложение, которое проводит авторизацию пользователя, создает сеанс и запускает набор X клиентов для организации графического окружения (собственно, запускает Xfce). В качестве DM я выбрал для себя Simple Display Desktop Manager (SDDM) без особых на то причин.

Установим SDDM:

Для того, чтобы SDDM стартовал сразу после загрузки операционной системы необходимо добавить в системный конфигурационный файл /etc/rc.conf следующую строку: sddm_enable=»YES». Сделать это можно всё тем же способом:

Ну и последний штрих, запустим SDDM не перезагружая систему следующей командой:

Сразу по исполнению этой команды мы увидим как запустится X сервер, переключит видео карту в графический режим, к нему подключится SDDM и отобразит нам окно с предложением пройти авторизацию. Перед тем как вводить login и пароль, выберем тип сеанса Session Xfce в верхнем левом углу экрана в выпадающем списке Session.

Очевидно, что SDDM позволяет создавать сеанс используя любой из установленных в системе WM. Вы можете самостоятельно установить KDE5 или FVWM и переключаться между ними каждый раз выбирая желаемый тип сеанса. К тому же, в репозитории FreeBSD уже имеются соответствующие пакеты:

21. Настройка раскладки клавиатуры в Xfce4

Как я уже отмечал, почти все настройки Xfce можно выполнить просто клацая мышью по экрану, но тут ключевое слово «почти». Как выяснилось, утилита для конфигурирования раскладок клавиатуры xfce4-keyboard-settings не позволяет указать дополнительные параметры к раскладке, в частности желанный многими пользователями параметр numpad:microsoft который делает поведение клавиатуры более привычным на ноутбуках с клавиатурой с цифровым блоком (мой Lenovo как раз тот самый случай). Поэтому просто создадим файл keyboard-layout.xml следующего содержания:

В этом конфигурационном файле мы устанавливаем модель клавиатуры (asus_laptop), добавляем пару раскладок (US, RU), устанавливаем клавишу переключения между ними (клавиша CapsLock в режиме «toggle») и задаем поведение цифрового блока клавиатуры «как на винде» (параметр numpad:microsoft).

Чтобы данные изменения вступили в силу необходимо завершить сеанс и войти снова (Logout/Login). И тут сразу сделаю замечание: если Вы попытаетесь отредактировать настройки клавиатуры запустив стандартное средство xfce4-keyboard-settings (Applications→Settings→Keyboard), то после сохранения новых настроек, все неподдерживаемые опции и параметры будут удалены, в том числе параметр numpad:microsoft, поэтому не лишним будет отнять у этого файла атрибут разрешающий запись:

22. Проблема потери настроек клавиатуры после suspend/resume

Поигравшись немного с другими настройками Xfce я решил проверить как «Иксы» относятся к процедуре «suspend/resume». Выполнив команду sudo zzz я дождался когда система уйдет в режим «сна» и тут же разбудил её. На удивление, процесс пробуждения всей системы занял всего 2-3 секунды и я почти мгновенно получил «десктоп» в том же состоянии, в котором он был до «засыпания».

Однако, покликав мышью в разные меню и понажимав кнопки я тут же обнаружил, что клавиша CapsLock больше не переключает раскладки между RU и US, а её функция вернулась к исходной. Догадываясь в чем дело, я решил сначала восстановить требуемые мне настройки из командной строки используя утилиту setxkbmap:

а затем проверить какие настройки «Иксы» сохраняют для устройства ввода до и после «сна»:

Видно, что все настройки сбросились в состояние по-умолчанию. Не долго разбираясь с чем связано такое странное поведение системы X11 на ОС FreeBSD, я имплементировал гарантированное решение — вставил требуемые мне настройки клавиатуры прямо в конфигурационный файл X сервера /etc/X11/xorg.conf так, что секция InputClass теперь выглядит следующим образом:

Фактически здесь всё то же самое, что и выполняет утилита xfce4-keyboard-settings, но применяются эти настройки в момент процедуры инициализации X сервера, в том числе и при «пробуждении» системы.

В дополнении к уже имеющимся настройкам клавиатуры я добавил еще одну опцию terminate:ctrl_alt_bksp которая позволяет аварийно завершить выполнение X сервера по нажатию комбинации клавиш Ctrl-Alt-Backspace и вернуться в текстовый терминал или в Display Manager в случае зависания X сервера или блокировки ввода. Эта древняя и очень полезная фича всегда была включена в X серверах, но в Xorg её по-умолчанию отключили — непорядок!

После внесения каких либо изменений в файл /etc/X11/xorg.conf, графическую подсистему требуется перезапустить. Сделать это можно следующей командой предварительно переключившись в текстовый терминал с помощью Ctrl-Alt-F1:

Строго говоря, если настройки клавиатуры заданы в системном конфигурационном файле, то локальный файл

/.config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml можно смело удалить, но делать я этого не буду из соображений порядка: вероятно, что проблема с пропаданием настроек клавиатуры в Xorg будет исправлена в ближайшее время, и тогда можно будет вернуться к прежнему, конвенциальному варианту.

23. Запуск 3D акселераторов

Очевидно, что на одной растровой графике в современном мире прожить невозможно, почти все САПР требуют аппаратной поддержки OpenGL и EGL — прямого доступа к аппаратному ускорителю 3D графики, чего драйвер scfb обеспечить не в состоянии. А значит настала пора озаботиться установкой драйверов для двух видео адаптеров. Напомню, что в ноутбуке Lenovo Ideapad 3 Gaming присутствует встроенный в микросхему микропроцессора (СнК) видео ускоритель от AMD совместимый с Radeon Graphics и внешняя микросхема GeForce RTX3050 от NVIDIA.

23.1 Технология «PRIME GPU Offloading»

Изначально я предполагал, что смогу переключать монитор между двумя видеоадаптерами либо через BIOS, либо каким-то иным программным средством, но после небольшого изучения стало понятно, что монитор намертво прибит к встроенному видеоадаптеру (AMD GPU). Дальнейшее изучение вопроса поведало мне о новой технологии устройства видео карт в современных ПК — PRIME GPU Offloading, которой собственно и оснащен мой ноутбук Lenovo. Если описывать в двух словах, то данная технология работает так. В вычислительной системе всегда присутствует основная видеокарта (в моём случае это AMD GPU) и дополнительная (NVIDIA). При этом, оба видео монитора, eDP (Ж/К монитор) и HDMI-A-0 намертво прибиты к основной видеокарте и переключение мониторов между видеокартами невозможно. Вместо этого, допускается передача вычислительной нагрузки с основной видеокарты (видеоускорителя) на вспомогательный с последующим отображением полученного результата на один из мониторов подключенных к основной видеокарте. Если копнуть чуть глубже, то нужно сказать, что PRIME это фича драйвера Direct Rendering Management (DRM) позволяющая передавать блоки данных между аппаратурой видеоакселератора и видеоадаптера без копирования, т. е. путём обмена указателями на физические блоки памяти. О самом DRM я расскажу чуть ниже.

Понятное дело, что такая сложная технология требует специальной поддержки как на уровне драйверов видео адаптеров, так и в самой графической подсистеме (X11). Прежде всего я попытался понять есть ли поддержка PRIME в сервере Xorg. Выяснилось, что требуемая поддержка для функционирования GPU Offloading в Xorg добавлена достаточно давно, но в README к драйверу от NVIDIA указывается, что требуется минимум версия 1.20.7. Текущая версия Xorg в репозитории FreeBSD имеет номер 1.20.14, что обнадеживало, но вот дальше всё было гораздо печальнее. Короче, запустить оба акселератора мне удалось, но только в режиме «hybrid setup» («гибридный режим»). С режимом «PRIME GPU Offloading» у меня ничего не получилось и, подозреваю, связано это с тем, что Xorg 1.20.14 несколько староват — не содержит каких-то важных патчей и багфиксов. Сначала Xorg у меня крэшился на доступе к AMD GPU. Устранив эту проблему я обнаружил тот же самый крэш с доступом но уже к NVIDIA GPU. Прошли месяцы пока я нашел способ обойти это крэш и заставить Xorg работать с «безголовым» (headless) GPU, коим является NVIDIA GeForce RTX3050. Победив и эту проблему я столкнулся с тем, что Xorg не желает обнаруживать двух «провайдеров» в моей системе, что требуется для конфигурирования «PRIME GPU Offloading», а каждый GPU работает только как отдельный «экран». Гугление и анализ коммитов к Xorg убедил меня том, что без Xorg версии 21.1 эта фича PRIME попросту не работоспособна. Работы над портированием Xorg 21.1 на FreeBSD активно ведутся и есть шанс, что все эти привороты рано или поздно заработают и праздник случится на нашей улице. Ну, а чтобы не ждать, пока будем использовать оба GPU в «гибридном режиме» — по мне, так даже немного более удобней, о я чем поведаю ниже.

Прежде всего расскажу какие есть режимы и варианты использования GPU, а их несколько:

Задействовать только один GPU встроенный в микропроцессор (AMD GPU Radeon Graphics). Схема полностью рабочая, поддерживается всем доступным программным обеспечением, в том числе и требующим EGL. Недостаток только один — не сильно быстрый этот GPU. Зато экономный до электропитания.

Режим «PRIME Render Offload». В этом режиме основным видеоадаптером является AMD GPU, а часть расчета 3D графики от приложений отправляется на внешний (дискретный) GPU NVIDIA. Результат расчета в виде растровой картинки возвращается назад в основной видеоадаптер и отрисовывается на экране монитора или его части (в окне). Управление тем, какой GPU использовать, производится с помощью переменных окружения. Данный режим мне запустить не удалось.

Режим «PRIME и Reverse PRIME через RandR». Тут два подрежима: «прямой» и «обратный».

В «прямом» подрежиме основным видеоадаптером является дискретный NVIDIA GPU который полностью рассчитывает 3D и 2D графику, а результат отправляет на встроенный AMD GPU который всего лишь отображает картинку на мониторе. AMD GPU при этом работает в режиме «modesetting» — то есть как средство отображения плоской картинки и переключения видеорежимов, его GPU не задействован.

В «обратном» подрежиме основным видеоадаптером является встроенный AMD GPU который работает с плоской (2D) графикой, а нагрузка по просчету 3D отправляется на дискретный NVIDIA GPU. Результат расчета возвращается и отображается с помощью основного видеоадаптера. Основной видеоадаптер AMD GPU так же как и в «прямом» подрежиме работает в режиме «modestting», т. е. его GPU тоже не используется.

Всё управление в «прямом» и «обратном» подрежимах производится с помощью утилиты xrandr, которая с версии 1.4 позволяет коммутировать «источники» изображения (sources) и его «потребителей» (sink). Использование xrandr несколько проще, чем длинные и замысловатые переменные окружения. Недостаток — один GPU не используется и висит «мертвым грузом». Запустить этот режим мне так же не удалось.

«Гибридны режим» является оберткой к VirtualGL. В этом режиме в операционной системе запущено два процесса X сервера (два Xorg-а), по одному на каждый видеоадаптер/акселератор. Каждому X серверу обеспечивается своим уникальным конфигурационным файлом (xorg.conf). При этом, X сервер работающий с дискретным NVIDIA GPU настраивается так, чтобы работать без монитора (режим «headless»), не использовать и не перехватывать средства ввода. X сервер который взаимодействует со встроенным AMD GPU видеоадаптером и к которому подключен монитор является основным, с ним взаимодействует пользователь и номер его X дисплея по которому X клиенты его адресуют равен :0.0. «Безголовый» X сервер работает в фоне и его номер дисплея равен :8.0 (или любой другой отличный от основного). С помощью определенных манипуляций с переменными окружения и подменой библиотек можно объяснить любому X клиенту на какой из двух X серверов (X дисплеев) отрисовывать его окно, а следовательно каким GPU пользоваться. И тут тоже имеется два подрежима: «безголовый» и «с отображением графики».

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

Подрежим «с отображением графики» работает примерно так же как и «PRIME» — результат расчета передается на основной (нулевой) X сервер и отображается на нём в окне. Таким образом пользователь видит приложение и взаимодействует с ним.

Чисто теоретически, на практике это проверить сложно, но «гибридный режим» должен работать несколько медленнее чем режим «PRIME» из-за того, что большой объём данных циркулирует между двумя X серверами через системную оперативную память, а не напрямую межу двумя устройствами по DMA. Тем не менее, с моей точки зрения, «гибридный режим» более интересен нежели «PRIME» по следующим соображениям:

Задействованы оба GPU и пользователь может выбрать каким приложениям к какому GPU обращаться.

Имеется набор простых утилит (nvrun и nvrun-vgl), позволяющих легко переключать приложения между двумя GPU.

Внешний (дискретный) GPU NVIDIA существенно мощнее, а значит потребляет существенно больше электроэнергии. Возможность использовать одно и то же приложение на разных GPU в зависимости от наличия внешнего электропитания является немаловажной фичей при работе на ноутбуках.

Утилита nvidia-smi позволяет мониторить текущую загрузку дискретного GPU по-процессно.

Возможность в любой момент «потушить» любую активность на диcкретном GPU одной командой kill, при этом не потеряв всю графическую подсистему — многого стоит.

Из недостатков «гибридного режиме»:

Через VirtualGL не работает технология Vulkan (этот вопрос пока открыт).

Не работает Linuxulator (эмулятор Linux) и Wine.

Не смотря на недостатки, «гибридный режим» мне како-то показался более интересным и я, пожалуй, останусь на нём даже если в Xorg под FreeBSD полноценно заработает технология PRIME.

Начнем настройку GPU со скачивания и установки двайверов для двух видеоадаптеров.

23.2 Установка драйвера для NVIDIA GPU

Драйвер для NVIDIA под FreeBSD выкачиваем с официального сайта: http://download.nvidia.com/XFree86/FreeBSD-x86_64/ , качаем самую последнюю версию (на момент написания статьи это была версия 515.57). Распаковываем, собираем и устанавливаем:

И тут мы наталкиваемся на одну серьезную засаду. Скрип инсталлятора автоматически добавит в конфигурацию bootloader-а (в файл /boot/loader.conf) несколько строк для загрузки соответствующих модулей ядра ОС. Этот файл нужно отредактировать вручную и убрать следующие строки:

Вместо этого имена модулей нужно поместить в строку переменной kld_list файла /etc/rc.conf:

Если Вы по какой-то причине забыли или не успели «почистить» свой /boot/loader.conf, то при следующей перезагрузки Ваша система превратится в… нет не в тыкву, просто зависнет намертво после запуска загрузчика. Но ничего страшного в этом нет, воспользуйтесь инструкцией по загрузке «голого» ядра из раздела «12. Проблема с загрузчиком».

Загрузить только что инсталлированные модули драйвера можно следующей командой:

Результатом успешной установки и загрузки модулей драйвера для NVIDIA GPU является следующая информация выводимая драйвером в dmesg:

Данный пакет драйверов от NVIDIA содержит в себе не только сам драйвер для работы с аппаратурой ускорителя в составе подсистемы DRM, но и DDX драйвер для X сервера Xorg (подкаталог ./x11/driver) который инсталлируется в виде динамически загружаемой библиотеки /usr/local/lib/xorg/modules/drivers/nvidia_drv.so и будет задействован X сервером.

23.3 Установка DRM драйвера для AMD GPU

С драйвером для AMD GPU всё гораздо интересней. Драйвер для AMD GPU Radeon Graphics (а он так и называется «amdgpu»), придется позаимствовать у ОС Linux, так как родного во FreeBSD нет и, судя по всему, уже никогда не будет.

Дело в том, что с некоторых пор в ядре ОС FreeBSD появился фреймворк под названием LinuxKPI или Linux Kernel Programming Interface — средство позволяющее брать исходные коды драйверов из ядра Linux и, применив к ним ряд патчей, получать драйвера для ОС FreeBSD. Сразу замечу, что далеко не все драйвера из Linux можно таким вот чудесным мановением руки превратить в драйвера для ОС FreeBSD и без рукопригладства тут не обходится. На сколько мне известно фреймворк LinuxKPI на данный момент поддерживает только драйвера сетевых адаптеров и драйвера подсистемы DRM (Direct Rendering Management). Данный фреймворк появился в ОС FreeBSD с версии 11-RELEASE и работы над ним все еще активно ведутся, в частности по улучшению поддержки драйверов сетевых адаптеров.

Для того, чтобы задействовать какой либо драйвер из Linux посредством LinuxKPI, необходимы исходные коды самого драйвера, а так же исходные коды ядра ОС FreeBSD. Исходники ядра ОС я установил в самом начале при выполнении базовой инсталляции с USB Flash носителя. С исходниками драйверов все сложнее — выкорчевать их из Linux-а не просто, но добрые люди постарались за нас Вами и сделали соответствующие репозитории на Github-е.

По этому клонируем репозиторий под названием freebsd/drm-kmod — в нём содержатся адаптированные исходные коды драйверов для подсистемы DRM, в том числе исходники драйверов видеоадаптеров и видеоускорителей:

Замечу, что поддержка встроенного видеоускорителя для системы-на-кристалле AMD Cezanne (ChipID = 0x1638) появилась в DRM начиная с версии 5.7, но реально рабочей она стала только с версии 5.10. Поэтому, зайдем в репозиторий и переключимся на ветку 5.10-lts:

после чего проведем сборку и установку драйвера:

и добавим модуль ядра amdgpu в переменную kld_list для загрузки в при старте системы:

Для того, чтобы включить систему динамического энергосбережения для AMD GPU рекомендуется изменить значения следующих MIB переменных. Так, как эти переменные имеют статус «read-only», то изменять их значения можно только в момент инициализации загрузчика ОС, следовательно их нужно добавить в файл конфигурации загрузчика /boot/loader.conf:

После чего выполнить перезагрузку ОС (команда sudo reboot). Да, к нашему всеобщему сожалению, иного способа ввести в действие эти переменные нет:

После того, как ОС FreeBSD загрузилась, следует убедиться, что модуль ядра amdgpu и все его сопутствующие части успешно загрузились. Для этого следует внимательно просмотреть сообщения в dmesg от подсистемы drm на наличии сообщений об ошибках. Сделать это можно командой:

Ключевыми моментами здесь являются следующие сообщения:

Если Вы совсем не видите никаких сообщений от drm, это значит что либо Вы некорректно инсталлировали драйвер drm-kmod, либо модуль amdgpu не добавлен в список загрузки (см переменную kld_list файл /etc/rc.conf).

Узнать загружен ли модуль в данный момент можно командой kldstat следующим образом:

Если же Вы наблюдаете какие-то сообщения об ошибках, при этом модуль не рапортует о том, что он успешно загрузился и проинициализировался, то Ваше дело «швах» и Вам прямая дорога на форум поддержки пользователей FreeBSD: https://forums.freebsd.org/

23.4 Установка драйвера к AMD GPU для X сервера Xorg

Как я отмечал выше, для того чтобы X сервер мог взаимодействовать с видеокартой или видеоускорителем ему требуется прослойка в виде DDX драйвера — модуль, который X сервер подгружает в процессе своей инициализации и использует для взаимодействия с DRM видеоподсистемой. Для Xorg таким модулем является xf86-video-amdgpu (напомню, что Xorg является наследником проекта XFree86), установить который можно как из пакетов, так и из коллекции портов.

Разнообразия ради выполним установку этого DDX драйвера из портов. Для этого зайдем в каталог /usr/ports/x11-drivers/xf86-video-amdgpu, прочитаем краткую информацию о нём:

Информация в этом описании несколько устарела, в списке поддерживаемых чипсетов отсутствует RENOIR — это тот самый AMD GPU «чипсет» c идентификатором ChipID = 0x1638 присутствующий в СнК AMD Ryzen 5600H на моём ноутбуке.

Замечу, что у AMD царит полный бардак с именованием своих изделий — одна и та же сущность (в данном случае GPU) имеет несколько различных названий: «Radeon Graphics», «Cenzanne», «RENOIR». Если Вы будете искать информацию в Сети, то гуглите сразу по всем трем словам.

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

23.5 Настройка Xorg на работу с 3D ускорителем AMD GPU

Я уже отмечал, что в теории, Xorg достаточно интеллектуален чтобы при запуске без всякого конфига и настроек обнаружить всё доступное оборудование и приступить к работе. К сожалению, конкретно на моём «железе» такой подход не работает даже при наличии всех необходимых драйверов. Мне пришлось потратить не мало времени (несколько месяцев изысканий и общения на форумах, а так же дождаться выхода соответствующих патчей), чтобы выяснить все тонкости с подбором драйверов и опций в конфиге Xorg и заставить его работать. Не буду мучить читателя подробностями этой увлекательной истории, сразу приступлю к делу.

И так, напомню, что у меня уже имеется рабочий Xorg который работает с VESA совместимым драйвером scfb и использует встроенную видеокарту в режиме «modesetting», т. е. без какого либо ускорения. Для того, чтобы перейти на драйвер с аппаратным ускорителем, необходимо указать его имя amdgpu в параметре Driver в секции Device в файле конфигурации /etc/X11/xorg.conf, вот таким образом:

Так же очень желательно указать параметр BusID с идентификатором PCI шины на которой находится данный GPU чип, иначе чуда может не случиться.

Подправив соответствующим образом конфигурационный файл, следует перейти в VT консоль нажатием сочетания клавишь Ctrl-Alt-F1, войти в систему и перезапустить сервис дисплейного менеджера SDDM:

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

В случае, если X сервер не смог перезапуститься по какой либо причине, необходимо внимательно прочитать содержимое лог файла /var/log/Xorg.0.log в котором будут описаны все шаги которые предпринимал Xorg при запуске и что именно его не устроило — с большой вероятностью могу сказать, что Вы допустили опечатку в конфиге. Подправив конфиг нужно еще раз перезапустить SDDM.

Если у Вас произошел нормальный запуск X сервера и Вы видите окно логина, я всё равно рекомендую заглянуть в лог файл и убедиться в том, что в нём присутствует инициализация AMD GPU:

После чего можно смело входить в систему через DM и проводить тесты. Прежде всего запустим окно xterm (или любого другого эмулятора терминала) и установим полезные утилиты:

Теперь можно просмотреть информацию о подсистеме OpenGL утилитой glxinfo:

На этом можно констатировать тот факт, что 3D ускоритель AMD GPU встроенный в СнК полностью функционирует и его можно смело использовать.

Но что же делать с если что-то пошло не так и всё не так как хочется: «иксы» не запускаются, модули не загружаются, и т. д. и т.п. ? Прежде всего нужно собрать как можно больше информации о Вашей системе, в том числе: версию ОС, версии Xorg и устанавливаемых драйверов, а так же вывод dmesg и лог Xorg-а — Вы четко должны представлять что, когда и куда Вы устанавливали, какие конфиги изменяли и какой результат при этом получили. После чего можно задать квалифицированный вопрос на форуме https://forums.freebsd.org/ указав всю собранную Вами информацию и детально описав проблему. С очень большой вероятностью, что Вам помогут.

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

23.6 «Гибридный режим» — запуск вспомогательного Xorg для работы с акселератором NVIDIA GeForce

Для того, чтобы задействовать второй (дискретный) 3D ускоритель NVIDIA GeForce RTX 3050 в «гибридном режиме» необходимо решить две задачи: 1) запустить еще одну копию X сервера Xorg со своим отдельным конфигурационным файлом, и 2) решить вопрос маршрутизации запросов по протоколу X11 от X клиентов к нужному X серверу. И тут обнаружилось, что для ОС FreeBSD давно существует порт (и пакет) под названием x11/nvidia-hybrid-graphics, который решает именно эти задачи.

Зайдем в каталог /usr/ports/x11/nvidia-hybrid-graphics и прочитаем описание этого порта:

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

Порт nvidia-hybrid-graphics предназначен для видеоадаптеров производства NVIDIA с поддержкой технологии «Optimus». В двух словах «Optimus» это технология передачи вычислительной нагрузки (GPU Offloading) между «безголовым» ускорителем от NVIDIA.

Данный порт/пакет представляет собой обертку для старой и доброй технологии VirtualGL — способ передачи вычислительной нагрузки на отдельно стоящие 3D ускорители с последующим отображением результата на X дисплее пользователя используя стандартный X11 протокол.

В процессе работы VirtualGL осуществляет передачу больших объемов данных между видеокартами. Как конкретно это реализовано в nvidia-hybrid-graphics я точно сказать не могу, но после ряда экспериментов я могу с большой вероятностью утверждать, что встроенный в DRM механизм передачи указателей на аппаратные буфера (PRIME) в VirtualGL не используется, а следовательно между двумя процессами Xorg циркулирует большой объём трафика (готовые отрендеренные битмапы), что может сказываться на производительности всей ОС.

VirtualGL не поддерживает технологию Vulkan, а значит приложения которые используют OpenGL и Vulkan одновременно работать не будут. Но отдельно стоящие приложения для Vulkan-а скорее всего заработают.

Не смотря на всё вышесказанное, «гибридный режим» позволяет достаточно эффективно задействовать вычислительные ресурсы дискретного ускорителя от NVIDIA, что может быть полезно для некоторых специфических приложений, как то при работе в различных САПР (FreeCAD) или при рендеринге 3D анимации (Blender).

Установим данный порт следующей командой:

И тут я натолкнулся на еще один неприятный нюанс — дело в том, что в Xorg версии 1.20.14 есть баг, который приводит к его крэшу при запуске в процессе инициализации «безголового» акселератора. Багфикса к этой проблеме для ОС FreeBSD на данный монет не существует, но есть обход. Я подозреваю, что эта проблема устранена в более поздних версиях Xorg которые пользователям FreeBSD на данный момент недоступны.

Короче, нужно явно объяснить Xorg-у, что он имеет дело с «безголовым» ускорителем с помощью опции Option «UseDisplayDevice» «None» в секции Device и так же, как для AMD GPU указать параметр BusID с расположением устройства NVIDIA GeForce на шине PCI. Сделать это нужно в файле конфигурации вспомогательного Xorg, который находится в /usr/local/etc/X11/xorg-nvidia-headless.conf.

Ниже привожу полное содержимое этого файла в моей системе:

После того как внесены все правки в конфигурационный файл, запустить вспомогательный X сервер можно следующей командой:

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

Из вывода команды ps видно, что в моей системе сейчас запущено два процесса Xorg, для второго явно задано номер дисплея :8 — именно к этому дисплею должны подключаться X клиенты если им требуется работать с NVIDIA GPU.

Войдем в систему через DM и проверим что нам выдает утилита glxinfo. Для того, чтобы настроить клиента на работу со вспомогательным X сервером в состав установленного порта nvidia-hybrid-graphics входит две утилиты-скрипта: nvrun и nvrun-vgl которые запускаю X клиента предварительно настроив переменные DISPLAY и LD_PRELOAD на работу с оберткой VirtualGL. Отличие между ними состоит в том, что первая запускает клиента в «безголовом» режим — без отображения вывода, а вторая делает так, что весь графический вывод клиента транслируется на основной X сервер и отображается пользователю.

Запустим glxinfo в безголовом режиме:

Как видно, NVIDIA GeForce RTX 3050 распознан и доступен для работы. На этом можно сказать, что второй (дискретный) GPU работает и можно провести небольшие тесты двух ускорителей, о чем я поведаю далее.

24. Тестирование 3D ускорителей

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

Самый простой способ оценить производительность аппаратного 3D ускорителя это запустить утилиту glxgears на полный экран и наблюдать параметр FPS на стандартном выводе.

Запустим glxgears на AMD GPU:

Этот же самый тест на NVIDIA GPU — запускаем glxgears через утилиту nvrun-vgl:

Видно, что на такой примитивной задаче (вращение зубчатого колеса) GPU NVIDIA выдает почти на порядок большее количество FPS чем её собрат от AMD, но я не стал доверять этим цифрам и следом провел ряд замеров производительности с помощью утилиты glmark2 которая всё разложила по полочкам.

И так, установим утилиту glmark2 из пакетов:

и запустим тест glmark2 на 3D ускорителе AMD RENOIR, сначала в «безголовом» режиме чтобы оценить чистую производительность ускорителя. В приведенной ниже команде параметр —fullscreen указывает на размер битмапа который нужно формировать на выходе ускорителя — во весь экран (в моём случае 1920×1080), а —off-screen сообщает утилите о том, то битмап отображать на экране не следует — «безголовый» режим.

Теперь запустим тест glmark2 на 3D ускорителе AMD RENOIR с отображением битмапа на экран:

Этот же тест glmark2 на 3D ускорителе NVIDIA GeForce RTX 3050 в «безголовом» режиме — используем утилиту nvrun:

Ну и крайний тест — glmarg2 на 3D ускорителе NVIDIA GeForce RTX 3050 в режиме с отображением картинки на экран. Для этого используем утилиту nvrun-vgl:

Сводная таблица результатов тестирования укорителей выглядит следующим образом:

Настройка BIOS для установки Windows с загрузочного диска

Почти все модели ноутбуков, выпускаемые на сегодня, поставляются без встроенного привода дисков CD/DVD. Не являются исключением и ноутбуки Lenovo. Загрузочный USB-накопитель в этом случае является полезным инструментом для диагностики и восстановления операционной системы или для установки новой ОС.

Существует несколько способов загрузки ноутбуков Lenovo с загрузочного USB-накопителя.

Загрузка через BIOS

Загрузка с USB-накопителя (флешки) через изменение приоритета загрузки BIOS – оптимальный вариант, когда необходимо разблокировать ПК с помощью средства восстановления пароля Windows или исправить проблему с загрузкой, такую как синий экран, отсутствие запуска ОС и т.д.

Для загрузки необходимо:

    Подключить загрузочный USB-накопитель к USB-порту ноутбука.

Справка! Желательно подключать USB-накопитель к порту USB 2.0, т.к. с портом USB 3.0 возможно возникновение проблем. Порты USB 3.0 обычно имеют синий цвет в середине или более светлый цвет, чем порты USB 2.0.

BIOS Boot

  1. При появлении BIOS-меню перейти в раздел «Boot» стрелками влево-вправо на клавиатуре.

Справка! Если на жестком диске находится таблица MBR-разделов (старый вариант разметки HDD, работающий с разделами не более 2 Тб), то выставленный в «Boot Priority» – «UEFI First» может привести к ошибке установки Widnows.

Phoenix – Award BIOS

Если на ноутбуке установлен Phoenix – Award BIOS, после стандартного входа в BIOS необходимо:

    Стрелками вверх-вниз выбрать «Advanced BIOS Features» и зайти в него, нажав «Enter».

Системные требования

Операционная система Windows 7 отличается неприхотливостью и отличной оптимизацией. Для стабильной работы, компьютер должен обладать следующими характеристиками:

  • процессор (32-разрядный или 64-разрядный) с частотой от 1 ГГц;
  • 1 Гб оперативной памяти для версии 32 бит или 2 Гб ОЗУ для версии 64 бит;
  • 20 Гб свободного места на жестком диске;
  • Графический адаптер с поддержкой DirectX 9.

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

Загрузка через Boot Menu

Чтобы запустить загрузку Lenovo с USB-накопителя, не обязательно делать это через BIOS Setup. В ноутбуках Lenovo для этого предусмотрено специальное меню загрузки «Boot Menu».

Чтобы зайти в загрузочное меню, необходимо:

    Включить систему, и сразу нажимать кнопку «F12».

Комментарии • 70

спасибо бро. Все четко обьяснил. Красава продалжай дальше выкладывать видосы.

Спасибо, мил человек! Удачи тебе!

огромное спасибо выручил с меня лайк и подписка

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

спасибо тебе добрый молодец.

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

Спасибо братан. Побольше бы таких людей как ты. Все получилось )

Реально помогло , спасибо!

Огромное человеческое спасибо. Всё получилось.

Спасибо тебе огромное, неделю ебался с установкой винды

2020 работает. Единственный рабочий способ у Алексея. Прошивку последнюю с сайта качайте 2.07 и строго по инструкции. Сам занимаюсь ноутбуками, но этот сломал мою голову!!))

Помогло спасибо тебе большое работает даже на lenovo g580

Красавчик! Огромная благодарность тебе!

Дружище ты лучший. 2 дня потел, голова кипела. Все манипуляции вроде делал. Уже психанул разобрал поставил жесткий на комп и установил семерку, эта зараза выпадала в синий экран. Помогло сброс настроек биоса))) и заново установка винды уже на ноуте. Спасибо.

Огромное спасибо Пол дня потратил на эту проблему Модель B50

Спасибо, очень помогло, для Линуксоида! в Линуксе проблем с установками нет, а вот как 7 устанавливать, так начинаются танцы с бубном!

Спасибо друг помог.лайк от меня

Дружище, ты гений. Спасибо, помогло. Всех благ тебе

красавчик а то я сидел мозг ломал , спасибо

Пол видео про прошивку пропиздить, нахуя?

биос обновлять не пришлось, на этом же ноуте хватило только поменять настройки в биосе. спасибо за видос ! винда продолжила установку с HDD )

все четко заработало! СПАСИБО!

Я просто обновил биос и на этом все, все что тут написано не помогло на этом ноуте, был синий экран, сбросте настрйоки биоса и ничего не выставляйте будет счастье)

Я бы тебя расцеловал! Правда USB я все-таки вверх вынес.

Спасибо толково объяснил )

Спасибо! Помогло! Красавчик!

Спасибо брат выручил очень

спасибо. я нажал в exite disablet и сразу 7я винда заработала.

Спасибо за вашу работу.Часть рекомендаций взял от вас,часть пришлось и додумывать самому.Дело в том что после обновления BIOS (версия 2.09),нет пунктов,которые были у многих,в частности,такие как: «OS optimized Default, меняем в ней значение с Win8 64 bit на Other OS». Действие в видео повторяем за автором,а далее делаем по следующему алгоритму: 1.Заходим в BIOS,далее Set OS Optimsed Default to [DISABLED]; 2.Сохраняем изменения и выходим (FN+F10); 4.Заходим в BIOS,пункт Load Default Settings,сбросили; 5.Сохраняем изменения и выходим (FN+F10); 6. Перезаходим в BIOS и проверяем,после сброса(пункт 4)в пункте BOOT должно быть значение «Legacy support»,ну как в видео,просто,к примеру,у меня значения скидывались до UEFI и только 2 перезагрузки и то что описал выше помогло; P.S.Перезагрузку делал именно по 2 раза,помогло именно так,видимо,для применения изменений; P.S.Флешку использовал 3.0 и win7 x64bit,обязательно в USB 3.0 P.S. Также,можно установку не на самотек,а с помощью FN+F12 и выбрать свою загрузочную флеш. Удачи!

зделай ролик как розблокировать вкладку адванс на insydenH20 rev 5.0

Загрузка с помощью «Novo Button»

Если не получается зайти в меню загрузки «Boot Manager» клавишей «F12», на этот случай на ноутбуках Lenovo рядом с кнопкой питания или на их боковой панели предусмотрена специальная кнопка со стрелкой. Эта кнопка присутствует на многих ноутбуках Lenovo и называется «Novo Button».

Для активации загрузки по кнопке «Novo Button» нужно:

    Нажать ее при выключенном состоянии системы.

Как выставить приоритет загрузки в BIOS ASUS?

Как можно понять, располагается меню Boot device priority в настройках БИОС (UEFI). Чтобы попасть в них, необходимо при загрузке компьютера (до начала загрузки операционной системы) нажимать на клавишу Del. …

Acer F9, F12 или ESC
ASUS F8 или ESC
Compaq F9 или ESC
Dell F12
ESC F11

Катар что за страна и где? Кто является резидентом страны? Кто входит в страны ЕАЭС? Кто входит в страны СНГ? Мот сколько стран входит? Можно ли поступить в магистратуру в другой стране? Нужно ли сниматься с учета при переезде в другую страну? Откуда произошло название страны Англия? Почему я не могу поменять страну в Apple ID? Почему страны Латинской Америки так называются?

Загрузка с помощью UEFI boot

Иногда ноутбук загружается настолько быстро, что в BIOS нельзя зайти по нажатию кнопки «F1», «F2+Fn», или «F12». Если у ноутбука отсутствует кнопка «Novo Button», но при этом он может нормально загружать операционную систему с жесткого диска, то войти в загрузочное меню UEFI BIOS можно прямо из Windows 8/8.1/10.

Как зайти в меню UEFI

Для Windows 8/8.1
  1. Сдвинуть указатель мыши в правый верхний или нижний угол дисплея, и переместить мышь вверх или вниз. Появится панель «Charm», где нужно щелкнуть «Параметры» (значок шестеренки).

Для Windows 10
  1. Нажать «Пуск» – «Настройки» (значок шестеренки).

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

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

Читайте более подробную информацию с инструкцией в нашей новой статье — «Как загрузить компьютер с флешки».

КОМЕНТАРІ • 70

спасибо бро. Все четко обьяснил. Красава продалжай дальше выкладывать видосы.

Спасибо, мил человек! Удачи тебе!

огромное спасибо выручил с меня лайк и подписка

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

спасибо тебе добрый молодец.

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

Спасибо братан. Побольше бы таких людей как ты. Все получилось )

Реально помогло , спасибо!

Огромное человеческое спасибо. Всё получилось.

Спасибо тебе огромное, неделю ебался с установкой винды

2020 работает. Единственный рабочий способ у Алексея. Прошивку последнюю с сайта качайте 2.07 и строго по инструкции. Сам занимаюсь ноутбуками, но этот сломал мою голову!!))

Помогло спасибо тебе большое работает даже на lenovo g580

Красавчик! Огромная благодарность тебе!

Дружище ты лучший. 2 дня потел, голова кипела. Все манипуляции вроде делал. Уже психанул разобрал поставил жесткий на комп и установил семерку, эта зараза выпадала в синий экран. Помогло сброс настроек биоса))) и заново установка винды уже на ноуте. Спасибо.

Огромное спасибо Пол дня потратил на эту проблему Модель B50

Спасибо, очень помогло, для Линуксоида! в Линуксе проблем с установками нет, а вот как 7 устанавливать, так начинаются танцы с бубном!

Спасибо друг помог.лайк от меня

Дружище, ты гений. Спасибо, помогло. Всех благ тебе

красавчик а то я сидел мозг ломал , спасибо

Пол видео про прошивку пропиздить, нахуя?

биос обновлять не пришлось, на этом же ноуте хватило только поменять настройки в биосе. спасибо за видос ! винда продолжила установку с HDD )

все четко заработало! СПАСИБО!

Я просто обновил биос и на этом все, все что тут написано не помогло на этом ноуте, был синий экран, сбросте настрйоки биоса и ничего не выставляйте будет счастье)

Я бы тебя расцеловал! Правда USB я все-таки вверх вынес.

Спасибо толково объяснил )

Спасибо! Помогло! Красавчик!

Спасибо брат выручил очень

спасибо. я нажал в exite disablet и сразу 7я винда заработала.

Спасибо за вашу работу.Часть рекомендаций взял от вас,часть пришлось и додумывать самому.Дело в том что после обновления BIOS (версия 2.09),нет пунктов,которые были у многих,в частности,такие как: «OS optimized Default, меняем в ней значение с Win8 64 bit на Other OS». Действие в видео повторяем за автором,а далее делаем по следующему алгоритму: 1.Заходим в BIOS,далее Set OS Optimsed Default to [DISABLED]; 2.Сохраняем изменения и выходим (FN+F10); 4.Заходим в BIOS,пункт Load Default Settings,сбросили; 5.Сохраняем изменения и выходим (FN+F10); 6. Перезаходим в BIOS и проверяем,после сброса(пункт 4)в пункте BOOT должно быть значение «Legacy support»,ну как в видео,просто,к примеру,у меня значения скидывались до UEFI и только 2 перезагрузки и то что описал выше помогло; P.S.Перезагрузку делал именно по 2 раза,помогло именно так,видимо,для применения изменений; P.S.Флешку использовал 3.0 и win7 x64bit,обязательно в USB 3.0 P.S. Также,можно установку не на самотек,а с помощью FN+F12 и выбрать свою загрузочную флеш. Удачи!

зделай ролик как розблокировать вкладку адванс на insydenH20 rev 5.0

Ноутбук Lenovo IdeaPad Z580: домашняя машина по адекватной цене

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

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

Загрузка ноутбука Lenovo с USB накопителя

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

  1. Через Boot Menu (рекомендую именно этот способ). С помощью этого меню мы можем указать ноутбуку Lenovo, с какого устройства загружаться конкретно в этот раз. Так как запуск ноутбука с загрузочного накопителя нам скорее всего нужно сделать только один раз. Этого достаточно, чтобы запустить установку Windows, или выполнить другие действия.
  2. Через меню BIOS. Здесь уже нужно менять порядок загрузки в настройках BIOS. В принципе, ничего сложно. Но не вижу смысла это делать, если можно выбрать устройство через Boot Menu. Разве что через загрузочное меню у вас на получается. Такой себе запасной вариант.

В любом случае, сначала подключите флешку к ноутбуку.

Желательно подключать в порт USB 2.0. С USB 3.0 могут быть проблемы. Порт USB 3.0 в середине обычно синий, или более светлый по сравнению с USB 2.0.

Смартфон Lenovo S920, характеристики быстрого IdeaPhone

Еще одно интересное решение от Lenovo – смартфон Lenovo IdeaPhone S920.

  • экран: IPS 5.3″, 16 млн. цветов, 1280×720, сенсорный, емкостный, мультитач;
  • процессор: 4-ядерный MTK 6589, 1,2 ГГц, видео PowerVR Series5XT;
  • память: 1 Гб RAM, 4 Гб встроенная + 32 Гб microSDHC, microSD;
  • вид телефона: моноблок, 159 г, 154×77.7×7.9 мм;
  • разъем для зарядки телефона: micro-USB;
  • тип связи: GSM 900/1800/1900, 3G;
  • навигация: GPS, A-GPS;
  • интерфейсы: Wi-Fi, Bluetooth, USB;
  • платформа: Android 4.2 с фирменной оболочкой ideaDesktop;
  • аккумулятор: Li-Pol 2250 mAh, 25 ч разг. (GSM), 12 ч разг. (WCDMA);
  • камера: фронтальная 2 Мп, тыловая 8 Мп, вспышка, детектор лиц и улыбок.

IdeaPhone S920 может «похвастаться» двумя SIM-картами, однако он оснащен одним радио модулем, что, например, не позволяет ему скачивать файл в Интернете во время телефонного разговора.

Качество снимков S920 очень хорошее, однако ideaDesktop «не блещет» дизайном. АКБ позволяет смартфону интенсивно отработать день на одном заряде, что является весьма неплохим показателем. Динамик же у телефона качественный и громкий.

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

Видео — Как загрузиться с флешки или с диска на ноутбуке Lenovo

Понравилась статья? Сохраните, чтобы не потерять!


Покупатель ноутбука Lenovo может получить в распоряжение одну из трех операционных систем: Free Dos, Linux или ограниченную в плане функциональности Windows.

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

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

Драйверы устройств

В чем заключается проблема ноутбука Lenovo B50-30? Драйвера WiFi (Windows 7) или любые другие драйверы для «семерки» на официальном сайте отсутствуют. А Wi-Fi имеет критическое значение. Ведь без интернета не получится скачать и другие драйверы. Здесь есть несколько вариантов. Можно скачать драйверы от «восьмерки». В некоторых случаях они подходят. А можно обратиться к сайту производителя компонента и скачать свежую версию оттуда. Но в любом случае вам понадобится второй компьютер с доступом в интернет.

lenovo b50 30 как установить windows 7

Иногда на сайтах производителей оборудования нет софта для модели Lenovo B50-30. Однако драйвер для Wi-Fi будет в любом случае. Стоит поставить только его. А дальнейшие проблемы можно решить через «Диспетчер устройств» в установленной ОС. Он позволяет обновить драйвера оборудования с официальных серверов . Пока «семерка» официально поддерживается, они оттуда никуда не денутся. Главное — завести интернет на этой «железке». Как только вы это сделаете, жить сразу станет проще.

Настройка BIOS на Lenovo


После выполнения подготовительных мероприятий ноутбука к продаже, он настраивается на загрузку с жесткого диска. Основная проблема с установкой ОС на Lenovo – включенная защита в BIOS. Ваша задача сводится к настройке BIOS на отключение автозагрузки с винчестера и загрузки с компакт-диска или флеш-накопителя.

Предварительно выключаем ноутбук, если он включен, и делаем следующее:

нажимаем кнопку включения;


ждем 1-2 секунды (пока на дисплее появится стартовая заставка – надпись LENOVO на черном фоне), после чего несколько раз нажимаем на клавиатуре клавишу для входа в меню BIOS. В современных моделях ноутбуков Lenovo за вход в BIOS отвечают одни и те же клавиши: кнопка F2 открывает непосредственно сервисное меню, кнопка F12 – раздел выбора загрузочного устройства.

Как установить Windows 7 вместо Windows 8 на ноутбуке Lenovo?

Сейчас многие ноутбуки Lenovo продаются с предустановленной операционной системой Windows 8. Данная система некоторым пользователям кажется не очень удобной в работе, и они хотели бы вернуться к Windows 7. Лицензирование Microsoft позволяет использовать ключ от Windows 8 для установки Windows 7, но с установкой самой системы могут возникнуть некоторые проблемы. Одна из таких проблем, с которой можно столкнуться, это упорная загрузка с жёсткого диска и игнорирование вставленного в привод диска с дистрибутивом операционной системы.

Это происходит потому, на данных ноутбуках стоит защита от загрузки с компакт диска, и задан неправильный порядок загрузки в самой BIOS. Для начала необходимо войти в настройку BIOS. Это производится на начальном этапе загрузки ноутбука, через несколько секунд после включения, до загрузки операционной системы. Система напишет, что для входа в BIOS (или SETUP) необходимо нажать клавишу DEL или одну из кнопок “F1-F12”, обычно F2 (зависит от модели). На некоторых моделях Lenovo нужно нажать клавишу TAB и выбрать пункт меню Setup на второй вкладке. Если не получается, то поочередно попробуйте клавиши от F1 до F12.

Переходим в раздел Security. Находим строку Secure Boot и меняем значение Enabled на Disabled

Меняем следующим образом. Выделяем пункт Secure Boot нажимаем Enter и во всплывающим окошке выбираем Disabled.

На некоторых ноутбуках, функция Secure Boot может находится в разделе Boot

Защиту загрузки отключили. Теперь переходим на вкладку Advanced и заходим в раздел System Configuration нажав на Enter

В строке Boot Mode меняем значение с UEFI Boot на CMS Boot

Для сохранения настроек нажимаем F10 и клавишей Enter подтверждаем.

Все готово, далее вставляем дистрибутив Windows 7 в дисковод при загрузке выбираем TAB или F12 и загружаемся с DVD-ROM.

Ещё такой момент, если в комплекте с ноутбуком поставлялся диск с драйверами для Windows 8, то перед установкой придётся скачать все драйвера под эту ОС.

Далее, загружаемся с загрузочного диска с дистрибутивом операционной системы и следуем инструкциям мастера-установщика.

Подготовка дистрибутива для установки Windows на Lenovo


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

Для создания загрузочной флешки делаем следующее:

  • скачиваем программу UltraISO с официального сайта . При желании используйте другую программу с аналогичным функционалом – порядок действий останется идентичным. UltraISO является самым популярным и удобным вариантом;
  • дождавшись окончания загрузки пакета, запускаем установочный файл и следуем рекомендациям загрузчика;
  • кликаем по ярлыку установленной программы правой кнопкой мышки и запускаем софт от имени администратора, выбрав соответствующий пункт либо можно запустить непосредственно сам образ ISO ;

в открывшемся меню программы жмем кнопку «Файл», затем – «Открыть»;

находим сохраненный ранее образ операционной системы, выделяем и открываем раздел «Самозагрузка». Там выбираем пункт «Записать образ жесткого диска»;

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

Далее нам остается сделать следующее:

нажать кнопку «Записать». В открывшемся окне «Подсказка» программа предложит нам удалить все с флешки. Делаем это. Дожидаемся завершения создания загрузочной флешки.

Как установить windows 7 на Lenovo G50-30

Шаг 1.

Зайти на оф сайт Lenovo и скачать последнюю версию прошивки для BIOS Lenovo G50-30. Вот ссылка на сайт https://www.lenovo.com/ru/ru/

Чтобы скачать прошивку для BIOS Lenovo G50-30 нужно пройти по вышеуказанной ссылке и в шапке сайта выбрать раздел Поддержка

Появится ниспадающее меню, в котором выбираем Поддержка продуктов Lenovo и Think

Затем выбрать Ноутбуки

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

В окне Компонент выбираем BIOS . В окне Операционная система: Windows 7 (64-bit) Жмем BIOS Update Почему Windows 7 (64-bit), а на 32-bit просто нет дров.

Последняя версия прошивки для BIOS Lenovo G50-30 скачена. Трудностей с прошивкой BIOS не должно возникнуть. Запускаем скаченный файл и следуем указаниям инсталлятора. Ноутбук должен работать от сети. Настройки BIOS сделайте по умолчанию.

Шаг 2.

Очищаем жесткий диск ноутбука от всех разделов на нем. Я просто установил в привод загрузочный образ Windows 8 и выставив в приоритете BIOS дисковод начал установку системы. Дошел до выбора раздела для установки ОС и удалил все разделы на жестком диске, оставив неразмеченную область.

Шаг 3.

Настраиваем BIOS для установки windows 7 на Lenovo G50-30.

1. Переходим в раздел BIOS Configuration . Переключаем опцию SATA Controller Mode из режима AHCI в режим работы Compatible .

2. В этом же разделе Configuration опцию USB Mode переключаем из режима USB 3.0 в режим работы USB 2.0

3. Перемещаемся в раздел Boot . Здесь нам надо отключить загрузчик Windows 8 UEFI. Для этого опцию Boot mode из режима UEFI переключаем в режим Legacy Support .

Обратите внимание после того как мы переключили опцию Boot mode из режима UEFI в режим Legacy Support , в BIOS появилась новая опция Boot Priority .

Продолжаем настраивать BIOS на Lenovo G50-30 под Windows 7 . Переключаем опцию Boot Priority из режима UEFI First в режим работы Legacy First .

4. Завершающий этап настройки раздел Exit . Здесь нужно оптимизировать BIOS под Windows 7. Для этого опцию OS Optimized Defaults переключаем из режима Win8 64bit в режим Win7 OS .

Сохраняемся и уходим в перезагрузку.

После все этих манипуляций, я установил Windows 7 на Lenovo G50-30

Многие пользователи, которые купили ноутбуки с предустановленной Windows 8 так и не смогли привыкнуть к этой операционной системе. В этом нет ничего удивительного, восьмёрка очень сырая и в ней много лишнего. На ноутбуке Lenovo B50 30 также установлена windows 8. Если вы решили расстаться с лицензионной, но неудобной операционкой и задумались над установкой windows 7, то, перед тем как вставить диск нужно перенастроить биос.

На ноутбуках леново есть два способа входа в BIOS:

  1. Выключаем компьютер, далее нажимаем кнопку включения и сразу же удерживаем Fn и F2
  2. Выключаем кеомпьютер, и нажимае иголочкой или скрепкой «восстановления системы» кнопочку, которая находится справа в районе выходов для подключения наушников. (Но я предпочитаю первый способ).

Итак, мы в Биосе. Перед установкой Windows 7 нужно изменить несколько пунктов.

Во вкладке Exit меняем OS OptimizedDefaults на Other OS

Далее нажимаем LoadDefaultSetting

Дальше вкладка Boot — ставим BootmodeLegacySupport и

BootPriorityLegasyFirst

Ну вот и все настройки. Выходим из Биоса с сохранением настроек и приступаем к установке Windows 7

Да, чуть не забыл, драйвера на официальном сайте Леново есть только под Windows 64

Установка Windows

BIOS настроен, загрузочное устройство подготовлено. Приступаем непосредственно к установке Windows. Для этого вставляем в ноутбук диск или флешку и перезагружаем устройство. Ноутбук самостоятельно «поймет», как ему нужно загрузиться. Как правило, никаких дополнительных действий со стороны пользователя не требуется. Некоторые модели «просят» нажать любую клавишу для загрузки со съемного накопителя – делаем это.

Ждем, пока Windows распакует файлы, после чего выбираем «Полная установка».

Далее события могут развиваться по 2 сценариям:

  • если жесткий диск изначально разбит на разделы и файловая система отформатирована в NTFS, приступаем к дальнейшей установке;
  • если система – CDA, предварительно удаляем разделы жесткого диска. Для этого жмем кнопку «Настройка диска» и поочередно удаляем разделы.

Здесь же мы можем разделить свободное пространство на несколько разделов. Для этого жмем кнопку «Создать», указываем желаемый размер (под систему лучше от 30 – 60 Гб) и подтверждаем свои действия. Повторяем, пока не распределим все доступное пространство на жестком диске.

Загрузка lenovo с диска или флешки

У ноутбука lenovo загрузка с диска выполняется следующим образом:

  1. В дисковод вставляется с Виндовс. Затем выполняется перезагрузка ноутбука. Если устройство «попросит» нажать любую кнопку, следует это сделать.

  1. Когда ОС распакует файлы, необходимо указать «Полная установка».

В данном случае существует два варианта развития событий. Если диск поделен на разделы, а форматирование системы файлов выполнено в NTFS, необходимо продолжить установку. В случае, когда используется CDA, придется сначала удалить разделы в «Настройке диска».

Если нажать на «Создать», получится поделить пространство жесткого диска, которое свободно от файлов, на несколько разделов. Потребуется указать требуемый размер (рекомендуемый – от 30 до 60 Гб), а затем подтвердить собственные манипуляции. Таким способом поочередно создаются разделы, рационально распределяя свободное пространство.

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

Таким образом, у ноутбука lenovo загрузка с флешки или диска проста и понятна.

Типичные проблемы при установке Windows

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

Во-первых, неправильный выбор формата на стадии форматирования флеш-накопителя.

Во-вторых, использование неправильного загрузочного образа. Установочные диски Windows делятся на две категории:

  • загрузочные – предназначены для «чистой» установки операционной системы;
  • не загрузочные – применяются преимущественно для решения различных проблем и работают только из-под интерфейса Windows.

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

Возможные проблемы

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

Первым делом нужно убедиться в правильности выбранного формата используемой флешки. Непосредственно при создании установочного накопителя нужно выбирать форматирование FDD или HDD.

Обратите внимание! При создании загрузочного носителя через программу. Необходимо внимательно изучать каждый пункт и выставлять правильные параметры в соответствии с инструкцией.

Особое внимание нужно уделять загрузочному образу. Все установочные диски с операционной системы делятся на загрузочные и для восстановления. Второй вариант невозможно запустить из БИОСа. А значит, установку совершить не удастся.

Поняв, как правильно установить Windows 7 с флешки на ноутбук Lenovo, пользователь сможет без проблем повторять данную процедуру в любое удобное время. Причем никаких затрат на использование услуг специалистов в сервисных центрах не возникнет.

Настройка БИОС

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

Необходимо отключить ноутбук и выполнить следующие действия:

  1. Подождать 2 секунды, на экране должна появиться логотип компании, которая выступает в виде заставки.
  2. Нажать несколько раз кнопку для входа в BIOS (F2 – сервисное меню, F12 – выбор загрузочного устройства).
  3. Необходимо открыть Security, перейти в Secure Boot и кликнуть по Enter.

5. Здесь нужно настроить режим Disabled, что означает деактивация защиты.

  1. После нажатия Esc удастся вернуться в главное меню БИОСа.
  2. Переместиться в Boot (Startup). Здесь следует выполнять настройку загрузки аппарата с диска или флешки. Нужно поменять позицию подходящего варианта. Другими словами, переместить его вверх.

  1. Нажать кнопку Esc и настроить UEFI/Legacy Boot на Legacy Only.

  1. Нажать F10, а затем Enter.

Несколько путей установки

Итак, вы не можете войти в BIOS,и у вас уже возникают определенные сомнения в том, а есть ли он вообще на ноутбуках Lenovo. На самом деле есть, только устроен он немного иначе и настройки именно для конкретной модели компьютера нужны свои. Но некоторым помогает стандартная команда Fn+F10 при запуске Windows, чтобы войти в BIOS.

Для того, чтобы вы увидели то заветное открывшееся окно Биоса, вам следует слегка подготовить вашу технику. Сначала в дисковод включенного компьютера вставляется установочный диск. В нашем случае это Windows 7. Затем вы должны выключить компьютер, отключить его от питания и вытащить аккумулятор. Да, звучит нелепо, но в большинстве случаев помогает. Итак, После этого возвращает аккумулятор в то место, где он должен быть и включаем ноут через кнопку Novo, которая находится рядом с кнопкой запуска.

Во время загрузки вы увидите, что вошли в меню сервиса. Там выбираете вкладку «Диагностика». Оттуда устанавливаете «Параметры программного обеспечения UEFI». После этого ваш компьютер уведомит вас коротким сообщением о том, что его нужно перезагрузить. Если вы последуете рекомендациям вашей техники, то в дальнейшем после перезагрузки компьютер сам зайдет в BIOS.

Далее вы должны найти раздел Security, где вы отключаете параметр SecuryBoot. Далее в главном меню ищите вкладку Startup. Теперь нужно расположить порядок загрузки дисков, которым будет руководствоваться система. Для этого во вкладке Boot находим жесткий диск компьютера (как правило, он обозначается как ATAHDD) и клавишей «+» или верхней стрелкой поднимаем эту вкладку на самый верх. Тут также может возникнуть проблема, что вкладка не поднимается. Тогда будет действовать от противного – опускаем вкладку WindowBootManager в самый низ. НА втором месте в списке должно стоять название « ATAPICD1», а уже после него тот параметр, с которого будет переустановлена система Windows.

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

Если эта стандартная процедура вам не помогла, то у вас всегда есть возможность зайти на официальный сайт производителя Lenovo и посмотреть несколько хитростей по установке системы именно там. Но после того, как вы нашли BIOS на ноутбуке LENOVO, то дальнейших проблем с переустановкой у вас возникнуть не должно, так она является стандартной для всех моделей компьютеров и ноутбуков.

Как сделать загрузочный образ?

Если оригинального диска нет или запуск осуществляется с флешки, потребуется создавать загрузочный образ. Для этого выполняются такие действия, вставив накопитель:

  1. На другом работающем ноутбуке сохранить скачанную ОС.
  2. Скачать программу UltraISO (желательно при этом воспользоваться официальным сайтом производителя).
  3. Дождаться завершения загрузки пакета и запустить установочный файл. Потом останется лишь следовать рекомендациям.
  4. Кликнуть по ярлыку утилиты, который появился на рабочем столе, правой клавишей манипулятора. Запустить программу на правах администратора, выбрать соответствующий пункт.
  5. После того, как откроется меню, нажать «Файл» и «Открыть».

  1. Выделить образ ОС, который был сохранен раньше и открыть «Самозагрузка», «Записать образ жесткого диска».

  1. Обязательно выбрать USB-HDD+ в строке «Метод Записи». Нажать «Записать», удалить все со съемного носителя, как будет предложено пользователю.

Процесс установки

Для установки системы на ноутбук нужно выключить его и подсоединить к порту созданных загрузочный носитель. Предварительная настройка БИОСа позволит системе самостоятельно определить, с какого диска нужно осуществлять загрузку. Иногда может потребоваться на этапе включения нажать любую кнопку для активации установщика. Информация об этом появится на экране.

Как установить с флешки Виндовс 10 — переустановка ОС

Система начнет распаковывать установочные файлы, после чего перед пользователем откроется главное окно ОС. Тут потребуется выбрать пункт «Полная установка».

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

Внимание! Компьютер во время установки ОС будет несколько раз перезагружаться. В это время нельзя пытаться его использовать или полностью отключать от питания.

Добавить комментарий

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