dietpi.txt 快速配置上手

DietPi是所谓的超级简单系统,一般人都知道怎么操作他,他非常轻量,也很容易适合本土化.引用老外的话就是:

“I’m a Linux noob and I have been playing around with installing things on my new Raspberry Pi–the hard way–doing manual installs! The amount of hours that goes into something like this is staggering. And then I discovered DietPi just yesterday. What a time-saver!”

他大概就是说,我就说个菜鸟,但是用这个我发现我会使用RPI了.而且对比DietPi和RPI官方系统Raspbian还是差别挺大的.

首先Raspbian的官方系统比较笨重,他已经没对比了,他对比的是Raspbian Lite.明显各项指标都很强大,但是经过我们的”优化”调整后,这更强大.其中我们很熟悉Raspbian的config.txt,而dietpi,他也有dietpi.txt,功能远比config.txt强大.

我们先打开这个文件:

逐一介绍下:

  • Ethernet_Enabled,如果设置为1,就是用以太网功能,如果设置为0,就是不用以太网功能.
  • Wifi_Enabled,如果设置为1,就是用以太网功能,如果设置为0,就是不用以太网功能.
  • Wifi_SSID和Wifi_KEY就是你的WIFI名字和密码,如果你没有屏幕键鼠,还没有以太网线,更没有串口调试,这个就非常实用了.
  • Use_Static就是使用静态IP地址,下面就是他的配置了.
  • Hostname就是你在路由上看到的名字,也就是设备名,如果你有多个设备就得区分下,他默认是DietPi,比如我一个Pi 3一个Pi B+,那么我要区分就得改他名字.
  • Ethernet_Force_Speed就是强制以太网速率,0就是自动识别,一般够用了,接百兆网就是百兆,1是10M网,1000是100M网,1000就是千兆网了.
  • Swapfile_Size就是设定SWAP文件的大小,一般设置为1就是自动,0就是不做SWAP,当然不推荐禁用SWAP了,除非你卡非常小,如果不是1也不是0,就你设定一个SWAP大小了.
  • AUTO_Install_Enable第一次启动DietPi总有提示,然后安装软件,比如在吃饭前你刚烧写好个系统,然后还要插上去操作一番才能离开,如果使能这个开关,设置为1,那么,这都不是问题.烧写好,然后插卡,去吃饭,回来就好了.
  • AUTO_Global_Password全局密码,包括用户名啊,Mysql啊各种都是默认这个密码,改掉安全一些.
  • AUTO_DietpiSoftware_Install_ID就是自动安装软件,比如我想首次启动帮我安装好LAMP,那么找到LAMP套件的ID,然后写AUTO_DietpiSoftware_Install_ID=74 (假设LAMP的ID是74.),当然,还要使能AUTO_Install_Enable,然后烧写好之后去吃饭,吃饭后回来软件也装好了.当然,这里软件包甚至包括WordPress.
  • AUTO_DietpiSoftware_SSHServerIndex是选择SSH服务提供组件,默认是dropbear,也就是-1,如果要用openssh,选-2就可以了,dropbear一般够用,openssh当然也有更多功能,如果根本用不到SSH,可以选0,关闭,更省资源.
  • AUTO_DietpiSoftware_FileServerIndex是选择文件服务器提供组件,默认是不开的,你可以用-1 ftp方式,-2 samba方式.
  • AUTO_DietpiSoftware_LoggingIndex是日志记录模式,默认是-1,也就是ramlog,0是跟Raspbian Lite一样记录方式,选ramlog的话,重启日志就没了,但是磁盘(TF)读写少,选-2 ramlog并每小时保存是个折中的办法.
  • AUTO_DietpiSoftware_WebserverIndex是Web提供组件,需要配合LAMP等一起用哦,0就是Apache2,最费资源但是最多功能,-1是Nginx,-2是Lighttpd.最后一个最轻量,也最少功能.
  • AUTO_AutoStartTarget是设置启动后默认状态,0是烧写系统后默认的,就是命令行不登录,2就是桌面环境.
  • AUTO_Timezone就是自动设置时区,这个也是依靠AUTO_Install_Enable使能的,比如我们设置成Asia/Shanghai,就是国内时间了.
  • AUTO_Locale就是本地化,类似语言,这个也是依靠AUTO_Install_Enable使能的,看英文看不爽,先预设成中文就爽了.默认是en_GB,我们换成zh_CN.
  • AUTO_KeyboardLayout就是键盘布局设置,这个也是依靠AUTO_Install_Enable使能的,当然你没键盘设置什么都是白扯的,有键盘的话,设置这个为us,就符合我们中国人键盘了.
  • rpi_hdmi_output 是针对RPI的了,如果设置为0,节省点RAM,因为不用启动显示功能了,做服务器尤为好用.
  • cpu_governor就是CPU调节器,对于Pi 3来说,performance就是固定1.2G,powersave就是固定600MHz,默认ondemand就是没事情时候低主频,有事时候快速升高.
  • SambaClient_ComputerName,SambaClient_ShareName,SambaClient_Username.SambaClient_Password就是配置samba的用户名密码名称的,很好理解啦.
  • boot_wait_for_network默认是1,就是等网络连接,可以设置成0,不等网络连接就开机,开机后网络也是不受影响的.对于没有网络连接的人来说,大胆禁用吧,对于只有无线但是不想在配置文件设置密码的,也可以禁用.
  • dietpi_check_for_updates为1就是可以检查更新,否则不检查更新.默认当然更新.
  • ntpd_update_mode是NTP时间同步的时刻,默认是开机同步,其实国内环境开机同步很费时,可以设置成4,后台同步.
  • wifi_hotspot_ssid,wifi_hotspot_key,wifi_hotspot_channel没有WIFI又没有以太网怎么操作,那就让Pi成为热点吧,这三个参数设置热点,名称啊密码,这样设置后,你就可以通过连接热点方式连接Pi,而不需要路由等附件了.
  • serial_console_enabled就是是否开启串口登录,又不想开热点,又没法连网络,比如在飞机上,你还是想玩玩,那么就用串口吧,默认是0,1是开启,开启后Pi的蓝牙就不好用了.
  • prefer_ipversion可以指定是否支持IPV6,默认auto是自动检测,其实国内IPV6除了高校,其他都支持不太好,可以直接force到ipv4,就是参数填ipv4,这样就很方便了.
  • Apt_Raspbian_Mirror就是设置树莓派源,还在讨厌树莓派源特别慢?不如把源改成http://mirrors.ustc.edu.cn/raspbian/raspbian/ 在国内可是神速.
  • dietpi_vncserver_*,如果没有显示器,还想要图形界面,VNC是你的选择,以前Raspbian时候VNC分辨率就是很小,感觉不好用,现在可以在配置文件直接配置VNC分辨率了.

