Kernel frissítése

Programozás, programnyelvek, kiegészítők, alkalmazások, programnyelvek, programfejlesztéssel kapcsolatos témák, közvetlenül a programozással összefüggő kérdések
NTamas
Hozzászólások: 1872
Csatlakozott: 2014.06.19. 13:36

Re: Kernel frissítése

Hozzászólás Szerző: NTamas »

janugsa írta:Tegnap találtam én is 4.04-es kernelt de 64-bites. Ki is próbáltam egy 64 bites puppyn.
Működött.
Ma véletlenül felraktam egy 32-bites puppyra és ott is működik.
Érdekes.
Amennyiben egy ilyen kernelről van szó, annak ez elvileg nem gond, mivel elvileg tud működni mindkét rendszeren.
Architecture: x86_64
De egy ilyen kernellel már nem valószínű, hogy menne a mutatvány.
Architecture: i686

Nézd meg a lacyc3.eu féle oldalon megjelent cikkben a 4.04-es kernel változások listáját, benne rögtön az elején ezt a sort:

For physical addresses, since the address may exceed 32-bit address range
after calculation, we should use 0x%8.8X%8.8X instead of ACPI_PRINTF_UINT
and ACPI_FORMAT_UINT64() instead of
ACPI_FORMAT_NATIVE_UINT()/ACPI_FORMAT_TO_UINT().

This patch also removes above replaced macros as there are no users.

This is a preparation to switch acpi_physical_address to 64-bit on 32-bit
kernel builds.

Ebből, bár nagyon nem értek a programozáshoz, én arra tudok következtetni, hogy a jelzett kernel képes olyan 32 bites pae-módú alkalmazásokat futtatni, ahol ezt az alaplap Bios-a is támogatja. Tehát janugsa mutatványánál inkább az lenne a kérdés, a műveletet milyen Bios-támogatású alaplapon adta elő, mert, ha abban az alaplapban van 32 bites pae-módú támogatás natívan, akkor elvileg működhetne a dolog, szerintem.

Valószínűleg janugsa-nak ezt a manővert egy olyan 64 bites alaplapon sikerült előadnia, ami a 32 bites pae-módú alkalmazások futtatását natívan támogatja.

Beszélgetünk itt a kernelcserélgetésről, de közben a hozzá tartozó - egyáltalán az alaplapi Bios ezt támogatja? - dolgokról simán még szó sem esett, pedig gyakorlatilag ezen áll, vagy bukik a dolog.

És akkor a hozzávaló Glibc-ről még nem is tettem említést...

janugsa
Adminisztrátor
Hozzászólások: 618
Csatlakozott: 2014.06.28. 00:17

Re: Kernel frissítése

Hozzászólás Szerző: janugsa »

http://www.murga-linux.com/puppy/viewto ... 791#865791
A murgán találtam egy kernelcserélő scriptet.
Ki kell bontani , és indítható. Persze kell egy kernel is, ami vmlinuz
és zdrv_xxxxxx.sfs vagy kernel-modul.sfs fájlokból áll. Az sfs bármilyen nevü lehet, a script
úgyis átírja.
„ Élő“ puppy alatt cseréli ki a kernelt, restart után. Ha az új kernellel
működik a puppy de vissza akarjuk állítani a régit a Rollback gombbal
tehetjük.
A Slacko5.9, Tahr, Unicorn, Vivid puppykon és származékain működik.

janugsa
Adminisztrátor
Hozzászólások: 618
Csatlakozott: 2014.06.28. 00:17

Re: Kernel frissítése

Hozzászólás Szerző: janugsa »

Saját kicsi kernel.
Igazság az, hogy nem a kernelt kicsinyítjük, hanem a zdrv.sfs-t. Ott is a
modules és a firmware mappát.
Tahrpup 606 puppy próbáltam. 33 MB-os zdrv.sfs lett 2,5 MB.

http://murga-linux.com/puppy/viewtopic.php?t=51552

