Commit Graph

136 Commits

Author SHA1 Message Date
Ivan Grokhotkov
d9983c0039
feat(qemu): add a CLI option for graphics output 2023-12-18 11:47:15 +01:00
Roland Dobai
b486466339 Merge branch 'monitor_custom_reset' into 'master'
docs(tools/monitor): custom reset sequence from esptool

See merge request espressif/esp-idf!26834
2023-12-08 16:00:24 +08:00
daiziyan
17dfe49416 docs: provide CN trans for idf-monitor 2023-12-07 10:06:36 +01:00
Peter Dragun
0022803ed6 docs(tools/monitor): custom reset sequence from esptool 2023-12-07 10:06:24 +01:00
Ivan Grokhotkov
918c0ce4ac
feat(tools): update qemu to esp-develop-8.1.3-20231206
https://github.com/espressif/qemu/releases/tag/esp-develop-8.1.3-20231206
2023-12-07 10:54:29 +08:00
daiziyan
e85feafa0f docs: add CN trans for idf-docker-image.rst 2023-12-05 14:52:14 +01:00
timoxd7
db1584a568 feat(docker): Add Dockerfile argument for variable clone depth
Closes https://github.com/espressif/esp-idf/pull/12637
2023-12-05 14:52:14 +01:00
Ivan Grokhotkov
71153c7dbb
feat(tools): add 'idf.py qemu' extension
This extension allows running programs in QEMU similar to running
them on a real chip:

- 'idf.py qemu' — builds and runs the program in QEMU. User gets
  a QEMU instance launched, and can work with it as a normal QEMU
  instance.
- 'idf.py qemu monitor' — same, but QEMU is launched in the
  background, and idf_monitor runs in the foreground, showing QEMU
  output. Compared to only running 'idf.py qemu' this enables, for
  example, automatic backtrace decoding.
- 'idf.py qemu gdb' — launches QEMU in the background and opens an
  interactive GDB prompt, connecting it to QEMU.
- 'idf.py qemu --gdb monitor' and 'idf.py gdb' in another shell:
  launches QEMU in the background, keeps it suspended until GDB is
  connected, and opens idf_monitor. GDB can be used in another shell
  to debug the application.
2023-12-03 07:45:19 +01:00
mofeifei
43bfffd85e docs: update cn trans idf-docker-image 2023-11-30 12:18:40 +01:00
Frantisek Hrbata
647c485a76 feat(docker): allow to add paths into git's safe.directory
With 8959555cee7e[1] ("setup_git_directory(): add an owner check for the top..")
git added an ownership check of the git directory and refuses to
run any git commands, even parsing the config file, if the git directory
is not owned by the current user. The "fatal: detected dubious ownership in repository"
is reported.

This fixes CVE-2022-24765[2], which allows to compromise user account. On a
multi-user system or e.g. on a shared file system, one user may create a "rogue"
git repository with e.g. core.fsmonitor set to an arbitrary command. Other user
may unwillingly execute this command by running e.g. git-diff or
git-status within the "rogue" git repository, which may be in one of the parent
directories. If e.g. PS1 is set to display information about a git
repository in CWD, as suggested in Git in Bash[3], the user do not need to run
any git command to trigger this, just entering some subdirectory under
this "rogue" git repository is enough, because the git command will be
started transparently through the script used in PS1. The core.fsmonitor
can be set to arbitrary command. It's purpose is to help git to identify changed files
and speed up the scanning for changed files.

rogue
├── .git     # owned by user1
└── dir1     # owned by user2
    ├── dir2 # owned by user2
    └── .git # owned by user2

user1 sets core.fsmonitor for git repository in rogue directory
$ git config --add core.fsmonitor "bash -c 'rm -rf \$HOME'"

user2 enters dir1 and runs e.g. git diff and triggers the core.fsmonitor command.

The ownership check may cause problems when running git commands in
ESP-IDF Docker container. For example user may run the container as
root, but the mounted project may be owned by a particular user.

In this case git will refuse to execute any git command within the
"/project" directory, because it's not owned by root. To overcome this,
git allows to set safe.directories, for which the ownership check is
skipped. The security check may be completely disabled by setting
safe.directories to "*". This solution was proposed in PR 12636[4], but
it would allow make it possible to exploit this vulnerability again.

This fix allows user to specify git's safe.directory in IDF_GIT_SAFE_DIR
environmental variable, which may be set during container startup.

The IDF_GIT_SAFE_DIR has same format as PATH and multiple directories can be
specified by using a ":" separator. To entirely disable this git security check
within the container, user may set IDF_GIT_SAFE_DIR='*'. This might be
heplfull in CI.

Closes https://github.com/espressif/esp-idf/pull/12636

