User Tools

Site Tools


2013-08-26-raspberry_spi

This is an old revision of the document!


Raspberry Spi

Steve Jones 2013-08-26
Just a note to add, I think I still have this little 'Pi, it is the original Raspberry Pi 1! Also, I think this was my first introduction to systemctl. <code> # Insert an SD card into a Linux PC and; sudo fdisk -l # # Disk /dev/sdb: 3965 MB, 3965190144 bytes # 49 heads, 48 sectors/track, 3292 cylinders, total 7744512 sectors # Units = sectors of 1 * 512 = 512 bytes # Sector size (logical/physical): 512 bytes / 512 bytes # I/O size (minimum/optimal): 512 bytes / 512 bytes # Disk identifier: 0x00000000 # # Device Boot Start End Blocks Id System # /dev/sdb1 8192 7744511 3868160 b W95 FAT32

sudo umount /dev/sdb1

sudo dd if=archlinux-hf-2013-07-22.img of=/dev/sdb # 1870+0 records in # 1870+0 records out # 1960837120 bytes (2.0 GB) copied, 203.495 s, 9.6 MB/s

sudo fdisk -l # # Disk /dev/sdb: 3965 MB, 3965190144 bytes # 64 heads, 32 sectors/track, 3781 cylinders, total 7744512 sectors # Units = sectors of 1 * 512 = 512 bytes # Sector size (logical/physical): 512 bytes / 512 bytes # I/O size (minimum/optimal): 512 bytes / 512 bytes # Disk identifier: 0x00057540 # # Device Boot Start End Blocks Id System # /dev/sdb1 2048 186367 92160 c W95 FAT32 (LBA) # /dev/sdb2 186368 3667967 1740800 5 Extended # /dev/sdb5 188416 3667967 1739776 83 Linux

sudo gparted /dev/sdb # Expand the sdb2 and sdb5 filesystems to use the whole SD card.

# Move the SD card to the 'pi and connect to a router that has internet access # and another computer with ssh. The original passwd is 'root'

ssh root@192.168.2.22 # The authenticity of host '192.168.2.22 (192.168.2.22)' can't be established. # ECDSA key fingerprint is 07:e6:10:f7:75:54:9a:58:af:98:97:e1:a8:f6:17:fb. # Are you sure you want to continue connecting (yes/no)? yes # Warning: Permanently added '192.168.2.22' (ECDSA) to the list of known hosts. # root@192.168.2.22's password: # X11 forwarding request failed on channel 0 # Last login: Fri Aug 2 00:16:57 2013 from 192.168.2.17 # [root@alarmpi ~]#

passwd # Zaq12wsX # Enter new UNIX password: # Retype new UNIX password: # passwd: password updated successfully

ping www.google.com # PING www.google.com (74.125.225.177) 56(84) bytes of data. # 64 bytes from den03s05-in-f17.1e100.net (74.125.225.177): icmp_seq=1 ttl=49 time=60.6 ms # 64 bytes from den03s05-in-f17.1e100.net (74.125.225.177): icmp_seq=2 ttl=49 time=59.5 ms # ^C # — www.google.com ping statistics — # 2 packets transmitted, 2 received, 0% packet loss, time 1001ms # rtt min/avg/max/mdev = 59.554/60.077/60.601/0.578 ms

