Closed aldjplay closed 1 year ago
Hello there 👋 Thanks for submitting your first issue to the Pi-Apps project! We'll try to get back to you as soon as possible. In the meantime, we encourage you join our Discord server, where you can ask any questions you might have.
Please respond as soon as possible if a Pi-Apps maintainer requests more information from you. Stale issues will be closed after a lengthy period of time with no response.
ChromeOS is not completely compatible with Pi-Apps, so expect to see errors for some apps. Thanks for reporting this though. If there is something we can do to help ChromeOS users, we'd be glad to help. I suggest you research how to get AppImages running under Crostini. That is what the fuse kernel module is necessary for in this case. If the internet says there's no way to run appimages, then there's your answer. But maybe there is a way. I don't have the time right now to do that research myself.
Hey! Sorry I accidentally sent the bug report before I finished. I updated it. About your suggestion: As far as I'm aware, AppImages definitely run under Crostini. I have a few apps that do work like an unofficial build of MuseScore 3.6.2 for ARM and a few others. However, the AppImage must be compatible with the architecture that the device(in this case, Chromebook) uses (ARM vs x86_64?). As for the fuse kernel module, I'll have to look more into that. (fyi, I'm not very familiar with most of this technical stuff)
Pi-Apps correctly detects compatible system architecture. For MuseScore, we install either an armv7l or arm64 appimage.
Try removing this line from MuseScore's install script: enable_module fuse || exit 1
, then try installing Musescore again. It should install now. See if it runs. If it does, I'd be curious if @theofficialgman knows of a clean way to detect when kernel modules are necessary, or if a hacky workaround needs to be added for ChromeOS devices when trying to enable the fuse
kernel module.
@Botspot I think you missed the simple issue
environment: line 30: lsmod: command not found
#load the module now if not already loaded
if ! lsmod | awk '{print $1}' | grep -qxF "$module" ;then
errors="$(sudo modprobe "$module" 2>&1)"
if [ $? != 0 ];then
#if modprobe fails, the module may be missing because user upgraded the kernel and has not rebooted yet.
if [ ! -d "/lib/modules/$(uname -r)" ];then
error "\nUser error: Failed to load the '$module' kernel module because you upgraded the kernel and have not rebooted yet.
Please reboot to load the new kernel, then try again."
else
#other modprobe error: exit now and display modprobe output
error "$errors"
fi
fi
fi
lsmod shows ALL kernel modules currently ACTIVE, whether builtinto the kernel (=y
) or loaded in as a module (=m
)
the user does not not have the lsmod
binary or the modprobe
binary so it results in an error, triggering our error check.
lsmod
and modprobe
are from the debian package kmod
. I was not aware of any distros NOT shipping kmod
by default but it appears chromeOS crostini does not as we can see.
@aldjplay don't try what botspot says yet. first try doing a sudo apt install kmod -y
and then try installing again from pi-apps without any changes.
also @aldjplay since your device model and CPU info are empty. do you know of any way that we can obtain relevant information from crostini about it being crostini?
we already try a lot of common files but it appears none of these are available in crostini on your chromebook
if [[ -d /system/app/ && -d /system/priv-app ]]; then
model="$(getprop ro.product.brand) $(getprop ro.product.model)"
fi
if [[ -z "$model" ]] && [[ -f /sys/devices/virtual/dmi/id/product_name ||
-f /sys/devices/virtual/dmi/id/product_version ]]; then
model="$(tr -d '\0' < /sys/devices/virtual/dmi/id/product_name)"
model+=" $(tr -d '\0' < /sys/devices/virtual/dmi/id/product_version)"
fi
if [[ -z "$model" ]] && [[ -f /sys/firmware/devicetree/base/model ]]; then
model="$(tr -d '\0' < /sys/firmware/devicetree/base/model)"
fi
if [[ -z "$model" ]] && [[ -f /tmp/sysinfo/model ]]; then
model="$(tr -d '\0' < /tmp/sysinfo/model)"
fi
maybe google is using a non-standard devicetree location?
does this have any contents? cat /proc/device-tree/base/model
@aldjplay don't try what botspot says yet. first try doing a sudo apt install kmod -y and then try installing again from pi-apps without any changes.
The same error message appears appears, but it does seem that kmod wasn't installed Here's a log file from Pi-Apps. install-fail-MuseScore.log
does this have any contents? cat /proc/device-tree/base/model
Here's the result:
cat: /proc/device-tree/base/model: No such file or directory
I looked through the file system with Dolphin and I got to /proc/device-tree, but I couldn't find a folder named 'base'.
As for your question @theofficialgman, I am not aware of any way to check the cpu info and that stuff from crostini. However, here's the cpu info from the Diagnostics app on ChromeOS: Qualcomm 7180 (8 threads, 1.99GHz) My device model name from the back of my chromebook says: IP Duet 3 Chrome 11Q727 Its a Lenovo Chromebook Duet 3
The same error message appears appears, but it does seem that kmod wasn't installed
actually the error is different. firstly, kmod is the name of the package, not any individual binary. the binaries lsmod and modprobe did get installed.
libkmod: ERROR ../libkmod/libkmod-module.c:1668 kmod_module_new_from_loaded: could not open /proc/modules: No such file or directory
Error: could not get list of modules: No such file or directory
This error comes from lsmod
which is a wrapper designed to format the contents of /proc/modules
.
Unforunately it looks like crostini is bad and does not make the list of active kernel modules available. That pretty much breaks linux kernel spec and is not helpful. A bit more information from other users who discovered that is here -> https://github.com/adrienverge/openfortivpn/issues/335#issuecomment-397394994
While it makes sense that google would not allow you to load your own kernel modules (that could be a security issue) it doesn't make sense that they don't mount the directory to show you the active kernel modules.
There really is nothing we can do here to get the actual information we need to determine if the fuse module is active since crostini does not provide this information anywhere. In addition, there is no way for us to even hackily disable that check for all crostini users since we can't determine if the user is running crostini as previously mentioned.
@aldjplay if you are able to look through all the /proc/device-tree
files and find any information in there that could be used to differentiate crostini from any other linux system let me know. I will consider this an upsream (google crostini) bug and mark it as such.
Alright. Thanks for the help! I will add, the MuseScore 4.0.2 AppImage on your large-files release page does work. https://github.com/Pi-Apps-Coders/files/releases/tag/large-files, although it does appear small for an 11" screen. Here's a screenshot of that. (https://github.com/Botspot/pi-apps/assets/142936250/587892a4-7687-41ae-a576-840cebbd58d5)
As for your final request, I'll try my best. 👍
@aldjplay does this have any output? zcat /proc/config.gz
or this cat /boot/config
or this cat /boot/config-$(uname -r)
If presend we can use these as an absolute fallback for checking if FUSE =y in the kernel config
Here's the output from running cat /boot/config
and cat /boot/config-$ (uname -r)
I do have to ask, was I supposed to include my username in cat /boot/config-$ (uname -r)
somewhere?
As for zcat /proc/config.gz
the output was so long, I only have part of it. Do you know of anyway to see the whole output?
Here's the text file of like 1048 lines: partialoutput.txt
I can see the output contains CONFIG_FUSE_FS=y
in zcat /proc/config.gz
that is enough information, thanks
Alright. You're welcome!
@aldjplay one more thing is there any output from this?
modinfo fuse
It appears no.
modinfo
is from the kmod
package that I had you install earlier
did you remove it?
sudo apt install kmod
then try again
Yeah I restored an backup from before I installed the kmod package. My bad. **the first two lines are from earlier
it should be there. maybe /sbin isn't in PATH use the full directory
/sbin/modinfo fuse
sometimes you also have to reload the current list of files in PATH with
hash -r
after installing stuff
Here's the output. (It's still on the same terminal window with everything & stuff so it's all at the bottom)
is there any output from ls -l /sys/module
Here's the output: output.txt
Here's the output: output.txt
perfect. I will use this as a fallback to check for currently loaded/active modules
drwxr-xr-x 3 nobody nogroup 0 Sep 1 12:26 fuse
This issue will close automatically when I commit something that does that to pi-apps.
Alright! Glad to help!
Confirmations
What happened?
'MuseScore' won't install. 'Minecraft Bedrock' won't install
Description
When I attempt to download Musescore 4 from the Pi-Apps store, it always gives me the error:
User error: Failed to load the 'fuse' kernel module because you upgraded the kernel and have not rebooted yet. Please reboot to load the new kernel, then try again.
I am using ChromeOS (Lenovo Chromebook Duet 3) with an ARM processor (Qualcomm 7180 (8 threads, 1.99GHz)Steps to reproduce:
Expected Behavior: "MuseScore" or "Minecraft Bedrock" installs
Actual Result: an Error occurs
User error: Failed to load the 'fuse' kernel module because you upgraded the kernel and have not rebooted yet. Please reboot to load the new kernel, then try again.
Extra Info:
I have attempted to install MuseScore more than 5 times with the same result, along with Minecraft Bedrock about 3 times. I have reproduced it on the original Lenovo Chromebook Duet as well. I have restarted Crostini(the Linux container within ChromeOS) and have restarted my Chromebook multiple times. The error always pops up. However, I was able to install other applications like Audacity and the Minecraft Prism Launcher. Something about "fuse"
The log file provided is for MuseScore. For Minecraft Bedrock, see here(https://github.com/Botspot/pi-apps/files/12414614/install-fail-Minecraft.Bedrock.log)
What are your system specs (run the following command in your terminal)?
(Recommended) Error log? Terminal output? Debug messages?