Installing RACHEL on Raspbian with Pixel and newer

I saw this mentioned and I’d like to know what the known issues with installing RACHEL of Raspbian with pixel and newer versions are.

Hi there,

I had some trouble with this Rachel setup script did not work with the new raspbian stretch image. they re-did a few packages and the installer can’t find them.

I was able however to take the existing Rachel-PI Image and update to the latest version of jessie. I had to delete quite a few modules to give me the space I needed for it though.

1 Like

Thanks for the response. I tried to update the 64GB Rachel-Pi image but wlan0 is now a hotspot so that won’t work for updating, and eth0 is probably configured the same because I can’t get online with it now to update. How were you able to update?

I spent some time on the installer script at the git and have got it running on stretch but there are a few issues to work out. The content shell and admin interface on the git are outdated compared to the latest rachel-pi image. There’s no shutdown option in the web interface for instance. A new image should be made imho.

1 Like

We’re working on it, thought the Git is well advanced beyond the old pi image. Also, the eth0 will work for updating.

Ah okay I assumed it was outdated because the web shutdown option is missing on the main page and the admin login/password are admin/Rachel+1 which I read was the old one. This is running on stretch with php7.0 so maybe the password defaulted back. I rely on that web shutdown option a lot. Is it something that will be integrated into the admin page? The admin interface is definitely more advanced with the modules/hard/version/install etc tabs.

You could write a quick script and use a momentary switch button that would give you a nice shut down option to the pi. I use that for mine.

I have 10 of the new Pi3+ to take to Zambia for our schools in June. Does anyone know if there will be a solution by then or should I revert to buying Pi3?

I would revert to Pi3 for a June deployment. The new OS will require quite a bit of updating if it is similar to past changes. It will likely break lots of our software and content and require some time to put back together. We will also go through an update of content at that time. It takes longer than just a quick update on our end.

It has been a while but I will go through it again and write out some instructions on what I did to get Rachel running on the latest Raspbian as soon as possible.

1 Like

Thanks, I would very much appreciate that.

I’m curious to know if this is still happening and when is it projected to be completed? I have a rachelpi brick, that i got back from a teacher that i need to restore the bootability of it.

Sorry for the delay. I am working on it and I think I will have it all ready in the next few days. I just have to fix ethernet issues and a few other bugs with the installation and it will be ready to go. Basically everything seems to be working in terms of serving rachel, but it breaks the internet connection of the pi after installing which makes it harder to install modules and update it. When it is fully working I will update the following instructions.Keep in mind this is buggy right now and ethernet won’t work after install.

This is not required, but one step that can greatly improve the performance is to boot from a USB drive instead of a MicroSD which is now available in Raspbian Stretch. This is the guide for that.. You can also do it with a Raspberry Pi 2 or Raspberry Pi 0 W which makes a big difference. I’ll explain how if you’re interested.

You can install this to Raspbian Stretch with Desktop or Raspbian Stretch Lite. I prefer to start from lite as it doesn’t include unnecessary packages.

Setting Up Raspbian Stretch Lite

  1. Install Raspbian Stretch Lite onto a MicroSD or a USB drive if you enabled booting from USB. You can get it here.. I use Etcher to flash it. Then plug it into your pi.
  2. Connect it to the internet ( ethernet is the easiest ).
  • The following is done by the install script, so not required, but it might be best to do it beforehand.
  1. Run the command “sudo apt-get update -y”
  2. Run the command “sudo apt-get upgrade -y”
  3. Run the command “sudo reboot” and wait for it to reboot
  • If you want to work from a desktop environment past this point,
    Run the command "sudo apt-get install -y raspberrypi-ui-mods rpi-chromium-mods"
    and then “sudo reboot” and wait for it to reboot.
  1. Run the command “sudo apt-get dist-upgrade -y”
  2. Run the command “sudo rpi-update -y”
  3. Run the command “sudo reboot” and wait for it to reboot

Rachel Preperation and installation

  • It’s probably easiest to set this up on another system and then transfer the folder ot the pi.
  1. Download rachelpi from the rachel github and extract it. If you’re working from stretch lite with desktop, install xarchiver with “sudo apt-get install xarchiver” as this is not included in lite.
  2. Save the stretch install script here to the same folder you extracted master.zip to and name it installer_stretch.py.or something that stands out.
  3. If you’re not working from the pi, copy the folder onto your pi.
  4. In a terminal, navigate to the folder ( Example “cd /home/pi/Desktop/rachelpiOS-master” )
  5. run sudo ./installer_stretch.py and let it run.

