Ed_P wrote:Sequence is still extramods, then porteus/base mods, then changes.
Yes I know, because I havent looked into yet . I would have to create your exact setup, so it would take some time to recreate your scenario. I have checked porteus extracted to a drive and porteus executed from a cd and both have the base modules loaded first and then the extramods.
I see you use the from=/path/to/iso cheatcode and your extramods are in some partition. What about the kernel and the initrd? Are they pre-extracted out of the iso for the bootloader?
I recreated your setup partially - booted to cinnamon 3.2rc5 iso using the from=cheatcode and also used extramod cheatcode. I was able to recreate your issue.
The reason for the issue is because of what you mentioned earlier in this same thread in a post yesterday:
Ed_P wrote:Interesting that /var/log/porteus-livedbg shows the Booting device: as /mnt/isoloop when it's true path for me is /mnt/live/mnt/isoloop.
root@porteus:/home/guest# ls /mnt/isoloop
/bin/ls: cannot access '/mnt/isoloop': No such file or directory
root@porteus:/home/guest# ls /mnt/isoloop/
/bin/ls: cannot access '/mnt/isoloop/': No such file or directory
root@porteus:/home/guest# ls /mnt/isoloop/*
/bin/ls: cannot access '/mnt/isoloop/*': No such file or directory
root@porteus:/home/guest# ls /mnt/live/mnt/isoloop/
EFI/ USB_INSTALLATION.txt boot/ porteus/
root@porteus:/home/guest#
So, because the path to isoloop is wrong, the problem occurred. I have fixed it in the script below with a workaround. (It is a one line change - just search for #isoloop fix in the script).
#! /bin/bash
if [ "$UID" -ne 0 ]; then
if [ "$DISPLAY" ]; then
ktsuss $0
else
echo "Enter root password"
su -c $0
fi
exit
fi
export MODULE_LOAD_DIR="/mnt/live/memory/images"
export TMPFILE="/tmp/${$}_port_modules"
export LOADEDENTRIES="grep -c gtk-yes $TMPFILE | tr -d '\n'"
export NUMENTRIES="wc -l $TMPFILE | cut -f 1 -d ' '"
export PORTROOTDIR=`grep -A1 "Porteus data found in" /var/log/porteus-livedbg | tail -n1`
trap sigint_handler INT
sigint_handler()
{
rm -f "$TMPFILE"
}
function value() { egrep -o " $1=[^ ]+" /proc/cmdline | cut -d= -f2; }
function search()
{
local FOUND=""
for x in `ls /mnt | tac`; do
if [ -e /mnt/$x/$1 -a $(grep -c "/mnt/$x/$1" /var/log/porteus-livedbg) -ne 0 ]; then
FOUND="$x"
break
fi
done
echo $FOUND
}
export EXTRAMODS=`value extramod | sed 's/;/ /g'`
function load_remaining_modules
{
local PORTMODULES="$(ls $MODULE_LOAD_DIR | sort)"
for PORTMODULE in $PORTMODULES
do
local MODNAME="$(basename -a $PORTMODULE)"
if ! grep -q "$MODNAME" "$TMPFILE"; then
local MODDIR="$(losetup -a | grep $MODNAME | cut -d \( -f2 | cut -d \) -f1)"
echo "gtk-yes|${MODNAME}|${MODDIR}" >> "$TMPFILE"
fi
done
}
function load_modules
{
echo $PORTROOTDIR | egrep -q 'isoloop' && PORTROOTDIR="/mnt/live${PORTROOTDIR}" #isoloop fix
local PORTMODULES="$(find $PORTROOTDIR -name "*.xzm" | sort)"
for PORTMODULE in $PORTMODULES
do
local MODNAME="$(basename -a $PORTMODULE)"
local MODDIR="$(dirname $PORTMODULE)"
local OUT="${MODNAME}|${MODDIR}"
if [ -e "${MODULE_LOAD_DIR}/${MODNAME}" ]; then
echo "gtk-yes|${OUT}" >> "$TMPFILE"
else
echo "gtk-no|${OUT}" >> "$TMPFILE"
fi
done
if [ "$EXTRAMODS" ]; then
for EXTRAMOD in $EXTRAMODS; do
echo $EXTRAMOD | egrep -q '^UUID|^LABEL' && EXTRAMOD="$(echo $EXTRAMOD | cut -d \/ -f2-)"
echo $EXTRAMOD | egrep -q '^/mnt/' && EXTRAMOD="$(echo $EXTRAMOD | cut -d \/ -f4-)"
RET=$(search $EXTRAMOD)
if [ $RET ]; then
PORTMODULES="$(find /mnt/${RET}/${EXTRAMOD} -name "*.xzm" | sort)"
else
PORTMODULES="$(find ${EXTRAMOD} -name "*.xzm" | sort)"
fi
for PORTMODULE in $PORTMODULES
do
local MODNAME="$(basename -a $PORTMODULE)"
local MODDIR="$(dirname $PORTMODULE)"
local OUT="${MODNAME}|${MODDIR}"
if [ -e "${MODULE_LOAD_DIR}/${MODNAME}" ]; then
echo "gtk-yes|${OUT}" >> "$TMPFILE"
else
echo "gtk-no|${OUT}" >> "$TMPFILE"
fi
done
done
fi
load_remaining_modules
}
function activate_module
{
if [ "$1" = "" ]; then return; fi
local MODDIR="$(grep $1 $TMPFILE | cut -f 3 -d "|")"
local MODULE="${MODDIR}/${1}"
if [ -e "${MODULE_LOAD_DIR}/${1}" ]; then
deactivate "$MODULE"
else
activate "$MODULE"
fi
rm -f "$TMPFILE"
load_modules
}
export -f load_modules
export -f load_remaining_modules
export -f activate_module
export -f value
export -f search
load_modules
export MODULES_MAIN='
<window window_position="1" title="Porteus Modules" default-height="550" default-width="500" icon-name="cdr" resizable="true" decorated="true">
<vbox>
<hbox>
<text>
<label>"Modules Activated: "</label>
</text>
<text>
<variable>ENTRIES</variable>
<input>'$LOADEDENTRIES'</input>
</text>
</hbox>
<tree homogeneous="true" selection-mode="1" file-monitor="true">
<variable>ENTRY</variable>
<label>"Module Name |Containing Directory "</label>
<input file icon_column="0">'$TMPFILE'</input>
<action signal="row-activated">"activate_module $ENTRY"</action>
<action signal="file-changed" type="refresh">ENTRY</action>
<action signal="file-changed" type="refresh">ENTRIES</action>
</tree>
<hseparator default-width="300"></hseparator>
<hbox>
<button space-fill="true">
<label>Exit</label>
<action>exit:0</action>
</button>
</hbox>
</vbox>
</window>
'
gtkdialog --program=MODULES_MAIN -c
rm -f $TMPFILE
I will also report the wrong path issue, since it also occurs on 3.2rc5. Now, if and when brokenman fixes this, this script would break (because of the workaround). So I would then suggest that you keep this version of your script for your 3.0.1 and use the previous version for 3.2 when it gets fixed there. Or, this same script on both versions.
Ed_P wrote:BTW The system modules are still showing at the bottom.
Hi Ed_P,
Coming to you now live from Porteus RazorQT 3.0.1! I downloaded this iso from the archives of dl.porteus.org. I executed the script and saw that the base modules come first and then the extramods. http://imgur.com/a/jE9L1
It's very intrigiung, as to why it works here and does not at your side.
Could you give me the output of losetup -a please? Also, ls -l /mnt/live/mnt/isoloop/porteus
EDIT: I did find a difference in your screenshot. While the containing directory field should show only directory names, your screenshot shows the xzm module name also.
eg: /mnt/live/mnt/isoloop/porteus/base/000-kernel.xzm
jssouza wrote:screenshot shows the xzm module name also.
eg: /mnt/live/mnt/isoloop/porteus/base/000-kernel.xzm
A peculirity that also stood out for me. Believe 000-kernel.xzm is a directory name in the union. If not mistaken, the coding is to be seen in linuxrc.
Linux porteus 4.4.0-porteus #3 SMP PREEMPT Sat Jan 23 07:01:55 UTC 2016 i686 AMD Sempron(tm) 140 Processor AuthenticAMD GNU/Linux
NVIDIA Corporation C61 [GeForce 6150SE nForce 430] (rev a2) MemTotal: 901760 kB MemFree: 66752 kB
You are right, technically they are directories in /mnt/live/memory/images, but do not look good in the display. Probably have to strip it off in the script.
Hi Ed_P,
You have showed me /mnt/live/mnt/isoloop/porteus. Could you also go one level deeper and show me the output of ls -l /mnt/live/mnt/isoloop/porteus/base/
I see you also have cinnamon 3.2rc5 booted in similar way (isoloop). Does the script show the base modules at the end there too? Also, I saw your 3.0.1 razorqt iso has a -nu at the end. I did not find this in the server. Is that a recreated iso?
jssouza wrote:You have showed me /mnt/live/mnt/isoloop/porteus. Could you also go one level deeper and show me the output of ls -l /mnt/live/mnt/isoloop/porteus/base/