Tiny Core Linux
Tiny Core Extensions => TCE Q&A Forum => Topic started by: ormris on August 07, 2015, 03:06:29 PM
-
Hi Everyone,
I used the instructions in the Tiny Core Book to create an extension. Since I already had a build tree, I only needed this command.
$ mksquashfs app.tcz /tmp/buildroot/
This tcz file was copied to my tiny core VM, but I was unable to install it.
$ tce-load -i fapp.tcz
mount: mounting /dev/loop47 on /tmp/tcloop/app failed: Invalid argument
I'm using the lastest Tiny Core Plus image. Is there something I'm missing here?
-
You should not be including the while build tree.
You should be constructing the usr/local tree structure for your app in a work directory, and squashing that.
Also your problem description has inconsistent naming for the application.
You use app in some lines, and fapp in another.
-
Hi. Thanks for the reply.
The my buildroot contains only the files that are installed.
The fapp was a mistype in this forum post. I didn't actually type that in the command line.
Is there anything else I need to do, other than building the install tree and squashing it?
Thanks!
Matthew
-
Did you copy the tcz to /etc/sysconfig/tcedir/optional ?
-
Yes. I attempted to use the GUI application installer first.
Thanks!
Matthew
-
So it is working now?
-
Sadly, not. I had the same problem.
Matthew
-
Does the /tmp/tcloop/app already exist?
If it does, you will need to reboot and try again.
Also, make sure you have not loaded util-linux
This will make sure the wrong version of mount is not being run.
-
OK. The directory exists, so I'm rebooting now.
Matthew
-
Unfortunately, same result after reboot.
Matthew
EDIT: I don't have util-linux loaded.
-
Show the output of 'unsquashfs -l /etc/sysconfig/tcedir/optionall/app.tcz'
-
I got this.
squashfs-root
squashfs-root/etc
squashfs-root/etc/app
squashfs-root/etc/app/config
squashfs-root/etc/app/licence
squashfs-root/etc/app/licence/bin
squashfs-root/etc/app/license
squashfs-root/etc/app/ports
squashfs-root/etc/pam.d
squashfs-root/etc/pam.d/app
squashfs-root/etc/xinetd.d
squashfs-root/etc/xinetd.d/app
squashfs-root/usr
squashfs-root/usr/bin
squashfs-root/usr/bin/app
squashfs-root/usr/bin/app_delta
squashfs-root/usr/bin/app_merge
squashfs-root/usr/bin/app_sig
squashfs-root/usr/bin/appc
squashfs-root/usr/bin/appd
squashfs-root/usr/bin/appp
squashfs-root/usr/bin/lmutil
squashfs-root/usr/lib
squashfs-root/usr/lib/python2.6
squashfs-root/usr/lib/python2.6/site-packages
squashfs-root/usr/share
squashfs-root/usr/share/doc
squashfs-root/usr/share/doc/app
squashfs-root/usr/share/doc/app/iptables.sample
squashfs-root/usr/share/doc/app/services.sample
squashfs-root/usr/share/app
squashfs-root/usr/share/man
squashfs-root/usr/share/man/man1
squashfs-root/usr/share/man/man1/app.1.gz
squashfs-root/var
squashfs-root/var/log
squashfs-root/var/log/app
squashfs-root/var/run
squashfs-root/var/run/app
squashfs-root/var/run/app/check_points
Thanks,
Matthew
-
You did NOT follow Core guidelines.
You should not be installing anything in /etc/ , /usr/lib , /usr/share , or /usr/bin.
These locations are reserved for the OS.
All packages should load everything under /usr/local/.
-
OK. I'll rebuild with a /usr/local tree.
Thanks!
Matthew
-
Here is the new build tree. Unfortunately, this produces the same error as before.
squashfs-root/local
squashfs-root/local/bin
squashfs-root/local/bin/app
squashfs-root/local/bin/app_delta
squashfs-root/local/bin/app_merge
squashfs-root/local/bin/app_sig
squashfs-root/local/bin/appc
squashfs-root/local/bin/appd
squashfs-root/local/bin/appp
squashfs-root/local/bin/lmutil
squashfs-root/local/etc
squashfs-root/local/etc/app
squashfs-root/local/etc/app/config
squashfs-root/local/etc/app/licence
squashfs-root/local/etc/app/licence/bin
squashfs-root/local/etc/app/license
squashfs-root/local/etc/app/ports
squashfs-root/local/etc/pam.d
squashfs-root/local/etc/pam.d/app
squashfs-root/local/etc/xinetd.d
squashfs-root/local/etc/xinetd.d/app
squashfs-root/local/lib
squashfs-root/local/lib/python2.6
squashfs-root/local/lib/python2.6/site-packages
squashfs-root/local/share
squashfs-root/local/share/doc
squashfs-root/local/share/doc/app
squashfs-root/local/share/doc/app/iptables.sample
squashfs-root/local/share/doc/app/services.sample
squashfs-root/local/share/app
squashfs-root/local/share/man
squashfs-root/local/share/man/man1
squashfs-root/local/share/man/man1/app.1.gz
Thanks,
Matthew
-
You should get squashfs-root/usr/local/bin/app - /usr is missing
So basically you'd have:
/tmp/pkg/usr/local/bin/app
/tmp/pkg/usr/local/bin/app_delta
...
Then: $ cd /tmp
$ sudo mksquashfs pkg/ app.tcz
-
dmesg may contain more info on why the mount failed. Also, if you used mksquashfs from another OS, the blocksize needs to be given as 4k.
-
/usr/local, not /local.
Apparently, you have not read and understood the wiki articles on creating extensions.
I have no idea what you have loaded or done to make tce-load fail with a mount error.
-
Also do not see version and architecture info.