How to change files on Read-only file system

  • Hi,

    How can I change/edit file in skin addons?

    I need to change /usr/share/kodi/addons/skin.*b/DialogButtonMenu.xml:, but I cannot edit it ,or make chmod, because is on read-only file system. I am log in as root user.

    Thanks

  • Everything under /storage/ isn't read-only

    If you make a copy of a skin, it's recommended to rename the skin in the addon.xml file to something else. After that is done you need to enable the copied skin at addons->my addons->look and feel->skins

    After that you are able to select and use that skin at the settings.

    Normalla, skins which are installed additionally, should be already located under /storage/.kodi/addons

    Not 100% sure about the path. But additional installed skins are stored somewhere under /storage which is the section you have write access to

  • Just checked and the path is correct. I installed a skin (Aeon Nox) and it's located under:

    /storage/.kodi/addons/skin.aeon.nox.5

    So skins, which are isntalled additionally are always stored at that location where you have write access to.

    If we are talking about the standard Estuary skin, then trogggy is 100% correct. You have to copy Estuary to /storage/.kodi/addons but you have to copy it to a different folder name. Standard Estuary is located under: /usr/share/kodi/addons/skin.estuary

    So for example the copy need to look like that:

    cp -R /usr/share/kodi/addons/skin.estuary /storage/.kodi/addons/skin.estuary-mod

    But that's only half of the story. You have to rename the skin and therefore modify the addon.xml:

    original:

    <addon id="skin.estuary" version="1.9.16" name="Estuary" provider-name="phil65, Ichabod Fletchman">

    modified:

    <addon id="skin.estuary-mod" version="1.9.16" name="Estuary-mod" provider-name="phil65, Ichabod Fletchman">

    After that the skin should be available and you are able to enable that skin by navigating to addons->my addons->look and feel->skin (there should be an "x" next to it and you need to enable it).

    If that is done as well, just switch to that skin as usual.

    Changes for Estuary-mod need to be done at the specific copied location then.

  • Interesting - I’ve altered files (every time there’s an update to the skin, or I reinstall altogether, I have to redo some customizations) within that folder more times than I can remember, and it’s never failed. I usually use my Mac to connect to the share in the GUI, but when that failed, I connected via SSH, and it said "read only file system."

    I'm having some memory loss here, but I think I rebooted LibreELEC and accessed it via Windws to solve the problem.

    By the way - since you guys seem to know about skins/addons - is there any particular way that an add-on must be zipped for Kodi to install it properly?

    I use Kodi on my Apple TV 4K as well, but I can't access the file system. This should have been an easy workaround: I unzipped the skin, added 4 small images to a folder already containing hundreds, and altered references to those images - changing about a half line of existing inconsequential code on 7-8 existing XML files. Then, I zipped it back up, and it wouldn't install to Kodi in any OS. The installation simply fails.

  • I have a cheap Mini PC with Intel Atom Z8350, and a copy of Broadcom Wifi AP6212/6255. Currently WiFi isn't working, but if I can copy the nvram.txt required for my WiFi to work into /lib/firmware/brcm/ as brcmfmac43455-sdio.txt I could make WiFi working on my device via LibreELEC. When I tested it on Ubuntu 18.04 - it worked fine. I have no doubts it will work on LibreELEC as well. The problem is: I cannot access the /lib/firmware/brcm/ destination via SSH as it's read only file system.

    Do you have any advice how can I achieve this? How can I download/copy file into /lib/firmware/brcm/ ?
    File that I need to download/copy is this one:

    nvram.txt

  • It's one of those lurking corner cases that needs someone to rework scripts. It will be needed once more hardware moves to mainline kernels because the situation with broadcom firmware in mainline is both better (lots of unnecessarily complicated hciattach stuff has been eliminated by serdev) and worse (the kernel is still in the early stages of supporting hardware with the new regime). As a broad rule there is reasonable coverage of chips and firmware but zero coverage of nvram configs, so having the ability to experiment with those from userspace will be rather useful.

  • Thanks for the reply.

    Wouldn't it be possible to unpack the ISO, make changes (copy the nvram configs), then compile the ISO and use that ISO to install new LibreELEC on my Mini PC?

  • Thanks for the reply.

    Wouldn't it be possible to unpack the ISO, make changes (copy the nvram configs), then compile the ISO and use that ISO to install new LibreELEC on my Mini PC?

    Proceed at your own risk:

    copy the SYSTEM file from the LE system partition to a linux box, then

    run fakeroot, then run unsquashfs SYSTEM to extract the SYSTEM squashfs image to squashfs-root, then modify files in the extracted dir, then run mksquashfs squashfs-root SYSTEM -comp lz4 to create the SYSTEM squashfs file with the modified content and copy that over to the LE system partition.

    so long,

    Hias

  • HiassofT , Thank you.

    Sorry for being newbish (I am actually new to this), but how do I access LE system partition? When I plugin the MicroSD into my PC, all I see is the Storage folder. I have 2 partitions, of which one is the EFI (I presume). But when I try to explore the sdb/sdb2, all I can see is the storage. How do I access the root, and extract SYSTEM file? I know I can use SSH to extract the SYSTEM file, but I cannot replace the SYSTEM file with a new one via SSH because read-only file system won't let me.


    vpeter , I', still on LE 8, x86, I'm willing to reinstall everything with LE 9 beta if you think I'll have more luck with setting up the WiFi.

  • Doesn't LE 9 has new kernel modules and firmware overlay?

    Hmm, yes, good idea! I should have thought about that :)

    The following approach should work:

    Create a /storage/my-firmware/lib/firmware/brcm directory:

    Code
    mkdir -p /storage/my-firmware/lib/firmware/brcm/

    and copy the brcmfmac43455-sdio.txt file in there.

    Then configure the kernel-overlay system to pick up stuff from /storage/my-firmware:

    Code
    echo "/storage/my-firmware" > /storage/.cache/kernel-overlays/90-my-firmware.conf

    Now reboot and the firmware files should be picked up.

    so long,

    Hias

  • Sorry for being newbish (I am actually new to this), but how do I access LE system partition? When I plugin the MicroSD into my PC, all I see is the Storage folder. I have 2 partitions, of which one is the EFI (I presume). But when I try to explore the sdb/sdb2, all I can see is the storage. How do I access the root, and extract SYSTEM file? I know I can use SSH to extract the SYSTEM file, but I cannot replace the SYSTEM file with a new one via SSH because read-only file system won't let me.

    The SYSTEM file is in /flash, but you shouldn't replace it from a running system via ssh as that'll crash your box (it's being used and if you swap it out behind LibreELEC's back things will go really crazy - I accidentally did that once). You'd have to do that without LibreELEC running, eg from a Linux live boot or Windows on a separate partition.

    Better switch to LE9 and use the kernel overlay approach then you don't have to patch your installation on each upgrade.

    so long,

    Hias