树莓派安装配置(从零开始)B+

来源:互联网 发布:逆袭网络剧第三集土豆 编辑:程序博客网 时间:2024/06/06 07:32

0.电源是micro usb(安卓电源接口)

1.从官网下载操作系统,用Win32DiskImager写入内存卡。

2.放在路由器下面找到ip并设置静态IP:

命令:sudo vi /etc/network/interfaces

改为:

auto lo

iface lo inet loopback


iface eth0 inet static

address 192.168.1.88
netmask 255.255.255.0
gateway 192.168.1.1


allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

3.电脑网线直连,电脑上安装putty

debian的用户名:pi 密码:raspberry

4.树莓派上安装vnc server,电脑上安装vnc client.默认端口5901。

sudo apt-get update


sudo apt-get install tightvncserver

//设置分辨率

vncserver :1 -geometry 1024×728 -depth 24 

 

//--------------------------------------------------------------------------------------------------------

5. 程序自启动

自启动需要设置  /etc/rc.local.  

tightvncserver自启动出错

方法一:

网上看了自动启动 VNC Server 的方法,但是由于懒,脚本都不写 Init Info,导致更新启动项时出现 LSB Tags 等缺失的警告。现将必要的信息补充完整如下。

首先把以下内容写入 /etc/init.d/tightvncserver


#!/bin/sh
### BEGIN INIT INFO
# Provides: tightvncserver
# Required-Start: $syslog $remote_fs $network
# Required-Stop: $syslog $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts VNC Server on system start.
# Description: Starts tight VNC Server. Script written by James Swineson.
### END INIT INFO

# /etc/init.d/tightvncserver
VNCUSER='pi'
case "$1" in
start)
su $VNCUSER -c '/usr/bin/tightvncserver :1'
echo "Starting TightVNC Server for $VNCUSER"
;;
stop)
pkill Xtightvnc
echo "TightVNC Server stopped"
;;
*)
echo "Usage: /etc/init.d/tightvncserver {start|stop}"
exit 1
;;
esac
exit 0

然后运行:

sudo chmod 755 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults

重启看效果吧。

取消开机启动也很简单,就一行代码:

sudo update-rc.d -f tightvncserver remove


方法二:
在/etc/rc.local中加入
   su -c '/usr/bin/tightvncserver :1'         
直接写:    /usr/bin/tightvncserver  :1会失败



6.交叉编译环境
首先下载最新的编译工具包
git clone git://github.com/raspberrypi/tools.git

完成后可以在当前目录下看到tools文件夹。

把编译链工具安装到 /opt 文件夹下面 需root权限。

cd toolscp -r arm-bcm2708 /opt

配置默认路径,加入编译工具路径,环境变量设置在~/.bashrc中

export PATH=/opt/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin:$PATH

配置编译参数。

export CFLAGS="-O2 -pipe -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -w"

至此 交叉编译环境配置完成


7.安装使用automake

依赖文件,可按如下顺序安装:

1.pkg-config
2.m4
3.autoconf
4.libtool
5.automake

注:在当前环境解压后安装,不要将安装过的文件夹拷贝到另一个环境安装(否则可能出现莫名其妙的错误)。

生成 Makefile 的来龙去脉

首先进入 project 目录,在该目录下运行一系列命令,创建和修改几个文件,就可以生成符合该平台的Makefile文件,操作过程如下:

1) 运行autoscan命令

2) 将configure.scan 文件重命名为configure.in,并修改configure.in文件

eg:

AC_INIT([main], [1.0], [xxx@136.com])    修改

AM_INIT_AUTOMAKE(main,1.0)    添加
AC_OUTPUT([Makefile])                修改

3) 在project目录下新建Makefile.am文件,//并在core和shell目录下也新建makefile.am文件

UTOMAKE_OPTIONS=foreign
bin_PROGRAMS=dom
dom_SOURCES=main.c dom.c soapC.c stdsoap2.c

同时也要包含.h文件

4) 在project目录下新建NEWS、 README、 ChangeLog 、AUTHORS文件

5) 运行aclocal命令

6)运行autoheader命令

7) 运行autoconf命令

8) 运行automake -a命令

make dist  可以进行打包

9) 运行./confiugre脚本


转自:http://www.ibm.com/developerworks/cn/linux/l-makefile/

7.配置lighttpd + cgi编程
lighttpd.conf中内容:
server.document-root = "/webroot/"
include "conf.d/fastcgi.conf"
server.modules +=("mod_cgi")
mimetype.assign   = ( ".png" => "image/png",              //没有该项,浏览器可能会不解析内容,让用户保存或打开
                      ".jpg" => "image/jpeg",
                      ".jpeg" => "image/jpeg",
                      ".html" => "text/html",
                      ".txt" => "text/plain" )
server.port = 80
cgi.assign = (".cgi" => "")

cgi实例:
(1).

<html>

<body>

    <form ACTION="/cgi-bin/mult.cgi">
        <P>计算两个数的乘积,请输入两个乘数。
        <INPUT NAME="m" SIZE="5">
        <INPUT NAME="n" SIZE="5"><BR>
        <INPUT TYPE="SUBMIT" values="提交">
    </form>

</body>

</html>


2. 写cgi源代码(假设文件名为mult.c)

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    char *data;
    long m,n;

    printf("%s\n\n","Content-Type:text/html;charset=gb2312");
    printf("<TITLE>乘法结果</TITLE> ");
    printf("<H3>乘法结果</H3> ");

    data = getenv("QUERY_STRING"); //获得form传来的参数——两个乘数m和n
    if(data == NULL)
        printf("<P>错误!数据没有被输入或者数据传输有问题");
    else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)
        printf("<P>错误!输入数据非法。表单中输入的必须是数字。");
    else
        printf("<P>%ld和%ld的乘积是:%ld。",m,n,m*n);
    return 0;
}

gcc mult.c  -o mult.cgi

3.开启lighttpd 
lighttpd -D -f /webroot/lighttpd.conf

0 0
原创粉丝点击