Skip to content

关于树莓派安装、配置、使用等的技巧、工具。 About the skills and toolkits of installing, configuring raspbian and handbook for raspberry

License

Notifications You must be signed in to change notification settings

yaoqs/Raspberry-Pi-config

Repository files navigation

关于树莓派安装、配置、使用等的技巧、工具
About the skills and toolkits of installing, configuring raspbian and handbook for raspberry

Install

现在树莓派提供全新的一键式安装方法:imager 大大简化了开发人员的操作,提高了安装效率,降低了安装难度。more...

update

getconf LONG_BIT        # 查看系统位数
uname -a            # kernel 版本
/opt/vc/bin/vcgencmd  version   # firmware版本
strings /boot/start.elf  |  grep VC_BUILD_ID    # firmware版本
cat /proc/version       # kernel
cat /etc/os-release     # OS版本资讯
cat /etc/issue          # Linux distro 版本
cat /etc/debian_version     # Debian版本编号

固件更新

sudo rpi-update

EEPROM Boot Loader更新

sudo apt-get install rpi-eeprom
sudo rpi-eeprom-update -a

内核编译

  • 获取升级所需源码 官方网址:https://github.com/raspberrypi 上面列出了树莓派所有的开源软件
    • firmware:树莓派的交叉编译好的二进制内核、模块、库、bootloader
    • linux:内核源码
    • tools:编译内核和其他源码所需的工具——交叉编译器等
    • 我们只需要以上三个文件即可,下面的工程可以了解一下
      • documentation:树莓派离线帮助文档,教你如何使用、部署树莓派(树莓派官方使用教程)
      • userland:arm 端用户空间的一些应用库的源码——vc 视频硬浮点、EGL、mmal、openVG 等
      • hats:Hardware Attached on Top,树莓派 B+ 型板子的扩展板资料
      • maynard:一个 gtk 写成的桌面环境
      • scratch:一个简易、可视化编程环境
      • noobs:一个树莓派镜像管理工具,他可以让你在一个树莓派上部署多个镜像
      • weston:一个应用程序
      • target_fs:树莓派最小文件系统,使用 busybox 制作quake3:雷神之锤 3 有线开发源码 firmwareb
    • 下载
mkdir raspeberrypi_src
cd raspberrypi_src
git clone git://github.com/raspberrypi/firmware.git
git clone git://github.com/raspberrypi/linux.git
git clone git://github.com/raspberrypi/tools.git
  • 编译、提取内核及其模块
    • 获得内核配置文件 在运行的树莓派中运行$ls /proc/
      • 可看到一个叫 config.gz 的文件,他是当前的树莓派配置选项记录文件,我们将他拷出,放入我们的内核源码目录树下。$cp /proc/config /home/pi
      • 我们这里使用前面交过的 samba 拷出并拷入内核源码目录下。在 linux 内核源码下执行:$zcat config.gz > .config
      • 把树莓派的配置文件写入.config。
    • 配置、编译内核
      • 修改内核源码 makefile ARCH 类型和编译器路径$vi Makefile +195
      • 查看、修改配置选项$make menuconfig
      • 编译内核镜像$make在arch/arm/boot目录下可以看到一个叫zImage的文件,就是我们新的内核,但是树莓派需要另外一种格式的镜像,需要进行处理一下,执行以下命令:cd tools/mkimage ./imagetool-uncompressed.py ../../linux/arch/arm/boot/zImage
      • 即可在当前文件夹下看到一个叫kernel.img的文件,就是我们需要的新内核了。提取 modules 上一步其实不但编译出来了内核的源码,一些模块文件也编译出来了,这里我们提取一下,即可在 modules 得到我们需要的模块文件。
cd raspberrypi_src
mkdir modules
cd linux
make modules_install INSTALL_MOD_PATH=../modules
- 升级 RPi 的 kernel、Firmware、lib
  - 升级内核,将新编好的内核拷入 SD 卡,改名为:kernel_new.img。打开 boot 目录下,找到config.txt文件,加入:kernel=kernel_new.img这一行。
  - 升级 boot,将firmware/boot/目录下文件拷入 SD 卡 boot 目录:fbootcode.bin fixup.dat fixup_cd.dat start.elf
  - 更新 vc 库及内核 modules,将编译出来的modules/lib/modules拷入树莓派文件系统/lib下

boot

参见boot目录下README.md

u盘启动