zdrv_cutter-0.3.pet  csak egy scriptet telepít, itt van: /usr/bin/zdrvcutr.
Ha elindítjuk kis idő múlva felugrik egy ablak itt a Continue gombra katt.
Megint kis idő múlva másik ablak jön itt Exit gomb katt.
A root mappában megtaláljuk a ztxxxxxxx.sfs alatt. Ezt át kell neveznünk a zdrv nevünkre, az eredeti zdrv-t mentsük el a biztonság kedvéért más néven.

Csak azon a gépen használhatjuk amin készítettük, igaz több puppyhoz is felhasználhatjuk, de ekkor a hozzá tartozó vmlinuz fájlt is vinni kell.

janugsa
Adminisztrátor
Hozzászólások: 618
Csatlakozott: 2014.06.28. 00:17

Re: Kernel frissítése

Hozzászólás Szerző: janugsa »

Néhány puppyban van új kernelcserélő script. A régitől abban különbözik, hogy a tar.bz2 tömörített kernelt ki is bontja. A régi is benne van egy másik fülön.
Ha összegyüjtöttünk 3-4 kernelt, akkor a Rollback gombbal váltogathatunk.
Sok Huge kernel:
https://archive.org/download/Puppy_Linux_Huge-Kernels

Három végtelenített gif videó a kepfeltöltes.euról, palemoonon közvetlenül látható, chromiumon az ikonokra kattintva:

Kép

Kép

Kép

Avatar
nocsak
Hozzászólások: 410
Csatlakozott: 2014.09.29. 15:01
Kapcsolat:

Re: Kernel frissítése

Hozzászólás Szerző: nocsak »

Sziasztok és egyúttal elnézést, hogy ide írom de nem akartam fragmentálni a fórumot új topik indításával.

Szóval sokszor látjuk, a nemzetközi fórumon is, egy-egy huge-kernel kiadás esetén, hogy usmerged, NON-usrmerge, stb.
A pontos okát nem ismerem és nem is tisztem ecsetelni, de a gyakorlati hatását már annál inkább:
mit jelent az, hogy usrmerge(d) és non-usrmerge(d) kernel, firmware fdrv, stb. Amik nálunk a symlinkes, semi-symlinked és classic-standard kivitelt jelentik?

Gyakorlatilag arról van szó, hogy ami(k) eddig a / gyökérben mappák voltak, tehát a:

Kód: Egész kijelölése

/bin
/sbin
/lib
/lib64
/libx32
/lib32
De legfőképpen a következő triumvirátus:

Kód: Egész kijelölése

/bin
/sbin
/lib
Ezek egyetemesen átkerültek a /usr könyvtárba, tehát már csak linkek a / gyökérben, és egybe lettek ömlesztve az /usr könyvtáron belül lévőkkel.

A következő kérdés teljesen jogos ezúttal, hogy akkor ha visszahelyezzük a kérdéses könyvtárakat fizikailag a / gyökérbe az /usr-ből akkor az usrmege(d) kernelből és firmware-ből classic-standard avagy non-usrmerge(d) kernelt és firmware-t lehet csinálni? A válasz: IGEN!

Ugyanez a folyamat érvényes visszafelé, tehát bármely classic-standard, non-usrmerge(d) huge-kernelből és fdrv firmware sfs-ből készíthetünk usrmerge(d) avagy symlinked változatot.

Hogyan?

Először is egy ext fájlredszerű partíción, vagy a /tmp könyvtáron egy tetszőleges mappában, vagy a /root mappa bármelyikében egy tetszőleges könyvtárban, elmásoljuk az eredeti fdrv és zdrv vagy kernel-modules és vagy még a hozzá tartozó kernel forrás sfs-t.

az

Kód: Egész kijelölése

unsquashfs fdrv_xyz.sfs
parancs kiadásával annak kibontott tartalmával létrejön egy squashfs-root könyvtár, én ezt a leendő mivoltának megfelelően átnevezem ROX-Filerrel, pl: zzdrv -re kernel esetén, ffdrv-re fdrv esetén és ssrc-re kernel forrás sfs esetén.

