[SOLVED] .pnd Problem


Joined
Dec 1, 2006
Messages
948
Location
Scotland
Website
Visit site
I followed capjustes .pnd creation guide in the Pandora wiki but can't get my .pnd to work. It shows on the desktop with the correct icon but doesn't run.

Here is the call to make the .pnd
Code:
./pnd_make.sh -p PoolPanic.pnd -d pxml/ -x pxml/PXML.xml -i pxml/poolpanic.png -c

Here is my run.sh script
Code:
set $HOME=.; ./pool_new

Here is my PXML.xml file
Code:
<?xml version="1.0" encoding="UTF-8"?>
<PXML xmlns="http://openpandora.org/namespaces/PXML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PXML_schema.xsd">
  <application id="PandoraPoolPanic.jimmcleod">
    <title lang="en_US">Pandora Pool Panic</title>
    <exec command="run.sh"/>
    <description lang="en_US">Freeware pool game by Jim McLeod</description>
    <previewpics>
      <pic src="preview.png"/>
    </previewpics>
    <icon src="poolpanic.png"/>
    <author name="Jim McLeod"/>
    <version major="0" minor="1" release="1" build="1"/><!--This programs version-->
    <categories>
      <category name="Game"><!--category like "Games", "Graphics", "Internet" etc-->
	<subcategory name="Sports"/><!--subcategory, like "Board Games", "Strategy", "First Person Shooters"-->
      </category>
    </categories>
  </application>
</PXML>

My dir structure is this
[pxml]
[graphics][sounds] pool_new poolpanic.png preview.png (pool_new is the game binary and runs from the terminal)

The .pnd gets created but when double clicked the SD card activity light flashes but the .pnd never starts.

I tried copying the [graphics] and [sounds] dirs to the appdata folder (as suggested by Lobo in another thread) but with the same result.

Anyone point me in the right direction?
 
1. You have the PND in /pandora/menu or /pandora/desktop on the SD Card?
2. Check that the scripts and the executable has the +x flag set.
3. Check the output of /tmp/pndrun* to see why your PND fails :)
 
In a terminal, you might want to start the exec command of this file :
$HOME/Desktop/PandoraPoolPanic.jimmcleod.desktop
If this don't give you the answer, there always the logfile in /tmp/pndrun*