十步配置TeamViewer远程控制Pi – 支持内网穿透

使用TeamViewer远程控制Pi有如下好处:

  1. 可穿透局域网,延迟较低.
  2. 账号管理,不会遗忘连接.
  3. 操作友好,移动设备可管理.
  4. 无需显示器即可配置完成.

但是,我们怎样才能通过TeamViewer远程操作树莓派呢?首先注意确定的你的板子是Pi 3的.如果不确定,请参考文章:http://www.52pi.net/archives/454

然后确定自己系统版本比较新,我使用的是目前截稿为止的2017-06-21-raspbian-jessie.

剩下的,你需要一根网线,还有耐心啦.

第一步:拉取TeamViewer的安装包.

wget https://dl.tvcdn.de//download/linux/version_12x/teamviewer-host_12.0.78433_armhf.deb

第二步:尝试安装.

sudo dpkg -i teamviewer-host_12.0.78433_armhf.deb

第三步:虽然第二步失败了,但是我们目的是让系统知道他缺了什么软件包.这才有这一步,如果你已经成功,略过此步.

sudo apt-get -f install

第四步:我们重新开始安装,这次就能成功安装了.

sudo dpkg -i teamviewer-host_12.0.78433_armhf.deb

第五步:因为我们烧写的系统有图形界面,默认TeamViewer要在图形配置,除非你没有图形界面才能在命令行下配置,我们并没有显示器,所以先使用raspi-config配置到仅命令行模式.

sudo raspi-config

选择Boot Options – Desktop / CLI – Console AutoLogin

