Difference between revisions of "RPi Beginners"

From eLinux.org
Jump to: navigation, search
m (Further reading)
(Page tidied, links checked and corrected, obsolete info removed or updated)
 
(142 intermediate revisions by 52 users not shown)
Line 1: Line 1:
[[Category: Linux]]
+
[[Category:RaspberryPi]]
[[Category:ARM Development Boards]]
+
{{Template:RPi_Startup}}
[[Category: Broadcom]]
 
[[Category:Development Boards]]
 
[[Category: RaspberryPi]]
 
[[Category: Education]]
 
Back to the [[R-Pi Hub]]
 
  
 +
=Where to start?=
 +
Any easy question to ask, but a very difficult one to answer!
 +
# If you are looking for any information related to SD Cards and setup look [[RPi Easy SD Card Setup | here]].
 +
# If you need to get a Raspberry Pi then see the [[RPi Buying Guide|Buying Guide]].
 +
# If you need to know what equipment you will need and how to set it up, see the [[RPi Hardware Basic Setup|Basic Hardware Setup]] page.
 +
# If you need to install/setup an SD card see the [[RPi Easy SD Card Setup|Preload your Card]] section.
 +
# If something is not working, check the [[R-Pi_Troubleshooting|Troubleshooting]] section.
 +
# If you have imaged a SD card with the Raspbian image and started your RPi here's some help with what you need first - the raspi-config menu [[RPi_raspi-config]].
 +
# If you don't have a composite monitor or HDMI then it may be worth you looking at [[RPi_A_Method_for_ssh_blind_login|Blind Login Method]].
 +
# VNC connection for remote access [[RPi_Wheezy_VNC|VNC for remote access]]; a GUI when using the Blind Login.
 +
# If you've done all that, and you are wondering what next... '''welcome and read on!'''
  
''''' If you are looking for a fast step-for-step approach to get started, have look at [[RPi Hardware Basic Setup]].'''''
+
If you don't have a Raspberry Pi yet, you can still try things out, see [http://sourceforge.net/projects/rpiqemuwindows/ Windows RPi Emulator] for details.
  
 +
=What is Linux and why not use Windows?=
 +
Linux is an operating system just like Microsoft Windows, however, unlike Windows (which has a minimum hardware requirement to run i.e. if it does not fit, get different hardware), Linux comes in many varieties and configurations which means you can usually find a flavour (or Distribution) which fits your hardware big or small / fast or slow.
  
This is the "community" beginners guide for [http://www.raspberrypi.org Raspberry Pi's] [http://www.arm.com/ ARM] based ultra-low-cost (~15GBP or 25USD) Linux computer for teaching computer programming to children. If something doesn't work or isn't covered in these guides, please feel free to ask on the [http://www.raspberrypi.org/?page_id=43 Forum]. But ''before'' you ask there, make sure you read the '''[http://www.raspberrypi.org/?page_id=8 FAQs]'''.
+
The Raspberry Pi is not suited to running Microsoft Windows due to its hardware, but there are plenty of Linux Distributions which do fit nicely. In addition to this, most Distributions of Linux are free, however Microsoft Windows can cost many times the price of the Raspberry Pi itself.
  
'''Please note that the Raspberry Pi isn't released yet - this page is a community work in progress in preparation for the launch.'''
+
Chances are you already have Linux running in your home without you even knowing it, since it is commonly used in Kindle ebook readers, Android smartphones, modern TVs, Freeview and cable boxes to run things.
  
This page is based on [[BeagleBoardBeginners]] and lots of this material applies to BeagleBoard and not to Raspberry Pi. Specifically, most Raspberry Pi users do not have access to a serial port (it's on the GPIOs but you need a board or cable to convert 3.3V UART signals to RS-232 or USB) so the serial port information doesn't usually apply.  Also, many Raspberry Pi users will buy pre-programmed SD cards so they do not need to go through the process of partitioning and loading the SD card.  We expect that once Raspberry Pi boards become generally available helpful volunteers will update this page to match Raspberry Pi, or if there is better information available elsewhere helpful volunteers will provide pointers to that information.
+
For more information about Linux see the
 +
[http://en.wikipedia.org/wiki/Linux Wikipedia] page.
  
So I got this little board, what do I do now?
+
Also see [[Will_RPi_Run|Running XXX on the RPi]]
  
=Finding hardware and setting up=
+
=Basic Raspbian Setup=
''Main article: see [[RPi Hardware Basic Setup]]''
+
When you first turn on your Raspberry Pi with it's fresh Raspbian image on the SD card, you will likely want to tweak the system settings. There's a tool called [[RPi_raspi-config|raspi-config]] which makes everything super-easy to set up. This automatically launches when you first boot Raspbian up (depending on the version and configuration).
  
You'll need a preloaded SD card (or [http://elinux.org/RaspberryPiBoardBeginners#SD_card_setup make your own]), USB keyboard, TV/Monitor (with HDMI/DVI/Composite/SCART input), and power supply (USB charger or a USB port from a powered USB Hub or another computer).
+
If you want to access the setup screen again, just type:
  
You'll likely also want a USB mouse, a case, and a USB Hub (a necessity for Model A). A powered USB Hub will reduce the demand on the RPi. To connect to the Internet, you'll need either an Ethernet/LAN cable (Model B) or a USB WiFi adaptor (either model).
+
  sudo raspi-config
  
When setting up, it is advisable to connect the power after everything else is ready. ''See [[RPi_Hardware_Basic_Setup#Connecting_Together]].''
+
in the terminal (LXTerminal in the desktop UI).
  
=Serial connection=
+
=Intro to the CLI (Command Line Interface)=
The Serial Port is a simple and uncomplicated method to connect to the Raspberry Pi.
+
You will need to use the Command Line Interface at some point in your management of the RPi. The command line interface is a powerful way to interact with the Raspberry Pi and is well worth learning some basic commands to get started with.
The communication depends on byte wise data transmission, is easy to setup and is generally available even before boot time.
 
  
==First interaction with the board==
+
For an introductory guide to some basic commands please see: [[CLI_Spells_for_the_Raspberry_Pi|Command Line Interface "Must Have" Commands]]. For general Linux commands, try this site for [http://linuxcommand.org "learning the shell"]
  
Connect the serial cable to the COM port in the Raspberry Pi, and connect the other end to the COM port or USB Serial Adapter in the computer.
+
Your SD card may boot into a GUI, if not and you are done with the text interface and want to use a graphical one instead, run:
  
'''How''' please? I'm led to believe it's wired at the board end, so needs an accessible 9?? pin male|female 232 connector, then some sort of serial to usb dongle. Any more information on this please?
+
    startx
  
Next is this the preferred way to get low level access to the board, or using the usb for kbd and hdmi for screen?
+
=Remote Access=
 +
Your default install probably has a ssh (secure shell) "daemon" running.
 +
This means that you can run everything on your RPi with only the network attached. Provided you know which IP address it has. With appropriate software installed on your Windows, Mac or Linux PC, you can also run a terminal, GUI or other program remotely.
  
==Serial Parameters==
+
More details about remote access (including remote GUI are at [[RPi Remote Access]].
The following parameters are needed to connect to the Raspberry. All parameters except '''Port_Name''' and '''Speed''' are default values and may not need to be set.
 
* '''Port_Name''': Linux automatically assigns different names for different types of serial connectors. Choose your option:
 
** Standard Serial Port: ttyS0 ... ttySn
 
** USB Serial Port Adapter: ttyUSB0 ... ttyUSBn
 
* '''Speed''': 115200
 
* Bits: 8
 
* Parity: None
 
* Stop Bits: 1
 
* Flow Control: None
 
  
The Serial Port is generally usable by the users in the group '''dialout'''. To add oneself to the group '''dialout''' the the following command needs to be executed with '''root''' privileges:
+
=Installing and updating software to your Raspberry Pi=
  $useradd -G {dialout} your_name
+
You will probably want to add software to your Raspberry Pi, as well as keep the current packages up to date. With Raspbian this is performed using apt-get. The most common commands can be found in the [[RPi_Install_software|adding software page]]. It is good practice to regularly ensure you run the update and upgrade commands detailed in the [[RPi_Install_software|guide]] to ensure you have the most up to date software packages.
  
===Super Easy Way Using GNU Screen===
+
The apt-get package for Raspbian will also keep the GPU firmware updated to the latest stable release. If you'd like to try the bleeding edge releases you can read more on the [[RPi_Software#GPU_bootloaders|RPi Software]].
  
Enter the command below into a terminal window
+
=Adding USB Storage to Your Raspberry Pi=
  screen Port_Name 115200
+
Sooner or later, you're going to run out of room on the SD card used to boot up your Raspberry Pi.  For a tutorial on how to connect USB flash drives and hard drives to your Pi to expand storage, see: [[RPi_Adding_USB_Drives|Adding USB Drives to a Raspberry Pi]].
  
===Super Easy Way Using Minicom===
+
=Beginner Projects=
 +
Here are a few things you can try out with your Raspberry Pi, in most cases all you'll need is your SD Card loaded with a particular preconfigured OS Distribution.
  
Run minicom with the following parameters:
+
It will be worth getting a few spare SD Cards if you think you will switch between setups regularly or become familiar with how to '''back up and restore''' your card.
  
minicom -b 115200 -o -D Port_Name
+
==Backup your SD card==
 +
For Windows users the 'Raw HDD Copy Tool' from HDD Guru works well to backup and restore your SD card between projects.
 +
This can backup and restore the entire card sector by sector to/from an img file, and doesn't care which file system is on the card.
  
===Tedious Old-Fashioned Way Using Minicom===
+
[http://hddguru.com/software/HDD-Raw-Copy-Tool/ Raw HDD Copy Tool]
  
Another method to setup ''minicom'' is described in the [http://www.tincantools.com/wiki/Minicom Tincantools Minicom Tutorial]
+
Linux and Mac OS(X) users can use the [http://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html dd] tool that comes with most versions of Linux (including Raspbian) to save the contents of an SD card as an image file. Warning: be sure to use this tool carefully as accidentally choosing your hard drive as the output will destroy all data on it.
  
===GUI method with GtkTerm===
+
Mac OSX users can use [http://sourceforge.net/projects/picloner/ PiCloner]. The PiCloner app is easy to use and will help you detect your SD card, back it up to an img file and is able to compress the img using GZIP to decrease backup size. PiCloner is Free Open Source Software (FOSS) released under a BSD License so it's '''Free''' as in; '''Free Beer'''!
Start ''GtkTerm'', select Configuration->Port and enter the values above in the labeled fields.
 
===Windows Users===
 
Windows Users above Windows XP must download [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html putty] or a comparable terminal program.
 
Users of XP and below can choose between using ''putty'' and ''Hyperterminal.
 
''
 
==First Dialog==
 
If you get the prompt below, you are connected to the Raspberry Pi shell!
 
  prompt> #
 
  
First command you might want try is "help":
+
==Media Player==
  prompt> # help
+
With this configuration you will typically have the Raspberry Pi connected to a TV or large monitor and a source of videos/music/photos etc you wish to play (i.e. Internet/hard-drive/local network etc).
  
If you get some output, you are correctly connected to the Raspberry Pi! Congratulations!
+
DesignSpark have written an article on this, which is worth a look, [http://www.designspark.com/blog/raspberry-pi-goes-to-the-movies DesignSpark - Raspberry Pi goes to the movies]
  
=SD card setup=
+
You can download an installer from www.raspbmc.com which will install to your desktop (IOS, Windows, Linux) and write the latest install to your SD card. You then boot your Pi with the card and go through the config steps. 
  
Now we want to use an SD card to install some GNU/Linux distro in it and get more space for our stuff. You can use either an SD or SDHC card. In the latter case of course take care that your PC card reader also supports SDHC.
+
There is a brief video basic tutorial here: http://www.instructables.com/id/RaspberryPi-Media-center-XMBC/
Be aware that you are not dealing with an x86 processor, but instead a completely different architecture called ARM, so don't forget to install the ARM port for the distro you are planning to use.
 
  
(to be completed)
+
==Play Games==
 +
There are plenty of ways to play games on the Raspberry Pi. Check the [[RPi Games]] page.
  
== Formatting the SD card via the mkcard.txt script ==
+
Many distributions will have games built into them, and some may well support emulation of other platforms so you can run those games.
'''(to be completed)'''
 
  
# Download '''mkcard.txt''' from ???.
+
A lot of Raspberry Pi users will be writing simple games which will be available for others to enjoy (and if desired added to or modified).
# <code>$ chmod +x mkcard.txt</code>
 
# <code>$ ./mkcard.txt /dev/sd</code>''x'', Where ''x'' is the letter of the card.  You can find this by inserting your card and then running <code> dmesg | tail</code>.  You should see the messages about the device being mounted in the log.  Mine mounts as '''sdc'''.
 
  
Once run, your card should be formatted.
+
==Introducing Young Children To Computers==
 +
Several resources exist for introducing children to computers using the Raspberry Pi. Check the [https://www.raspberrypi.org Raspberry Pi Foundation's website].
  
== Formatting the SD card via fdisk "Expert mode" ==
+
==Teaching==
 +
There is a huge number of groups, links and resources available within the [[RPi Education|Education]] section, and the [https://www.raspberrypi.org Raspberry Pi Foundation's website].
  
First, lets clear the partition table:
+
==Learn To Program==
 +
There is a huge selection of [[RPi Programming|programming languages]] which you can use to write interesting programs, games, applications and utilities.  There are also more great links within the [[RPi Education#Programming languages|Education]] section.
  
================================================================================
+
If you are new to programming, there are plenty of tutorials for getting started in the [[RPi Tutorials|Tutorials]] Section.
$ sudo fdisk /dev/sdb
 
 
   
 
   
Command (m for help): o
+
Books about programming can be found in the [[RPi Programming Books|Books]] Section.
Building a new DOS disklabel. Changes will remain in memory only,
 
until you decide to write them. After that, of course, the previous
 
content won't be recoverable.
 
 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
 
================================================================================
 
 
 
Print card info:
 
 
 
================================================================================
 
Command (m for help): p
 
 
Disk /dev/sdb: 128 MB, 128450560 bytes
 
....
 
================================================================================
 
 
 
Note card size in bytes. Needed later below.
 
 
 
Then go into "Expert mode":
 
 
 
================================================================================
 
Command (m for help): x
 
================================================================================
 
 
 
Now we want to set the geometry to 255 heads, 63 sectors and calculate the number of cylinders required for the particular SD/MMC card:
 
 
 
================================================================================
 
Expert command (m for help): h
 
Number of heads (1-256, default 4): 255
 
 
Expert command (m for help): s
 
Number of sectors (1-63, default 62): 63
 
Warning: setting sector offset for DOS compatiblity
 
================================================================================
 
 
 
NOTE: Be especially careful in the next step. First calculate the number of cylinders as follows:
 
 
 
* B = Card size in bytes (you got it before, in the second step when you printed the info out)
 
* C = Number of cylinders
 
 
 
C=B/255/63/512
 
 
 
When you get the number, you round it DOWN. Thus, if you got 108.8 you'll be using 108 cylinders.
 
 
 
================================================================================
 
Expert command (m for help): c
 
Number of cylinders (1-1048576, default 1011): 15
 
================================================================================
 
 
 
In this case 128MB card is used (reported as 128450560 bytes by fdisk above), thus 128450560 / 255 / 63 / 512 = 15.6 rounded down to 15 cylinders. Numbers there are 255 heads, 63 sectors, 512 bytes per sector.
 
 
 
So far so good, now we want to create two partitions. One for the boot image, one for our distro.
 
 
 
Create the FAT32 partition for booting and transferring files from Windows. Mark it as bootable.
 
 
 
================================================================================
 
Expert command (m for help): r
 
Command (m for help): n
 
Command action
 
  e  extended
 
  p  primary partition (1-4)
 
p
 
Partition number (1-4): 1
 
First cylinder (1-245, default 1): (press Enter)
 
Using default value 1
 
Last cylinder or +size or +sizeM or +sizeK (1-245, default 245): +50
 
 
Command (m for help): t
 
Selected partition 1
 
Hex code (type L to list codes): c
 
Changed system type of partition 1 to c (W95 FAT32 (LBA))
 
 
Command (m for help): a
 
Partition number (1-4): 1
 
================================================================================
 
 
 
Create the Linux partition for the root file system.
 
 
 
================================================================================
 
Command (m for help): n
 
Command action
 
  e  extended
 
  p  primary partition (1-4)
 
p
 
Partition number (1-4): 2
 
First cylinder (52-245, default 52): (press Enter)
 
Using default value 52
 
Last cylinder or +size or +sizeM or +sizeK (52-245, default 245):(press Enter)
 
Using default value 245
 
================================================================================
 
 
 
Print and save the new partition records.
 
 
 
================================================================================
 
Command (m for help): p
 
 
Disk /dev/sdc: 2021 MB, 2021654528 bytes
 
255 heads, 63 sectors/track, 245 cylinders
 
Units = cylinders of 16065 * 512 = 8225280 bytes
 
 
  Device Boot      Start        End      Blocks  Id  System
 
/dev/sdc1  *          1          51      409626    c  W95 FAT32 (LBA)
 
/dev/sdc2              52        245    1558305  83  Linux
 
 
Command (m for help): w
 
The partition table has been altered!
 
 
Calling ioctl() to re-read partition table.
 
 
WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot.
 
 
WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information.
 
Syncing disks.
 
================================================================================
 
 
 
Now we've got both partitions, next step is formatting them.
 
 
 
''NOTE'': If the partitions (/dev/sdc1 and /dev/sdc2) does not exist, you should unplug the card and plug it back in. Linux will now be able to detect the new partitions. 
 
 
 
================================================================================
 
$ sudo mkfs.msdos -F 32 /dev/sdc1 -n LABEL
 
mkfs.msdos 2.11 (12 Mar 2005)
 
 
$ sudo mkfs.ext3 /dev/sdc2
 
mke2fs 1.40-WIP (14-Nov-2006)
 
Filesystem label=
 
OS type: Linux
 
Block size=4096 (log=2)
 
Fragment size=4096 (log=2)
 
195072 inodes, 389576 blocks
 
19478 blocks (5.00%) reserved for the super user
 
First data block=0
 
Maximum filesystem blocks=402653184
 
12 block groups
 
32768 blocks per group, 32768 fragments per group
 
16256 inodes per group
 
Superblock backups stored on blocks:
 
        32768, 98304, 163840, 229376, 294912
 
 
Writing inode tables: done                           
 
Creating journal (8192 blocks): done
 
Writing superblocks and filesystem accounting information:
 
================================================================================
 
 
 
All done!
 
 
 
''NOTE'':  For convenience, you can add the <tt>-L</tt> option to the <tt>mkfs.ext3</tt> command to assign a volume label to the new ext3 filesystem.  If you do that, the new (automatic) mount point under <tt>/media</tt> when you insert that SD card into some Linux hosts will be based on that label.  If there's no label, the new mount point will most likely be a long hex string, so assigning a label makes manual mounting on the host more convenient.
 
 
 
=Writing the image into the SDcard and finally booting GNU/Linux=
 
 
 
The easiest way to do this is to use [http://www.raspberrypi.org/forum/projects-and-collaboration-general/picard-gui-sd-preparation-tool PiCard]. It even saves you from some hassles explained above. You will need your SD card + reader and a Linux pc to use PiCard.
 
After that , just plug the card into the Raspberry.
 
 
 
== Setting up the boot args ==
 
 
 
 
 
== Wire up your Raspberry Pi and power it up ==
 
 
 
''See [[RPi_Hardware_Basic_Setup#Connecting_Together]].''
 
 
 
=SD Card Cloning/Backup=
 
Note: Update these instructions if required once they've been tried
 
From windows you can copy the full SD-Card by using [https://wiki.ubuntu.com/Win32DiskImager Win32DiskImager] (thanks to Bradburts & Gert [http://www.raspberrypi.org/forum/general-discussion/backing-up-sd-card from the forum]).
 
 
 
Alternatively, you can use the following instructions as provided by Gert [http://www.raspberrypi.org/forum/general-discussion/backing-up-sd-card from the forum]):
 
 
 
Note:
 
Many built-in SD card readers do not work, so if you have problems
 
use an external SD-USB adapter for this.
 
 
 
==Required Software Setup==
 
* download a windows utility dd.exe from http://www.chrysocome.net/dd
 
* rename it windd.exe
 
(This excutable can to write to your harddisk so exercise caution using it!)
 
* make a copy named dd-removable.exe
 
(That excutable refuses to write to your harddisk as it is named dd-removable
 
As long as you use dd-removable.exe you can not lose your harddisk)
 
* Connect an SD card to the computer
 
* run "dd-removable –list"
 
 
 
Should give something like this:
 
rawwrite dd for windows version 0.6beta3.
 
Written by John Newbigin <jn@it.swin.edu.au>
 
This program is covered by terms of the GPL Version 2.
 
 
NT Block Device Objects
 
\\?\Device\Harddisk1\Partition0
 
link to \\?\Device\Harddisk1\DR8
 
Removable media other than floppy. Block size = 512
 
size is 4075290624 bytes
 
 
This "\\?\Device\Harddisk1\Partition0" is the part you need.
 
 
 
==Reading an image from the SD Card==
 
BEWARE: DO THIS WRONG AND YOU CAN LOSE YOUR HARDDISK!!!
 
 
 
Obviously, you can NOT use 'dd-removable' to read an image as that executable refuses to write to your harddisk (so extra care is required here as you use 'windd').
 
 
 
* To '''read''' an SD-card image from the SD-card use:
 
windd bs=1M if=\\?\Device\Harddisk1\Partition0 of=THE_IMAGE_READ –size
 
Your disk name ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 
 
 
 
==Copying an image to the SD Card==
 
 
BEWARE: DO THIS WRONG AND YOU CAN LOSE YOUR HARDDISK!!!
 
 
 
* To '''copy''' an image named "THEIMAGE" to the SD-card do this:
 
dd-removable bs=1M if=THEIMAGE of=\\?\Device\Harddisk1\Partition0
 
                    Your disk name ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 
 
= Software development/proving =
 
 
 
A supported platform for the Raspberry is Qt , which is already being worked on.
 
C/C++ is  supported through a gcc cross-compiling toolchain. (Which one ?)
 
 
 
Python is pushed forward by the foundation. (Status ??)
 
 
 
After compiling , using QEMU and a Linux VM would be one way of testing your apps. This also works on Windows.
 
Search the forum for the readymade ARM images.
 
 
 
The choice of programming languages, IDEs and other tools ON the R-Pi  is only determined by :
 
  
1) The operating system compatibility ( at the moment the specific Linux distro used)
+
In the latest Raspbian, Python and Scratch are pre-installed.
2) The status of the respective ARM  package repositories and their binary compatibility
 
  
3) The possibilty to build other software + its dependencies for the R-Pi from sources ( depends on C crosscompiler ???)
+
* [http://www.youtube.com/user/RaspberryPiBeginners Raspberry Pi Beginners] (videos).
 +
* [http://www.youtube.com/user/RaspberryPiTutorials Raspberry Pi YouTube Tutorials] (videos).
 +
* [http://www.youtube.com/playlist?list=PLgyU3jNA6VjS3ij6ZXbb2x4GdEP3bAWzO My First Raspberry Pi Game] (videos).
  
 +
==Interface With Hardware==
 +
See [[RPi Tutorial Easy GPIO Hardware & Software|Easy GPIO Hardware & Software]]
  
 +
==Word Processing/Internet Browsing etc==
 +
Yes, the Raspberry Pi can do the majority of the dull stuff too which other computers do.
  
 +
'''Raspbian''' currently comes with Midori installed for web browsing and LibreOffice for word processing and spreadsheet (office); other programs be installed rather easily.
  
What kind of software development and testing loop has been proven effective please,
+
*Entering "sudo apt-get install chromium-browser" into a terminal will install Chromium which is generally a faster and more featured browser than Midori
from someone who'se been there and done it?
+
*Entering "sudo apt-get install abiword-common" into a terminal will install AbiWord, a lighter weight but still fully functional word processor
 +
*Entering "sudo apt-get install gnumeric" into a terminal will install Gnumeric, a lighter weight but still fully functional spreadsheet
  
For me (and others hopefully) that would be very useful.
+
==Your Own Pet Project!==
 +
The sky is the limit really, with some time and effort any number of projects can be achieved.
  
=Further reading=
+
Even if you don't have the skill to do it yourself, you can join like minded people by getting involved with one of the numerous groups in the [[RPi Community|Community Section]], also within the [[RPi Education|Education]] pages or learn what you need in from the [[RPi Guides |Guides]] & [[RPi Tutorials |Tutorials]] sections.
  
The main Raspberry Pi resources are:
+
Of course, if you do anything interesting then please let us know in the [[RPi Projects |Projects]] section.
  
* Raspberry Pi Foundation-maintained [http://raspberrypi.org/ Raspberry Pi home]
+
=Living Without RPi=
* Raspberry Pi Foundation-maintained [http://raspberrypi.org/?page_id=43 Raspberry Pi Forum]
+
Even if you do not have any Raspberry Pi hardware there are a number things you can do to learn about Linux, programming or even controlling hardware.
* Community-maintained [[R-Pi_Hub|eLinux wiki]] (see [[:Category:RaspberryPi|wiki article overview]] for a list of existing articles)
 
  
 +
==Using Linux==
 +
You can install a version of Linux on most computers, and on many you will be able to "try out" Linux by using a "Live CD" - this will start your computer up running from a CD or DVD and run Linux (without installing anything to the computer itself).
  
An alternative startup guide for beginners can be found on h2g2: [http://h2g2.com/A13735596 Introducing the Raspberry Pi]
+
RacyPy - This is a simple LiveCD of Puppy Linux which includes some basic programming languages and a light-weight graphical user interface (GUI). You can get it from here: [http://teampython.wordpress.com/2012/03/03/while-you-wait-for-your-raspberry-pi-why-not-use-racypy2/ teampython RacyPy]
  
For more guides and projects involving the Raspberry Pi, see [[RPi Projects]].
+
==Trying Programming==
 +
Many of the programming languages you can use on the Raspberry Pi can be installed on a Windows or Mac machine.  Just visit the websites of the languages you are interested in and see if they have an installer for your operating system.
  
=Thanks to=
+
==Controlling Hardware==
 +
As discussed in the [[RPi Tutorial Easy GPIO Hardware & Software | Easy GPIO Hardware & Software]] tutorials, there are lots of alternative hardware you can use to experiment with (some as little as $5).
  
* Nabax, _vlad, jkridner, ds2 and the other [[BeagleBoard]] wiki contributors on elinux.org for an excellent [[BeagleBoardBeginners]] resource, which we used as the template for this page.
+
=About This Page=
 +
The intention of this page is to provide a '''starting point''' for beginners and to '''direct them to''' the kind of information a person would need in order to start doing something useful or interesting with a Raspberry Pi.
  
 +
It is not intended to contain or replicate much of the information already available on-line or elsewhere in the wiki, however new wiki pages can be linked here if there is information beginners will find useful.
  
 
{{Template:Raspberry Pi}}
 
{{Template:Raspberry Pi}}
 +
[[Category:RaspberryPi]]

Latest revision as of 16:50, 15 November 2015


RaspPi.png Back to the Hub


Getting Started:

Buying Guide - for advice on buying the Raspberry Pi.

SD Card Setup - for information on how to prepare the SD Card used to boot your Raspberry Pi.

Basic Setup - for help with buying / selecting other hardware and setting it up.

Beginners Guide - you are up and running, now what can you do?

Latest RPi 4 Topics - Recent topics on Raspberry Pi 4 and the Pi OS

Advanced Setup - for more extensive information on setting up.

Trouble Shooting - some things to check if things don't work as expected.

Where to start?

Any easy question to ask, but a very difficult one to answer!

  1. If you are looking for any information related to SD Cards and setup look here.
  2. If you need to get a Raspberry Pi then see the Buying Guide.
  3. If you need to know what equipment you will need and how to set it up, see the Basic Hardware Setup page.
  4. If you need to install/setup an SD card see the Preload your Card section.
  5. If something is not working, check the Troubleshooting section.
  6. If you have imaged a SD card with the Raspbian image and started your RPi here's some help with what you need first - the raspi-config menu RPi_raspi-config.
  7. If you don't have a composite monitor or HDMI then it may be worth you looking at Blind Login Method.
  8. VNC connection for remote access VNC for remote access; a GUI when using the Blind Login.
  9. If you've done all that, and you are wondering what next... welcome and read on!

If you don't have a Raspberry Pi yet, you can still try things out, see Windows RPi Emulator for details.

What is Linux and why not use Windows?

Linux is an operating system just like Microsoft Windows, however, unlike Windows (which has a minimum hardware requirement to run i.e. if it does not fit, get different hardware), Linux comes in many varieties and configurations which means you can usually find a flavour (or Distribution) which fits your hardware big or small / fast or slow.

The Raspberry Pi is not suited to running Microsoft Windows due to its hardware, but there are plenty of Linux Distributions which do fit nicely. In addition to this, most Distributions of Linux are free, however Microsoft Windows can cost many times the price of the Raspberry Pi itself.

Chances are you already have Linux running in your home without you even knowing it, since it is commonly used in Kindle ebook readers, Android smartphones, modern TVs, Freeview and cable boxes to run things.

For more information about Linux see the Wikipedia page.

Also see Running XXX on the RPi

Basic Raspbian Setup

When you first turn on your Raspberry Pi with it's fresh Raspbian image on the SD card, you will likely want to tweak the system settings. There's a tool called raspi-config which makes everything super-easy to set up. This automatically launches when you first boot Raspbian up (depending on the version and configuration).

If you want to access the setup screen again, just type:

 sudo raspi-config

in the terminal (LXTerminal in the desktop UI).

Intro to the CLI (Command Line Interface)

You will need to use the Command Line Interface at some point in your management of the RPi. The command line interface is a powerful way to interact with the Raspberry Pi and is well worth learning some basic commands to get started with.

For an introductory guide to some basic commands please see: Command Line Interface "Must Have" Commands. For general Linux commands, try this site for "learning the shell"

Your SD card may boot into a GUI, if not and you are done with the text interface and want to use a graphical one instead, run:

   startx

Remote Access

Your default install probably has a ssh (secure shell) "daemon" running. This means that you can run everything on your RPi with only the network attached. Provided you know which IP address it has. With appropriate software installed on your Windows, Mac or Linux PC, you can also run a terminal, GUI or other program remotely.

More details about remote access (including remote GUI are at RPi Remote Access.

Installing and updating software to your Raspberry Pi

You will probably want to add software to your Raspberry Pi, as well as keep the current packages up to date. With Raspbian this is performed using apt-get. The most common commands can be found in the adding software page. It is good practice to regularly ensure you run the update and upgrade commands detailed in the guide to ensure you have the most up to date software packages.

The apt-get package for Raspbian will also keep the GPU firmware updated to the latest stable release. If you'd like to try the bleeding edge releases you can read more on the RPi Software.

Adding USB Storage to Your Raspberry Pi

Sooner or later, you're going to run out of room on the SD card used to boot up your Raspberry Pi. For a tutorial on how to connect USB flash drives and hard drives to your Pi to expand storage, see: Adding USB Drives to a Raspberry Pi.

Beginner Projects

Here are a few things you can try out with your Raspberry Pi, in most cases all you'll need is your SD Card loaded with a particular preconfigured OS Distribution.

It will be worth getting a few spare SD Cards if you think you will switch between setups regularly or become familiar with how to back up and restore your card.

Backup your SD card

For Windows users the 'Raw HDD Copy Tool' from HDD Guru works well to backup and restore your SD card between projects. This can backup and restore the entire card sector by sector to/from an img file, and doesn't care which file system is on the card.

Raw HDD Copy Tool

Linux and Mac OS(X) users can use the dd tool that comes with most versions of Linux (including Raspbian) to save the contents of an SD card as an image file. Warning: be sure to use this tool carefully as accidentally choosing your hard drive as the output will destroy all data on it.

Mac OSX users can use PiCloner. The PiCloner app is easy to use and will help you detect your SD card, back it up to an img file and is able to compress the img using GZIP to decrease backup size. PiCloner is Free Open Source Software (FOSS) released under a BSD License so it's Free as in; Free Beer!

Media Player

With this configuration you will typically have the Raspberry Pi connected to a TV or large monitor and a source of videos/music/photos etc you wish to play (i.e. Internet/hard-drive/local network etc).

DesignSpark have written an article on this, which is worth a look, DesignSpark - Raspberry Pi goes to the movies

You can download an installer from www.raspbmc.com which will install to your desktop (IOS, Windows, Linux) and write the latest install to your SD card. You then boot your Pi with the card and go through the config steps.

There is a brief video basic tutorial here: http://www.instructables.com/id/RaspberryPi-Media-center-XMBC/

Play Games

There are plenty of ways to play games on the Raspberry Pi. Check the RPi Games page.

Many distributions will have games built into them, and some may well support emulation of other platforms so you can run those games.

A lot of Raspberry Pi users will be writing simple games which will be available for others to enjoy (and if desired added to or modified).

Introducing Young Children To Computers

Several resources exist for introducing children to computers using the Raspberry Pi. Check the Raspberry Pi Foundation's website.

Teaching

There is a huge number of groups, links and resources available within the Education section, and the Raspberry Pi Foundation's website.

Learn To Program

There is a huge selection of programming languages which you can use to write interesting programs, games, applications and utilities. There are also more great links within the Education section.

If you are new to programming, there are plenty of tutorials for getting started in the Tutorials Section.

Books about programming can be found in the Books Section.

In the latest Raspbian, Python and Scratch are pre-installed.

Interface With Hardware

See Easy GPIO Hardware & Software

Word Processing/Internet Browsing etc

Yes, the Raspberry Pi can do the majority of the dull stuff too which other computers do.

Raspbian currently comes with Midori installed for web browsing and LibreOffice for word processing and spreadsheet (office); other programs be installed rather easily.

  • Entering "sudo apt-get install chromium-browser" into a terminal will install Chromium which is generally a faster and more featured browser than Midori
  • Entering "sudo apt-get install abiword-common" into a terminal will install AbiWord, a lighter weight but still fully functional word processor
  • Entering "sudo apt-get install gnumeric" into a terminal will install Gnumeric, a lighter weight but still fully functional spreadsheet

Your Own Pet Project!

The sky is the limit really, with some time and effort any number of projects can be achieved.

Even if you don't have the skill to do it yourself, you can join like minded people by getting involved with one of the numerous groups in the Community Section, also within the Education pages or learn what you need in from the Guides & Tutorials sections.

Of course, if you do anything interesting then please let us know in the Projects section.

Living Without RPi

Even if you do not have any Raspberry Pi hardware there are a number things you can do to learn about Linux, programming or even controlling hardware.

Using Linux

You can install a version of Linux on most computers, and on many you will be able to "try out" Linux by using a "Live CD" - this will start your computer up running from a CD or DVD and run Linux (without installing anything to the computer itself).

RacyPy - This is a simple LiveCD of Puppy Linux which includes some basic programming languages and a light-weight graphical user interface (GUI). You can get it from here: teampython RacyPy

Trying Programming

Many of the programming languages you can use on the Raspberry Pi can be installed on a Windows or Mac machine. Just visit the websites of the languages you are interested in and see if they have an installer for your operating system.

Controlling Hardware

As discussed in the Easy GPIO Hardware & Software tutorials, there are lots of alternative hardware you can use to experiment with (some as little as $5).

About This Page

The intention of this page is to provide a starting point for beginners and to direct them to the kind of information a person would need in order to start doing something useful or interesting with a Raspberry Pi.

It is not intended to contain or replicate much of the information already available on-line or elsewhere in the wiki, however new wiki pages can be linked here if there is information beginners will find useful.