在树莓派3从u盘启动之前,需要从设置了使能usb boot mode的sd启动。该设置树莓派芯片上的OTP(一次性可编程内存),这将使得树莓派能够从usb设备启动。一旦设置了该选项,sd卡就不需要了。注意,OTP一旦做出任何改动,都不能复原。

你可以使用运行raspbian或者raspbian lite的sd卡来设置OTP,如果你还没有这样的sd卡,可按常规方式将系统烧入sd卡。 输入以下代码使能usb boot mode

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

这行代码将'program_usb_boot_mode=1'插入到/boot/cinfig.txt文件的末尾。使用sudo reboot命令重启树莓派后,用以下命令检查OTP设置:

$ vcgencmd otp_dump | grep 17:

17:3020000a

确保输出是’17:3020000a‘,如果输出不是这个,那就说明OTP没有设置成功。

之后,你可以在sd卡的config.txt末尾去掉program_usb_boot_mode=1这行代码,这样把这张sd用在其他树莓派上就不会设置OTP,注意,config.txt文件结尾不能有空行,你可以使用sudo nano /boot/config.txt命令使用nano 编辑器编辑config.txt文件。

os/操作系统

树莓派官方的操作系统是Raspberry Pi OS:

树莓派系统下载地址(Raspberry OS download URL)Download Page

  1. Raspberry Pi OS with desktop and recommended software

顾名思义,就是说带了图形化桌面系统和常用的推荐软件的版本,小白新手建议安装这个,免去后期单独安装软件的烦恼

  1. Raspberry Pi OS with desktop

和第一个版本相比,带了图形化桌面系统,但没有常用的推荐软件,如果你的SD卡比较小,或者进阶者希望自己定义安装哪些软件则可以选择这个版本,后面自行定制安装所需要的软件

  1. Raspberry Pi OS Lite

这个版本不带图形化桌面系统,则只有命令行界面(这才是真正的Linux OS的真面目:-),如果你不需要图形化界面,或者你的设备是Raspberry Pi zero(w,h)等硬件配置比较低(CPU慢,内存小,SD卡特别小)的推荐安装这个版本。

kali in raspberry pi

  1. How to Install Kali Linux on Raspberry Pi? (Complete Guide)
  2. How to install Kali Linux on a USB for the RaspberryPi?

Raspbian 操作系统

树莓派官方提供了 Raspbian 操作系统,一款基于 Debian 优化修改而来的 Linux 发行版,也是最常用的一个版本,专为树莓派而生,通用性强。

Raspbian 系统

此外,你也能在官网下载到 Ubuntu 类或其他诸如专为播放高清电影而生的 OSMC、LibreELEC 等各种版本的系统,如下:

  • Ubuntu MATE
  • Ubuntu Core
  • Ubuntu Server
  • Windows 10 IoT Core
  • OSMC
  • LibreELEC
  • PiNet
  • RISC OS
  • Weather Station
  • IchigoJam RPi

你几乎完全可以将树莓派 4 当做一台完整的台式电脑来使用,而得益于性能的大幅提升,本次升级后,树莓派的应用范围将会又得到了扩展。

raspberrypi/linux

raspberrypi/linux Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/

Windows 10 IoT 系统

除了 Linux 之外,微软也已经跟树莓派基金会达成合作以确保 Windows 10 可以适配树莓派新款产品,如今完美适配树莓派 2 / 3 代的 Windows 10 IoT core 物联网核心版系统已经「免费」提供给用户下载。截稿为止,4 代似乎还未适配。

Windows 10 IoT 树莓派

下载 Win10 IoT 物联网系统 for 树莓派