pacman -Syu # :: Synchronizing package databases… # core 42.5 KiB 299K/s 00:00 [#################################] 100% # extra 536.2 KiB 632K/s 00:01 [#################################] 100% # community 546.9 KiB 753K/s 00:01 [#################################] 100% # alarm 7.1 KiB 77.2K/s 00:00 [#################################] 100% # aur 19.1 KiB 407K/s 00:00 [#################################] 100% # :: Starting full system upgrade… # resolving dependencies… # looking for inter-conflicts… # # Packages (8): cracklib-2.9.0-1 dhcpcd-6.0.4-1 glib2-2.36.3-3 # libgcrypt-1.5.3-1 libusbx-1.0.16-1 linux-firmware-20130728-1 # netctl-1.2-1 pacman-mirrorlist-20130725-1 # # Total Download Size: 21.26 MiB # Total Installed Size: 67.06 MiB # Net Upgrade Size: 1.43 MiB # # :: Proceed with installation? [Y/n] y # :: Retrieving packages … # cracklib-2.9.0-1-armv6h 240.8 KiB 350K/s 00:01 [######################] 100% # dhcpcd-6.0.4-1-armv6h 88.5 KiB 226K/s 00:00 [######################] 100% # # ——— 8< —————————- 8< ————- # # (7/8) # upgrading netctl [#####################################] 100% # (8/8) # upgrading pacman-mirrorlist [#####################################] 100% # pacman-key –init # gpg: /etc/pacman.d/gnupg/trustdb.gpg: trustdb created # gpg: no ultimately trusted keys found # # gpg: Generating pacman keyring master key… # gpg: key 69F70C96 marked as ultimately trusted # # gpg: Done # =⇒ Updating trust database… # gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model # gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u

reboot

pacman -S netctl # warning: netctl-1.2-1 is up to date – reinstalling # resolving dependencies… # looking for inter-conflicts… # # Packages (1): netctl-1.2-1 # # Total Installed Size: 0.16 MiB # Net Upgrade Size: 0.00 MiB # # :: Proceed with installation? [Y/n] y # (1/1) checking keys in keyring [###############################] 100% # (1/1) checking package integrity [###############################] 100% # (1/1) loading package files [###############################] 100% # (1/1) checking for file conflict [###############################] 100% # (1/1) checking available space [###############################] 100% # (1/1) reinstalling netctl

cd /etc/netctl/ # This is the directory for setting up networking in Arch

install -m640 examples/wireless-wpa wireless-home # Install does the same thing as cp, but can alter the mode in the transfer.

vi wireless-home # Set the ESSID and network password, then save the file.

netctl start wireless-home # If you just get a prompt back, all is well!

# But, because we're paranoid, lets check. ifconfig # eth0: flags=4163 mtu 1500 # inet 10.42.0.43 netmask 255.255.255.0 broadcast 10.42.0.255 # ether b8:27:eb:9b:ed:bd txqueuelen 1000 (Ethernet) # RX packets 1590 bytes 763883 (745.9 KiB) # RX errors 0 dropped 0 overruns 0 frame 0 # TX packets 958 bytes 125982 (123.0 KiB) # TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 # # lo: flags=73 mtu 16436 # inet 127.0.0.1 netmask 255.0.0.0 # loop txqueuelen 0 (Local Loopback) # RX packets 0 bytes 0 (0.0 B) # RX errors 0 dropped 0 overruns 0 frame 0 # TX packets 0 bytes 0 (0.0 B) # TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 # # wlan0: flags=4163 mtu 1500 # inet 192.168.2.9 netmask 255.255.255.0 broadcast 192.168.2.255 # ether c8:3a:35:ca:41:a1 txqueuelen 1000 (Ethernet) # RX packets 12 bytes 2010 (1.9 KiB) # RX errors 0 dropped 0 overruns 0 frame 0 # TX packets 12 bytes 1768 (1.7 KiB) # TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #

netctl enable wireless-home # This enables the connection after a reboot, kind of important. It also spits out # the rather cryptic message below; # ln -s '/etc/systemd/system/netctl@wireless\x2dhome.service' \ # '/etc/systemd/system/multi-user.target.wants/netctl@wireless\x2dhome.service'

reboot # Verify that wireless comes up

ssh root@192.168.2.9

pacman -Syu # :: Synchronizing package databases… # core is up to date # extra is up to date # community is up to date # alarm is up to date # aur is up to date # :: Starting full system upgrade… # there is nothing to do

