Chromium - сборка и модификация

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 19 авг 2021, 12:53

Olej писал(а):
19 авг 2021, 12:44
Так себе не слабо
Olej писал(а):
19 авг 2021, 12:27
Там в документации есть
autoninja - это оболочка, которая автоматически предоставляет оптимальные значения для аргументов, передаваемых ninja.

Код: Выделить всё

olej@R420:~/chromium/src$ pwd
/home/olej/chromium/src

Код: Выделить всё

olej@R420:~/chromium/src$ time autoninja -C out/Default chrome
ninja: Entering directory `out/Default'
[1760/54632] ACTION //third_party/blink/renderer/platform:color_data(//build/toolchain/linux:clang_x64)
FAILED: gen/third_party/blink/renderer/platform/color_data.cc
python3 ../../third_party/blink/renderer/build/scripts/run_with_pythonpath.py -I ../../third_party/blink/renderer/build/scripts -I ../../third_party -I ../../tools
Traceback (most recent call last):
  File "../../third_party/blink/renderer/build/scripts/gperf.py", line 26, in generate_gperf
    gperf = subprocess.Popen(
  File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'gperf'
...
real    0m23,284s
user    5m19,597s
sys     0m25,993s

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 19 авг 2021, 12:55

Доустанавливаю из репозитория то чего ему не хватает:

Код: Выделить всё

olej@R420:~$ apt show gperf
Package: gperf
Version: 3.1-1build1
Priority: optional
Section: universe/devel
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Hilko Bengen <bengen@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 270 kB
Depends: libc6 (>= 2.29), libgcc-s1 (>= 3.0), libstdc++6 (>= 5)
Replaces: libg++27-dev, libg++272-dev
Homepage: http://www.gnu.org/software/gperf/
Download-Size: 103 kB
APT-Manual-Installed: yes
APT-Sources: http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages
Description: Perfect hash function generator
 gperf is a program that generates perfect hash functions for sets of
 key words.
 .
 A perfect hash function is simply: A hash function and a data structure
 that allows recognition of a key word in a set of words using exactly 1
 probe into the data structure.

Код: Выделить всё

olej@R420:~$ sudo apt install gperf
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
  gperf
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 103 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 270 kB.
Пол:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 gperf amd64 3.1-1build1 [103 kB]
Получено 103 kB за 0с (222 kB/s)
Выбор ранее не выбранного пакета gperf.
(Чтение базы данных … на данный момент установлено 388333 файла и каталога.)
Подготовка к распаковке …/gperf_3.1-1build1_amd64.deb …
Распаковывается gperf (3.1-1build1) …
Настраивается пакет gperf (3.1-1build1) …
Обрабатываются триггеры для doc-base (0.10.9) …
Обработка 1 добавленный файл doc-base...
Обрабатываются триггеры для man-db (2.9.1-1) …
Обрабатываются триггеры для install-info (6.7.0.dfsg.2-5) …
И продолжаем всё то же:

Код: Выделить всё

olej@R420:~/chromium/src$ time autoninja -C out/Default chrome
...
Собирается 52832 целей :-o
Снимок экрана от 2021-08-19 13-20-28.png
Снимок экрана от 2021-08-19 13-20-28.png (100.99 КБ) 926 просмотров
Все 40 процессоров загружаются под завязку - под 100% !
Снимок экрана от 2021-08-19 12-57-08.png
Снимок экрана от 2021-08-19 12-57-08.png (185.64 КБ) 930 просмотров
Память (а её здесь 96Gb) загружается на более чем на 8Gb (20%) ... поэтому сборку можно будет организовать в tmpfs.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 19 авг 2021, 14:23

Olej писал(а):
19 авг 2021, 12:55
Собирается 52832 целей
Всё!
Успешная сборка:

Код: Выделить всё

olej@R420:~/chromium/src$ time autoninja -C out/Default chrome
ninja: Entering directory `out/Default'
[52832/52832] LINK ./chrome

real	80m35,171s
user	2841m45,523s
sys	151m16,164s
80 минут с "хвостиком"...
Это на 40 процессорах (и не слабых серверных процессорах Xeon E5-2470 v2!):

Код: Выделить всё

olej@R420:~$ inxi -Cxxx
CPU:       Topology: 2x 10-Core model: Intel Xeon E5-2470 v2 bits: 64 type: MT MCP SMP arch: Ivy Bridge rev: 4 
           L2 cache: 50.0 MiB 
           flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 192069 
           Speed: 2800 MHz min/max: 1200/3200 MHz Core speeds (MHz): 1: 2800 2: 2800 3: 2800 4: 2800 5: 2800 6: 2800 7: 2800 
           8: 2800 9: 2800 10: 2800 11: 2800 12: 2800 13: 2800 14: 2800 15: 2800 16: 2800 17: 2800 18: 2800 19: 2800 20: 2800 
           21: 2800 22: 2800 23: 2800 24: 2800 25: 2800 26: 2800 27: 2800 28: 2800 29: 2800 30: 2800 31: 2800 32: 2800 
           33: 2800 34: 2800 35: 2800 36: 2800 37: 2800 38: 2800 39: 2800 40: 2800 