Miután a classic-standard avagy a non-usrmerge(d) kivitel kibontott / gyökerében ott a /sbin és a /lib egyedül ezt a két mappát huge-kernel esetén áthelyezzük a mellette levő /usr könyvtárba. Majd puppy esetén:

Kód: Egész kijelölése

dir2sfs zzdrv
paranccsal újabb zdrv sfs kimenetet hozunk létre amit megfelelően visszanevezve a helyére másolva megkapjuk a symlinkesített huge-kernel változatot.

firmware esetén (fdrv) hasonló az eljárás, ott a /lib mellé létrehozunk egy /usr könyvtárat, és belehelyezzük a mellette lévő /lib könyvtárat. Fontos, hogy a / itt a kicsomagolt sfs mappáját jelöli gyökérként! Nem pedig a rendszer / gyökerét!

Ugyanez visszafelé:

usrmerge(d) kernel és firmware fdrvnél a /usr -ből kihelyezzük a felette eggyel álló / -be az /usr/sbin illetve /usr/lib könyvtárat.
Másik nagyon fontos észrevétel erre ma jöttem rá:
Egyes puppyknál a /usr/lib64 link a /usr/lib -re, tehát itt a zdrv esetén ügyeljünk arra, hogy a /usr/lib64 könyvtárban lévő 2 symlinket és amire mutatnak libau.so.2.10 fájlt úgy hagyjuk érzékelhetővé globálisan, hogy ezt a /usr/lib64 könyvtárat meghagyván a /usr-ben csak simán lib -re átnevezzük lib64 -ről. Így minden esetben látni fogja a rendszer a libau.so.2.10 libet ami ha jól sejtem az aufs függősége.

A semi-symlinked pl.: hybrid vagy hibrid-bookworm64 puppyknál nyer értelmet: Ott a /lib kivételével mozgatunk mindent a /usr-be. Tehát ott egyedül a /lib marad mappa a gyökérben.

Remélem érthető voltam!

Ennek megfelelően készítettem egy usrmerge(d) GigaPack-ot, amiben benne az új fdrv, ucode.cpio, kernel fájlok és forrása. + README.txt

Íme:

https://sourceforge.net/projects/puppys ... 2/download

Kernel forrásnál pedig csak arra kell figyelni, miután áthelyeztük a lib könyvtárat a mellé kreált usr-be, akkor a lib mappa legutolsó útvonalán szereplő 2db szimbolikus linket (build és source) töröljük, majd a felette lévő usr src linux mappára relatív linkeléssel újra létrehozzuk - átnevezzük.

Visszafelé ugyanígy, ha csak usrmerge(d) kernel forrásunk van.

Avatar
nocsak
Hozzászólások: 410
Csatlakozott: 2014.09.29. 15:01
Kapcsolat:

Re: Kernel frissítése

Hozzászólás Szerző: nocsak »

zdrv-converter.sh
o2.gif
o2.gif (34.84 KiB) Megtekintve 58 alkalommal
o3.gif
o3.gif (40.45 KiB) Megtekintve 58 alkalommal

Kód: Egész kijelölése

#!/bin/bash

 export LANG=C
 export LC_NUMERIC=C
 
 export OUTPUT_CHARSET=UTF-8
 
 
fuxni=""
wrner=""
wrner="gtkdialog"
erner=""
erner="dir2xsfs"
terner=""
terner=""



if [[ ! -f "/usr/sbin/dir2xsfs" ]];then 

cat << 'EOF' > /usr/sbin/dir2xsfs && chmod +x /usr/sbin/dir2xsfs
#!/bin/bash

. /etc/DISTRO_SPECS

t=`echo "$1" | sed "s/\/$//"`
z=`echo "$1" | sed "s/\/$//"`

if [ ! -d "$t" ];then

  echo "error: no valid folder specified!"
  exit 0

fi

### if no _versionnummer in the end, get it from system
check=`echo $t | sed "s/\(.*\)_[0-9][0-9][0-9]$/\1/"`

#echo --- $check

if [ "$check" == "$t" ];then

  v=$DISTRO_VERSION
  z="${check}_$v"

fi
#echo $t - $z


if [ -f "$z.sfs" ];then

  echo "$z.sfs already exists, refusing to overwrite it!"
  exit 0

fi

urxvt -g 80x6 -e mksquashfs "$t" "$z.sfs" -comp xz -Xbcj x86 -b 512K
md5sum "$z.sfs" > "$z.sfs-md5.txt"
sync


echo
echo
s=`du -m "$z.sfs" | sed "s/\s.*//"`
echo "created: $z.sfs ( $s MB )"
echo "created: $z.sfs-md5.txt"
echo
echo "...byebye..."
echo


EOF


else
echo "exists"

fi


for i in echo gtkdialog grep sed $wrner $erner date uname;do
if [ -z "$(which $i)" ];then
puci=$(echo $i)
fi
done


if [[ "$puci" == *"$wrner"* || "$puci" == *"$erner"* ]];then
fuxni="WARNING: no $wrner AND $erner"


if [ -t 0 ];then
echo "missing commands: $puci and $duci    $fuxni"
else
xmessage "missing commands: $puci and $duci     $fuxni"
fi

else




novik=$(date +'%Y_%m_%d-%H-%M-%S')

export CURD="/tmp/unki"


 
 export MAIN_DIALOG="
 <window title=\"$(gettext 'zdrv converter v1.0')\" icon-name=\"folder-remote\" resizable=\"true\">
    <vbox>
    <frame kernel (modules) or zdrv sfs file>
     <entry>
      <variable>PATHPROG01</variable>
     </entry>
          <button>
       <label>Search</label>
   <input file stock=\"gtk-open\"></input>
   <action>fileselect:PATHPROG01</action>
   </button>
     </frame>
     <frame Filename to save>
     <hbox homogeneous=\"true\">
     <entry space-expand=\"false\" space-fill=\"false\" fs-title=\"Choose a directory:\" fs-action=\"folder\">
    <default>$CURD</default>
    <variable>DIReR</variable>
   </entry>
   <button>
   <label>Search</label>
   <input file stock=\"gtk-open\"></input>
   <action>fileselect:DIReR</action>
   </button>
   </hbox>
     </frame>
     <radiobutton active=\"true\">
      <label>to usrmerged</label>
      <variable>HTVP1</variable>
    </radiobutton>

    <radiobutton>
      <label>to semi-usrmerged</label>
      <variable>HTVP2</variable>
    </radiobutton>
    <radiobutton>
      <label>to non-usrmerged</label>
      <variable>HTVP3</variable>
    </radiobutton>
     <hbox homogeneous=\"true\">
      <button></button>
      <togglebutton><input file stock=\"gtk-quit\"></input><label>$(gettext 'Quit')</label><input>exit 1</input><action>exit:abort</action><default>true</default><variable>pagg</variable></togglebutton>
     </hbox>
    </vbox>
    </window>
   "
 RETSTRING="`gtkdialog --program=MAIN_DIALOG --center`"
 eval "$RETSTRING"

if [[ "$pagg" = true ]]; then

echo "nothing"

else

exit 1

fi

if [[ ! -d "$DIReR" ]];then
mkdir -p "$DIReR"

else
echo "dir ok"
fi

