how to autoshutdown after closing a program (vice emulator)

Have some feedback, questions, suggestions, or just fancy a chat? Pop it in here.
pilizard

how to autoshutdown after closing a program (vice emulator)

Post by pilizard »

Hello!
I'm trying to get a commodore 64 emulator to autostart when I plug in my pi using dietpi, and then autoshutdown when I exit the emulation.

What I have done so far-
Installed dietpi and updated.
Used the retropie installation script to install the vice emulator (only) from source.
succeeded in making dietpi autologin.
succeeded in starting x64, the vice c64 emulator.

I did the autologin by slightly altering the /etc/inittab file and autostarting the emulator by slightly altering the /etc/rclocal file.

The changes to my /etc/inittab:

#1:2345:respawn:/sbin/getty --noclear 38400 tty1
1:2345:respawn:/bin/login -f root tty1 </dev/tty1 >/dev/tty1 2>&1

The changes to my /etc/rclocal

#/DietPi/dietpi/dietpi-services start
#/DietPi/dietpi/dietpi-banner 0
#echo -e " Default Login:\n Username = root\n Password = dietpi\n"
#exit 0
/opt/retropie/emulators/vice/bin/x64

Never done anything like this before and am learning as I go. So I don't know if I did this the best way or not, but this has succeeded in my being able to plug the pi in, and not touching it again until it is in emulation.

Now I would like to autoshutdown when the emulator is exited. I think maybe this can be simply done by slightly altering anther file because when I exit the emulator it wants me to log in and the little messages that pop up normally before log in (identifying the root and dietpi password and the options below that in the little list), reappear. But I haven't found the file that has the lines that do it (the lines I added a # to in the rclocal file to comment them out - I believe these must reappear in another file since I see the same bit again when I exit the emulator).

But maybe a script of some sort would be the way to go? Not having done any of this before, I am uncertain?

Help?

I do have additional goals for this after the autoshutdown on emulation exit and if anyone can offer help with these goals as well it would be much appreciated. These are:

text silent boot and shutdown- all text replaced by splash screens or animation during startup and shutdown.

I need to figure out how to go in and change the config files of the emulator so it points to directories where disk images are stored for the games and maybe map some buttons to my logitech joystick a bit differently- would be nice to have one button do a reset on the emulator and another swap joystick ports and get rid of the thumbstick button that keeps bringing up the menu every time I get excited in a game and press down on the joystick accidentally. LOL

Anyway- any interest or help would be appreciated. If I can figure out the autoshutdown and get some splash screens going then maybe a image of the microsd card could be made available and c64 fans could have a nice little c64 machine for cheap. And then I could apply the stuff to an image for an amiga emulator and then have a nice little amiga machine for cheap.

I don't see where anyone has done this yet and it seems such an obvious and fun thing to do to end up with a c64 and amiga that can simply be plugged in and the OS is hidden under the emulator the whole time. I would think these would be very popular microsd images.
User avatar
Fourdee
Site Admin
Posts: 2782
Joined: Tue Feb 06, 2007 1:36 pm

Re: how to autoshutdown after closing a program (vice emulat

Post by Fourdee »

pilizard wrote:Hello!
I'm trying to get a commodore 64 emulator to autostart when I plug in my pi using dietpi, and then autoshutdown when I exit the emulation.

The changes to my /etc/rclocal

#/DietPi/dietpi/dietpi-services start
#/DietPi/dietpi/dietpi-banner 0
#echo -e " Default Login:\n Username = root\n Password = dietpi\n"
#exit 0
/opt/retropie/emulators/vice/bin/x64
Sounds fun!

/etc/rc.local runs last during boot. however, before login. So you wont be able to achieve what you want there. Also, dont disable any DietPi stuff, or you'll encounter issues.
Lets put /etc/rc.local back to normal:

Code: Select all

cat << _EOF_ > /etc/rc.local
#!/bin/sh -e
/DietPi/dietpi/dietpi-services start
/DietPi/dietpi/dietpi-banner 0
echo " Default Login:\n Username = root\n Password = dietpi\n"
exit 0
_EOF_
1st you'll need to enable autologin login.
As your running Jessie, lets create a systemd service that enable autologin on tty1:

Code: Select all

mkdir -p /etc/systemd/system/getty@tty1.service.d &> /dev/null
cat << _EOF_ > /etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
ExecStart=-/sbin/agetty --autologin root %I
_EOF_
Now to add the code that runs the emulator and shutdown on exit.
The file you need to modify is /root/.bashrc. This gets launched after the user logs in.

Code: Select all

nano /root/.bashrc
After /DietPi/dietpi/login (at the end), add the following:

Code: Select all

/opt/retropie/emulators/vice/bin/x64
poweroff
Reboot and test :)

When /opt/retropie/emulators/vice/bin/x64 is run, the script will wait until it exits. Then the poweroff command will be run.
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal or become a DietPi patron.
pilizard

