Check the output of the lsblk
command to find the correct device (eg:
/dev/mmcblk0
):
sudo dd bs=4M if=/dev/mmcblk0 of=FILENAME
If you wish to see the progress, use one of the following techniques:
- with
pv
:sudo dd bs=4M if=/dev/mmcblk0 | pv | sudo dd of=FILENAME
- with
dcfldd
:sudo dcfldd bs=4M if=/dev/mmcblk0 of=FILENAME
sudo dcfldd bs=4M if=FILENAME of=/dev/mmcblk0
This is an example to set a fixed IP address:
sudo mount -o rw /dev/mmcblk0p2 /mnt/sdcard/
You can then modify the filesystem as if you were on the RPi (eg, modify the
/mnt/sdcard/etc/modules
file to enable ipv6).
Don't forget to unmount the partition when finished, and before ejecting the SDCard:
sudo umount /mnt/sdcard
In the .img
file you downloaded to flash on your SDCard, there's two
partitions. You probably want to mount the second one (the one that holds the
filesystem), and not the first one (that hold the boot files).
To find where this second partition starts, use the file
command:
$ file 2013-09-25-wheezy-raspbian.img 2013-09-25-wheezy-raspbian.img: DOS/MBR boot sector; partition 1 : ID=0xc, start-CHS (0x0,130,3), end-CHS (0x7,165,30), startsector 8192, 114688 sectors; partition 2 : ID=0x83, start-CHS (0x7,165,31), end-CHS (0x168,34,58), startsector 122880, 5662720 sectors
New lines have been added for the sake of readability. What you need is the
startsector
of the partition you want to mount, then:
sudo mount -o loop,offset=$(( 512 * 122880)) 2013-09-25-wheezy-raspbian.img /mnt/sdcard
Don't forget to unmount the partition when finished:
sudo umount /mnt/sdcard
Edit the /etc/network/interfaces
file and fill in the following:
auto lo iface lo inet loopback #iface eth0 inet dhcp iface eth0 inet static address 192.168.0.13 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.254 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
Using ipv6, no need to set up an IP address.
First, you need to enable ipv6: add ipv6
to the end of the /etc/modules
file.
Then connect to your RPi using the means of your choice, and send a broadcast ipv6 ping on the network interface used. Eg, if you connected your RPi to your computer using a network cable:
$ ping6 ff02::1%eth0 64 bytes from fe80::xxxx:xxxx:xxxx:xxxx: icmp_seq=1 ttl=64 time=0.053 ms 64 bytes from fe80::xxxx:xxxx:xxxx:xxxx: icmp_seq=1 ttl=64 time=58.3 ms (DUP!) 64 bytes from fe80::xxxx:xxxx:xxxx:xxxx: icmp_seq=1 ttl=64 time=143 ms (DUP!)
In this case, the first one is the local eth0 interface, the second one is the router, and the third one is the RPi.
Then connect to your RPi using ssh:
ssh pi@fe80::xxxx:xxxx:xxxx:xxxx%eth0
IP Log is a simple website that can be used to store the IP address of the visitor (and optionally some additional information).
There's a little tip on how to have your RPi automatically store its public and
local IP address on the website: add the following line to your
/etc/rc.local
script:
curl "http://some.site.com/?store=true¬e=`hostname -I`"