fdisk /dev/mmcblk0 # Welcome to fdisk (util-linux 2.23.2). # # Changes will remain in memory only, until you decide to write them. # Be careful before using the write command. # # # Command (m for help): p # # Disk /dev/mmcblk0: 7913 MB, 7913603072 bytes, 15456256 sectors # Units = sectors of 1 * 512 = 512 bytes # Sector size (logical/physical): 512 bytes / 512 bytes # I/O size (minimum/optimal): 512 bytes / 512 bytes # Disk label type: dos # Disk identifier: 0x00057540 # # Device Boot Start End Blocks Id System # /dev/mmcblk0p1 2048 186367 92160 c W95 FAT32 (LBA) # /dev/mmcblk0p2 186368 3667967 1740800 5 Extended # /dev/mmcblk0p5 188416 3667967 1739776 83 Linux # # Command (m for help): n # Partition type: # p primary (1 primary, 1 extended, 2 free) # l logical (numbered from 5) # Select (default p): p # Partition number (3,4, default 3): 3 # First sector (3667968-15456255, default 3667968): # Using default value 3667968 # Last sector, +sectors or +size{K,M,G} (3667968-15456255, default 15456255): # Using default value 15456255 # Partition 3 of type Linux and of size 5.6 GiB is set # # 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 or after you run partprobe(8) or kpartx(8) # Syncing disks.

reboot # Just for good measure

ssh root@192.168.2.9 # root@192.168.2.9's password: # X11 forwarding request failed on channel 0 # Last login: Thu Jan 1 00:00:29 1970 from 192.168.2.17

fdisk -l # Disk /dev/mmcblk0: 7913 MB, 7913603072 bytes, 15456256 sectors # Units = sectors of 1 * 512 = 512 bytes # Sector size (logical/physical): 512 bytes / 512 bytes # I/O size (minimum/optimal): 512 bytes / 512 bytes # Disk label type: dos # Disk identifier: 0x00057540 # # Device Boot Start End Blocks Id System # /dev/mmcblk0p1 2048 186367 92160 c W95 FAT32 (LBA) # /dev/mmcblk0p2 186368 3667967 1740800 5 Extended # /dev/mmcblk0p3 3667968 15456255 5894144 83 Linux # /dev/mmcblk0p5 188416 3667967 1739776 83 Linux

mkfs.ext2 /dev/mmcblk0p3 # mke2fs 1.42.8 (20-Jun-2013) # Filesystem label= # OS type: Linux # Block size=4096 (log=2) # Fragment size=4096 (log=2) # Stride=0 blocks, Stripe width=0 blocks # 368640 inodes, 1473536 blocks # 73676 blocks (5.00%) reserved for the super user # First data block=0 # Maximum filesystem blocks=1509949440 # 45 block groups # 32768 blocks per group, 32768 fragments per group # 8192 inodes per group # Superblock backups stored on blocks: # 32768, 98304, 163840, 229376, 294912, 819200, 884736 # # Allocating group tables: done # Writing inode tables: done # Writing superblocks and filesystem accounting information: done

echo “/dev/mmcblk0p3 /home ext2 defaults 0 0” » /etc/fstab # Set up a directory to store files.

reboot # Make sure the mount worked

ssh root@192.168.2.9

timedatectl set-timezone America/New_York

timedatectl status # Local time: Thu 2013-08-08 02:16:42 EDT # Universal time: Thu 2013-08-08 06:16:42 UTC # Timezone: America/New_York (EDT, -0400) # NTP enabled: yes # NTP synchronized: no # RTC in local TZ: no # DST active: yes # Last DST change: DST began at # Sun 2013-03-10 01:59:59 EST # Sun 2013-03-10 03:00:00 EDT # Next DST change: DST ends (the clock jumps one hour backwards) at # Sun 2013-11-03 01:59:59 EDT # Sun 2013-11-03 01:00:00 EST

pacman -S sudo # resolving dependencies… # looking for inter-conflicts… # # Packages (1): sudo-1.8.7-1 # # Total Download Size: 0.62 MiB # Total Installed Size: 2.82 MiB # # :: Proceed with installation? [Y/n] y # :: Retrieving packages … # sudo-1.8.7-1-armv6h 635.9 KiB 604K/s 00:01 [###############] 100% # (1/1) checking keys in keyring [######################################] 100% # (1/1) checking package integrity [######################################] 100% # (1/1) loading package files [######################################] 100% # (1/1) checking for file conflict [######################################] 100% # (1/1) checking available space [######################################] 100% # (1/1) installing sudo [######################################] 100%