Re: how to autoshutdown after closing a program (vice emulat

Post by pilizard »

OK I'm now getting a message
[TIME] Timed out waiting for device dev-sda1.device.
[DEPEND] Dependency failed for /mnt/usb_1.

and then the system hangs and becomes unresponsive.
pilizard

Re: how to autoshutdown after closing a program (vice emulat

Post by pilizard »

Ok so for kicks I tried a fresh install of dietpi on another card.
After setup I keep getting a repeating message on bootup:

cfg80211: Calling CRDA to update world regulatory domain

until I get :

cfg80211: exceeded CRDA call max attempts. Not calling CRDA

I think this is related to the problem in the previous post- might be my wireless? which is working fine when I log in- I can apt-update for example no problem, install git, etc.
User avatar
Fourdee
Site Admin
Posts: 2782
Joined: Tue Feb 06, 2007 1:36 pm

Re: how to autoshutdown after closing a program (vice emulat

Post by Fourdee »

pilizard wrote:Ok so for kicks I tried a fresh install of dietpi on another card.
After setup I keep getting a repeating message on bootup:

cfg80211: Calling CRDA to update world regulatory domain

until I get :

cfg80211: exceeded CRDA call max attempts. Not calling CRDA

I think this is related to the problem in the previous post- might be my wireless? which is working fine when I log in- I can apt-update for example no problem, install git, etc.
This was fixed for v100. Once DietPi runs the update and reboots, the issue should disappear.

If the issue re-occurs after v100. Try running the following:

Code: Select all

/DietPi/dietpi/dietpi-apt-get_update 2
apt-get install iw crda --no-install-recommends -y
If that doesnt fix it, you may need to manually enter your country code in /etc/default/crda http://dietpi.com/phpbb/viewtopic.php?f=9&t=151#p568.
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal or become a DietPi patron.
User avatar
Fourdee
Site Admin
Posts: 2782
Joined: Tue Feb 06, 2007 1:36 pm

Re: how to autoshutdown after closing a program (vice emulat

Post by Fourdee »

pilizard wrote:OK I'm now getting a message
[TIME] Timed out waiting for device dev-sda1.device.
[DEPEND] Dependency failed for /mnt/usb_1.

and then the system hangs and becomes unresponsive.
Did you have a USB drive attached during this boot? Could be power related.
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal or become a DietPi patron.
pilizard

Re: how to autoshutdown after closing a program (vice emulat

Post by pilizard »

Ok, so both were already updated to v 100

The only usb I have plugged in are a tiny wireless keyboard dongle, a joystick and a wireless wifi usb for internet. I unplugged the joystick and got the same results. The reason I feel the problem with the timout and the wifi are related is because earlier in the boot I got the message:

A start job is running for dev-sda1.device: Calling CRDA to update world regulatory domain

on a single line several times- or close to that, it flashes by faster than my slow typing so I've left off some numbers here.

So the dev-sda1.device is related to the problem and my hunch is that this is my usb wifi.

Update-

/DietPi/dietpi/dietpi-apt-get_update 2
apt-get install iw crda --no-install-recommends -y

appears to have fixed the hanging problem and the calling crda problem. I downloaded the latest image I could find on sourceforge and noticed it was not v100- maybe an available updated image would prevent the problem?

Autologin doesn't appear to be working but I haven't had time to go back and check that I made the file correctly, so later I'll try running those commands again and give another update.
pilizard

Re: how to autoshutdown after closing a program (vice emulat

Post by pilizard »

Ok, so after redoing everything I am back to:

[TIME] Timed out waiting for device dev-sda1.device.
[DEPEND] Dependency failed for /mnt/usb_1.

and then the system hangs and becomes unresponsive.

Interestingly, if I do not have the file for autologin, this does not happen- the system now starts and login is normal...

wierd...
pilizard

Re: how to autoshutdown after closing a program (vice emulat

Post by pilizard »

One more update, just in case it helps- I unplugged all usb devices including keyboard and rebooted and go the same message as above.

Also I tried manually entering the crda as US with same result.

REGDOMAIN=US

if I remove the autoboot file, and boot and login normally, I type crda and get
COUNTRY environment variable not set.

even though I have edited the /etc/default/crda file as above.

Sounds like my problem is the same problem as on another thread.

Wondering why it is necessary to call the crda on boot? (Just curiosity- I'm a noob at this stuff).

Thank you
User avatar
Fourdee
Site Admin
Posts: 2782
Joined: Tue Feb 06, 2007 1:36 pm

Re: how to autoshutdown after closing a program (vice emulat

Post by Fourdee »

pilizard wrote:Wondering why it is necessary to call the crda on boot? (Just curiosity- I'm a noob at this stuff).

Thank you
Yep, cdra is a mandatory program that sets your Wifi region during boot. Basically, its against the "law" to use some channels in some countries (eg: UK channel 14 is not allowed).

/etc/default/crda seems to do nothing as you and Gordon mentioned. I'am looking into this at the moment.

As for the /dev/sda1, you can safely ignore it. This is because SystemD doesn't like duplicate fstab entries. DietPi tries to mount /dev/sda1 as ext4, then ntfs. If it bugs you that much, you can disable the /dev/sda1 mount in /etc/fstab.

Regarding the autologin. Try running dietpi-config > AutoBoot options and select Kodi. You'll receive an error during boot as Kodi wont be available, however, this will allow your system to auto login.
If this doesnt work, you will need to roll back any system settings you have applied in regards to autologin, then try again.
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal or become a DietPi patron.
Post Reply