第六步:逐步退出raspi-config的配置,这会重启你的Pi.然后重启后登陆,运行下面命令开始配置:

sudo teamviewer setup

第七步:输入账号密码密码,如果还没有账号,那么你需要在你的电脑端注册一个账号了.

注册账号请点击电脑端此位置:

树莓派提示:

第八步:输入用户名和密码后,会询问是否加入树莓派到你的机器列表,我们当然选y.

如果此时提示你需要邮件验证,请进行邮件验证,然后重新登录,无需退出本程序.

第九步:此时提示我们成功加入到分组内了.同时,电脑的TeamViewer上也出现了设备了.

树莓派提示:

电脑提示:

第十步:还原为图形界面登录.运行raspi-config.

sudo raspi-config

选择Boot Options – Desktop / CLI – Desktop AutoLogin

完成:逐步退出raspi-config的配置,这会重启你的Pi.大功告成了.

此时你可以使用电脑版,移动端版TeamViewer测试连接.

电脑端测试图:

移动端测试图:

不知道大家注意到没,我手机访问使用的是移动网络,并且依然可以访问到内网的Pi,而我是没有给我的Pi分配公网IP的哦.

 

Visual Studio + VisualGDB 远程调试树莓派

想必很多人都知道地表最强IDE VS,超级补全非常靠谱,如何结合VisualGDB,还能调试树莓派呢.Visual GDB的下载地址:

http://visualgdb.com/download/

可以足足试用30天,试用结束后可以寻求网友帮助或者购买软件.本站是不提供破解下载的哦.

软件原材料:

  1. Visual Studio 2017 社区版(更高版本也可以)
  2. VisualGDB 5.2r8(更高版本也可以)
  3. 树莓派需要开启SSH登陆

硬件原材料:

  1. 树莓派
  2. 跑着Raspbian系统的TF卡(同类系统也可以)

首先打开VS,然后点击文件 – 新建项目 – VisualGDB – Linux Project Wizard.并选择一个英文路径和文件名保存工程.

我们使用微软编译器,并选择C语言.

选择新建一个连接:

依次如图填写主机IP,用户名,密码(Raspbian的默认用户名是pi,密码raspberry):

第一次设置连接会弹出如下提示,直接按Save保存好通信的”钥匙”.

编译器选择,我们可以选GCC,GCC比较通用,然后接着下一步.

等待项目创建:

如果没有出现上图的创建项目的过程,检查下SSH是否已经打开,IP和密码是否正确.如果出现下图的错误,请直接点击OK修复.此错误通常出现在新的Raspbian系统上.

如果以上问题都解决了,就可以点击完成Finish了.

首次会从树莓派上复制部分文件到电脑,这样是为了一些代码补全和调试方便.

当工程创建完毕后,双击右侧的c文件,打开源码显示,如图.

并在右侧return 0的位置单机左键,新增一个红点,这个红点意思是断点,程序执行到这里,就等我们继续发令才能继续运行.

点击上面的VisualGDB Debugger开始编译并下载到板子测试.

这里可以看得到编译过程:

可见程序已经执行并输出Hello World.并且停在红点位置了.

使用VS进行调试最大的优点是实时观察变量,内存等,并且支持断点调试,还不用去学习vim怎么去使用.更多功能还等着大家去探索.

让树莓派USB口支持大电流

让树莓派USB支持大电流才可以让树莓派挂移动硬盘,有两种方法,第一种使用树莓派自身USB,加载特定参数,另一种使用我们研发的一个有源HUB方案.

使用树莓派自身的扩大电流方案优点:

  1. 不用额外购买USB HUB
  2. 不插HDMI时候可以安全获得更大电流提供.
  3. 只需要与以太网共享带宽.

使用树莓派自身的扩大电流方案缺点:

  1. 失去保修
  2. 最大只能提供1.2A电流(默认600mA)
  3. 过流容易导致树莓派彻底损坏,如核心电压变低,严重的导致主芯片损坏.
  4. 不能用于Pi Zero.因为Pi Zero默认没做电流调节,直接限制在600mA了.

使用我们的有源HUB方案优点:

  1. 不失去保修
  2. 能提供最大1.8A的电流输出
  3. 不会损坏树莓派
  4. 不管是否使用HDMI,均不影响使用.
  5. 更多USB口可以使用.