[1] - 8959555cee
[2] - https://nvd.nist.gov/vuln/detail/cve-2022-24765
[3] - https://git-scm.com/book/en/v2/Appendix-A%3A-Git-in-Other-Environments-Git-in-Bash
[4] - https://github.com/espressif/esp-idf/pull/12636

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-11-30 12:18:40 +01:00
Shang Zhou
a0edece25a docs: Update CN translation for api-guides/tools/idf-monitor.rst 2023-11-16 09:20:48 +01:00
Peter Dragun
18ddb86c7f fix(tools/monitor): fix PRINT_FILTER env variable usage 2023-11-16 09:20:48 +01:00
Roland Dobai
6f50b02a3a fix(tools): Remove idf.py dependencies from documentation
Those dependencies are always satisfied because:
- ESP-IDF supports Python 3.8+ at this moment,
- click version is checked and ensured by the install scripts.
2023-11-13 14:33:54 +01:00
radim.karnis
0349f471af docs(idf-clang-tidy): Mention the need for a clang based toolchain
Closes https://github.com/espressif/clang-tidy-runner/issues/32
2023-10-30 11:10:11 +08:00
Peter Dragun
aa9f81cfc6 Merge branch 'feat/monitor-config' into 'master'
docs(tools/idf-monitor): add info about custom keystrokes

See merge request espressif/esp-idf!26129
2023-10-12 16:02:34 +08:00
renpeiying
c744d3d5fd docs: Update Chinese translation for idf-monitor 2023-10-10 12:07:36 +08:00
Anton Maklakov
02802ea20a feat(tools): Add QEMU 8.0.0_20230522 to tools.json
Process wildcards in the install and download lists of idf_tools
    Fix the install and download handlers to get common behaviour
2023-10-10 09:59:38 +07:00
Alexey Lapshin
98199d50d6 change(tools): update gcc toolchain version to 13.2.0
Add Kconfig option to supress new gcc warnings
Update docs with migration guide
2023-10-09 12:13:00 +04:00
Peter Dragun
000266c417 docs(tools/idf-monitor): add info about custom keystrokes 2023-10-03 15:48:25 +02:00
Fu Hanxi
4dbe541f80
ci: replace internal clang-tidy runner with the pypi project 2023-09-27 10:25:49 +02:00
Roland Dobai
5f74dd2bb3 Merge branch 'docs/docker_image_flashing' into 'master'
docs(docker): Update Using Remote Serial Port chapter

Closes IDFGH-10856

