-
Notifications
You must be signed in to change notification settings - Fork 54
Update DSP mount and search path configuration #234
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
6e99ff1 to
6d31673
Compare
|
linux-msm/hexagonrpc#15 triggered the following idea: the binaries can be coming from different sources. So we might not have a single .conf file. We need to be able to parse |
I see, if the sources of binaries are going to change, then yes, a single file might not work. I think this modular configuration also covers the requirement of supporting vendor specific DSP artifacts. I don't have the complete understanding on
I don't completely understand the manually repacking point. Is PmOS going to maintain the device specific binaries separately? Or the bins are still maintained in hexagon-dsp-binaries and the user is somehow making the modification to use different binaries? @quic-bkumar @Chennak-quic, seeking your inputs as well. |
PmOS, Debian, Ubuntu or just the user. For example, for Pixel or for WoA laptops it is possible to download and manually install these binaries, but it is not possible to redistribute those binaries. As such, the user might have both hexagon-dsp-binaries and external binaries. |
@lumag — would appreciate your input on where to maintain this conf.d structure. Should we follow the convention of using /etc, like /etc/fastrpc/conf.d/, which is commonly used for host-specific configurations? Or, considering that /etc is meant for host-specific settings, should we place it elsewhere — for example, /usr/share/qcom/dsp/conf.d/ |
I'd suggest being simple: |
|
From the recent discussions, I’ve gathered the following:
Thinking that instead of reading all the conf files from conf.d directory for configuring dsp bin paths, shouldn't we have a centralized place like we have for linux dsp firmware binaries which tells us where to read the bins from. In this case I was thinking a file or environment variable which tells which conf/ini file to refer for configuring dsp bin paths. @lumag need your inputs on this. |
Having an environment variable would defeat the purpose of conf.d. You have to read all config files and select the correct entry. |
If there are two .conf files—one provided by Qualcomm and the other uploaded by the user—and both contain a machine entry for "Qualcomm QCS9100 Ride Rev3" defining different paths, how can we determine which file specifies the correct path for that entry? |
Let user decide. Introduce some logical order (e.g. alphabetical) and then the later definition "wins". |
@lumag I understand the purpose of the conf.d directory — we're using it to manage multiple configuration files for different purposes. However, I'm still unclear about the need to read multiple .ini files specifically for configuring dsp search paths for loading firmware libs. If a user wants to define custom paths for firmware libraries, can't they simply modify the existing machine_dsp_paths.ini file or replace it with a new file of the same name? Let me know what I am missing to align on same page with you. |
Why would they? It's a config file owned by the corresponding package. When you apt upgrade it next time, the config file will be replaced by the one coming from the package. Likewise on a rootfs there might be multiple sets of files, installed from several sources. Each of those sets will carry its own config file.
"Have a possibility, not the policy". We do depend on users maintaining a lot of stuff in a proper order: udev rules, systemd unit files, apt configuration, etc.
Don't think about the users as dummies. |
|
Based on the internal and discussion we have had on this PR, proposing the following: config file property will be DSP_library_path=<path_value> For backward compatibility will also maintain a default config file with dsp_lib_paths configured in fastrpc project. |
Relative to /usr/share/qcom, please.
Why? And how? The fastrpc project provides no DSP libs. |
Sure
I’d like to revise my earlier comment. Initially, I was considering a scenario where the fastrpc project is updated to include configuration changes, but the hexagon-dsp-bins package is still on an older version that doesn’t include the config file. I realized that even today that fastrpc project does not support /usr/share/qcom dsp search paths by default, rather the test apps create symlink to the DSP libraries. One question we’ve been discussing is how to manage the conf.d path across different platforms, such as Linux and Android. Should we always assume a default path like /usr/share/qcom/ for Linux-based projects and /vendor/... path for Android in our code? Is that correct or we have any other way to do that. |
Let users specify the path via the configure's script arg instead of hardcoding it to Linux vs Android |
6d31673 to
00f21d9
Compare
6870485 to
7f2f808
Compare
|
The changes have been made as discussed and marked complete. @lumag @basak-qcom please have a look. |
a343c32
7f2f808 to
a343c32
Compare
1c8a6a2 to
75967a5
Compare
Update DSP mount and search path configuration to support dynamic runtime resolution. Paths are now resolved based on platform-specific entries defined in the conf directory, allowing flexible DSP library location management Co-authored-by: Vinayak Katoch <vkatoch@qti.qualcomm.com> Signed-off-by: Abhinav Parihar <parihar@qti.qualcomm.com>
…nt paths Avoid overwriting the `envlistlen` variable when fetching paths from environment variables other than ADSP_LIBRARY_PATH or ADSP_AVS_PATH. The variable was being reset using an uninitialized list length, leading to undefined behavior. This change ensures `envlistlen` retains its correct value as populated during path retrieval. Signed-off-by: Abhinav Parihar <parihar@qti.qualcomm.com>
Updated step name from "Install auto tools" to "Install auto tools and dependencies" in both build_linux_gnu.yml and build_linux_arm64.yml. Added `apt-get update` and installed `libyaml-dev` along with automake to ensure required dependencies are available for compilation. Signed-off-by: Abhinav Parihar <parihar@qti.qualcomm.com>
75967a5 to
520324d
Compare
Update DSP mount and search path configuration to
support dynamic runtime resolution