И на супер-быстром NVME диске Samsung 980 PRO 250GB :

Код: Выделить всё

olej@R420:~$ inxi -Dxxx
Drives:    Local Storage: total: 1.15 TiB used: 345.92 GiB (29.5%) 
           ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 980 PRO 250GB size: 232.89 GiB speed: 63.2 Gb/s lanes: 4 
           serial: S5GZNF0R115271A rev: 2B2QGXA7 scheme: MBR 
           ID-2: /dev/sda vendor: Toshiba model: THNSF8120CCSE size: 111.79 GiB speed: <unknown> serial: N/A rev: DAC9 
           scheme: MBR 
           ID-3: /dev/sdb vendor: Western Digital model: WD2500AAKX-0 size: 232.89 GiB speed: <unknown> serial: N/A rev: 1H15 
           scheme: MBR 
           ID-4: /dev/sdc vendor: Samsung model: HM641JI size: 596.17 GiB speed: <unknown> serial: N/A rev: 0003 scheme: MBR 

И на весьма быстром канале Интернет для скачивания сорцев (а по мониторингу видно, что качается довольно много и активно):

Код: Выделить всё

olej@R420:~/Загрузки/VirtualBox.exports$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from Radio-Link LLC (193.28.177.115)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Maxnet LLC (Kharkiv) [2.06 km]: 8.699 ms
Testing download speed................................................................................
Download: 24.90 Mbit/s
Testing upload speed......................................................................................................
Upload: 32.74 Mbit/s
Запуск:

Код: Выделить всё

olej@R420:~/chromium/src$ out/Default/chrome
[195525:195525:0819/142026.403843:ERROR:power_monitor_device_source_stub.cc(11)] Not implemented reached in virtual bool base::PowerMonitorDeviceSource::IsOnBatteryPower()
[195525:195525:0819/142026.405741:INFO:content_main_runner_impl.cc(1100)] Chrome is running in full browser mode.
[195525:195525:0819/142027.349527:WARNING:account_consistency_mode_manager.cc(68)] Desktop Identity Consistency cannot be enabled as no OAuth client ID and client secret have been configured.
[195525:195525:0819/142027.526721:WARNING:api_permission_set.cc(81)] Unknown permission[cast].
[195525:195525:0819/142027.529152:WARNING:api_permission_set.cc(81)] Unknown permission[cast].
[195525:195572:0819/142027.582457:ERROR:component_installer.cc(349)] Failed to read manifest or verify installation for OnDeviceHeadSuggest (/home/olej/.config/chromium/OnDeviceHeadSuggestModel/20210325.366027698).: Выполнено (0)
[195525:195572:0819/142027.583416:ERROR:component_installer.cc(349)] Failed to read manifest or verify installation for OnDeviceHeadSuggest (/home/olej/.config/chromium/OnDeviceHeadSuggestModel/20210507.373283852).: Выполнено (0)
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[195560:195560:0819/142027.806942:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization
[195525:195525:0819/142028.863785:WARNING:internal_linux.cc(66)] Failed to read /proc/195560/stat
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[195694:195694:0819/142029.341150:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization
[195737:195737:0819/142029.471003:WARNING:vaapi_wrapper.cc(586)] VAAPI video acceleration not available for swiftshader
[195737:195737:0819/142029.471740:ERROR:gpu_init.cc(453)] Passthrough is not supported, GL is swiftshader, ANGLE is 
...
Вложения
Снимок экрана от 2021-08-19 14-21-43.png
Снимок экрана от 2021-08-19 14-21-43.png (109.57 КБ) 926 просмотров
Снимок экрана от 2021-08-19 14-22-36.png
Снимок экрана от 2021-08-19 14-22-36.png (67.03 КБ) 926 просмотров

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium - сборка и модификация

Непрочитанное сообщение Olej » 03 сен 2021, 12:41

Olej писал(а):
19 авг 2021, 14:23
Успешная сборка:
Фиксирую: в конечном итоге успешная сборка осуществлена полностью (по принципу "необходимо и достаточно") в соответствии с инструкцией: Checking out and building Chromium on Linux.
Это важно и интересно для возможности внесения собственных изменений и/или сборки своего собственного клона браузера (модифицированного), основанного на Chromium.

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей