Raspberry Pi
 (→Things I might try sometime)  | 
			 (→Multiple 1-wire buses)  | 
			||
| (202 intermediate revisions by one user not shown) | |||
| Line 1: | Line 1: | ||
| − | ==  | + | ==Cookbook==  | 
My collection of hints, tips and tricks (supporting my memory and maybe also helping others).  | My collection of hints, tips and tricks (supporting my memory and maybe also helping others).  | ||
| − | ===  | + | ===External USB drives===  | 
| − | * [http://selfprogramming.bplaced.net/index.php/2012/10/23/automount-usb-drives-in-raspbian/  | + | * Automount USB-Drives in Raspbian  | 
| + | ** One may use [http://selfprogramming.bplaced.net/index.php/2012/10/23/automount-usb-drives-in-raspbian/ USBmount and autofs]  | ||
| + | ** I prefer [http://ignorantguru.github.io/udevil/ udevil], see below  | ||
| − | *   | + | * Install ''ntfs-3g'' if you need write access to ntfs file systems  | 
| + | |||
| + | * How to increase performance?  | ||
** Mount with option ''''noatime'''' or ''''relatime''''  | ** Mount with option ''''noatime'''' or ''''relatime''''  | ||
** Mount ''without'' option sync (e.g. keep default async)  | ** Mount ''without'' option sync (e.g. keep default async)  | ||
| − | **   | + | ** If using ntfs-3g (fuse) file system, try mounting with option 'big_writes', see for example http://obihoernchen.net/wordpress/tag/big_writes/  | 
| − |   /dev/sda1   | + | ===[http://ignorantguru.github.io/udevil/ udevil]===  | 
| + | |||
| + | * example for manual mounting:  | ||
| + | |||
| + |   udevil mount /dev/sda1  | ||
| + | |||
| + | * auto-mounting via udev-rule, see for example http://lsdlinux.org/wiki/doku.php?id=auto_mounting#using_udev_rule  (I just copied the 95-udevil-mount.rules file from an OpenElec installation (http://www.raspberrypi.org/downloads) )  | ||
| + | |||
| + | * my build-steps (maybe there's a simpler way, but this worked...):  | ||
| + | ** download 0.4.3/udevil_0.4.3-1_all.deb from https://github.com/IgnorantGuru/udevil/tree/pkg, e.g. using wget  | ||
| + | ** extract deb-package via <code>ar vx udevil_0.4.3-1_all.deb</code>  | ||
| + | ** extract data archive <code>tar xzvf data.tar.gz</code>  | ||
| + | ** change to tar usr/share/devil/src  | ||
| + | ** untar <code>tar xvfJ udevil-current.tar.xz</code>  | ||
| + | ** <code>cd udevil-0.4.3</code>  | ||
| + | ** <code>mv distros/debian</code>  | ||
| + | ** execute <code>dpkg-buildpackage</code>  | ||
| + | ** If all required packages are installed, this results in udevil_0.4.3-1_armhf.deb. If the build fails due to missing packages, install the missing packages, and re-do the dpkg-buildpackage step  | ||
| + | ** Install via <code>sudo dpkg -i udevil_0.4.3-1_armhf.deb</code>  | ||
===Samba server / NAS===  | ===Samba server / NAS===  | ||
* How to install?  | * How to install?  | ||
| − | ** [http://jankarres.de/2013/11/raspberry-pi-samba-server-installieren/| Raspberry Pi: Samba Server installieren] (German)  | + | ** [http://jankarres.de/2013/11/raspberry-pi-samba-server-installieren/ | Raspberry Pi: Samba Server installieren] (German)  | 
** [http://www.welzels.de/blog/projekte/raspberry-pi/low-budget-nas-mit-einem-raspberry-pi/ Low Budget NAS mit einem Raspberry PI] (German)  | ** [http://www.welzels.de/blog/projekte/raspberry-pi/low-budget-nas-mit-einem-raspberry-pi/ Low Budget NAS mit einem Raspberry PI] (German)  | ||
| − | * Slow performance?  | + | * Slow disc performance?  | 
** see 'Slow USB drives' above  | ** see 'Slow USB drives' above  | ||
| − | ** use Raspbian, etc without GUI to get as much CPU power for file-transfer as possible (OpenELEC or RaspBMC constantly   | + | ** use Raspbian, etc without GUI to get as much CPU power for file-transfer as possible (OpenELEC or RaspBMC constantly use about 10-20% CPU load when idle, use ''top'' to check!)  | 
| − | ===  | + | * Configuration and tuning  | 
| + | ** https://calomel.org/samba.html  | ||
| + | ** https://calomel.org/samba_optimize.html  | ||
| + | |||
| + | * If your /var/log/samba/log.smbd fills up with ''printing/print_cups.c:110(cups_connect) Unable to connect to CUPS server localhost'' messages, try http://www.sotechdesign.com.au/samba-log-showing-error-failed-to-retrieve-printer-list/<br/>I also created an empty <code>/etc/printcap</code> to avoid ''Unable to open printcap file /etc/printcap for read'' messages.  | ||
| + | |||
| + | * I don't need sound:  | ||
| + | |||
| + |  root@pi ~ # cat /etc/modprobe.d/snd-blacklist.conf   | ||
| + |  # I don't need sound  | ||
| + |  blacklist snd  | ||
| + |  blacklist snd_pcm  | ||
| + |  blacklist snd_soc_core  | ||
| + |  blacklist snd_soc_bcm2708_i2s  | ||
| + | |||
| + | ===Trying to reduce number of disk writes (SD card)===  | ||
| + | |||
| + | I'm using [http://oss.oetiker.ch/rrdtool/ RRD] with a cron job (currently observing pi's temperature and frequency). I hope that my SD card has proper wear-leveling (and currently my 8 GB card is less than half full), so that the frequent writing should not be a problem. But still, I want to reduce the number of writes to the SD card (in order to not bust it's lifetime).  | ||
| + | |||
| + | Here's what I've done:  | ||
| + | |||
| + | * Edit <code>/etc/default/cron</code> and set <code>EXTRA_OPTS="-L 0"</code> to disable logging (I don't need these)  | ||
| + | * Avoid entries like <code>pam_unix(cron:session): session closed for user pi</code> in <code>/var/log/auth.log</code>  | ||
| + | ** Edit <code>/etc/pam.d/cron</code> and comment the line <code>@include common-session-noninteractive</code> ([http://ubuntuforums.org/showthread.php?t=1256801])  | ||
| + | :or  | ||
| + | :* Edit <code>/etc/pam.d/common-session-noninteractive</code> as shown here: http://ubuntuforums.org/showthread.php?t=1256801&p=10283830#post10283830  | ||
| + | * I've implemented a persist tmpfs as discussed in http://www.a-netz.de/2013/02/persistent-storage-with-ramdisks/ and http://www.observium.org/wiki/Persistent_RAM_disk_RRD_storage (and, I guess, many other sites)  | ||
| + | ** moved all the .rrd files as well as the created images to my persistent-ramdisk location  | ||
| + | ** moved some directories with frequent writes to my persistent-ramdisk location and added corresponding sym-links  | ||
| + | *** <code>/var/spool</code>  | ||
| + | *** <code>/var/log</code>  | ||
| + | *** <code>/var/cache/samba</code>  | ||
| + | ** edited <code>/etc/insserv.conf</code> to add the persist-ramdisk as a requirement to $local_fs; the original definition can still be accessed as $local_fs_orig:  | ||
| + | |||
| + |  $local_fs_orig  +mountall +mountall-bootclean +mountoverflowtmp +umountfs  | ||
| + |  # we need the sym-link data in /var/log and /var/spool to be available  | ||
| + |  $local_fs       $local_fs_orig +persist-ramdisk  | ||
| + | |||
| + | :: <code>/etc/init.d/persist-ramdisk</code> depends on $local_fs_orig, and the other init-scripts keep their dependency to $local_fs. This ensures that /var/log and /var/spool are ok when starting & stopping other init scripts.  | ||
| + | |||
| + | :* set ''RAMTMP'' to yes in <code>/etc/default/tmpfs</code> to get tempfs based <code>/tmp</code>  | ||
| + | |||
| + | Before changing <code>/tmp</code>:  | ||
| + | ::But still, <code>iostat</code> shows quite some data written to the SD card, according to <code>iotop</code> its ''jbd2'', the ::journaling part of ext4 (pi is 'idle', only some services run, and the ext4 partition is mounted with ''noatime'').  | ||
| + | ::I need to do more digging...  | ||
| + | |||
| + | After changing <code>/tmp</code>:  | ||
| + | : It looks like the unwanted writes to SD are gone. I'll watch it for some time...  | ||
| + | |||
| + | ===Useful stuff and Q&A===  | ||
* Q: Why does my Pi restart when hotplugging a USB drive?  | * Q: Why does my Pi restart when hotplugging a USB drive?  | ||
| − | **   | + | ** http://thestuffsido.blogspot.de/2013/05/fixing-raspberry-pi-hotplugging.html  | 
| − | **   | + | ** http://therandomlab.blogspot.de/2013/01/raspberry-pi-mod-to-avoid-shutdown-on.html  | 
* Q: Does Raspberry support WOL?  | * Q: Does Raspberry support WOL?  | ||
| − | : A: No: the Ethernet chip is connected via USB (  | + | : A: No: the Ethernet chip is connected via USB (http://www.raspberrypi.org/forum/viewtopic.php?f=53&t=39714)  | 
| − | * Q: The new password is to short  | + | * Q: The new password is to short, or too simple  | 
| − | : A: Try adjusting the PAM settings  | + | : A: Try adjusting the PAM settings in <code>/etc/pam.d/common-password</code>:  | 
| + | :* remove the 'obscure' setting for pam_unix.so, and add your desired minimum length (e.g. minlen=2)  | ||
| + | ::<code>password        [success=1 default=ignore]      pam_unix.so sha512 minlen=2</code>  | ||
| + | |||
| + | ::!! This is not recommended if your box is connected to the internet or if it contains private data noone should know !!<br>  | ||
| + | ::But it's nice for testing (if you cannot or do not want to use auto-login.)  | ||
* Q: How to configure static IP?  | * Q: How to configure static IP?  | ||
: A: In /etc/network/interfaces:  | : A: In /etc/network/interfaces:  | ||
| − | + | ::<code>iface eth0 inet static<br>address 192.168.0.31<br>netmask 255.255.255.0<br>gateway 192.168.0.1</code>  | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
* Q: How to read core temperature, etc?  | * Q: How to read core temperature, etc?  | ||
| − | : A: [http://elinux.org/RPI_vcgencmd_usage vcgencmd]:   | + | : A: [http://elinux.org/RPI_vcgencmd_usage vcgencmd]:  | 
| + | ::<code>vcgencmd measure_temp<br>vcgencmd measure_clock arm</code>  | ||
| − | + | * External USB HDD spin down  | |
| + | ** hdparm does not work with my WD Elements (SG_IO: bad host status: 0x7)  | ||
| + | ** hd-idle works:  | ||
| + | ::<code>hd-idle -a sda -i 600</code>  | ||
| + | :: for details, see for example http://blog.is-a-geek.org/festplatten-in-den-standby-modus-versetzen-unter-ubuntu-desktopserver-mit-hd-idle (German)  | ||
| − | * [http://  | + | * Q: How to avoid update of a certain package?  | 
| + | : A: Put package on hold ([http://debiananwenderhandbuch.de/dpkg.html] (German)):  | ||
| + | ::<code>echo <packagename> "hold" | dpkg --set-selections</code>  | ||
| − | *   | + | * [[wikipedia:Raspcontrol]] with nginx  | 
| + | ** http://www.foxplex.com/sites/raspcontrol-webinterface-auf-dem-raspberry-pi/ (German), http://www.foxplex.com/sites/performanter-nginx-webserver-auf-dem-raspberry-pi-mit-php-und-apc/ (German)  | ||
| + | ** http://menzerath.eu/artikel/raspberry-pi-raspcontrol-installation-funktionen/ (German)  | ||
| − | + | * Q: How many bytes are written to my (SD) disc?  | |
| + | : A: Use <code>iostat</code> http://www.mybinarylife.net/2012/08/linux-iostat-command.html  | ||
| + | : A: Use <code>iotop</code> http://guichaz.free.fr/iotop/  | ||
| + | : A: Raw data of the kernel can be found in files <code>/proc/diskstats</code> and <code>/sys/block/DEVNAME/stat</code> https://www.kernel.org/doc/Documentation/iostats.txt  | ||
| + | :* http://unix.stackexchange.com/questions/86391/how-to-get-total-number-of-bytes-sectors-blocks-written-to-disk-since-booting  | ||
| + | :* http://serverfault.com/questions/238033/measuring-total-bytes-written-under-linux  | ||
| − | *   | + | * Q: How to reduce number of ext-fs checks?  | 
| + | : A: <code>tune2fs -c 60  /dev/sda1</code> Change maximum mount count to 60  | ||
| + | : A: <code>tune2fs -i 12m  /dev/sda1</code> Change check interval to 12 months  | ||
| + | : fore more details: http://wiki.ubuntuusers.de/Dateisystemcheck (German)  | ||
| − | * [http://www.raspberrypi.org/  | + | * Q: Fix smsc95xx 1-1.1:1.0: eth0: kevent 2 may have been dropped   | 
| + | : A: http://wood1978.techarea.org/~wood/wordpress/2013/04/03/fix-smsc95xx-1-1-11-0-eth0-kevent-2-may-have-been-dropped-on-raspberry-pi-with-arch-linux  | ||
| + | ::Modifying the sysctl.conf values reduced the kevent-2 messages; I did not yet set smsc95xx.turbo_mode=N  | ||
| + | |||
| + | ===Overclocking===  | ||
| + | |||
| + | * I only set overclocking via <code>raspi-config</code>  | ||
| + | |||
| + | * ''Turbo'': (Short) Raspberry stress test were ok. But I got an SD card error/corruption when doing a download and a dd-image of the SD card (according to http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=57907 the SD card error could be OC related.)  | ||
| + | ::Luckily, I could recover all my data, see below.  | ||
| + | |||
| + | * '' Medium'': Raspberry is stable. I've observed two file system corruption which might be related to overclocking (see [http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=57907] and its links).  | ||
| + | |||
| + | * Underclocking to 600 MHz  | ||
| + | :<code>echo "600000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq</code>  | ||
| + | :Raspberry was stable for some hours, but it got frozen later on. I don't now if really related to underclocking. As the temperature did not drop significantly (stayed around 45°C), and the Raspberry CPU has no sleep modes either (for power saving), I did not retry.  | ||
| + | |||
| + | * Adjusting the ondemand-governor  | ||
| + | ** https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt  | ||
| + | ** set <code>/sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor</code> to 10 [http://www.raspberrypi.org/phpBB3/viewtopic.php?f=29&t=6201&start=800]  | ||
| + | **: I had hoped this reduces the 1-wire CRC errors/device-disconnects problems, but with heavy (IO-) load (e.g. backup), 1wire sensors still get disconnected.  | ||
| + | |||
| + | * [http://moze.free.fr/blog/index.php?post/2013/02/Underclock-and-Overclock Nice power consumption analysis]  | ||
| + | |||
| + | ====Stress test and benchmarks====  | ||
| + | |||
| + | * [http://www.roylongbottom.org.uk/ Roy Longbottom's PC Benchmark Collection]  | ||
| + | * [http://www.roylongbottom.org.uk/Raspberry%20Pi%20Stress%20Tests.htm Raspberry Pi Stress Tests]  | ||
| + | |||
| + | ===SD card issues===  | ||
| + | |||
| + | After my (Turbo-overclocked) Raspberry fried my 8 GB SD card, I had not hoped to to be able to recover any data, but I tried anyway. The card was only 1 week old, I have not written that much data too it (<4 GB, mainly the Raspbian image). I could still use this card for some time (see below), but finally I got a corrupted file system and could no longer repair it. That's when I re-installed Raspbian on a new SD card.  | ||
| + | |||
| + | Maybe I should try [http://www.raspipress.com/2013/05/install-and-run-raspbian-from-a-usb-flash-drive/ running from USB] sometime?  | ||
| + | |||
| + | ====Recovery====  | ||
| + | * Creating a binary image of the SD card with my PC using [http://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager] resulted in IO errors at about 17%.  | ||
| + | * The partition table of my SD card was still ok. I hoped to at least recover some text data of my ext4 partition, and thus I created an image using <code>dd conv=sync,noerror if=/dev/sdb2 of=rasp-image.img bs=1M</code> on my Linux machine (option <code>conv=noerror</code> ignores any errors, sync pads read-errors with zeros). The resulting image could not be mounted using a loop device.   | ||
| + | * Fortunately, <code>fsck.ext4 raspberry-image.bin</code> was able to repair the image, which I then could successfully mount on my Linux machine using <code>mount -o loop rasp-image.img /mnt</code>, and at a first glance, everything looked ok. So, I was at least able to get to my data.   | ||
| + | * On a later 'event', I dd-ed the repaired image back to the Raspberry, and could boot again.  | ||
| + | * On another a later 'event', I just fsck-ed the /dev/sdb2 using Linux, and could boot again... but I did not have luck this time - some files were gone.  | ||
| + | * I was just about to return the SD card, but for curiosity, I tried what happens if I re-install the (original) Raspbian image. To my surprise, Win32 Disk Imager did not report any error. And even more surprising, after writing the image, I was able to create an image of the whole disk without error. It looks like the card remapped some spare sectors.  | ||
| + | * My Raspberry successfully booted from this new image. I then used <code>raspi-config</code> to expand the root-fs (I've done this on my first installation as well). With Linux I was able to <code>dd</code> my repaired image to the repaired SD. The card booted as if nothing had happened...  | ||
| + | * But after some weeks, my Raspberry fried the SD card again, and some weeks later again ... And finally I could not get my pi to boot with this card. However, I can still read the data linux. Moving data to a new card... (easier said than done if the new card is slightly smaller... but, see below for resizing... and sometimes a fresh install is even less painful).  | ||
| + | |||
| + | ===Reminders: dd, dd_rescue, losetup, mount and others===  | ||
| + | * Example partition table printed by fdisk:  | ||
| + | <code>  | ||
| + |  /dev/sdb: 7861 MB, 7861174272 bytes, 15353856 sectors  | ||
| + |  Units = Sektoren of 1 * 512 = 512 bytes  | ||
| + |  Sector size (logical/physical): 512 bytes / 512 bytes  | ||
| + |  I/O size (minimum/optimal): 512 bytes / 512 bytes  | ||
| + | |||
| + |  Gerät  boot.     Anfang        Ende     Blöcke   Id  System  | ||
| + |  [...]  | ||
| + |  /dev/sdb3        15288320    15353855       32768   83  Linux</code>  | ||
| + | :Byte-offset of sdb3: 7827619840 = 15288320 * 512  | ||
| + | |||
| + | * Mount partition to /dev/loopN partition for repair, etc.  | ||
| + | :<code>losetup -o 7827619840 --find --show  /dev/sdb</code>  | ||
| + | :--show prints the used /dev/loopN device  | ||
| + | |||
| + | * Directly mount partition using loop device:  | ||
| + | :<code>mount -o loop,offset=7827619840 /dev/sdb /mnt</code>  | ||
| + | * http://www.garloff.de/kurt/linux/ddrescue/  | ||
| + | * http://softwarebakery.com/shrinking-images-on-linux  | ||
| + | * http://www.tehfear.com/2007/10/08/resize-loop-disk-image/  | ||
| + | * http://wiki.ubuntuusers.de/dd (German)  | ||
| + | * http://askubuntu.com/questions/69363/mount-single-partition-from-image-of-entire-disk-device  | ||
| + | |||
| + | ===Some 1-Wire Stuff===  | ||
| + | |||
| + | ====Temperature Sensor DS1820====  | ||
| + | |||
| + | * How to?  | ||
| + | ** http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/temperature/  | ||
| + | ** https://www.raspiprojekt.de/anleitungen/schaltungen/9-1wire-mit-temperatursensor-ds18b20.html?showall=&start=1 (German)  | ||
| + | ** http://kopfkino.irosaurus.com/tutorial-ds18s20-temperatur-sensor-an-einem-raspberry-pi/ (German)  | ||
| + | ** http://raspberrywebserver.com/cgiscripting/rpi-temperature-logger/  | ||
| + | ** http://elinux.org/RPi_Low-level_peripherals  | ||
| + | ** http://www.sdyoung.com/home/using-1-wire-ds18b20par-sensors-in-parasitic-mode-on-raspi-with-custom-gpio-pin/ (German)  | ||
| + | * I have two DS18B20 and log temperatures using rrdtool.  | ||
| + | |||
| + | * When copying data via samba, I frequently get read-errors (CRC errors), or device-disconnects (/sys/bus/w1/devices/<id>/w1_slave temporarily not available).   | ||
| + | ** Q: Is this due to overclocking with using dynamic governor?  | ||
| + | ** A: No - also occurs without overclocking (but less frequent?)  | ||
| + | ** Q: Or is this due to voltage-problems?  | ||
| + | ** A: No - also occurs without over-voltage  | ||
| + | ** Q: Or something else?  | ||
| + | ** A: I have the impression that this is connected to electrical problems (e.g. timing, voltage) on my 1-wire when there's a lot of IO (USB, ethernet). Using 3 sensors works almost all the time (without overclocking), but using 4 or more sensors (2 connected star topologies, very bad for 1-wire [http://www.maximintegrated.com/en/app-notes/index.mvp/id/148 GUIDELINES FOR RELIABLE LONG LINE 1-WIRE NETWORKS]), almost always fails to read values on most of the sensors.  | ||
| + | ** A:'''Implement multiple 1-wire interfaces''' (see below), using 1 for each star-topology solved the problem. Reading 2x3 works perfect!  | ||
| + | ** A: If not adding new devices, disabling 1-wire search after module-loading resolves the device-disconnect issue. Simply put  | ||
| + | ::<code>wire search_count=5</code>  | ||
| + | :: in your <code>/etc/modules</code> (I'm not using DTB) to allow only 5 (initial) searches.  | ||
| + | |||
| + | ====Multiple 1-wire buses====  | ||
| + | :* [https://www.raspberrypi.org/forums/viewtopic.php?t=156734 multiple w1 buses with device trees]:  | ||
| + | Add the following to /boot/config.txt:  | ||
| + | |||
| + |   dtoverlay=w1-gpio,gpiopin=4  | ||
| + |   dtoverlay=w1-gpio,gpiopin=22  | ||
| + | |||
| + | :* OBSOLETE! Inspired and guided by http://www.raspberrypi.org/forums/viewtopic.php?p=513312#p513312, I've patched my 3.12.y kernel <code>arch/arm/mach-bcm2708/bcm2708.c</code> (patch file http://holyhead.de/RaspberryPi/bcm2708-multiple_w-1.patch-3.12.21.txt). Applying this patch to newer kernel versions is straight forward. (Currently I'm running 4.1.10 without device tree.)  | ||
| + | ::* Note: Some kernel versions ago, device trees were introduced for Raspbian, see for example http://www.raspberrypi.org/documentation/configuration/device-tree.md<BR>So far, I don't know if this works with device trees.  | ||
| + | :* OBSOLETE! I've cross-compiled the kernel on a linux-VM, using the instructions of http://elinux.org/RPi_Kernel_Compilation (compiling on the RaspberryPi takes 6 hours [http://wiki.gentoo.org/wiki/Raspberry_Pi_Kernel_Compilation] or much more [http://elinux.org/RPi_Kernel_Compilation]).  | ||
| + | |||
| + | ====Some 1-wire internals====  | ||
| + | * https://www.kernel.org/doc/Documentation/w1/w1.generic  | ||
| + | * [http://www.maximintegrated.com/en/app-notes/index.mvp/id/148 GUIDELINES FOR RELIABLE LONG LINE 1-WIRE NETWORKS]  | ||
| + | * http://blog.gegg.us/2013/03/4-different-methods-of-1-wire-access-on-raspberry-pi/  | ||
| + | |||
| + | ===Compiling own kernel===  | ||
| + | |||
| + | * Some hints on cross-compiling:  | ||
| + | :* http://elinux.org/RPi_Kernel_Compilation  | ||
| + | :* https://github.com/raspberrypi/linux/tree/rpi-3.12.y/arch/arm/mach-bcm2708  | ||
| + | :* https://github.com/notro/rpi-source/wiki  | ||
| + | :* https://github.com/notro/rpi-source/wiki/Examples-on-how-to-build-various-modules  | ||
| + | :* http://www.raspberrypi.org/forums/viewtopic.php?f=44&t=19489&start=75  | ||
| + | :* http://www.bootc.net/projects/raspberry-pi-kernel/  | ||
| + | :* http://www.bootc.net/archives/2012/05/26/how-to-build-a-cross-compiler-for-your-raspberry-pi/  | ||
| + | :* http://www.satsignal.eu/raspberry-pi/kernel-recompile.html  | ||
| + | :* http://www.satsignal.eu/raspberry-pi/kernel-cross-compile.html  | ||
| + | :* http://www.gtkdb.de/index_36_2087.html  | ||
| + | |||
| + | * extract kernel config from image:  | ||
| + | ::<code>scripts/extract-ikconfig kernel-image</code>  | ||
| + | ::*(extract-ikconfig is part of the kernel sources)  | ||
| + | ::*newer kernels may store their config in a module: modules/4.*/kernel/kernel/configs.ko  | ||
| + | |||
| + | ===Device Trees===  | ||
| + | |||
| + | :* http://www.raspberrypi.org/documentation/configuration/device-tree.md  | ||
| + | :* https://www.kernel.org/doc/Documentation/devicetree/bindings/gpio/gpio.txt  | ||
| + | |||
| + | :* http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=97216  | ||
| + | :* http://raspberrypi.stackexchange.com/questions/27073/firmware-3-18-x-breaks-i2c-spi-audio-lirc-1-wire-e-g-dev-i2c-1-no-such-f  | ||
| + | :* http://www.forum-raspberrypi.de/Thread-tutorial-geraetetreiber-und-device-tree-dt (German)  | ||
| + | |||
| + | :* http://xillybus.com/tutorials/device-tree-zynq-1  | ||
| + | |||
| + | ===What about updates?===  | ||
| + | |||
| + | As I always forget this  | ||
| + | * <code>apt-get update</code> - update package lists  | ||
| + | * <code>apt-get upgrade</code> - upgrade installed packages  | ||
| + | * <code>rpi-update</code> - update kernel and modules  | ||
| + | ::use <code>SKIP_KERNEL=1 rpi-update</code> to update the RPi firmware, but keep the current kernel  | ||
| + | ::set <code>SKIP_REPODELETE=1</code> to keep downloaded files (by default: <code>/root/.rpi-firmware</code>)  | ||
| + | |||
| + | Kernel Sources  | ||
| + | * https://github.com/notro/rpi-source gets the source data from https://github.com/Hexxeh/rpi-firmware and https://github.com/raspberrypi/linux/  | ||
| + | |||
| + | ===Hints for reading Kernel Panics===  | ||
| + | |||
| + | * http://ptgmedia.pearsoncmg.com/images/013147751X/downloads/013147751X_book.pdf  | ||
| + | : p290:  | ||
| + |  export CONFIG_DEBUG_INFO=1  | ||
| + |  make kernel/sysctl.o  | ||
| + |  objdump -d -S kernel/sysctl.o > kernel/sysctl.dump  | ||
| + | |||
| + | or, with my in cross-compiling setup:  | ||
| + | |||
| + |  DOMAKE drivers/w1/slave/w1_therm.o  | ||
| + |  ${CCPREFIX}objdump -d -S w1_therm.o   | ||
| + | |||
| + | * http://www.opensourceforu.com/2011/01/understanding-a-kernel-oops/  | ||
| + | |||
| + | * http://www.lowlevel.eu/wiki/ARM-OS-Dev_Teil_2_%E2%80%93_Assembler_101  | ||
| + | |||
| + | ==Attaching a LCD display (HD44780 controller)==  | ||
| + | |||
| + | ===Wiring and Specs===  | ||
| + | |||
| + | * Specs  | ||
| + | ** ftp://imall.iteadstudio.com/IM120424018_EONE_2004_Characters_LCD/SPE_IM120424018_EONE_2004_Characters_LCD.pdf  | ||
| + | ** http://www.adafruit.com/datasheets/HD44780.pdf  | ||
| + | |||
| + | * http://www.schnatterente.net/technik/raspberry-pi-32-zeichen-hitachi-hd44780-display (German)  | ||
| + | |||
| + | *  http://www.pro-linux.de/artikel/2/1624/5,die-anzeige-hardware-und-software.html  | ||
| + | |||
| + | * https://learn.adafruit.com/drive-a-16x2-lcd-directly-with-a-raspberry-pi/wiring  | ||
| + | |||
| + | * https://github.com/perryflynn/raspberrypi-misc/tree/master/charlcd_4x20_cmd  | ||
| + | |||
| + | * http://obrazki.elektroda.pl/5028699400_1384164963.jpg  | ||
| + | |||
| + | ===Misc===  | ||
| + | |||
| + | * http://www.makerspaceuk.com/lcd-temp-sensor/  | ||
| + | |||
| + | * http://anwendungsentwickler.ws/blog/kategorien/raspberry-pi/4x20-lcd-screen-mit-dem-raspberry-pi.html (German)  | ||
| + | |||
| + | ==Controlling the display==  | ||
| + | |||
| + | * Python [https://pypi.python.org/pypi/RPi.GPIO RPi.GPIO]  | ||
| + | |||
| + | ===LCDProc hints===  | ||
| + | |||
| + | * Pi & GPIO powered HD44780 LCD: http://www.boeeerb.co.uk/pi-lcd/  | ||
| + | |||
| + | * https://metacpan.org/pod/Net::LCDproc  | ||
| + | |||
| + | * http://www.raspberrypi.org/forums/viewtopic.php?f=35&t=63412  | ||
| + | |||
| + | * http://lcdproc.sourceforge.net/docs/current-user.html  | ||
| + | |||
| + | * http://lcdproc.sourceforge.net/docs/current-dev.html  | ||
| + | |||
| + | * http://tuxgraphics.org/electronics/200504/article375.shtml  | ||
| + | |||
| + | ==Todo and Miscellaneous==  | ||
| + | |||
| + | ===OpenELEC===  | ||
| + | |||
| + | * http://wiki.openelec.tv/index.php/Guide_to_add_your_own_remote  | ||
| + | |||
| + | ===Lirc===  | ||
| + | * http://powerpi.de/jede-infrarot-fernbedienung-am-raspberry-pi-2-nutzen-so-installierst-du-guenstig-einen-ir-empfaenger-teil-1/ (German)  | ||
| + | |||
| + | ===Backports===  | ||
| + | |||
| + | * https://gist.github.com/martijnvermaat/7864115  | ||
| + | * http://superuser.com/questions/644586/how-to-upgrade-to-latest-git-on-debian-7  | ||
| + | |||
| + | ===Collection of misc stuff to check - things I might) try sometime===  | ||
| + | |||
| + | * http://www.raspipress.com/2013/05/install-and-run-raspbian-from-a-usb-flash-drive/  | ||
| + | |||
| + | * [http://en.wikipedia.org/wiki/F2FS f2fs]  | ||
| + | :* [http://www.raspberrypi.org/forums/viewtopic.php?f=31&t=65330 F2fs, Ext4, FAT USB Benchmark]  | ||
| + | :* [http://forum.xda-developers.com/showthread.php?t=2697069 File System Performance: F2FS vs EXT4]  | ||
| + | |||
| + | * https://github.com/yuraa/Raspberry-Pi-Heartbeat  | ||
| + | |||
| + | * http://raspberrywebserver.com/serveradmin/back-up-your-pi-to-your-google-drive.html  | ||
* [http://www.raspberrypi.org/archives/5282 Mathematica on Raspberry Pi, for free]  | * [http://www.raspberrypi.org/archives/5282 Mathematica on Raspberry Pi, for free]  | ||
| + | :* also works in RasPi emulator, e.g. http://www.heise.de/ct/inhalt/2014/7/160/ (German, teaser to article)  | ||
| + | |||
| + | * NAS/Samba  | ||
| + | :* try adjusting 'socket options' in (/etc/samba/smb.conf) to increase NAS performance: some websites recommend to disable the 'socket options', some recommend to set:  | ||
| + | :<code>socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536</code>  | ||
| + | |||
| + | * http://linuxtortures.blogspot.fr/2012/06/cross-compiling-and-cross-debugging-c.html  | ||
| + | |||
| + | ===Things done===  | ||
| + | |||
| + | * Adjust swap file (size, location -> (ext4) HDD - too slow?): http://manpages.ubuntu.com/manpages/hardy/man8/dphys-swapfile.8.html  | ||
| + | |||
| + | * http://iqjar.com/jar/sending-emails-from-the-raspberry-pi/  | ||
| + | * https://wiki.archlinux.org/index.php/SSMTP  | ||
| + | |||
| + | ==Some links (aka bookmark lists)==  | ||
| + | |||
| + | Project sites  | ||
| + | |||
| + | * [http://www.cl.cam.ac.uk/projects/raspberrypi/ University of Cambridge / Raspberry Pi Computer Laboratory]  | ||
| + | * [https://www.raspiprojekt.de/ raspiprojek] (German)  | ||
| + | * http://www.vanheusden.com/misc/rpi.php  | ||
| − | * [[  | + | Blogs, forums, etc  | 
| + | * http://www.raspberrypi.org/phpBB3/  | ||
| + | * [http://forum.stmlabs.com/forumdisplay.php?fid=6 Stm Labs Forum / Raspbmc]  | ||
| + | * [http://www.welzels.de/blog/projekte/raspberry-pi/ Wel!s Blog] (German)  | ||
| + | * [http://jankarres.de/category/raspberry-pi/ Raspberry Pi Blog of Jan Karres] (German)  | ||
| + | * http://www.forum-raspberrypi.de/ /(German)  | ||
| + | * http://raspberrycenter.de/ (German)  | ||
| + | * http://archlinuxarm.org/forum/viewforum.php?f=31&sid=57987232ca9177c35eb3ef7fdf6b3341  | ||
| − | + | * [[wikipedia:Raspberry_Pi Raspberry Pi in Wikipedia]]  | |
| − | + | Miscellaneous  | |
| − | + | * [http://www.raspberrypi.org/downloads New Out Of Box Software (Recommended)]  | |
| + | * [http://elinux.org/R-Pi_Hub R-Pi_Hub]  | ||
| + | * [https://github.com/prasmussen/gdrive Google Drive CLI]  | ||
| − | + | Manuals  | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | *   | + | * https://github.com/raspberrypi/documentation  | 
| − | + | * [http://debian-handbook.info/browse/stable/ The Debian Administrator's Handbook]  | |
Latest revision as of 13:52, 20 February 2020
[edit] Cookbook
My collection of hints, tips and tricks (supporting my memory and maybe also helping others).
[edit] External USB drives
-  Automount USB-Drives in Raspbian
- One may use USBmount and autofs
 - I prefer udevil, see below
 
 
- Install ntfs-3g if you need write access to ntfs file systems
 
-  How to increase performance?
- Mount with option 'noatime' or 'relatime'
 - Mount without option sync (e.g. keep default async)
 - If using ntfs-3g (fuse) file system, try mounting with option 'big_writes', see for example http://obihoernchen.net/wordpress/tag/big_writes/
 
 
[edit] udevil
- example for manual mounting:
 
udevil mount /dev/sda1
- auto-mounting via udev-rule, see for example http://lsdlinux.org/wiki/doku.php?id=auto_mounting#using_udev_rule (I just copied the 95-udevil-mount.rules file from an OpenElec installation (http://www.raspberrypi.org/downloads) )
 
-  my build-steps (maybe there's a simpler way, but this worked...):
- download 0.4.3/udevil_0.4.3-1_all.deb from https://github.com/IgnorantGuru/udevil/tree/pkg, e.g. using wget
 -  extract deb-package via 
ar vx udevil_0.4.3-1_all.deb -  extract data archive 
tar xzvf data.tar.gz - change to tar usr/share/devil/src
 -  untar 
tar xvfJ udevil-current.tar.xz -  
cd udevil-0.4.3 -  
mv distros/debian -  execute 
dpkg-buildpackage - If all required packages are installed, this results in udevil_0.4.3-1_armhf.deb. If the build fails due to missing packages, install the missing packages, and re-do the dpkg-buildpackage step
 -  Install via 
sudo dpkg -i udevil_0.4.3-1_armhf.deb 
 
[edit] Samba server / NAS
- How to install?
 
-  Slow disc performance?
- see 'Slow USB drives' above
 - use Raspbian, etc without GUI to get as much CPU power for file-transfer as possible (OpenELEC or RaspBMC constantly use about 10-20% CPU load when idle, use top to check!)
 
 
- Configuration and tuning
 
-  If your /var/log/samba/log.smbd fills up with printing/print_cups.c:110(cups_connect) Unable to connect to CUPS server localhost messages, try http://www.sotechdesign.com.au/samba-log-showing-error-failed-to-retrieve-printer-list/
I also created an empty/etc/printcapto avoid Unable to open printcap file /etc/printcap for read messages. 
- I don't need sound:
 
root@pi ~ # cat /etc/modprobe.d/snd-blacklist.conf # I don't need sound blacklist snd blacklist snd_pcm blacklist snd_soc_core blacklist snd_soc_bcm2708_i2s
[edit] Trying to reduce number of disk writes (SD card)
I'm using RRD with a cron job (currently observing pi's temperature and frequency). I hope that my SD card has proper wear-leveling (and currently my 8 GB card is less than half full), so that the frequent writing should not be a problem. But still, I want to reduce the number of writes to the SD card (in order to not bust it's lifetime).
Here's what I've done:
-  Edit 
/etc/default/cronand setEXTRA_OPTS="-L 0"to disable logging (I don't need these) -  Avoid entries like 
pam_unix(cron:session): session closed for user piin/var/log/auth.log-  Edit 
/etc/pam.d/cronand comment the line@include common-session-noninteractive([1]) 
 -  Edit 
 
- or
-  Edit 
/etc/pam.d/common-session-noninteractiveas shown here: http://ubuntuforums.org/showthread.php?t=1256801&p=10283830#post10283830 
 -  Edit 
 
-  I've implemented a persist tmpfs as discussed in http://www.a-netz.de/2013/02/persistent-storage-with-ramdisks/ and http://www.observium.org/wiki/Persistent_RAM_disk_RRD_storage (and, I guess, many other sites)
- moved all the .rrd files as well as the created images to my persistent-ramdisk location
 -  moved some directories with frequent writes to my persistent-ramdisk location and added corresponding sym-links
-  
/var/spool -  
/var/log -  
/var/cache/samba 
 -  
 -  edited 
/etc/insserv.confto add the persist-ramdisk as a requirement to $local_fs; the original definition can still be accessed as $local_fs_orig: 
 
$local_fs_orig +mountall +mountall-bootclean +mountoverflowtmp +umountfs # we need the sym-link data in /var/log and /var/spool to be available $local_fs $local_fs_orig +persist-ramdisk
-  
/etc/init.d/persist-ramdiskdepends on $local_fs_orig, and the other init-scripts keep their dependency to $local_fs. This ensures that /var/log and /var/spool are ok when starting & stopping other init scripts. 
-  
 
-  set RAMTMP to yes in 
/etc/default/tmpfsto get tempfs based/tmp 
-  set RAMTMP to yes in 
 
Before changing /tmp:
- But still, 
iostatshows quite some data written to the SD card, according toiotopits jbd2, the ::journaling part of ext4 (pi is 'idle', only some services run, and the ext4 partition is mounted with noatime). - I need to do more digging...
 
- But still, 
 
After changing /tmp:
- It looks like the unwanted writes to SD are gone. I'll watch it for some time...
 
[edit] Useful stuff and Q&A
- Q: Why does my Pi restart when hotplugging a USB drive?
 
- Q: Does Raspberry support WOL?
 
- A: No: the Ethernet chip is connected via USB (http://www.raspberrypi.org/forum/viewtopic.php?f=53&t=39714)
 
- Q: The new password is to short, or too simple
 
-  A: Try adjusting the PAM settings in 
/etc/pam.d/common-password:- remove the 'obscure' setting for pam_unix.so, and add your desired minimum length (e.g. minlen=2)
 
password [success=1 default=ignore] pam_unix.so sha512 minlen=2
 
- !! This is not recommended if your box is connected to the internet or if it contains private data noone should know !!
 - But it's nice for testing (if you cannot or do not want to use auto-login.)
 
- !! This is not recommended if your box is connected to the internet or if it contains private data noone should know !!
 
- Q: How to configure static IP?
 
-  A: In /etc/network/interfaces:
iface eth0 inet static
address 192.168.0.31
netmask 255.255.255.0
gateway 192.168.0.1
 
- Q: How to read core temperature, etc?
 
-  A: vcgencmd:
vcgencmd measure_temp
vcgencmd measure_clock arm
 
-  External USB HDD spin down
- hdparm does not work with my WD Elements (SG_IO: bad host status: 0x7)
 - hd-idle works:
 
 
hd-idle -a sda -i 600- for details, see for example http://blog.is-a-geek.org/festplatten-in-den-standby-modus-versetzen-unter-ubuntu-desktopserver-mit-hd-idle (German)
 
- Q: How to avoid update of a certain package?
 
-  A: Put package on hold ([2] (German)):
echo <packagename> "hold" | dpkg --set-selections
 
- wikipedia:Raspcontrol with nginx
 
- Q: How many bytes are written to my (SD) disc?
 
-  A: Use 
iostathttp://www.mybinarylife.net/2012/08/linux-iostat-command.html -  A: Use 
iotophttp://guichaz.free.fr/iotop/ -  A: Raw data of the kernel can be found in files 
/proc/diskstatsand/sys/block/DEVNAME/stathttps://www.kernel.org/doc/Documentation/iostats.txt 
- Q: How to reduce number of ext-fs checks?
 
-  A: 
tune2fs -c 60 /dev/sda1Change maximum mount count to 60 -  A: 
tune2fs -i 12m /dev/sda1Change check interval to 12 months - fore more details: http://wiki.ubuntuusers.de/Dateisystemcheck (German)
 
- Q: Fix smsc95xx 1-1.1:1.0: eth0: kevent 2 may have been dropped
 
-  A: http://wood1978.techarea.org/~wood/wordpress/2013/04/03/fix-smsc95xx-1-1-11-0-eth0-kevent-2-may-have-been-dropped-on-raspberry-pi-with-arch-linux
- Modifying the sysctl.conf values reduced the kevent-2 messages; I did not yet set smsc95xx.turbo_mode=N
 
 
[edit] Overclocking
-  I only set overclocking via 
raspi-config 
- Turbo: (Short) Raspberry stress test were ok. But I got an SD card error/corruption when doing a download and a dd-image of the SD card (according to http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=57907 the SD card error could be OC related.)
 
- Luckily, I could recover all my data, see below.
 
- Medium: Raspberry is stable. I've observed two file system corruption which might be related to overclocking (see [3] and its links).
 
- Underclocking to 600 MHz
 
echo "600000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq- Raspberry was stable for some hours, but it got frozen later on. I don't now if really related to underclocking. As the temperature did not drop significantly (stayed around 45°C), and the Raspberry CPU has no sleep modes either (for power saving), I did not retry.
 
-  Adjusting the ondemand-governor
- https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt
 -  set 
/sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factorto 10 [4]- I had hoped this reduces the 1-wire CRC errors/device-disconnects problems, but with heavy (IO-) load (e.g. backup), 1wire sensors still get disconnected.
 
 
 
[edit] Stress test and benchmarks
[edit] SD card issues
After my (Turbo-overclocked) Raspberry fried my 8 GB SD card, I had not hoped to to be able to recover any data, but I tried anyway. The card was only 1 week old, I have not written that much data too it (<4 GB, mainly the Raspbian image). I could still use this card for some time (see below), but finally I got a corrupted file system and could no longer repair it. That's when I re-installed Raspbian on a new SD card.
Maybe I should try running from USB sometime?
[edit] Recovery
- Creating a binary image of the SD card with my PC using Win32 Disk Imager resulted in IO errors at about 17%.
 -  The partition table of my SD card was still ok. I hoped to at least recover some text data of my ext4 partition, and thus I created an image using 
dd conv=sync,noerror if=/dev/sdb2 of=rasp-image.img bs=1Mon my Linux machine (optionconv=noerrorignores any errors, sync pads read-errors with zeros). The resulting image could not be mounted using a loop device. -  Fortunately, 
fsck.ext4 raspberry-image.binwas able to repair the image, which I then could successfully mount on my Linux machine usingmount -o loop rasp-image.img /mnt, and at a first glance, everything looked ok. So, I was at least able to get to my data. - On a later 'event', I dd-ed the repaired image back to the Raspberry, and could boot again.
 - On another a later 'event', I just fsck-ed the /dev/sdb2 using Linux, and could boot again... but I did not have luck this time - some files were gone.
 - I was just about to return the SD card, but for curiosity, I tried what happens if I re-install the (original) Raspbian image. To my surprise, Win32 Disk Imager did not report any error. And even more surprising, after writing the image, I was able to create an image of the whole disk without error. It looks like the card remapped some spare sectors.
 -  My Raspberry successfully booted from this new image. I then used 
raspi-configto expand the root-fs (I've done this on my first installation as well). With Linux I was able toddmy repaired image to the repaired SD. The card booted as if nothing had happened... - But after some weeks, my Raspberry fried the SD card again, and some weeks later again ... And finally I could not get my pi to boot with this card. However, I can still read the data linux. Moving data to a new card... (easier said than done if the new card is slightly smaller... but, see below for resizing... and sometimes a fresh install is even less painful).
 
[edit] Reminders: dd, dd_rescue, losetup, mount and others
- Example partition table printed by fdisk:
 
/dev/sdb: 7861 MB, 7861174272 bytes, 15353856 sectors Units = Sektoren of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Gerät boot. Anfang Ende Blöcke Id System [...] /dev/sdb3 15288320 15353855 32768 83 Linux
- Byte-offset of sdb3: 7827619840 = 15288320 * 512
 
- Mount partition to /dev/loopN partition for repair, etc.
 
losetup -o 7827619840 --find --show /dev/sdb- --show prints the used /dev/loopN device
 
- Directly mount partition using loop device:
 
mount -o loop,offset=7827619840 /dev/sdb /mnt
- http://www.garloff.de/kurt/linux/ddrescue/
 - http://softwarebakery.com/shrinking-images-on-linux
 - http://www.tehfear.com/2007/10/08/resize-loop-disk-image/
 - http://wiki.ubuntuusers.de/dd (German)
 - http://askubuntu.com/questions/69363/mount-single-partition-from-image-of-entire-disk-device
 
[edit] Some 1-Wire Stuff
[edit] Temperature Sensor DS1820
-  How to?
- http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/temperature/
 - https://www.raspiprojekt.de/anleitungen/schaltungen/9-1wire-mit-temperatursensor-ds18b20.html?showall=&start=1 (German)
 - http://kopfkino.irosaurus.com/tutorial-ds18s20-temperatur-sensor-an-einem-raspberry-pi/ (German)
 - http://raspberrywebserver.com/cgiscripting/rpi-temperature-logger/
 - http://elinux.org/RPi_Low-level_peripherals
 - http://www.sdyoung.com/home/using-1-wire-ds18b20par-sensors-in-parasitic-mode-on-raspi-with-custom-gpio-pin/ (German)
 
 - I have two DS18B20 and log temperatures using rrdtool.
 
-  When copying data via samba, I frequently get read-errors (CRC errors), or device-disconnects (/sys/bus/w1/devices/<id>/w1_slave temporarily not available). 
- Q: Is this due to overclocking with using dynamic governor?
 - A: No - also occurs without overclocking (but less frequent?)
 - Q: Or is this due to voltage-problems?
 - A: No - also occurs without over-voltage
 - Q: Or something else?
 - A: I have the impression that this is connected to electrical problems (e.g. timing, voltage) on my 1-wire when there's a lot of IO (USB, ethernet). Using 3 sensors works almost all the time (without overclocking), but using 4 or more sensors (2 connected star topologies, very bad for 1-wire GUIDELINES FOR RELIABLE LONG LINE 1-WIRE NETWORKS), almost always fails to read values on most of the sensors.
 - A:Implement multiple 1-wire interfaces (see below), using 1 for each star-topology solved the problem. Reading 2x3 works perfect!
 - A: If not adding new devices, disabling 1-wire search after module-loading resolves the device-disconnect issue. Simply put
 
 
wire search_count=5-  in your 
/etc/modules(I'm not using DTB) to allow only 5 (initial) searches. 
[edit] Multiple 1-wire buses
Add the following to /boot/config.txt:
dtoverlay=w1-gpio,gpiopin=4 dtoverlay=w1-gpio,gpiopin=22
-  OBSOLETE! Inspired and guided by http://www.raspberrypi.org/forums/viewtopic.php?p=513312#p513312, I've patched my 3.12.y kernel 
arch/arm/mach-bcm2708/bcm2708.c(patch file http://holyhead.de/RaspberryPi/bcm2708-multiple_w-1.patch-3.12.21.txt). Applying this patch to newer kernel versions is straight forward. (Currently I'm running 4.1.10 without device tree.) 
-  Note: Some kernel versions ago, device trees were introduced for Raspbian, see for example http://www.raspberrypi.org/documentation/configuration/device-tree.md
So far, I don't know if this works with device trees. 
-  Note: Some kernel versions ago, device trees were introduced for Raspbian, see for example http://www.raspberrypi.org/documentation/configuration/device-tree.md
 
- OBSOLETE! I've cross-compiled the kernel on a linux-VM, using the instructions of http://elinux.org/RPi_Kernel_Compilation (compiling on the RaspberryPi takes 6 hours [5] or much more [6]).
 
-  OBSOLETE! Inspired and guided by http://www.raspberrypi.org/forums/viewtopic.php?p=513312#p513312, I've patched my 3.12.y kernel 
 
[edit] Some 1-wire internals
- https://www.kernel.org/doc/Documentation/w1/w1.generic
 - GUIDELINES FOR RELIABLE LONG LINE 1-WIRE NETWORKS
 - http://blog.gegg.us/2013/03/4-different-methods-of-1-wire-access-on-raspberry-pi/
 
[edit] Compiling own kernel
- Some hints on cross-compiling:
 
- http://elinux.org/RPi_Kernel_Compilation
 - https://github.com/raspberrypi/linux/tree/rpi-3.12.y/arch/arm/mach-bcm2708
 - https://github.com/notro/rpi-source/wiki
 - https://github.com/notro/rpi-source/wiki/Examples-on-how-to-build-various-modules
 - http://www.raspberrypi.org/forums/viewtopic.php?f=44&t=19489&start=75
 - http://www.bootc.net/projects/raspberry-pi-kernel/
 - http://www.bootc.net/archives/2012/05/26/how-to-build-a-cross-compiler-for-your-raspberry-pi/
 - http://www.satsignal.eu/raspberry-pi/kernel-recompile.html
 - http://www.satsignal.eu/raspberry-pi/kernel-cross-compile.html
 - http://www.gtkdb.de/index_36_2087.html
 
- extract kernel config from image:
 
scripts/extract-ikconfig kernel-image- (extract-ikconfig is part of the kernel sources)
 - newer kernels may store their config in a module: modules/4.*/kernel/kernel/configs.ko
 
[edit] Device Trees
[edit] What about updates?
As I always forget this
-  
apt-get update- update package lists -  
apt-get upgrade- upgrade installed packages -  
rpi-update- update kernel and modules 
- use 
SKIP_KERNEL=1 rpi-updateto update the RPi firmware, but keep the current kernel - set 
SKIP_REPODELETE=1to keep downloaded files (by default:/root/.rpi-firmware) 
- use 
 
Kernel Sources
- https://github.com/notro/rpi-source gets the source data from https://github.com/Hexxeh/rpi-firmware and https://github.com/raspberrypi/linux/
 
[edit] Hints for reading Kernel Panics
- p290:
 
export CONFIG_DEBUG_INFO=1 make kernel/sysctl.o objdump -d -S kernel/sysctl.o > kernel/sysctl.dump
or, with my in cross-compiling setup:
DOMAKE drivers/w1/slave/w1_therm.o
${CCPREFIX}objdump -d -S w1_therm.o 
[edit] Attaching a LCD display (HD44780 controller)
[edit] Wiring and Specs
- Specs
 
[edit] Misc
[edit] Controlling the display
- Python RPi.GPIO
 
[edit] LCDProc hints
- Pi & GPIO powered HD44780 LCD: http://www.boeeerb.co.uk/pi-lcd/
 
[edit] Todo and Miscellaneous
[edit] OpenELEC
[edit] Lirc
[edit] Backports
- https://gist.github.com/martijnvermaat/7864115
 - http://superuser.com/questions/644586/how-to-upgrade-to-latest-git-on-debian-7
 
[edit] Collection of misc stuff to check - things I might) try sometime
- also works in RasPi emulator, e.g. http://www.heise.de/ct/inhalt/2014/7/160/ (German, teaser to article)
 
- NAS/Samba
 
- try adjusting 'socket options' in (/etc/samba/smb.conf) to increase NAS performance: some websites recommend to disable the 'socket options', some recommend to set:
 
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
[edit] Things done
- Adjust swap file (size, location -> (ext4) HDD - too slow?): http://manpages.ubuntu.com/manpages/hardy/man8/dphys-swapfile.8.html
 
- http://iqjar.com/jar/sending-emails-from-the-raspberry-pi/
 - https://wiki.archlinux.org/index.php/SSMTP
 
[edit] Some links (aka bookmark lists)
Project sites
- University of Cambridge / Raspberry Pi Computer Laboratory
 - raspiprojek (German)
 - http://www.vanheusden.com/misc/rpi.php
 
Blogs, forums, etc
- http://www.raspberrypi.org/phpBB3/
 - Stm Labs Forum / Raspbmc
 - Wel!s Blog (German)
 - Raspberry Pi Blog of Jan Karres (German)
 - http://www.forum-raspberrypi.de/ /(German)
 - http://raspberrycenter.de/ (German)
 - http://archlinuxarm.org/forum/viewforum.php?f=31&sid=57987232ca9177c35eb3ef7fdf6b3341
 
Miscellaneous
Manuals