Known things to look out for during installation and commands I’ll need to fix

  • If the Ka-lite installation asks you if you have your own local content to install, hit y or yes. This will avoid downloading ka-lite.
  • Infinite y loop. Not sure why this happens. You will see it continually showing y. If this happens hit ctrl + c to break the installation and then run sudo ./installer_stretch.py again. It should not happen twice.
  • “Unable to restart apache service.” If the installation stops with this error, run the installation again.
  • If any of these don’t work, try rebooting and running it again

Installing Modules

As with other rachel installations, the modules are stored in /var/www/modules. By default this installation method won’t have any modules included. I am not sure if the admin interface works to install modules yet as the internet is broken after install. You can get modules from http://oer2go.org/ and place them in that folder manually. You don’t have permission by default to move things to /var/www/modules, so you will have to use a terminal with an mv command. For example “sudo mv /home/pi/Desktop/en-scratch /var/www/modules” and it should work.

If you want to copy modules out of the 64gb or 32gb rachel images, the best way I have found to do this is using 7zip on windows.

  1. Run 7zip file manager as administrator by right clicking it
  2. Extract the image from rachelpi_64EN_4.0.img.zip.
  3. Double click on rachelpi_64EN_4.0.img and extract 1.img from it
  4. Double click 1.img and navigate to /var/www/modules and you can drag them out.

I have tested ka-lite-ess, wikipedia for schools, and some other modules with no issues yet.

installing stem.so

This might not even be required. I haven’t had issues without it. The installation command for the stem.so php extension gives an error with the old installer when it tries to compile it. This is due to a few bad lines in the file stem.c. There are two options to replace this.One is to extract it from the 64gb or 32gb rachel images and transfer it over. The other is to do afresh compile from the latest source. Keep in mind this is untested as I haven’t even seen where stem.so is used or had any problems, so I guess the third option is to ignore it.

Copy from the 64gb or 32gb Rachel

  1. Follow the same process as before using 7zip to open 1.img.
  2. Navigate to /usr/lib/php5/20131226 and extract stem.so to a new folder
  3. Copy this file to your pi’s /usr/lib/php/20151012 folder

To build the latest stem.so instead.

  • Make sure you do this on your pi before running the installer ( so you have internet ) and so it targets the arm architecture.
  1. Download the package https://pecl.php.net/package/stem/1.5.1 to your pi and extract it.
  2. Open stem.c in a text editor or using sudo nano stem.c. If using Raspbian Stretch Lite with desktop, install LeafPad with “sudo apt-get install leafpad” which is a simple text editor.
  3. Navigate to line 222 and change RETURN_STRINGL(incoming, arglen,1); to RETURN_STRINGL(incoming, arglen);
  4. Navigate to line 339 and change RETVAL_STRINGL(z->p, z->l,1); to RETVAL_STRINGL(z->p, z->l);
  5. Save. If using nano do ctrl + x, y, ctrl+c.
  6. Install php7.0-dev using “sudo apt-get install php7.0-dev”
  7. Open a terminal and navigate to your stem-1.5.1 folder which contains the source
  8. Run command “phpize”.
  9. Run command “./configure”
  10. Run command “sudo make”
  11. Run command “sudo make install”
  12. It should be done. You can navigate to /usr/lib/php/20151012/ and look for stem.so to make sure it built.

I understand this is a complicated process right now. I’ll try and put something simple together. It would be much easier to just have a base stretch lite image ready to go once everything is fixed. I’ll update when I fix the ethernet and other issues. If you try this and have any problems let me know and I’ll try to help.

1 Like

I’ve got it running with a few bugs. I responded to the other user just now. It’s a work in progress but I should have the bugs worked out over the next few days. If you try that method I posted and have any issues let me know. I’ll respond again when I update with fixes so you get a notification.

Thank you so much for your hard work. I am waiting at Heathrow at the moment for a flight to Lusaka. I will be back in the UK in 3 to 4 weeks when I will give this a go.
Again thank you so much
Kind Regards
Howard

No problem. I should have a proper script ready if a new rachel image isn’t out by that time. Have a good trip.
James

This is fantastic, thanks @jamesk – we won’t have an image before you finish scripts, but we can use your work to make the image! Very excited!

Thanks. Glad to help! I’ll be sure to update as soon as it’s ready.

1 Like

Here’s a bit of a technical update to the progress. New script and instructions at the end so you can skip there. Be warned this is still not working properly.

cp(“files/default”, “/etc/apache2/sites-available/contentshell.conf”) was not working, but it was also not failing, so the default site was not being installed. The issue seems to be with the renaming of default to contentshell.conf during the cp command. A workaround is to just rename files/default to contentshell.conf. I’ll look into this later as it does work for now.