设置

  • Advanced Options 高级设置 ($ sudo raspi-config)
    • A1 Overscan 是否让屏幕内容全屏显示
    • A2 Hostname 在网上邻居或者路由器能看到的主机名称
    • A3 Memory Split 内存分配,选择给 GPU 多少内存
    • A4 SSH 是否运行 SSH 登录,建议开启此选项,以后操作 PI 方便,有网络就行,不用开屏幕了
    • A5 SPI 是否默认启动 SPI 内核驱动,新手就不用管了
    • A6 Audio 选择声音默认输出到模拟口还是 HDMI 口A7 Update 把 raspi-config 这个工具自动升级到最新版本
  • 树莓派网络与更新配置
  • 使用远程桌面
    • 通过 Windows 自带的远程桌面软件,可以远程访问树莓派桌面应用 sudo apt-get install xrdp
  • 使用 samba
    • 通过 samba 服务,可以自由、访问修改树莓派家目录下的文件、代码。
    • 首先安装 sambasudo apt-get install samba samba-common-bin
    • 然后修改配置文件sudo vi /etc/samba/smb.conf
    • 重启 samba 服务sudo /etc/init.d/samba restart
    • 把系统默认用户 pi 添加到 sambasudo smbpasswd -a pi
  • 挂载 U 盘
    • 当需要大容量外接存储设备时,可使用 U 盘挂载。通常我们在 /mnt 或 /media 目录下新建一个目录作为挂载点。比如:sudo mkdir /mnt/udisk
    • 手动挂挂载:挂载命令:sudo mount -o uid=pi,gid=pi /dev/sda1 /mnt/udisk
    • 用完之后卸载 sudo umount /mnt/1GB_USB_flash
    • 安装 exfat-fuse 软件之后 mount 就支持了。sudo apt-get install exfat-fuse
    • 开机挂载 如果想开机自动挂载,而不是每次手工执行,可以编辑 /etc/fstab 文件。在末尾添加一行:/dev/sda1 /mnt/udisk vfat rw,defaults 0 0 每次开机就会自动挂载。
    • 热插挂载 需要希望想电脑一样,插上自动识别挂载在某一目录下,拔下自动 umount,请按一下操作 sudo vi /etc/udev/rules.d/10-usbstorage.rules(此文件默认没有,需要新建).赋值以下内容即可,会自动在 /mnt/udisk 目录下挂载 U 盘。
KERNEL!="sd*", GOTO="media_by_label_auto_mount_end"
SUBSYSTEM!="block",GOTO="media_by_label_auto_mount_end"
IMPORT{program}="/sbin/blkid -o udev -p %N"
ENV{ID_FS_TYPE}=="", GOTO="media_by_label_auto_mount_end"
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="Untitled-%k"
ACTION=="add", ENV{mount_options}="relatime,sync"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="iocharset=utf8,umaskk=000"
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", ENV{mount_options}="iocharset=utf8,umaskk=000"
ACTION=="add", RUN+="/bin/mkdir -p /mnt/udisk/", RUN+="/bin/mount -o $env{mount__options} /dev/%k /mnt/udisk/"

ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /mnt/udisk/", RUN+="/bin/rmdir /mnt/udisk/"
LABEL="media_by_label_auto_mount_end"
  • 树莓派做 web 服务器
    • 树莓派可以安装这个 LAMP 系列,但 Apache 和 MySql 对于树莓派这个小机器稍微有些太重了,主要是消耗内存多/速度慢/占用磁盘大 (约 200M),所可以选择安装一个轻量级的 Web 服务器:nginx + php + sqlite
    • 安装 nginx web 服务器 (约 6MB)sudo apt-get install nginx
    • 启动 nginx sudo /etc/init.d/nginx startnginx 的 www 根目录默认在/usr/share/nginx/www中
    • 修改 nginx 的配置文件 sudo vi /etc/nginx/sites-available/default
    • PHP 脚本支持 找到 php 的定义段,将这些行的注释去掉 ,修改后内容如下
location ~ .php$ {
 fastcgi_pass unix:/var/run/php5-fpm.sock;
 fastcgi_index index.php;
 include fastcgi_params;
}
  • 安装 php 和 sqlite (约 3MB) sudo apt-get install php5-fpm php5-sqlite
  • 重新加载 nginx 的配置 sudo /etc/init.d/nginx reload

树莓派 GPIO 控制

树莓派内核中已经编译自带了 gpio 的驱动,我们常通过一些第三方写好的库函数来完成具体的操作,比较常见的操作库函数有:

  • python GPIO
    • 开发语言:python,树莓派的“Pi”就是由于最早的开发者希望在上面用Python 而起名的。
    • 简单介绍:树莓派官方资料中推荐且容易上手,python GPIO 是一个小型的 python 库,可以帮助用户完成 raspberry 相关 IO 口操作,但是 python GPIO 库还没有支持 SPI、I2C 或者 1-wire 等总线接口。
    • 官方网站: https://code.google.com/p/raspberry-gpio-python/
  • wiringPi
    • 开发语言:C 语言
    • 简单介绍:wiringPi 适合那些具有 C 语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiringPi 的 API 函数和 arduino 非常相似,这也使得它广受欢迎。作者给出了大量的说明和示例代码,这些示例代码也包括 UART 设备,I2C 设备和 SPI 设备等。
    • 官方网站: http://wiringpi.com/
  • BCM2835 C Library
    • 开发语言:C 语言
    • 简单介绍:BCM2835 C Library 可以理解为使用 C 语言实现的相关底层驱动,BCM2835 C Library 的驱动库包括 GPIO、SPI 和 UART 等,可以通过学习 BCM2835 C Library 熟悉 BCM2835 相关的寄存器操作。如果有机会开发树莓派上的 linux 驱动,或自主开发 python 或 PHP 扩展驱动,可以从 BCM2835 C Library 找到不少的 “灵感”。
    • 官方网站: http://www.airspayce.com/mikem/bcm2835/

