Exercises 4: The Raspberry Pi
Goal:
The Raspberry Pi in contrast to the PC uses and ARM processor and peripherals are not included in the system but are connected externally through dedicated connectors. In addition to the Display, keyboard and mouse external devices can be connected through GPIO (General Purpose I/O) pins and through buses (I2C, SPI etc). The Raspberry Pi we use has no hard disk but a 32 GByte micro SD card replacing it. Just like the PC it runs a Linux operating system. This system however is an ARM variant as compared to the PC system which uses Intel processors.
These exercises are supposed to show you similarities and differences between the two systems.
Exercise 1: Linux on the Raspberry Pi
First try to access your Raspberry Pi through the secure shell:
ssh cscgrp1@rpi-xx where xx is the number of your PC. The password is the same as the one on the PC.
Try to start emacs on the Pi. Does it work? Does it look the same as on the PC?
Then exit the secure shell with the
exit command and re-try ssh with the -XC options. Re-do what you did before. Did emacs change?
Poke through the Linux file system on the Raspberry Pi and try to find differences to the PC. Run the commands you tried on the PC during the very first lab session.
Finally exit ssh again and start the remote desktop client Remmina. There is this button on the task-bar.
A connection should be predefined for you. Of course your connection will be named corresponding to the Pi you are connection to.
Double click on the connection and with a little bit of luck you should be connected to the desktop of your Pi.
Exercise 2: Compile for ARM
Create a file system structure for the exercises similar to the one on the PC with ~/exercises, problems, solutions, doc etc. in them, also on the Raspberry Pi. Copy the C programs from the codeExamples written for the PC over to the Pi using the
scp command. In which directory do you place them?
Use the Raspberry Pi gcc compiler to compile these C files and try to run them on the Pi. I expect that you have written Makefile for each of the C programs you have written so far. If you did not, then this is your last chance to do so! Do your programs run the same way as on the PC?
Cross compile the programs you wrote in the exercise on C programming on the PC to run them on the Raspberry Pi, which uses the ARM processor. The cross compiler is named
arm-linux-gnueabihf-gcc. With the
file command find out for which machine the program has been compiled. Does the cross compiled program run on the PC and why? Does it run on the Pi? Can you write a Makefile which uses the cross compiler instead of the native compiler?
Copy the cross compiled programs to the Raspberry Pi using scp and try to run them there.
At the end of the exercises session all programs you had on the PC should be available and running on the Pi.
--
Uli Raich - 2017-08-13
Comments