diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index d455fa6fd3c37a..8eb2dc9abf50f6 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -10,17 +10,18 @@ Development is coordinated through [Discord](https://discord.comma.ai) and GitHu * Read about the [development workflow](WORKFLOW.md) * Join our [Discord](https://discord.comma.ai) * Docs are at https://docs.comma.ai and https://blog.comma.ai +* Read the [Introduction to Openpilot](https://github.com/commaai/openpilot/wiki/Introduction-to-openpilot) ## What contributions are we looking for? **openpilot's priorities are [safety](SAFETY.md), stability, quality, and features, in that order.** -openpilot is part of comma's mission to *solve self-driving cars while delivering shippable intermediaries*, and all development is towards that goal. +openpilot is part of comma's mission to *solve self-driving cars while delivering shippable intermediaries*, and all development is towards that goal. ### What gets merged? The probability of a pull request being merged is a function of its value to the project and the effort it will take us to get it merged. If a PR offers *some* value but will take lots of time to get merged, it will be closed. -Simple, well-tested bug fixes are the easiest to merge, and new features are the hardest to get merged. +Simple, well-tested bug fixes are the easiest to merge, and new features are the hardest to get merged. All of these are examples of good PRs: * typo fix: https://github.com/commaai/openpilot/pull/30678 @@ -30,7 +31,7 @@ All of these are examples of good PRs: ### What doesn't get merged? -* **style changes**: code is art, and it's up to the author to make it beautiful +* **style changes**: code is art, and it's up to the author to make it beautiful * **500+ line PRs**: clean it up, break it up into smaller PRs, or both * **PRs without a clear goal**: every PR must have a singular and clear goal * **UI design**: we do not have a good review process for this yet @@ -63,3 +64,4 @@ A good pull request has all of the following: * Connect your device to Wi-Fi regularly, so that we can pull data for training better driving models. * Run the `nightly` branch and report issues. This branch is like `master` but it's built just like a release. * Annotate images in the [comma10k dataset](https://github.com/commaai/comma10k). +* Update the [wiki](https://github.com/commaai/openpilot/wiki) diff --git a/tools/README.md b/tools/README.md index 69b0e025e813aa..821b28e8d865dc 100644 --- a/tools/README.md +++ b/tools/README.md @@ -2,16 +2,14 @@ ## System Requirements -openpilot is developed and tested on **Ubuntu 24.04**, which is the primary development target aside from the [supported embedded hardware](https://github.com/commaai/openpilot#running-on-a-dedicated-device-in-a-car). +openpilot is developed and tested on **Ubuntu 24.04** with [modern hardware](https://github.com/commaai/openpilot/wiki/Requirements#hardware), which is the primary development target aside from the [supported embedded hardware](https://comma.ai/shop/comma-3x). -Most of openpilot should work natively on macOS. On Windows you can use WSL for a nearly native Ubuntu experience. Running natively on any other system is not currently recommended and will likely require modifications. +Most of openpilot should work natively on macOS. On Windows you can use WSL2 for a nearly native Ubuntu experience [with some exceptions](https://github.com/commaai/openpilot/wiki/WSL). Running natively on any other system is not currently recommended and will likely require modifications. ## Native setup on Ubuntu 24.04 and macOS **1. Clone openpilot** -NOTE: This repository uses Git LFS for large files. Ensure you have [Git LFS](https://git-lfs.com/) installed and set up before cloning or working with it. - Either do a partial clone for faster download: ``` bash git clone --filter=blob:none --recurse-submodules --also-filter-submodules https://github.com/commaai/openpilot.git @@ -29,12 +27,6 @@ cd openpilot tools/op.sh setup ``` -**3. Git LFS** - -``` bash -git lfs pull -``` - **4. Activate a python shell** Activate a shell with the Python dependencies installed: @@ -48,16 +40,8 @@ source .venv/bin/activate scons -u -j$(nproc) ``` -## WSL on Windows - -[Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl/about) should provide a similar experience to native Ubuntu. [WSL 2](https://docs.microsoft.com/en-us/windows/wsl/compare-versions) specifically has been reported by several users to be a seamless experience. - -Follow [these instructions](https://docs.microsoft.com/en-us/windows/wsl/install) to setup the WSL and install the `Ubuntu-24.04` distribution. Once your Ubuntu WSL environment is setup, follow the Linux setup instructions to finish setting up your environment. See [these instructions](https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps) for running GUI apps. - -**NOTE**: If you are running WSL and any GUIs are failing (segfaulting or other strange issues) even after following the steps above, you may need to enable software rendering with `LIBGL_ALWAYS_SOFTWARE=1`, e.g. `LIBGL_ALWAYS_SOFTWARE=1 selfdrive/ui/ui`. - ## CTF -Learn about the openpilot ecosystem and tools by playing our [CTF](/tools/CTF.md). +Learn about the openpilot ecosystem and tools by playing our [CTF](/tools/CTF.md) and [reading the wiki](https://github.com/commaai/openpilot/wiki/Introduction-to-openpilot). ## Directory Structure diff --git a/tools/install_ubuntu_dependencies.sh b/tools/install_ubuntu_dependencies.sh index f224f01f953da5..adab45edecd074 100755 --- a/tools/install_ubuntu_dependencies.sh +++ b/tools/install_ubuntu_dependencies.sh @@ -41,6 +41,8 @@ function install_ubuntu_common_requirements() { libbz2-dev \ libeigen3-dev \ libffi-dev \ + libfreeimage-dev \ + libfreeimage3 \ libglew-dev \ libgles2-mesa-dev \ libglfw3-dev \ @@ -57,7 +59,9 @@ function install_ubuntu_common_requirements() { opencl-headers \ ocl-icd-libopencl1 \ ocl-icd-opencl-dev \ + pocl-opencl-icd \ portaudio19-dev \ + pulseaudio \ qttools5-dev-tools \ libqt5svg5-dev \ libqt5serialbus5-dev \ diff --git a/tools/webcam/README.md b/tools/webcam/README.md index f4b46d1f66b23c..b142b3f992418c 100644 --- a/tools/webcam/README.md +++ b/tools/webcam/README.md @@ -10,10 +10,6 @@ That's it! ## Setup openpilot - Follow [this readme](../README.md) to install and build the requirements -- Install OpenCL Driver -``` -sudo apt install pocl-opencl-icd -``` ## Connect the hardware - Connect the road facing camera first, then the driver facing camera