toolkit

  • 参见toolkit目录下README.md
  • menu
    • 刷机
    • 调试终端
      • 建议使用系统自带ssh
      • FCN.zip 官网
      • WinSCP.exe 官网 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。WinSCP is an open source free SFTP client, FTP client, WebDAV client, S3 client and SCP client for Windows. Its main function is file transfer between a local and a remote computer. Beyond this, WinSCP offers scripting and basic file manager functionality.
      • putty.exe 官网 知名ssh软件
      • sscom5.13.1.exe 官网 新版安全可靠强大,包含串口调试、tcp及udp通讯调试
    • PortScan.exe 用于在局域网内查找树莓派的IP
    • nmap 功能强大的ip、端口扫描工具

[树莓派通过网线直连笔记本电脑共享上网 .docx](./树莓派通过网线直连笔记本电脑共享上网 .docx)

树莓派常用命令集合

 sudo apt-get update
 sudo apt-get upgrade
 sudo apt-get install vim
 cd /etc/apt/
 sudo vim /etc/apt/sources.list
 ping ustc.edu.cn
 sudo passwd
 reboot
 sudo reboot
 su root
 sudo passwd pi
 sudo apt-get install python-pip
 sudo apt-get install fuse-utils ntfs-3g
 modprobe fuse
 sudo modprobe fuse
 sudo vim /etc/fstab
 sudo apt-get install exfat-fuse
 sudo pip install bpython
 sudo apt-get install python-dev
 sudo pip install ipython
 sudo apt-get install nmap
 sudo pip install ipython
 sudo pip install bpython
 sudo pip install virtualenv
 df
 df -lh
 fdisk -l
 sudo fdisk -l
 df -h
 sudo fdisk /dev/mmcblk0
 sudo reboot
 sudo resize2fs /dev/mmcblk0p2
 sudo apt-get install -y dnsmasq
 sudo vim /etc/dnsmasq.conf
 sudo service dnsmasq restart
 dig
 sudo apt-get install dnsutils
 ls
 dig www.baidu.com
 sudo vim /etc/dnsmasq.conf
 sudo service dnsmasq restart
 dig www.baidu.com
 sudo vim /etc/resolv.conf
 sudo service dnsmasq restart
 dig www.baidu.com
 chkconfig dnsmapq on
 find resolv.dnsmapq.conf
 sudo vim /etc/dnsmasq.conf
 netstat -lpnt
 ps -ef
 ifconfig
 sudo service --status-all
 service dnsmasq status
 sudo apt-get install git
 sudo easy_install -U distribute
 sudo pip install rpi.gpio
 alias ll='ls -lh'
 source /etc/profile
 sudo raspi-config

个人收藏的raspberry pi/树莓派文章及教程

硬件

集群/cluster

软件

  • internet-pi A Raspberry Pi Configuration for Internet connectivity

Python

pip install RPi.GPIO

服务器管理

  • iis7服务器管理工具 mstsc远程桌面、linux、ssh、sftp、vnc、ftp、webshell(批量管理),链接类客户端软件下载。
  • wol/wakeonlan
    • go-wol describes a simple data link layer protocol which tells a listening ethernet interface to power the target machine up.
    • WakeOnLAN A simple C program that sends a magic packet
    • wakemeonlan

References

Recommendation

News

树莓派 4 代- 全球最流行的 Linux 小型迷你电脑,性能大幅飙升!(支持4K / USB3.0)

raspberrypi4_banner 被誉为 “世界上最流行最便宜的小型电脑” 的「树莓派Raspberry Pi 是一款性价比超高的迷你电脑主机 (仅有信用卡大小),深受全球开发者、极客、技术爱好者们的追捧和喜爱。