使用我们的有源HUB方案缺点:

  1. 设备更多,共享带宽更少,通常在连接多个移动硬盘时尤为明显.
  2. 需要购置有源HUB.

我们推荐使用第二种方案,但是现在先介绍下第一种方案的实现方式和原理.

因为树莓派的USB电流大小由USB电流保护芯片控制,所以通过旁路USB电流保护芯片就可以实现更大电流,由于电源芯片限制,最大电流为1.2A.具体方法也非常简单.添加下图三行就可以了.

max_usb_current=1
current_limit_override=0x5A000020
avoid_warnings=2

再次启动Pi,已经可以支持更大电流了.可见,电流已经接近1.2A的输出能力了.

但是如果要更大怎么办,直接使用我们的有源HUB方案,无需修改配置文件,直接使用.电流可以直接到达1.8A.使用有源HUB提供大电流的话,不需要修改树莓派配置(仅限2017-04-10以后的镜像)

完全抛弃TF卡,从USB启动树莓派.

从USB启动树莓派有很多好处,比如说可以直接硬盘Boot,是不是听起来很新鲜,其实官方已经为了U盘启动做了不少准备了.

硬件原材料方面:

  1. 树莓派3,必须是4月10号以后的批次,如果不放心可以到我们商城咨询.
  2. 靠谱的电源一个,USB启动失败大多数是电源问题.
  3. TF卡一张,至少8G,配置阶段要用呢.
  4. 8G或者以上U盘/移动硬盘,带移动硬盘要注意电源问题,我们店里有实测过的电源,能带的动普通的笔记本硬盘.

软件原材料方面:

  1. 4月10号以后的系统镜像.不知道请猛戳 http://www.52pi.net/?p=454 检查.
  2. 认真 + 耐心 + 信心.

好了,我觉得大家都知道怎么去烧写系统到TF卡了,但是不要马上插上去启动.打开如图所示文件,加入以下内容.(注意空格哦~)

program_usb_boot_mode=1

然后保存,启动Pi,默数60秒后直接拔掉电源就行.此时可以取出你的TF卡.然后把系统镜像,直接烧写到U盘/移动硬盘内.对,就是把U盘/移动硬盘当成TF卡了.

然后插到树莓派上启动吧,特别注意:从USB启动有5秒的启动延迟,这个官方称为failsafe boot.

运行df -h指令,观察此处已经称为sda1了,证明是USB启动的.

想恢复TF卡启动怎么办?TF卡总是第一启动顺序的,只要TF卡上有系统,就会从TF卡启动~

更多干货,请持续关注树莓派中文站~

一根数据线玩转树莓派Zero

0. 前言

原创文章,转载引用务必注明链接。水平有限,如有疏漏,欢迎指正。

本文使用Markdown写成,为获得更好的阅读体验和正常的链接、图片显示,请访问我的博客原文:

http://www.cnblogs.com/sjqlwy/p/zero_otg.html

想要上电启动Zero,所需要的最少配件包括一根MicroUSB数据线MicroSD卡。是的,不需要额外的miniHDMI线+显示器、MicroUSB电源线。那么究竟如何操作的呢,请紧张地往下看。

运行环境:Raspbian Jessie Lite 2017-02-16;Windows 7 Home Pentium x64

1. 基础知识

1.1 USB接口工作模式

Device和Host模式 (待补充…)

1.2 Zero的USB接口

标有PWR IN的是供电接口,没有数据功能;标记USB的是OTG接口,可以使用USB-OTG线接USB-Hub,继而连接鼠标键盘、有线无线网卡、U盘等其他设备。另外该接口竟然可以供电,没有看到电路图,不知道有木有保护电路,不过因为使用笔记本接口供电,另外有人这样供电搞过docker swarm 集群,所以比较放心。

1.3 USB Gadget 驱动

可以实现的功能包括:

2. 实战数据线访问Zero

2.1 烧录镜像

根据我们的需要,选用不带图形界面的Raspbian Jessie Lite下载链接发行日志) 和 dietpi下载链接发行日志)这两个操作系统,先以RJL为例,Windows使用Win32 disk imager, Linux使用dd烧录到存储卡,不再赘述。

