android_webview
apps
ash
base
build
build_overrides
buildtools
cc
chrome
chromecast
chromeos
cloud_print
codelabs
components
content
courgette
crypto
dbus
device
docs
accessibility
autofill
design
enterprise
fuchsia
gpu
images
infra
ios
linux
build_instructions.md
building_debug_gtk.md
cast_build_instructions.md
cert_management.md
chromium_arm.md
chromium_packages.md
crash_dumping.md
debugging.md
debugging_gtk.md
debugging_ssl.md
dependencies.md
dev_build_as_default_browser.md
development.md
eclipse_dev.md
graphics_pipeline.md
gtk_theme_integration.md
hw_video_decode.md
instrumented_libraries.md
minidump_to_core.md
ozone_drm.md
password_storage.md
pid_namespace_support.md
plugins.md
profiling.md
proxy_config.md
sandbox_ipc.md
sandboxing.md
suid_sandbox.md
suid_sandbox_development.md
sysroot.md
using_a_chroot.md
zygote.md
login
mac
media
memory
memory-infra
patterns
privacy
privacy_budget
process
security
speed
speed_metrics
sync
testing
ui
updater
workflow
DIR_METADATA
OWNERS
README.md
accessibility.md
ad_tagging.md
adding_to_third_party.md
android_accessing_cpp_enums_in_java.md
android_accessing_cpp_features_in_java.md
android_accessing_cpp_switches_in_java.md
android_build_instructions.md
android_cast_build_instructions.md
android_debugging_instructions.md
android_dynamic_feature_modules.md
android_emulator.md
android_logging.md
android_native_libraries.md
android_studio.md
angle_in_chromium.md
asan.md
atom.md
bitmap_pipeline.md
branch_sheriff.md
building_old_revisions.md
callback.md
ccache_mac.md
chrome_os_logging.md
chrome_settings.md
chrome_untrusted.md
chromedriver_status.md
chromeos_build_instructions.md
chromeos_glossary.md
chromium_browser_vs_google_chrome.md
chromoting_android_hacking.md
cipd_and_3pp.md
cl_respect.md
clang.md
clang_code_coverage_wrapper.md
clang_format.md
clang_sheriffing.md
clang_static_analyzer.md
clang_tidy.md
clang_tool_refactoring.md
clangd.md
clion.md
closure_compilation.md
cocoa_tips_and_tricks.md
code_review_owners.md
code_reviews.md
commit_checklist.md
component_build.md
configuration.md
contributing.md
cr_respect.md
cr_user_manual.md
cross_platform_ui.md
cygwin_dll_remapping_failure.md
dbus_mojo_connection_service.md
debugging_with_crash_keys.md
deterministic_builds.md
disassemble_code.md
documentation_best_practices.md
documentation_guidelines.md
early-hints.md
eclipse.md
emacs.md
erc_irc.md
flag_expiry.md
flag_ownership.md
gdbinit.md
get_the_code.md
git_cookbook.md
git_tips.md
google_chrome_branded_builds.md
google_play_services.md
graphical_debugging_aid_chromium_views.md
gwp_asan.md
how_cc_works.md
how_to_add_your_feature_flag.md
how_to_extend_web_test_framework.md
idn.md
initialize_blink_features.md
inlined_stack_traces.md
installation_at_vmware.md
ios_build_instructions.md
ios_infra.md
ios_voiceover.md
kiosk_mode.md
lacros.md
lldbinit.md
luci_migration_faq.md
mac_arm64.md
mac_build_instructions.md
mac_lld.md
mojo_and_services.md
mojo_ipc_conversion.md
native_relocations.md
navigation-request-navigation-state.gv
navigation-request-navigation-state.png
navigation.md
navigation_concepts.md
network_traffic_annotations.md
new_port_policy.md
no_sources_assignment_filter.md
old_chromoting_build_instructions.md
optimizing_web_uis.md
optional.md
origin_trials_integration.md
ozone_overview.md
parsing_test_results.md
pgo.md
piranha_plant.md
profiling.md
profiling_content_shell_on_android.md
proxy_auto_config.md
qtcreator.md
release_branch_guidance.md
render-frame-host-lifecycle-state.gv
render-frame-host-lifecycle-state.png
render_document.md
seccomp_sandbox_crash_dumping.md
servicification.md
session_history.md
sheriff.md
shutdown.md
special_case_urls.md
static_initializers.md
sublime_ide.md
system_hardening_features.md
tab_helpers.md
threading_and_tasks.md
threading_and_tasks_faq.md
threading_and_tasks_testing.md
toolchain_support.md
tour_of_luci_ui.md
tpm_quick_ref.md
translation_screenshots.md
trusted_types_on_webui.md
updating_clang.md
updating_clang_format_binaries.md
use_counter_wiki.md
useful_urls.md
user_data_dir.md
user_data_storage.md
user_handle_mapping.md
vanilla_msysgit_workflow.md
vscode.md
vscode_python.md
webui_explainer.md
webui_in_chrome.md
webui_in_components.md
webview_policies.md
win_cross.md
win_order_files.md
windows_build_instructions.md
windows_native_window_occlusion_tracking.md
windows_pwa_integration.md
windows_shortcut_and_taskbar_handling.md
windows_split_dll.md
windows_virtual_desktop_handling.md
wmax_tokens.md
working_remotely_with_android.md
writing_clang_plugins.md
extensions
fuchsia
gin
google_apis
google_update
gpu
headless
infra
ios
ipc
jingle
media
mojo
native_client_sdk
net
pdf
ppapi
printing
remoting
rlz
sandbox
services
skia
sql
storage
styleguide
testing
third_party
tools
ui
url
weblayer
.clang-format
.clang-tidy
.eslintrc.js
.git-blame-ignore-revs
.gitattributes
.gitignore
.gn
.vpython
.vpython3
.yapfignore
AUTHORS
BUILD.gn
CODE_OF_CONDUCT.md
DEPS
DIR_METADATA
ENG_REVIEW_OWNERS
LICENSE
LICENSE.chromium_os
OWNERS
PRESUBMIT.py
PRESUBMIT_test.py
PRESUBMIT_test_mocks.py
README.md
WATCHLISTS
codereview.settings