See merge request espressif/esp-idf!25778
2023-09-07 18:05:48 +08:00
Cai Xin Ying
2fac98d2e0 docs:update format issues for files under api-guides 2023-09-07 15:26:05 +08:00
Jakub Kocka
e265c1f387 docs(docker): Update Using Remote Serial Port chapter
By default some shells such as zsh has NOMATCH option set (https://zsh.sourceforge.io/Doc/Release/Options.html).
The root cause of the problem is that while bash expands the parameter to itself if it does not match any filename, the zsh reports an error. IOW if we do % setopt nonomatch it will work even in zsh.

Closes https://github.com/espressif/esp-idf/issues/12060
2023-09-06 11:26:47 +02:00
Marek Fiala
608b6e5480 feat(tools): Add dl.espressif.cn IDF_GITHUB_ASSET to documentation 2023-08-31 07:46:36 +00:00
Cai Xin Ying
9684acc482 Docs: provide CN translation for the rest docs of api-guides/tools 2023-08-29 23:10:06 +08:00
Shang Zhou
00fe2a6166 docs: Update CN translation for idf-tools.rst and get-started/index.rst 2023-08-21 15:34:26 +02:00
radim.karnis
e2638a2af0 docs(idf-tools): Add uninstallation instructions
Closes https://github.com/espressif/esp-idf/issues/11102
2023-08-21 15:32:27 +02:00
Roland Dobai
3adee7ecf6 Merge branch 'contrib/github_pr_11987' into 'master'
idf-docker-image.rst: Run with current user ID instead of root. (GitHub PR)

Closes IDFGH-10773

See merge request espressif/esp-idf!25146
2023-08-21 13:16:59 +08:00
daiziyan
1c2a8a8917 docs: provide CN trans for idf-docker-image 2023-08-18 15:40:26 +02:00
radim.karnis
8acde05a5c feat: Drop Python 3.7 support 2023-08-08 08:37:29 +02:00
Alexey Lapshin
a120ea823e Merge branch 'contrib/github_pr_11569' into 'master'
[GDBStub] kconfig gdbstub runtime should be separate bool (GitHub PR)

Closes IDF-7846 and IDFGH-10309

See merge request espressif/esp-idf!24775
2023-08-02 07:50:47 +08:00
Sergei Silnov
b85093454d Merge branch 'docs/update_information_about_CLI_commands' into 'master'
Updates documentation for new Component Manager CLI commands in IDF

See merge request espressif/esp-idf!24362
2023-08-01 22:05:15 +08:00
Alexey Lapshin
47e400c296 feature(gdbstub): Move runtime gdbstub out of panic config
Closes https://github.com/espressif/esp-idf/pull/11569
2023-08-01 14:28:07 +04:00
Jim Mussared
c7d5112771 idf-docker-image.rst: Run with current user ID instead of root.
Rather than running the command inside the container as root, which will
mean that any build artifacts created will be owned by root on the host,
run the command as the current user.

This requires setting a temporary home directory as idf.py will try to
access e.g. ~/.cache, so just use /tmp inside the container which is
ephemeral anyway.

This also allows the command to use `git`. without setting the user ID,
`docker run ... git status` will fail with
    fatal: detected dubious ownership in repository at '/project'

Also added the missing explanation for `-w /project`.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-08-01 11:27:34 +10:00
Daniel Paul
0e91006749 docs(IDF Component Manager): Updates documentation for new Component Manager CLI commands in IDF 2023-07-31 13:27:44 +02:00
Roland Dobai
30672c7c65 Merge branch 'docs/monitor_rom_address_decoding' into 'master'
esp_idf_monitor: ROM ELF address decoding docs and tests

Closes IDF-372

See merge request espressif/esp-idf!24271
2023-07-17 18:52:29 +08:00
caixinying-git
caf3f6b5fb docs: provide CN translation for api-guides/tools/idf-docker-image.rst 2023-07-05 16:39:14 +08:00
daiziyan
573fadd5be docs:provide CN translation for idf-monitor 2023-06-28 15:42:05 +02:00
radim.karnis
4f4c91cee3 docs(esp_idf_monitor): ROM ELF address decoding 2023-06-21 11:08:09 +02:00
Radim Karniš
c18cdd8859 Merge branch 'docs/uf2' into 'master'
docs: Add idf.py uf2 command description

Closes IDF-2589

See merge request espressif/esp-idf!24010
2023-06-12 18:41:17 +08:00
Mo Fei Fei
c78436e796 Docs: Update CN translation for idf-py.rst 2023-06-09 15:53:28 +08:00
caixinying-git
ec1e03e132 docs: provide CN translation for api-guides/tools/idf-tools.rst 2023-06-08 11:44:07 +08:00
radim.karnis
066a269fbf docs: Add idf.py uf2 command description 2023-06-01 15:25:06 +02:00
caixinying-git
3fbd692de8 docs: add CN translation for api-guides/tools/idf-py.rst 2023-05-10 14:14:12 +08:00
Peter Dragun
bebd2cec4a bug(idf_monitor): fix color on windows with hints
Closes https://github.com/espressif/esp-idf/issues/9610
2023-04-17 11:18:42 +02:00
Peter Dragun
64be67e59d docs(docker): update instructions for esp_rfc2217_server 2023-03-20 10:53:05 +01:00
Frantisek Hrbata
0788616626 docs: add info how to access serial port inside docker via rfc2217
On Windows/Mac the serial port cannot be access directly inside
docker container. This is already mentioned in the documentation.
This expands the documentation for steps which can be used to overcome
this limitation by using remote serial port access via telnet protocol.

Closes https://github.com/espressif/esp-idf/issues/10617

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-02-21 15:02:48 +01:00
Roland Dobai
afe554c753 Tools: Allow custom Python installation path with IDF_PYTHON_ENV_PATH
IDF_PYTHON_ENV_PATH is the path where the Python environment is created
and used. By default it is inside IDF_TOOLS_PATH. IDF_PYTHON_ENV_PATH
was exported by idf_tools.py but was not imported back. This fixes the
issue and ESP-IDF will honor the value of IDF_PYTHON_ENV_PATH.

Closes https://github.com/espressif/esp-idf/issues/10489
2023-02-14 17:26:04 +01:00
Roland Dobai
648b1a41c6 Merge branch 'bugfix/dbg_target_hints' into 'master'
tools: enable hints for debug targets

Closes IDF-5795

See merge request espressif/esp-idf!22198
2023-02-10 17:25:27 +08:00
Frantisek Hrbata
08c9a7b520 tools: add new outdated option for idf_tools.py list
This adds a new outdated option, which only lists outdated
packages installed in IDF_TOOLS_PATH. It searches for the
latest installed tool version in the IDF_TOOLS_PATH/tools path and
compares it against the latest available version in the tools.json
file. If the latest version of a tool installed in IDF_TOOLS_PATH/tools
is smaller, it's reported as outdated. Nothing is reported if the tool
is up to date.

Two new tests are added. First just checks if nothing is reported in
case there is no update available. The second artificially generates
new tools.json file called tools.outdated.json and sets XTENSA_ESP32_ELF
version to 'zzzzzz'. It then checks if the XTENSA_ESP32_ELF tool
is reported as outdated by the 'zzzzzz' version.

Description of the new outdated option is addedd to docs as well.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-02-09 10:25:45 +01:00