if [[ -d "$DIReR/zzdrv" ]];then
rm -rf "$DIReR"/*
else
echo "DELETED, OK"
fi

if [ ! "$PATHPROG01" ] || [ "$PATHPROG01" = "0" ] || [ ! "$DIReR" ] || [ "$DIReR" = "0" ]; then 


xmessage -title "Something wrong" -buttons Ok:0,Cancel:1 -default Ok -nearmouse "No value given" -timeout 5 

else 




if [[ ! -f "$PATHPROG01" ]];then
cp -pan "$PATHPROG01" "$DIReR" && unsquashfs -d "$DIReR"/zzdrv "$PATHPROG01" && touch "$DIReR"/zz.txt
else
unsquashfs -d "$DIReR"/zzdrv "$PATHPROG01" && touch "$DIReR"/zz.txt

fi







if [[ -f "$DIReR/zz.txt" ]] && [[ "$(ls -l $DIReR/zzdrv | grep -o "lib\|sbin" | tr "\n" " ")" == "" ]];then

source=""
source="merged"

echo "$source" > "$DIReR"/zz.txt
elif [[ -f "$DIReR/zz.txt" ]] && [[ "$(ls -l $DIReR/zzdrv | grep -o "lib\|sbin" | tr "\n" " ")" == "lib " ]];then
source=""
source="semi"

echo "$source" > "$DIReR"/zz.txt
elif [[ -f "$DIReR/zz.txt" ]] && [[ "$(ls -l $DIReR/zzdrv | grep -o "lib\|sbin" | tr "\n" " ")" == "lib sbin " ]];then

source=""
source="classic"
echo "$source" > "$DIReR"/zz.txt
else
echo "FAIL"
xmessage -title "ERROR" "Failed to determine source!
exiting....
" &


exit 1
fi











if [[ "$HTVP1" == true ]] && [[ "$(cat "$DIReR"/zz.txt)" == "merged" ]];then


xmessage -title "ERROR" "output structure will be same as input
$(cat "$DIReR"/zz.txt)
exiting....
" &



exit 1

elif [[ "$HTVP2" == true ]] && [[ "$(cat "$DIReR"/zz.txt)" == "semi" ]];then


xmessage -title "ERROR" "output structure will be same as input
$(cat "$DIReR"/zz.txt)
exiting....
" &
exit 1

elif [[ "$HTVP3" == true ]] && [[ "$(cat "$DIReR"/zz.txt)" == "classic" ]];then
xmessage -title "ERROR" "output structure will be same as input
$(cat "$DIReR"/zz.txt)
exiting....
" &



exit 1

else






if [[ "$HTVP1" == true ]] && [[ "$(cat "$DIReR"/zz.txt)" != "merged" ]];then



if [[ "$(cat "$DIReR"/zz.txt)" == "classic" ]];then
mv "$DIReR"/zzdrv/lib/* "$DIReR"/zzdrv/usr/lib/ && rm -rf "$DIReR"/zzdrv/lib && mv "$DIReR"/zzdrv/sbin "$DIReR"/zzdrv/usr/ && dir2xsfs "$DIReR"/zzdrv && defaultfilemanager "$DIReR" &
elif [[ "$(cat "$DIReR"/zz.txt)" == "semi" ]];then
mv "$DIReR"/zzdrv/lib "$DIReR"/zzdrv/usr/ && dir2xsfs "$DIReR"/zzdrv && defaultfilemanager "$DIReR" &
else
xmessage -title "ERROR" "Can not create output sfs!
Source different or not recognized of the 3 options.
exiting....
" &



exit 1
fi


elif [[ "$HTVP2" == true ]] && [[ "$(cat "$DIReR"/zz.txt)" != "semi" ]];then
if [[ "$(cat "$DIReR"/zz.txt)" == "merged" ]];then
mkdir -p "$DIReR"/zzdrv/lib && mv "$DIReR"/zzdrv/usr/lib/modules "$DIReR"/zzdrv/lib && dir2xsfs "$DIReR"/zzdrv && defaultfilemanager "$DIReR" &


elif [[ "$(cat "$DIReR"/zz.txt)" == "classic" ]];then
mv "$DIReR"/zzdrv/sbin "$DIReR"/zzdrv/usr/ && dir2xsfs "$DIReR"/zzdrv && defaultfilemanager "$DIReR" &
else
xmessage -title "ERROR" "Can not create output sfs!
Source different or not recognized of the 3 options.
exiting....
" &



exit 1
fi


elif [[ "$HTVP3" == true ]] && [[ "$(cat "$DIReR"/zz.txt)" != "classic" ]];then
if [[ "$(cat "$DIReR"/zz.txt)" == "semi" ]];then
mv "$DIReR"/zzdrv/usr/sbin "$DIReR"/zzdrv/ && dir2xsfs "$DIReR"/zzdrv && defaultfilemanager "$DIReR" &

elif [[ "$(cat "$DIReR"/zz.txt)" == "merged" ]];then
mv "$DIReR"/zzdrv/usr/sbin "$DIReR"/zzdrv/ && mkdir -p "$DIReR"/zzdrv/lib && mv "$DIReR"/zzdrv/usr/lib/modules "$DIReR"/zzdrv/lib  && dir2xsfs "$DIReR"/zzdrv && defaultfilemanager "$DIReR" &

else

xmessage -title "ERROR" "Can not create output sfs!
Source different or not recognized of the 3 options.
exiting.... 
" &

exit 1
fi

fi



fi










export loadrunner=$!
export $DIReR













sleep 1

if ps -p $loadrunner > /dev/null
then



ICONSETSGUI8=""







ICONSETSGUI8="$ICONSETSGUI8

<vbox>
<hbox>
<button>
<label>Delete output</label>
<action>rm -rf \"$DIReR\"/* &</action>
</button>
<button>
<label>open output</label>
<action>defaultfilemanager \"$DIReR\" &</action>
</button>

</hbox>

<frame Process>
      <text>
       <label>nothing</label>
       <input>ps -p $loadrunner</input>
       <variable>nocsakdokk</variable>
     </text>
<timer milliseconds=\"true\" interval=\"3000\" visible=\"false\">
     
     <action>refresh:nocsakdokk</action>
     
     </timer>
</frame>
</vbox>

"


export MAIN_DIALOG="
<window title=\"zzdrv output\" icon-name=\"gtk-disconnect\" resizable=\"true\">
 <vbox>
 <frame Functions:>
  <text wrap=\"true\" width-chars=\"40\"><label>$(gettext 'OPEN zzdrv output')</label></text>
  </frame>
  
     <frame  Current Converting:>
 <text>
 <label>$PATHPROG01</label>
 </text>
     
  ${ICONSETSGUI8}
  
    <text>
      <label>-1-</label>
     </text>
    </frame>

  <hbox>
  
<button><input file stock=\"gtk-quit\"></input><label>$(gettext 'QUIT')</label></button>
  
   
  </hbox>
 </vbox>

</window>"

gtkdialog --program=MAIN_DIALOG --center


else




echo "not run"

xmessage -title "Something wrong" -buttons Ok:0,Cancel:1 -default Ok -nearmouse "Recording didn't start!" -timeout 5 


fi








fi
fi














fdrv-converter.sh
o0.gif
o0.gif (31.65 KiB) Megtekintve 58 alkalommal

Kód: Egész kijelölése

#!/bin/bash

 export LANG=C
 export LC_NUMERIC=C
 
 export OUTPUT_CHARSET=UTF-8
 
 
fuxni=""
wrner=""
wrner="gtkdialog"
erner=""
erner="dir2xsfs"
terner=""
terner=""



if [[ ! -f "/usr/sbin/dir2xsfs" ]];then 

cat << 'EOF' > /usr/sbin/dir2xsfs && chmod +x /usr/sbin/dir2xsfs
#!/bin/bash

. /etc/DISTRO_SPECS

t=`echo "$1" | sed "s/\/$//"`
z=`echo "$1" | sed "s/\/$//"`

if [ ! -d "$t" ];then

  echo "error: no valid folder specified!"
  exit 0

fi

### if no _versionnummer in the end, get it from system
check=`echo $t | sed "s/\(.*\)_[0-9][0-9][0-9]$/\1/"`

#echo --- $check

if [ "$check" == "$t" ];then

  v=$DISTRO_VERSION
  z="${check}_$v"

fi
#echo $t - $z


if [ -f "$z.sfs" ];then

  echo "$z.sfs already exists, refusing to overwrite it!"
  exit 0

fi

urxvt -g 80x6 -e mksquashfs "$t" "$z.sfs" -comp xz -Xbcj x86 -b 512K
md5sum "$z.sfs" > "$z.sfs-md5.txt"
sync


echo
echo
s=`du -m "$z.sfs" | sed "s/\s.*//"`
echo "created: $z.sfs ( $s MB )"
echo "created: $z.sfs-md5.txt"
echo
echo "...byebye..."
echo