2.2 初始设置

其实就是使用USB Gadget驱动将USB-OTG模拟为有线网卡,之前需要的设置比较繁琐,好在新版的Raspbian内核不需要额外安装补丁,可以直接启用,另外虚拟出来的和有线网卡基本一样,不像串口那样只能打开一个终端。方法如下:

# 修改boot分区里的config.txt文件,在新一行增加如下内容 
dtoverlay=dwc2 
# 修改boot分区里的cmdline.txt文件,在rootwait后面增加如下内容,注意每个参数之间空格分开,且都是在同一行 
modules-load=dwc2,g_ether

注意:关于dtoverlay的更多内容可以查看boot分区overlay文件夹的README介绍,dt=Device Tree。

在boot分区根目录创建一个文本文件,然后重命名为ssh,注意去掉.txt后缀,此时即可以 开启ssh登录(新版Raspbian的改动)。

2.3 开机上电

将MicroUSB数据线一头接在Zero USB 接口,一头连接电脑,稍等片刻即可听到“咯噔”一声,此时电脑会安装相关驱动并显示一个新网卡。我们使用远程管理软件如Xshell或Putty,服务器(host)填raspberrypi.local ,端口22,用户名pi,密码raspberry即使用SSH登录控制Zero了。

参考:

2.4 教练我还想上网

我们通过ifconfig命令可以看到获取的ip地址其实是169.254.x.x这种用于本地自动配置的保留地址,而且并不能共享主机的网络访问互联网。上面yfgeek的解决方法是使用squid代理软件,但是联想到之前写的《网线直连控制Guitar (增强版)》,使用Windows系统自带网络共享功能即可。

2.4.1 zero网络设置

# 修改/etc/network/interfaces文件,增加如下内容: 
## USB  
allow-hotplug usb0 # 允许热插拔 
auto usb0 # 开机自动连接usb0,也就是虚拟有线网卡 
iface usb0 inet static # 设置usb0使用静态ip 
address 192.168.137.2 # 设置静态ip地址,和windows的在同一网段组成LAN netmask 255.255.255.0 
gateway 192.168.137.1 # 设置网关 
dns-nameservers 114.114.114.114 # DietPi 需要设置dns服务器

2.4.2 Windows网络共享设置

在主机联网的网卡上右击选择属性——共享标签——选择虚拟有线网卡(一般带有RNDIS字样)保存即可。重启Zero,登陆后即可发现Zero可以访问互联网了。

使用ping命令查看网络连接情况:

大功告成。

3. 借鉴Beaglebone进一步完善

https://github.com/RobertCNelson/tools/blob/master/scripts/beaglebone-black-g-ether-load.sh#L28

http://www.elinux.org/BeagleBoardBeginners

https://github.com/beagleboard

4. raspberrypi.local 背后的故事

https://wiki.archlinux.org/index.php/Avahi

DietPi的设置,自动脚本安装dnsmasq|udhcpd

Pi shank

 

裸板开发操作系统Baking-Pi教程 零

这个系列的文章翻译改编自剑桥大学的关于树莓派操作系统开发的系列文章,课程制作人是Alex Chadwick,不是直译,和原文会有些比较大的区别
而且系列没有针对B+、A+和v2,v3进行更新,一些地方可能会无法工作,尤其是最开始的一些关于LED的课程
不过你可以在GitHub对它进行贡献和更新

这个课程是带你了解开发一个在树莓派上能运行的几乎最基本的操作系统(裸板开发),使用的是汇编语言,准确的说是ARM上的汇编,原作者尽可能的减少汇编带来的难度(其实本质的难度就在那里..),整个课程由11个小课和一个小的入门构成,每个小课都有一些理论知识和一个实际的操作(上机),不过作者都给出了参考答案。
作者在设计课程的时候更加注重于实现一些操作系统常有的功能任务,而不是把操作系统的方方面面都实现一遍,到最后,读者应该是有能力把学到的所有知识都整合到一起,做出一个自己的操作系统的。

课程列表

0 Introduction

这里面不包含任何的动手操作,就是讲了一些简单的基础先修知识而已,即使不看直接上手后面的教程也是没有关系的。

OK LED (入门)

1 OK01

