Apt and mount commands not found Verdin IMX8M plus

Hello, I was trying to implement scripts to shutdown a Verdin iMX8M Plus from a container. I installed the wait_for_shutdown_service and was trying to write to the shutdown_signal file and somehow I’ve lost mount and apt commands. When I reboot the container still starts and I can access an exfat flash from the container but I can’t access it when I log in from teraterm and I’m logged in as torizon. I tried to run mount and realized I don’t have mount and then I realized I also don’t have apt. I’ve tried rebooting and completely powering down. Do you have a suggestion for how to get them back? Do I need to reinstall the OS?

hey @hmaquet,

I think I understand the what’s going on and can provide clarity.

The apt and mount.exfat-fuse are Debian based packages/tools. You can access these while inside the container because the container is Debian based with the packages installed. So if you need to use these commands, you’ll need to make sure its on a Debian based container. Here is our supporting documents on it: Debian Containers for Torizon

When you SSH into the module (teraterm/torizon), your on Torizon OS that doesn’t natively support these packages(Debian). So reinstalling the OS won’t achieve this. They are not there or install-able.


If the goal is to access the flash from the container and permanently save/access information outside of the container. You will need to add the flash drive device to the container and create a volume for it via docker. This can be done either in the docker-compose file or on the command line when you docker run you can add --device and -v flags.

Something like.
docker run --device /dev/mmcblkp1 -v /media:/media"

–device flag: This will expose the device to the container.

–v flag: This will create a volume and link path.

From this: inside the container you can mount the device drive to the media path.

-Eric

I can access the flash from the container but what I’m trying to do is shutdown /reboot the unit from the container. I was trying to use the scripts from here Shutting down the the Apalis SoM from inside a docker container - #4 by Juzujka so I wanted to access the flash from the Torizon OS - because I need to copy the wait_for_shutdown.service file to /etc/systemd/system. I think.

Can you post the output from lsblk command while SSH into the device? This should produce a list with the device drive and its corresponding mount-point. You should be able to use the mount command rather than the debian mount.exfat-fuse driver.

-Eric

I see, exfat is a file system by Microsoft, so we will have to implement driver that can accommodate.
There are a few ways of doing this.

There is a kernel config CONFIG_EXFAT_FS that is not enabled by default and available in the kernel source but not implemented. I can put in a request to update our kernel with this config enabled. As long as this doesn’t effect TorizonCore 5.7.0 this can be added and will also take some time. I will check on this.

If you are building with yocto, you can find the required recipes layers to add into the build. I found fuse-exfat 1.3.0 recipe files @ openembedded.org Here is a link: fuse-exfat This would require some yocto knowledge to implement into your build process.

If you are building with TorizonCore Builder, you can look to add kernel module:

Guide for Kernel Module

-Eric

Hey @hmaquet,

Are you still having issues with this? Knowing how you build your system will help isolate what type of solution will work. There is also an alternative that i did not mention, which would be to use a flash drive with a filesystem that is already recognized such as FAT32. I initially assumed this would not be an option.

-Eric

I was able to copy the script files with samba to my home directory and then using teraterm copy the service file to \etc\systemd\system but even if I changed the owner and permissions for the sh file- I can’t shutdown without putting the password in the file. That’s a different problem though,

Thanks,
hana

~WRD3381.jpg