By the way, you have your sub-category wrong. Please see : (but this not the reason it don't work :( )
http://standards.freedesktop.org/menu-spec/latest/apa.html
 
@EvilDragon - I think I've done all of that.

sebt3 said:
In a terminal, you might want to start the exec command of this file :
$HOME/Desktop/PandoraPoolPanic.jimmcleod.desktop

Sorry. I don´t understand. Do you mean add that line to pxml.xml exec parameter? I'm a Linux noob.

Here is the output of temp/pndrun
Code:
in fork!
PND ++ /media/mmcblk0p1/pandora/desktop//PoolPanic.pnd
mountpoint: /media/mmcblk0p1
Basename: PandoraPoolPanic.jimmcleod
mkdir -p /mnt/pnd/PandoraPoolPanic.jimmcleod
/mnt/utmp/PandoraPoolPanic.jimmcleod
/usr/pandora/scripts/pnd_run.sh: line 124: [: !: integer expression expected
not mounted on loop yet, doing so
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
LoopMountedon: 
losetup: Could not find any loop device. Maybe this kernel does not know
       about the loop device? (If so, recompile or `modprobe loop'.)

usedminor
freeminor 1
Filetype is Squashfs
sudo mount -t squashfs  /dev/loop1
mounting union!
Filesystem is vfat
/usr/pandora/scripts/pnd_run.sh: line 200: ./$HOME/Desktop/PandoraPoolPanic.jimmcleod.desktop/./run.sh: No such file or directory
app exited
rmdir: failed to remove `/mnt/utmp/PandoraPoolPanic.jimmcleod': Device or resource busy
rm: cannot remove `/mnt/utmp/PandoraPoolPanic.jimmcleod': Is a directory
rmdir: failed to remove `/media/mmcblk0p1/pandora/appdata/PandoraPoolPanic.jimmcleod/.wh..wh.plnk': No such file or directory
rmdir: failed to remove `/media/mmcblk0p1/pandora/appdata/PandoraPoolPanic.jimmcleod/.wh..wh..tmp': No such file or directory
rmdir: failed to remove `/media/mmcblk0p1/pandora/appdata/PandoraPoolPanic.jimmcleod/': Directory not empty
cleanup done
 
Last edited by a moderator:
Make sure you have your run.sh script in the "pandora/appdata/PandoraPoolPanic.jimmcleod" directory too (as well as the actual "pool_new" executable.


I have gotten your pool game to run like I said (basically copying everything from the zip to the "pandora/appdata/PandoraPoolPanic.jimmcleod" directory). If you want, I'll double check when I get home to see if I changed something else and forgot to mention it.
 
Lobo said:
Make sure you have your run.sh script in the "pandora/appdata/PandoraPoolPanic.jimmcleod" directory too (as well as the actual "pool_new" executable.


I have gotten your pool game to run like I said (basically copying everything from the zip to the "pandora/appdata/PandoraPoolPanic.jimmcleod" directory). If you want, I'll double check when I get home to see if I changed something else and forgot to mention it.

Thanks Lobo (and ED and sebt3).

I'll try this later. :)
 
Last edited by a moderator:
Well, the pndrun-Output didn't help much because of:
Code:
/usr/pandora/scripts/pnd_run.sh: line 200: ./$HOME/Desktop/PandoraPoolPanic.jimmcleod.desktop/./run.sh: No such file or directory

Sounds like you tried to run it from commandline in a wrong way somehow.

Please put the PND into /pandora/menu on the SD Card and run it using MiniMenu or XFCE (it should appear in the menu there).
THEN post the output of the pndrun* :)
 
Sorry ED. That output was from me trying to follow sebt3 instructions not knowing what I was doing.

Here is the output from pndrun*
in fork!
PND ++ /media/mmcblk0p1/pandora/menu//PoolPanic.pnd
mountpoint: /media/mmcblk0p1
Basename: PandoraPoolPanic.jimmcleod
mkdir -p /mnt/pnd/PandoraPoolPanic.jimmcleod
/mnt/utmp/PandoraPoolPanic.jimmcleod
/usr/pandora/scripts/pnd_run.sh: line 124: [: !: integer expression expected
not mounted on loop yet, doing so
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
LoopMountedon:
losetup: Could not find any loop device. Maybe this kernel does not know
about the loop device? (If so, recompile or `modprobe loop'.)

usedminor
freeminor 1
Filetype is Squashfs
sudo mount -t squashfs /dev/loop1
mounting union!
Filesystem is vfat
./run.sh: line 1:
: command not found
./run.sh: line 2: /home/jim/Desktop/PandoraPoolPanic.jimmcleod.desktop./pool_new
: No such file or directory
app exited
rmdir: failed to remove `/mnt/utmp/PandoraPoolPanic.jimmcleod': Device or resource busy
rm: cannot remove `/mnt/utmp/PandoraPoolPanic.jimmcleod': Is a directory
rmdir: failed to remove `/media/mmcblk0p1/pandora/appdata/PandoraPoolPanic.jimmcleod/.wh..wh.plnk': No such file or directory
rmdir: failed to remove `/media/mmcblk0p1/pandora/appdata/PandoraPoolPanic.jimmcleod/.wh..wh..tmp': No such file or directory
rmdir: failed to remove `/media/mmcblk0p1/pandora/appdata/PandoraPoolPanic.jimmcleod/': Directory not empty
cleanup done

here is my pmxl file (I think this is where I'm going wrong) as the .pnd shows up, with correct icon, on both desktop and menu.
<?xml version="1.0" encoding="UTF-8"?>
<PXML xmlns="http://openpandora.org/namespaces/PXML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PXML_schema.xsd">
<application id="PandoraPoolPanic.jimmcleod">
<title lang="en_US">Pandora Pool Panic</title>
<exec command="run.sh"/>
<description lang="en_US">Freeware pool game by Jim McLeod</description>
<previewpics>
<pic src="preview.png"/>
</previewpics>
<icon src="poolpanic.png"/>
<author name="Jim McLeod"/>
<version major="0" minor="1" release="1" build="1"/><!--This programs version-->
<categories>
<category name="Games"><!--category like "Games", "Graphics", "Internet" etc-->
<subcategory name="Sports Games"/><!--subcategory, like "Board Games", "Strategy", "First Person Shooters"-->
</category>
</categories>
</application>
</PXML>

and this is the command I'm using to create the .pnd
./pnd_make.sh -p PoolPanic.pnd -d pxml/ -x pxml/PXML.xml -i pxml/poolpanic.png -c

@Lobo - I tried adding the run.sh file (along with the [sounds] and [graphics] folds) to appdata - still no joy :(
 
OK, now I have my pandora in front of me. Here's what I did:

1. unzip your normal linux build(the zip with all the dirs and files, not the .pnd version) to pandora/menu/pool/
2. edit pxml file and change the line <exec command="run.sh"/> to be <exec command="./run.sh"/> (note: I'm not sure if this is really necessary or not)
3. copy all the contents of pandora/menu/pool/ to pandora/appdata/PandoraPoolPanic.jimmcleod. Don't copy the actual directory "pool", just everything that's inside it.
4. run your app from pandora menu->Other->pandora pool panic



P.S.
Also, I'm sure you're aware of this but remember that Linux is case sensitive, so make sure your don't have a capital letter in one directory or file name and in another it's small case.
 
The PXML looks fine, otherwise it wouldn't show up and try to run your run.sh

What puzzles me is that line:

Code:
./run.sh: line 2: /home/jim/Desktop/PandoraPoolPanic.jimmcleod.desktop./pool_new

Why the heck is it trying to run pool_new from your Desktop??

There's something really wrong.

Please try the run-script like this:

Code:
#!/bin/sh
HOME="./"; export HOME
./pool_new
 
I'm doing something fundamentally wrong. I've tried everything - and that's probably the problem.. doing stuff I don't fully understand..

Here's the binary with the data. It works from the terminal using ./pool_new

Could someone please make a .pnd from this and explain it to me? </last ditch attempt>

pool.zip
 
Unfathomable Depths said:
I'm doing something fundamentally wrong. I've tried everything - and that's probably the problem.. doing stuff I don't fully understand..

Here's the binary with the data. It works from the terminal using ./pool_new

Could someone please make a .pnd from this and explain it to me? </last ditch attempt>

pool.zip
It run and then segfault :(

here is your files.
The tgz file is exactly the same thing I packaged in the pnd
PM me at will to get more advise about packaging.



(Edit as per request from Unfathomable Depths)
'The problem was caused by using incorrect filenames'
 
Last edited by a moderator:
Back
Top