这个教程包含了一个上手的解释,以及具体的如何控制树莓派板子上面的OKACT的LED。

2 OK02

以OK01为基础,控制板子上的LED循环闪烁,也就是反复的点亮和关闭。

3 OK03

在OK02的基础上,使用函数来使得汇编代码具有更大的可读性。

4 OK04

在OK03基础上,如何使用定时器来让LED的闪烁达到精确的时间间隔。

5 OK05

在OK04基础上,使用摩尔斯电码来发送SOS的信号。

显示 (进阶)

Screen01

这个教程会介绍一些基础的图形学知识,并把一个梯度变换的图案显示到显示器上。

Screen02

在上一个教程的基础上,介绍如何在显示器上画一条线和如何产生伪随机数。

Screen03

上一个教程基础上,介绍如何在显示器上画出文字,并对内核命令行的概念做一定的讲解。

Screen04

上一个教程为基础,介绍如何通过操作文本在显示器上显示一些计算量。

输入 (进阶)

Input01

介绍一些驱动的理论,以及代码的链接和键盘输入,通过这个教程就能把字符输入到显示器上了。

Input2

在Input2的基础上,介绍如何为操作系统做一个命令行的接口。

 

需要的材料

硬件

  • 一台计算机用来写代码
  • 树莓派和SD卡
  • 显示器
  • 键盘

软件

只需要一个ARMv6的GNU的编译器,准确的说是一堆工具或者说是交叉编译环境,这个交叉编译器可以把你的源代码转换成树莓派SD卡上可以运行的文件

Linux

有好几种安装方式,对于Ubuntu这种,直接用apt-get就行了

$ sudo apt-get install gcc-arm-none-eabi

操作系统

一个操作系统只是一个非常复杂的程序而已,它的任务就是组织它上面的各种程序怎么运行以及如何给这些程序分配计算机的时间、内存、硬件和其他的资源。常见的操作系统包括GNU/Linux,Mac OS X和Windows这些桌面系统,当然也有安卓和iOS这些手机操作系统。

由于操作系统必须要和实体的硬件有交互联系,所以它必须要对当前运行的硬件底层有一定的具体的了解。为了让操作系统在不同的硬件架构上都能使用,驱动的概念也被提出来了,驱动是操作系统上的一段可以添加也可以删掉的代码,通过它可以让操作系统调动硬件上的某个部分,在整个教程中,我们不会讲到如何创建可移除的驱动,但会重点介绍针对树莓派的驱动怎么来写。

操作系统的设计模式有很多很多种,这个教程只能讲到一些最表面的东西。

汇编代码

这个课程几乎全部都要用汇编来写,毕竟汇编是最接近机器代码的。
那么计算机是怎么工作的呢?假如你上过计算机组成原理课,那你就知道是处理器在不断的执行指令,进行一些数字的加减,然后有内存来存这些数字,同时要和连着的硬件部分相交互,汇编代码就是这些指令的人能相对读的文本格式了。

当我们正常编程写代码的时候,我们写的是C++,Java,C#和Basic等等,然后会有一个程序把这些代码转成汇编代码,然后汇编代码再转成二进制的机器码。二进制的机器码是计算机能读的代码,但对人类而言是几乎不可能读懂的一串0、1序列。

 

bakding-pi-0-1

和普通编程一样,汇编代码也有好几种,不同的种类针对不同的处理器,这也就意味着同一份代码,想用在不同的硬件架构上,我们就需要用不同汇编语言来重写一边,这是一件让人很头大的事情,好在后来有了C语言,我们可以写一份C代码,然后让编译器转换成不同种类的汇编代码,这样就能在各种不同的硬件上都能顺利的跑起来了。

参考

树莓派忘记密码了?四步重设密码

树莓派忘记密码了?四步重设密码,收藏之以供不时之需~

第1步:取出SD卡

将树莓派关机,移除sd卡,插入到你的电脑。

第2步:编辑 cmdline.txt

在PC上打开SD卡根目录,启动部分是可见的,并包含一个名为“cmdline.txt”的文件。在编辑器中编辑这个文本,并将下文插入到已有文本的最后

init=/bin/sh

举个例子,如果原文是这样的:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

那么编辑后应该是这样的:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait init=/bin/sh