EOF


else
echo "exists"

fi


for i in echo gtkdialog grep sed $wrner $erner date uname;do
if [ -z "$(which $i)" ];then
puci=$(echo $i)
fi
done


if [[ "$puci" == *"$wrner"* || "$puci" == *"$erner"* ]];then
fuxni="WARNING: no $wrner AND $erner"


if [ -t 0 ];then
echo "missing commands: $puci and $duci    $fuxni"
else
xmessage "missing commands: $puci and $duci     $fuxni"
fi

else




novik=$(date +'%Y_%m_%d-%H-%M-%S')

export CURD="/tmp/unki"


 
 export MAIN_DIALOG="
 <window title=\"$(gettext 'fdrv converter v1.0')\" icon-name=\"folder-remote\" resizable=\"true\">
    <vbox>
    <frame firmware or fdrv sfs file>
     <entry>
      <variable>PATHPROG01</variable>
     </entry>
          <button>
       <label>Search</label>
   <input file stock=\"gtk-open\"></input>
   <action>fileselect:PATHPROG01</action>
   </button>
     </frame>
     <frame Filename to save>
     <hbox homogeneous=\"true\">
     <entry space-expand=\"false\" space-fill=\"false\" fs-title=\"Choose a directory:\" fs-action=\"folder\">
    <default>$CURD</default>
    <variable>DIReR</variable>
   </entry>
   <button>
   <label>Search</label>
   <input file stock=\"gtk-open\"></input>
   <action>fileselect:DIReR</action>
   </button>
   </hbox>
     </frame>
     <radiobutton active=\"true\">
      <label>to usrmerged</label>
      <variable>HTVP1</variable>
    </radiobutton>
    <radiobutton>
      <label>to non-usrmerged or semi</label>
      <variable>HTVP3</variable>
    </radiobutton>
     <hbox homogeneous=\"true\">
      <button></button>
      <togglebutton><input file stock=\"gtk-quit\"></input><label>$(gettext 'Quit')</label><input>exit 1</input><action>exit:abort</action><default>true</default><variable>pagg</variable></togglebutton>
     </hbox>
    </vbox>
    </window>
   "
 RETSTRING="`gtkdialog --program=MAIN_DIALOG --center`"
 eval "$RETSTRING"