树莓派可以安装多种 Linux 系统发行版 (官方为 Debian 的衍生版),可当服务器搭建各种网站、应用服务来使用,也能用来学习编程、控制硬件或日常办公。由于树莓派的体积很小很轻,并且功能极其丰富强大,这也使得它的应用范围和潜力几乎是无限的……

树莓派 4 代发布

如今 Raspberry Pi 4树莓派 4 代」终于正式发布了!!官方定价依然是 $35 美元起不变,但整体性能相比 3 代要提升了三倍之多!多媒体性能为四倍,即使同时外接两台 4K 显示器双屏工作也毫无鸭梨。这么小的体积加上如此强劲的性能,这将是一款再次改变行业规则的产品。

树莓派4

而且除了 Linux 外,树莓派还能运行「免费的 Win 10 物联网版系统」!无论是学习、办公、编程、搭建智能家居、工控设备、还是用于特定的工作场景,树莓派都是最理想的小型电脑。也是每一个喜欢折腾电脑、折腾数码、折腾程序的朋友的必备玩物。

树莓派 4 硬件配置

树莓派四代 (Raspberry Pi 4 Model B) 在硬件方面迎来了巨大的升级!首次搭载了 4GB 的内存 (1G / 2G / 4G 可选),并且引入 USB 3.0 接口,同时支持双屏 4K 输出和 H.265 硬件解码;处理器搭载了博通 1.5GHz 的四核 ARM Cortex-A72 处理器,性能提升可谓是质的飞跃。

树莓派4

接口方面,树莓派 4 支持双频无线 Wi-Fi (802.11ac)、搭载蓝牙 5.0,提供两个 Micro HDMI 2.0 视频输出接口,支持 4K 60FPS;内置千兆以太网口 (支持 PoE 供电)、MIPI DSI接口、MIPI CSI 相机接口、立体声耳机接口、2 个 USB 3.0 和 2 个 USB 2.0,扩展接口则依然是 40 针的 GPIO。供电方面也改成了 5V/3A 的 USB-C 接口供电,升级可以说是全方位的

树莓派4硬件规格

新的树莓派几乎可兼容所有以往创建的树莓派项目、配件和应用。同时,其40针扩展 GPIO 接口使其能够添加更多传感器、连接器及扩展板或智能设备,前26针引脚与A型板和B型板保持一致,可 100% 向后兼容,无需担心软硬件和配件的生态问题。

树莓派官方宣传片

如果你的工作大多可以在 Linux 下完成的话,比如开发,或者用 WPS for Linux 写文档、上网、收发邮件等,那么直接将树莓派随身携带,上下班通勤或出差时,也许会比带一个笨重的笔记本要轻松方便得多。

树莓派有什么作用和用途?

起初,树莓派是为鼓励孩子们学习编程和计算机知识而推出的奇趣硬件。但如今,除了教育领域,树莓派在硬件编程、智能家居、极客和计算机技术爱好者中的受欢迎程度完全超出想象。

树莓派桌面

随着新版本硬件性能的提升,以及全球极其大量玩家们的青睐,树莓派的玩法和实用性已经丰富到无法统计的地步了。直接当办公电脑使用、丢在家里当 NAS、离线下载、做代理服务器、VP那个N、搭建个人网站、私有网盘、搭建智能家居中枢、小型影音播放机,使用各种开源 Linux 程序给局域网提供服务等都是非常常见的用途。

树莓派应用

总之,树莓派不仅会为学习编程带来更好的体验;给专业人士带来更强大高效稳定的硬件平台;对于爱好者们,新的树莓派也提供了更大的发挥空间——因为它完全就能一台性能充足的台式电脑那样,可以做到几乎任何事情! 当然,这也是一个需要脑洞大开的硬件,你可以把它玩成神器,也能让它积灰几尺厚,这需要有想象力或自身有确切的需求。

License 许可证 & Copyright

  • 版权声明:Copyright © 2019-2023 要庆生. All rights reserved. 未经本人同意请勿转载。经本人同意后转载时请注明出处。
  • GitHub license GitHub license 知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文(Creative Commons)
  • 业余时间所作,难免有不足及错漏之处,敬请包涵指正,可通过github仓库在线留言或Email 350788415@qq.com告知;如需补充其他相关专业信息,亦可邮件通知或github仓库在线留言;同时欢迎各位热心人士star、fork或共同参与维护仓库

About

关于树莓派安装、配置、使用等的技巧、工具。 About the skills and toolkits of installing, configuring raspbian and handbook for raspberry

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published