使用WebIOPi控制树莓派的GPIO引脚电平

1、必须安装python开发版,即python-dev,不然后面很多软件都会安装不成功,提示目录无法找到之类的。

sudo apt-get install python-dev

正常情况下,以上在线安装命令即可安装成功,但运气不好的是,笔者在安装时,在线命令安装资源包404。
python2.7-dev_2.7.3~rc2-2.1_armhf.deb找不到,后来只能手动找了以下包安装。
阅读全文

编译树莓派操作系统内核

首先在https://github.com/raspberrypi/linux/上下载最新的内核源代码,如当前最新的内核下载连接是:https://github.com/raspberrypi/linux/archive/rpi-3.6.y.zip

然后安装编译工具如gcc、make、patch等,可以使用apt-get install gcc make命令,再检查系统时间,如果时间不对,可以手动设置一下时间,也可以重新启动ntp服务,自动对时。将下载的内核文件放在随便找个目录放着,并用unzip解压它,

unzip rpi-3.2.27.zip

如果命令不成功则可能是没有安装unzip,可以使用apt-get install unzip命令安装就行了。
开始编译内核,首先使用以下命令对内核进行配置。

make menuconfig

载图太麻烦了,所以我直接用鼠标选了图,大家将就的看看吧。
需要说明的是在System Type这一项里,一定要选择合适的cpu也就是armBCM2708这个型号,其它的东西大家可以自己选择,需要什么用星号表示将这一项编译进内核,M表示编译成模块。

.config - Linux/arm 3.2.27 Kernel Configuration

 Arrow keys navigate the menu.   selects submenus --->.  Highlighted letters are
 hotkeys.  Pressing  includes,  excludes,  modularizes features.  Press
 to exit, <?> for Help, </> for Search.  Legend: [*] built-in  [ ] excluded   module  < >
 module capable

           [*] MMU-based Paged Memory Management Support
               ARM system type (Broadcom BCM2708 family)  --->
               *** System MMU ***
               Broadcom BCM2708 Implementations  --->
               *** Processor Type ***
           -*- Support ARM V6 processor
               *** Processor Features ***
           [*] Support Thumb user binaries
           [ ] Disable I-Cache (I-bit)
           [ ] Disable D-Cache (C-bit)
           [ ] Disable branch prediction
           [*] Use non-cacheable memory for DMA
           [ ] ARM errata: FSR write bit incorrect on a SWP to read-only memory
           -*- ARM errata: Invalidation of the Instruction Cache operation can fail
           [ ] ARM errata: Possible cache data corruption with hit-under-miss enabled
<select>    < Exit >    < Help ></select>
<select>


选择完了后可以使用左右键来进行选择[Select] [ Exit ] [ Help ],退出时会自己保存配置。

如果你的在做make menuconfig时没有看到上面的画面,而是看到一堆英文,则一般是没有安装libncurses5-dev开发库,使用apt-get install libncurses5-dev来安装就行了。

当选择完成后直接make就可以了,make程序会自己编译内核以及模块。安装模块使用make modules_install命令,在make运行完成后需要重新生成一个镜像。这需要使用其它的工具。在https://github.com/raspberrypi/tools上面有一个目录mkimage,这个目录下存有这些工具,将这里面的文件全部下载下来,存放在一个目录中,然后执行下面的命令:

python imagetool-uncompressed.py 你的源代码目录/arch/arm/boot/Image

很快这个命令就会执行完成,你会发现在目录下有一个kernel.img的文件,这个就是你的新内核,将它覆盖boot目录下的kernel.img文件,现在你可以使用新内核来启动你的pi了。
PS:make内核时需要很长时间,我编译内核加上711个模块用了8个多小时。

显示树莓派状态信息的PHP页面

将下面的代码复制下来保存为php页面,访问这个页面就能查看实时的树莓派状态信息了。原理是打印shell_exec的结果。

<?php
    /**
    * state
    *
    * @package custom
    */
?>
	<article class="content">
	<section class="post">
		<div id='server_state'>
			<h5>uname -a</h5>
			<pre><?php echo shell_exec("uname -a"); ?></pre><br/>
    
			<h5>Uptime</h5>
			<pre><?php echo ltrim(shell_exec("uptime"), " "); ?></pre><br/>
    
			<h5>cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq </h5>
			<pre>
				<?php
					$t = shell_exec("cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq");
        	echo sprintf("%s/1000=%sKHz", str_replace("\n", "", $t), $t/1000);
				?>
			</pre><br/>
    
			<h5>cat /sys/class/thermal/thermal_zone0/temp </h5>
			<pre>
				<?php
					$t = shell_exec("cat /sys/class/thermal/thermal_zone0/temp");
        echo sprintf("%s/1000=%sC°", str_replace("\n", "", $t), $t/1000);
       ?>
      </pre><br/>
    
			<h5>free -h</h5>
			<pre><?php echo shell_exec("free -h"); ?></pre><br/>
    
			<h5>cat /proc/cpuinfo</h5>
			<pre><?php echo shell_exec("cat /proc/cpuinfo"); ?></pre>
</div>

via