There were 32 linux documents in docs. It's getting out of hand, so lets move them to a subdirectory. R=sky,jorgelo CC=thestig BUG=None Change-Id: Ib7de415c72fe6ec3c51dc2b28f06b34487b5b6d1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1974901 Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org> Cr-Commit-Position: refs/heads/master@{#726499}
87 lines
3.0 KiB
Markdown
87 lines
3.0 KiB
Markdown
# Using a chroot
|
|
|
|
If you want to run web tests and you're not running Lucid, you'll get errors
|
|
due to version differences in libfreetype. To work around this, you can use a
|
|
chroot.
|
|
|
|
## Basic Instructions
|
|
|
|
* Run `build/install-chroot.sh`. On the prompts, choose to install a 64-bit
|
|
Lucid chroot and activate all your secondary mount points.
|
|
* sudo edit `/etc/schroot/mount-lucid64bit` and uncomment `/run` and
|
|
`/run/shm`. Verify that your mount points are correct and uncommented: for
|
|
example, if you have a second hard drive at `/src`, you should have an entry
|
|
like `/src /src none rw,bind 0 0`.
|
|
* Enter your chroot as root with `sudo schroot -c lucid64`.
|
|
Run `build /install-build-deps.sh`, then exit the rooted chroot.
|
|
* Delete your out/ directory if you had a previous non-chrooted build.
|
|
* To enter your chroot as normal user, run `schroot -c lucid64`.
|
|
* Now compile and run DumpRenderTree within chroot.
|
|
|
|
## Tips and Tricks
|
|
|
|
### NFS home directories
|
|
|
|
The chroot install will be installed by default in /home/$USER/chroot. If your
|
|
home directory is inaccessible by root (typically because it is mounted on NFS),
|
|
then move this directory onto your local disk and change the corresponding entry
|
|
in `/etc/schroot/mount-lucid64bit`.
|
|
|
|
### Goma builds
|
|
|
|
If you get mysterious compile errors (glibconfig.h or dbus header error), make
|
|
sure that goma is running in the chroot, or don't use goma for builds inside the
|
|
chroot.
|
|
|
|
### Different color prompt
|
|
|
|
I use the following code in my .zshrc file to change the color of my prompt in
|
|
the chroot.
|
|
|
|
```shell
|
|
# load colors
|
|
autoload colors zsh/terminfo
|
|
if [[ "$terminfo[colors]" -ge 8 ]]; then
|
|
colors
|
|
fi
|
|
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
|
|
eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
|
|
eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
|
|
done
|
|
PR_NO_COLOR="%{$terminfo[sgr0]%}"
|
|
|
|
# set variable identifying the chroot you work in (used in the prompt below)
|
|
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
|
|
debian_chroot=$(cat /etc/debian_chroot)
|
|
fi
|
|
|
|
if [ "xlucid64" = "x$debian_chroot" ]; then
|
|
PS1="%n@$PR_GREEN% lucid64$PR_NO_COLOR %~ %#"
|
|
else
|
|
PS1="%n@$PR_RED%m$PR_NO_COLOR %~ %#"
|
|
fi
|
|
```
|
|
|
|
### Running X apps
|
|
|
|
I also have `DISPLAY=:0` in my `$debian_chroot` section so I can run test_shell
|
|
or web tests without manually setting my display every time. Your display
|
|
number may vary (`echo $DISPLAY` outside the chroot to see what your display
|
|
number is).
|
|
|
|
You can also use `Xvfb` if you only want to
|
|
[run tests headless](web_tests_linux.md#Using-an-embedded-X-server).
|
|
|
|
### Having web test results open in a browser
|
|
|
|
After running web tests, you should get a new browser tab or window that
|
|
opens results.html. If you get an error "Failed to open
|
|
file:///path/to/results.html, check the
|
|
following conditions.
|
|
|
|
1. Make sure `DISPLAY` is set. See the
|
|
[Running X apps](#Running-X-apps) section above.
|
|
1. Install `xdg-utils`, which includes `xdg-open`, a utility for finding the
|
|
right application to open a file or URL with.
|
|
1. Install [Chrome](https://www.google.com/intl/en/chrome/browser/).
|