确保所有内容在同一行。保存文本内容,从pi出取出sd卡。

第3步:重设密码

将sd卡插入树莓派(我们在这里需要连上显示器和键盘)。将树莓派开机,估计在显示闪动的光标前需要等一会。
在标识符后,输入以下命令:

mount -rw -o remount /
passwd pi

你会被提示输入一个新的密码,请仔细输入后并敲下回车键。系统会提示你再次确认输入密码

passwd pi
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

这样密码就修改完成了,现在输入以下命令去同步并执行初始化程序

sync
exec /sbin/init

树莓派会继续启动,然后关掉树莓派并且断电。

sudo halt

第4步:编辑cmdline.txt文本

用电脑再次编辑这个文本:把我们在第二步加入的最后数据删除。
现在你可以插入sd卡到你的树莓派啦,再次启动就可以使用新的密码啦。

20170217164851634-0

引用:raspberrypi-spy

本文来自:树莓派实验室
链接地址:http://shumeipai.nxez.com/2017/02/17/how-to-reset-a-forgotten-raspberry-pi-password.html

 

 

 

 

 

Python脚本实现树莓派WiFi断线自动重连

实现 WiFi 断线自动重连。原理是用 Python 监测网络是否断线,如果断线则重启网络服务。

1.Python 代码 autowifi.py,放在 /home/pi 目录下:

#!/usr/bin/python
import os, time
while True:
    if '192' not in os.popen('ifconfig | grep 192').read():
        print '\n****** wifi is down, restart... ******\n'
        os.system('sudo /etc/init.d/networking restart')
    time.sleep(5*60) #5 minutes

2.Shell脚本autowifi.sh,也放在 /home/pi 目录下:

#!/bin/sh
python /home/pi/autowifi.py &

3.开机自动启动以上脚本:在终端窗口执行以下命令即可

sudo cp -f /home/pi/autowifi.sh /etc/init.d/
sudo chmod +x /etc/init.d/autowifi.sh
sudo chown root:root /etc/init.d/autowifi.sh
sudo update-rc.d autowifi.sh defaults

每5分钟检测一次,若 WiFi 断线,则自动重新连接。

本文来自:树莓派实验室
链接地址:http://shumeipai.nxez.com/2017/01/25/raspberry-pi-wifi-broken-automatically-reconnect.html

 

树莓派显示器电源管理禁止屏幕休眠

下面我们介绍当需要用到树莓派的显示屏作为演示或监视器的时候,禁止长时间无响应屏幕休眠的方法。区分两种情况:

一、禁止屏幕在图形界面下休眠

在 /etc/profile.d 路径下新建一个文件,如Screen.sh,并将下面两条命令写入该文件,即可以实现永久禁用。

 

[bash]xsetdpms 0 0 0
xsets off[/bash]

12

 

更多相关设置示例:

指令 说明
xset s off 禁用屏幕保护
xset s 3600 3600 设置空闲时间为1小时
xset -dpms 关闭 DPMS
xset s off -dpms 禁用 DPMS 并阻止屏幕进入空闲
xset dpms force off 立即关闭屏幕
xset dpms force standby 强制屏幕进入待命状态
xset dpms force suspend 强制屏幕进入暂停状态

二、禁止屏幕在 Console 终端下休眠

执行下面的命令就可以解决这个问题。

[bash]setterm -blank 0[/bash]

重启后此命令会失效,所以需要装这个命令加入到启动脚本中,每次开机后自动启动。
Raspbian 和 Archlinux 在 /etc/bash.bashrc 文件中加入,CentOS 则是在/etc/bashrc加入:

[bash]setterm -blank 0[/bash]

更多相关设置:

[bash]setterm -blank [0-60|force|poke]
setterm -powersave [on|vsync|hsync|powerdown|off]
setterm -powerdown [0-60][/bash]

以上参数为0时表示禁用。例如下面的指令表示禁止屏幕进入保护和关闭状态

[bash]setterm -blank 0 -powerdown 0[/bash]

相关引用
https://wiki.archlinux.org/index.php/Display_Power_Management_Signaling

本文来自:树莓派实验室
链接地址:http://shumeipai.nxez.com/2016/12/24/display-power-management-signaling.html