What's the return of systemd-detect-virt on your device ?
-
Hello
Following the recent post by @mariogrip enumerating among the problems of UT the impossibility to turn off dev mode, I can repro this problem (I think that I use the same device, a Fairphone 5).
I have looked at this problem and seen that this is not a new occurence of the solved issue caused by a code problem in Lomiri settings: the setting is done effectively as returned by
gdbus call --system --dest com.meego.usb_moded --object-path /com/meego/usb_moded --method com.meego.usb_moded.get_config
clearing the switch the mode in settings set the mode to mtp instead of mtp_adb as intended.
However, after rebooting, the mode is again mtp_adb.There is a systemd service called force-adb that is running at startup and calls the script /usr/libexec/force-adb, in this script there is this line:
# In the emulator, we always want to first have the ADB on elif systemd-detect-virt --quiet --vm; then force_adb_to=1calling systemd-detect-virt returns on the FP5 returns:
vm-other
In the systemd sources, I have seen that the code is testing /proc/device-tree/hypervisor/compatible and if there is no value at this address it goes on to test other kinds of virtualization and if nothing match return finally VIRTUALIZATION_NONE. Obviously since we are running on a real phone, this is the desired value.
Other code routes, when no other virtualization is detected, are NOT leading to VIRTUALIZATION_NONE but to VIRTUALIZATION_VM_OTHER.That's the reason why the FP5 can't change the Adb mode.
Now my question: if you have a phone other than a Fairphone 5, can you check on this systemd-detect-virt utility and see if it returns 'vm-other' (bad !) or 'none' (correct) ?
If the FP5 is the only one suffering from this problem this is a device issue.
If all Qualcomm devices (the /proc/device-tree/hypervisor/compatible value is qcom,haven-hypervisor-1.0qcom,haven-hypervisorsimple-bus) have this problem, it's a general problem that must be fixed in the /usr/libexec/force-adb script.Bonus question: does anyone knows a way to find in which deb package can be found a given file, like this force-adb script ? On normal Ubuntu, apt-file makes it easy, but here we don't have it.
Thanks for helping to advance the Fairphone cause !
-
@gpatel-fr
root@ubuntu-phablet:/usr/libexec# apt-file search force-adb
usb-moded-ubports-config: /lib/systemd/system/force-adb.path
usb-moded-ubports-config: /lib/systemd/system/force-adb.service
usb-moded-ubports-config: /usr/libexec/force-adbroot@ubuntu-phablet:/home/phablet# dpkg -L usb-moded-ubports-config
/.
/etc
/etc/default
/etc/default/usb-moded.d
/etc/default/usb-moded.d/device-specific-config.conf
/etc/usb-moded
/etc/usb-moded/10-ubports-defaults.ini
/etc/usb-moded/20-ubports-autodetected.ini.in
/etc/usb-moded/90-device-specific-config.ini
/etc/usb-moded/dyn-modes
/etc/usb-moded/dyn-modes/charging_only_adb.ini.in
/etc/usb-moded/dyn-modes/developer_mode.ini.in
/etc/usb-moded/dyn-modes/mtp.ini.in
/etc/usb-moded/dyn-modes/mtp_adb.ini.in
/etc/usb-moded/dyn-modes/rndis.ini.in
/etc/usb-moded/dyn-modes/rndis_adb.ini.in
/etc/usb-moded/run
/etc/usb-moded/run/charging_only_adb-adbd.ini
/etc/usb-moded/run/developer_mode-ssh.ini
/etc/usb-moded/run/developer_mode-udhcpd.ini
/etc/usb-moded/run/mtp_adb-adbd.ini
/etc/usb-moded/run/rndis-tethering.ini
/etc/usb-moded/run/rndis_adb-adbd.ini
/etc/usb-moded/run/rndis_adb-tethering.ini
/lib
détourné par base-files vers : /lib.usr-is-merged
/lib/systemd
/lib/systemd/system
/lib/systemd/system/force-adb.path
/lib/systemd/system/force-adb.service
/lib/systemd/system/ssh.service.d
/lib/systemd/system/ssh.service.d/usb-moded-ssh.conf
/lib/systemd/system/usb-moded-ssh.service
/lib/systemd/system/usb-moded-tethering.service
/lib/systemd/system/usb-moded-udhcpd.service
/lib/systemd/system/usb-moded.service.d
/lib/systemd/system/usb-moded.service.d/ubports-usb-moded-configurator.conf
/usr
/usr/libexec
/usr/libexec/force-adb
/usr/libexec/ubports-usb-moded-configurator
/usr/libexec/usb-moded
/usr/libexec/usb-moded/tethering
/usr/share
/usr/share/doc
/usr/share/doc/usb-moded-ubports-config
/usr/share/doc/usb-moded-ubports-config/changelog.Debian.gz
/usr/share/doc/usb-moded-ubports-config/copyright
/etc/udhcpd.conf
/etc/usb-moded/20-ubports-autodetected.ini
/etc/usb-moded/dyn-modes/charging_only_adb.ini
/etc/usb-moded/dyn-modes/developer_mode.ini
/etc/usb-moded/dyn-modes/mtp.ini
/etc/usb-moded/dyn-modes/mtp_adb.ini
/etc/usb-moded/dyn-modes/rndis.ini
/etc/usb-moded/dyn-modes/rndis_adb.ini -
@Vlad-Nirky said in What's the return of systemd-detect-virt on your device ?:
root@ubuntu-phablet:/usr/libexec# apt-file search force-adb
thanks - however it don't quite answer my second question that was more general.
On my Fairphone 5, I get:root@ubuntu-phablet:/home/phablet# apt-file search force-adb
bash: apt-file: command not foundI have tried to install apt-file with 'crackle crack' and got nowhere. I even tried to download it and use it by doing manually what 'crackle crack' is supposed to do and got into a morass of Perl packages.
-
@gpatel-en
When I first started using Noble, the size of the system partition on my phone did not allow for installation.
So we modified the installer configuration file to exceed this limit.
I kept this initial size (because I haven't repartitioned since and it leaves me a little space to add one or two apt packages (which I don't think will affect the OS).
By the way, in the latest 24.04-2.x, rsync is back.
PS I think this method can not be applied to every device... It depend on the port. -
@gpatel-fr FP4 here. It returns none.
-
@gpatel-fr Volla Quintus, 24.04.1, output is "none"
-
@Vlad-Nirky said in What's the return of systemd-detect-virt on your device ?:
it leaves me a little space to add one or two apt packages (which I don't think will affect the OS).
I'm afraid I understand what you did

-
thanks for your replies, I'm beginning to think that there is nothing wrong neither in force-adb nor in systemd (!) and the problems comes from the device tree of the FP5, that is, the kernel configuration.
Changing force-adb could be an easy work around but mostly wrong.
I'll try to explore the FP5 kernel code to see if I can find the problem all by myself (enthusiasm level:
)Edit: created this gitlab issue to make the problem more visible.
-
G gpatel-fr has marked this topic as solved on
-
said in What's the return of systemd-detect-virt on your device ?:
Edit: created this gitlab issue
Well, I researched it a bit previous Sunday and the plot thickens. Looking deeper into phones is staring into the abyss
. More in the gitlab issue.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login