The infinite y loop was due to sudo("printf ‘\nyes\nyes\nno\n’ | sudo kalite manage setup … etc in the kalite install process. This is tricky because the kalite setup runs many other scripts which expect different input. I have tried to fix this using pexpect, but it’s still a work in progress. For now you just have to input no when it asks if you want to start the server. The other bug with this is that at the end of the installation after it says successfully installed rachel it will give an unknown command error. Same issue as before with it looping, but a little better now. This is a slow one to fix as getting the input right I have to do a fresh install of Raspbian every time to be sure.

The internet was not working after installation due to the interfaces file being copied over. The interfaces setup is completely changed in Stretch and is going to require a big rework.

The Rachel admin interface isn’t connecting for update or module installation even when the internet is technically working ( no interfaces file copy ). This is likely due to the needed changes to interfaces.

I am trying to get this install running with as few options as possible for now and then add to it once they work. I still have to check the updated php files and other things.

Preperation

  1. Download Raspbian Stretch Lite at this link.
  2. Download rachelpiOS at this link.
  3. Download stem.so from this link. ( I couldn’t find a license or anything so if this is against the rules I will remove it. Source is from this site. )
  4. Extract rachelpiOS-master.zip to a new folder. I’ll use “rachel” as an example.
  5. Delete the installer.py in the rachel folder.
  6. Download installer.py from this link. and place it in the rachel folder where the old one was.
  7. In the files folder, rename the “default” file to “contentshell.conf”
  8. Copy stem.so to the files folder
  9. Copy the rachel folder to a USB flash drive. I suggest making the flash drive’s name something recognizable. Like “Rachel”.

Install Raspbian Lite

  1. Flash Raspbian Lite to a MicroSD or if you have enabled booting from USB flash it to that drive. I use Etcher.
  2. Connect it to the internet via ethernet cable.
  3. Boot into Raspabian lite.
  4. When prompted the username is “pi” and the password is “raspberry”.
  5. Run command “sudo apt-get update -y”
  6. Run command “sudo apt-get upgrade -y”
  7. If the USB flash drive you use is using the EXFAT format, we’ll need to add support. Run the command “sudo apt-get install exfat-fuse -y”.
  8. Shut down with “shutdown” command.
  • You can optionally do other upgrades, like “apt-get dist-upgrade -y” and “sudo rpi-update” I didn’t since rachel is not fully working yet.

Install Rachel

  • If you are booting into Raspabian with a USB drive instead of a MicroSD, the pi has an issue with multiple flash drives connected at boot. It will not know which drive to boot from and simply doesn’t boot sometimes. Since we’re copying Rachel from a flash drive, leave the Rachel drive unplugged until you see the Rainbow square, then plug it in.
  1. Boot up the pi with your flash drive connected ( check the above tip if booting from USB ).
  2. Run command “sudo mkdir /media/usb”. This will create a folder as a mount point for the drive.
  3. Run command “sudo chown -R pi:pi /media/usb”. This will take ownership of that folder.
  4. Run command “blkid”. this will give you a list of available drives. What we need is the path to the drive, it could be “/dev/sda1” or “/dev/sdb1”. For me this switched a few times and if you get it wrong, we will mount the wrong drive. So look for your drive named “Rachel” and get the path.
  5. Hit ctrl + c a few times as blkid can cause issues.
  6. Run command “sudo mount /dev/sdb1 /media/usb -o uid=pi,gid=pi”. Where /dev/sdb1 is the path your drive is at. This will mount the drive to /media/usb. If it says it didn’t mount cleanly that’s fine.
  7. Run command “cd /media/usb” and then “ls” to see if the rachel files and installer.py are there and the drive was mounted.
  8. Run command “cd rachel” where rachel is the folder you create with all of the files in it.
  9. Run command “./installer.py”
  10. Watch the installation. When ka-lite asks if you want to start the service, type “no” and hit enter.
  11. Run command “sudo reboot”
  12. autologin isn’t enabled so at boot you will have to type “pi” for login and the new password which is “rachel”. If you want to enable autologin run “sudo raspi-config”, Select Boot Options, Desktop/CLI, choose Console Autologin, then reboot.

That should be it. There will be a bash error at the end after it says it successfully installed. Unfortunately if something else goes wrong, right now the kalite autoresponses will be different after a failed installation, so you might need to restart the process. The admin interface does work. Connecting for updates and installing modules do not.The login is “admin” and the password is “Rachel+1”. As before, the modules issue is the same but you should be able to rsync some in now.

James

1 Like