if [[ "$pagg" = true ]]; then

echo "nothing"

else

exit 1

fi

if [[ ! -d "$DIReR" ]];then
mkdir -p "$DIReR"

else
echo "dir ok"
fi

if [[ -d "$DIReR/ffdrv" ]];then
rm -rf "$DIReR"/*
else
echo "DELETED, OK"
fi

if [ ! "$PATHPROG01" ] || [ "$PATHPROG01" = "0" ] || [ ! "$DIReR" ] || [ "$DIReR" = "0" ]; then 


xmessage -title "Something wrong" -buttons Ok:0,Cancel:1 -default Ok -nearmouse "No value given" -timeout 5 

else 


if [[ ! -f "$PATHPROG01" ]];then
cp -pan "$PATHPROG01" "$DIReR" && unsquashfs -d "$DIReR"/ffdrv "$PATHPROG01" && touch "$DIReR"/ff.txt
else
unsquashfs -d "$DIReR"/ffdrv "$PATHPROG01" && touch "$DIReR"/ff.txt

fi


if [[ -f "$DIReR/ff.txt" ]] && [[ "$(ls -l $DIReR/ffdrv | grep -o "lib" | tr "\n" " ")" == "" ]];then

source=""
source="merged"

echo "$source" > "$DIReR"/ff.txt
elif [[ -f "$DIReR/ff.txt" ]] && [[ "$(ls -l $DIReR/ffdrv | grep -o "lib" | tr "\n" " ")" == "lib " ]];then

source=""
source="classic"
echo "$source" > "$DIReR"/ff.txt
else
echo "FAIL"
xmessage -title "ERROR" "Failed to determine source!
exiting....
" &


exit 1
fi


if [[ "$HTVP1" == true ]] && [[ "$(cat "$DIReR"/ff.txt)" == "merged" ]];then


xmessage -title "ERROR" "output structure will be same as input
$(cat "$DIReR"/ff.txt)
exiting....
" &



exit 1


elif [[ "$HTVP3" == true ]] && [[ "$(cat "$DIReR"/ff.txt)" == "classic" ]];then
xmessage -title "ERROR" "output structure will be same as input
$(cat "$DIReR"/ff.txt)
exiting....
" &



exit 1

else


if [[ "$HTVP1" == true ]] && [[ "$(cat "$DIReR"/ff.txt)" != "merged" ]];then



if [[ "$(cat "$DIReR"/ff.txt)" == "classic" ]];then
mkdir -p "$DIReR"/ffdrv/usr && mv "$DIReR"/ffdrv/lib "$DIReR"/ffdrv/usr/ && dir2xsfs "$DIReR"/ffdrv && defaultfilemanager "$DIReR" &

else
xmessage -title "ERROR" "Can not create output sfs!
Source different or not recognized of the 2 options.
exiting....
" &



exit 1
fi


elif [[ "$HTVP3" == true ]] && [[ "$(cat "$DIReR"/ff.txt)" != "classic" ]];then
if [[ "$(cat "$DIReR"/ff.txt)" == "merged" ]];then
mv "$DIReR"/ffdrv/usr/lib "$DIReR"/ffdrv/ && rm -rf "$DIReR"/ffdrv/usr && dir2xsfs "$DIReR"/ffdrv && defaultfilemanager "$DIReR" &

else

xmessage -title "ERROR" "Can not create output sfs!
Source different or not recognized of the 2 options.
exiting.... 
" &

exit 1
fi

fi



fi


export loadrunner=$!
export $DIReR


sleep 1

if ps -p $loadrunner > /dev/null
then
ICONSETSGUI8=""

ICONSETSGUI8="$ICONSETSGUI8

<vbox>
<hbox>
<button>
<label>Delete output</label>
<action>rm -rf \"$DIReR\"/* &</action>
</button>
<button>
<label>open output</label>
<action>defaultfilemanager \"$DIReR\" &</action>
</button>

</hbox>

<frame Process>
      <text>
       <label>nothing</label>
       <input>ps -p $loadrunner</input>
       <variable>nocsakdokk</variable>
     </text>
<timer milliseconds=\"true\" interval=\"3000\" visible=\"false\">
     
     <action>refresh:nocsakdokk</action>
     
     </timer>
</frame>
</vbox>

"


export MAIN_DIALOG="
<window title=\"ffdrv output\" icon-name=\"gtk-disconnect\" resizable=\"true\">
 <vbox>
 <frame Functions:>
  <text wrap=\"true\" width-chars=\"40\"><label>$(gettext 'OPEN ffdrv output')</label></text>
  </frame>
  
     <frame  Current Converting:>
 <text>
 <label>$PATHPROG01</label>
 </text>
     
  ${ICONSETSGUI8}
  
    <text>
      <label>-1-</label>
     </text>
    </frame>

  <hbox>
  
<button><input file stock=\"gtk-quit\"></input><label>$(gettext 'QUIT')</label></button>
  
   
  </hbox>
 </vbox>

</window>"

gtkdialog --program=MAIN_DIALOG --center


else
echo "not run"

xmessage -title "Something wrong" -buttons Ok:0,Cancel:1 -default Ok -nearmouse "Recording didn't start!" -timeout 5 


fi

fi
fi


sh.png
sh.png (11.38 KiB) Megtekintve 55 alkalommal

Válasz küldése

Vissza: “Programozás, alkalmazásfejlesztés”