visudo # Append 'pi ALL=(ALL) ALL' to the end of the file.

pacman -S motion # Time to install the actual software that makes this a web enabled web cam. # resolving dependencies… # looking for inter-conflicts… # # Packages (62): alsa-lib-1.0.27.2-1 damageproto-1.2.1-2 enca-1.14-1 # ffmpeg-compat-1:0.10.8-4 fixesproto-5.0-2 flac-1.3.0-1 fontconfig-2.10.93-1 # freetype2-2.5.0.1-1 fribidi-0.19.5-1 gsm-1.0.13-7 inputproto-2.3-1 # json-c-0.11-1 kbproto-1.0.6-1 lame-3.99.5-1 libass-0.10.1-1 libasyncns-0.8-4 # libdrm-2.4.46-2 libice-1.0.8-1 libjpeg-turbo-1.3.0-2 libmodplug-0.8.8.4-1 # libogg-1.3.1-1 libpciaccess-0.13.2-1 libpulse-4.0-2 libsm-1.2.1-1 # libsndfile-1.0.25-2 libtheora-1.1.1-3 libva-1.2.1-1 libvdpau-0.7-1 # libvorbis-1.3.3-1 libvpx-1.2.0-1 libx11-1.6.1-1 libxau-1.0.8-1 # libxcb-1.9.1-2 libxdamage-1.1.4-1 libxdmcp-1.1.1-1 libxext-1.3.2-1 # libxfixes-5.0.1-1 libxi-1.7.2-1 libxrender-0.9.8-1 libxtst-1.2.2-1 # libxxf86vm-1.1.3-1 mesa-9.1.6-1 mesa-libgl-9.1.6-1 opencore-amr-0.1.3-1 # openjpeg-1.5.1-1 orc-0.4.17-1 recode-3.6-7 recordproto-1.14.2-1 # renderproto-0.11.1-2 rtmpdump-20121230-2 schroedinger-1.0.11-1 # sdl-1.2.15-3 speex-1.2rc1-3 v4l-utils-0.9.5-2 wayland-1.2.0-1 # x264-20130702-2 xcb-proto-1.8-2 xextproto-7.2.1-1 xf86vidmodeproto-2.3.1-2 # xproto-7.0.24-1 xvidcore-1.3.2-1 motion-3.2.12-10 # # Total Download Size: 16.99 MiB # Total Installed Size: 89.23 MiB # # :: Proceed with installation? [Y/n] y # :: Retrieving packages … # libjpeg-turbo-1.3.0-2-armv6h 265.3 KiB 241K/s 00:01 [###################] 100% # v4l-utils-0.9.5-2-armv6h 423.5 KiB 453K/s 00:01 [###################] 100% # alsa-lib-1.0.27.2-1-armv6h 341.0 KiB 35.7K/s 00:10 [###################] 100% # gsm-1.0.13-7-armv6h 33.9 KiB 131K/s 00:00 [###################] 100% # ( 9/62) installing fontconfig [#####################################] 100% # (61/62) installing ffmpeg-compat [#####################################] 100% # (62/62) installing motion [#####################################] 100%

useradd -m pi # Create a user for normal logins

passwd pi # pi # Enter new UNIX password: # Retype new UNIX password: # passwd: password updated successfully

ssh pi@192.168.2.9 # pi@192.168.2.9's password:

mount # /dev/mmcblk0p5 on / type ext4 (rw,relatime,data=ordered) # devtmpfs on /dev type devtmpfs (rw,relatime,size=84784k,nr_inodes=21196,mode=755) # /dev/mmcblk0p3 on /home type ext2 (rw,relatime) # The line above is good! # /dev/mmcblk0p1 on /boot type vfat (rw,shortname=mixed,errors=remount-ro)

mkdir -p /home/pi/motion # Create a place for our stuff

chmod 750 motion # Make it a little safer.

systemctl enable motion.service # ln -s '/usr/lib/systemd/system/motion.service' '/etc/systemd/system/multi-user.target.wants/motion.service'

vi /etc/systemd/system/multi-user.target.wants/motion.service

2013-08-26-raspberry_spi.1781120405.txt.gz · Last modified: by steve