Giter VIP home page Giter VIP logo

Comments (23)

github-actions avatar github-actions commented on June 22, 2024

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.

from pi-apps.

Botspot avatar Botspot commented on June 22, 2024

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.

from pi-apps.

aldjplay avatar aldjplay commented on June 22, 2024

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)

from pi-apps.

Botspot avatar Botspot commented on June 22, 2024

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.

from pi-apps.

theofficialgman avatar theofficialgman commented on June 22, 2024

@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.

from pi-apps.

theofficialgman avatar theofficialgman commented on June 22, 2024

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

from pi-apps.

aldjplay avatar aldjplay commented on June 22, 2024

@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
Screenshot 2023-08-23 2 41 58 PM
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

from pi-apps.

theofficialgman avatar theofficialgman commented on June 22, 2024

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 -> adrienverge/openfortivpn#335 (comment)

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.

from pi-apps.

aldjplay avatar aldjplay commented on June 22, 2024

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. 👍

from pi-apps.

theofficialgman avatar theofficialgman commented on June 22, 2024

@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

from pi-apps.

aldjplay avatar aldjplay commented on June 22, 2024

Here's the output from running cat /boot/config and cat /boot/config-$ (uname -r)
Screenshot 2023-09-01 12 29 14 PM
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

from pi-apps.

theofficialgman avatar theofficialgman commented on June 22, 2024

I can see the output contains CONFIG_FUSE_FS=y in zcat /proc/config.gz

that is enough information, thanks

from pi-apps.

aldjplay avatar aldjplay commented on June 22, 2024

Alright. You're welcome!

from pi-apps.

theofficialgman avatar theofficialgman commented on June 22, 2024

@aldjplay one more thing
is there any output from this?

modinfo fuse

from pi-apps.

aldjplay avatar aldjplay commented on June 22, 2024

It appears no.
image

from pi-apps.

theofficialgman avatar theofficialgman commented on June 22, 2024

modinfo is from the kmod package that I had you install earlier
did you remove it?

sudo apt install kmod

then try again

from pi-apps.

aldjplay avatar aldjplay commented on June 22, 2024

Yeah I restored an backup from before I installed the kmod package. My bad.
image
**the first two lines are from earlier

from pi-apps.

theofficialgman avatar theofficialgman commented on June 22, 2024

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

from pi-apps.

aldjplay avatar aldjplay commented on June 22, 2024

Here's the output. (It's still on the same terminal window with everything & stuff so it's all at the bottom)
image

from pi-apps.

theofficialgman avatar theofficialgman commented on June 22, 2024

is there any output from ls -l /sys/module

from pi-apps.

aldjplay avatar aldjplay commented on June 22, 2024

Here's the output: output.txt

from pi-apps.

theofficialgman avatar theofficialgman commented on June 22, 2024

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.

from pi-apps.

aldjplay avatar aldjplay commented on June 22, 2024

Alright! Glad to help!

from pi-apps.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.