起风了

个人博客


  • Home

  • Tags

  • Categories

  • Archives

orange pi zero gpio fan set

Posted on 2018-04-27

简介

终于下定决心购买orangepizero其实自已经有raspberry2,3了所以购买不购买orangpi其实是比较纠结的因为毕竟orange社区不如raspberry
的,主要还是怕国产硬件不过关。不过买回来一段时间还好各项运行都还算不错也没出什么问题,还安装上gentoo设置了风扇,现在就写篇文章记录下。

设置orange_pi_zero原理

orange_pi_zero通过gpio控制三级管达到一定温度就开让风扇转动。低于某温度就停止。推荐使用3.3v风扇,因为orangpi电源要求2A本身wifi
也是要求3.3v,5v的风扇估计电压会不稳定。

orang_pi_zero gpio针脚安装以及针脚图

-安装WiringOP
WiringOP

gpiolink
1
2
3
4

-查看针脚定义

```gpio readall

-针脚图对应机器实际图形。
logo

-S8050三级管示意图原理

三级管平的那面面向自己如下图,

logo

发射级接地线,风扇红线接5V针脚,基极接GPIO7,集电极接风扇黑线。

Shell 脚本控制风扇

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
#Here i set my objective in deg celcius
obj=44

#date to log the fan state history
time=$(date +%d\/%m\/%y\ %H\:%M)

#putting my 2 cpu temperatures values in variables
temp1=$(cat /sys/devices/virtual/thermal/thermal_zone1/temp)
temp2=$(cat /sys/devices/virtual/thermal/thermal_zone0/temp)
#do and average of the two temperatures
temp=$((($temp1+$temp2)/2))
echo $temp
#set the pin 7 as an output
/usr/local/bin/gpio mode 7 out
#if greater or equal to the objective put the gpio state to 1
if [ $temp -ge $obj ]; then
/usr/local/bin/gpio mode 7 out
/usr/local/bin/gpio write 7 1
echo "$time $temp fan 1">>/root/fan

#if not greater or equal , then put the gpio7 state to 0
else
/usr/local/bin/gpio write 7 0
echo "$time $temp fan 0">>/root/fan
fi

crontab -e

* * * * * /root/fan-control.sh


raspberry python脚本控制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import RPi.GPIO as GPIO
import time
import commands

T_HIGH = 50
T_LOW = 45
fan_pin = 12
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(fan_pin, GPIO.OUT)

def get_gpu_temp():
gpu_temp = commands.getoutput( '/opt/vc/bin/vcgencmd measure_temp' ).replace( 'temp=', '' ).replace( '\'C', '' )
return float(gpu_temp)

while 1:
gpu_temp_loop = get_gpu_temp()
print 'GPU temp:', gpu_temp_loop,'C'
if gpu_temp_loop > T_HIGH:
GPIO.output(fan_pin, 1)
elif gpu_temp_loop < T_LOW:
GPIO.output(fan_pin, 0)
time.sleep(5)

参考

[shell脚本地址][http://www.d0wn.com/orange-pi-zero-the-battle-against-heat/]
[raspberry python脚本][http://www.eeboard.com/bbs/forum.php?mod=viewthread&tid=94763]

gentoo下安装配置virtualbox

Posted on 2018-02-07
由于折腾了linux很多年了其实使用gentoo也有一定的年限了,一直没有什么产出,现在打算出个教材试下.

emacs python 和markdown的支持以及设置

Posted on 2016-12-23

1. emacs 在gentoo下安装.

设置use

nano /etc/portage/package.use

app-editors/emacs libxml2 xft

emerge -v emacs

2.设置python 编辑器以及打造ide

这个基本没啥说的参看这个篇教程就OK了
Emacs:最好的Python编辑器
不过记得安装ipython,调用需要
emerge -v ipython

3.emacs markdown编辑器以及预览

在 .emacs.d/init.el(defvar myPackages部分中加入
markdown-mode
markdown-preview-mode
emacs markdown插件调用markdown编辑.md之类文件会显示。
markdown 需要调用markdown gentoo中需要装dev-python/markdown
emerge -v dev-python/markdown
将markdown 链接到/usr/bin
ln -s /usr/lib/python-exec/python2.7/markdown_py /usr/bin/markdownln -s /usr/lib/python-exec/python2.7/markdown_py /usr/bin/markdown

在.emacs文件中加入编辑.md等文件时会调用markdown
(autoload 'markdown-mode "markdown-mode" "Major mode for editing Markdown files" t) (add-to-list 'auto-mode-alist '("\\.text\\'" . markdown-mode)) (add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode)) (add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))

查看emacs情况先emacs左右分屏
C-x o
然后调用eww查看
C-c C-c l
即可在emacs中查看效果了。

4.推荐一个emacs字体配置插件

chinese-fonts-setup
配置文字变得简单由其是中文。

gentoo安装配置samb客户端

Posted on 2016-12-10

1.在/etc/fstab里添加

//IP/samb-share /mount-place cifs credentials=file,defaults 00

2.chmod 600 /home/vast/samb-pawd samb用户名和密码.

nano samb-pawd
userbane=
password=

3./etc/fstab挂载

//192.168.88.171/share /home/vast/samb-pi-write cifs credentials=/home/vast/samb-pawd,defaults 0 0

4.emerge -v cifs-untils挂载时需要会一起安装samb.

gentoo systemd 静态ip设置

Posted on 2016-07-06

   gentoo 设置无线静态ip本来非常简单的,但是用了system就变得不一样了不以/etc/conf.d/net作为设置静态ip了。
   先说不用systemd设置静态ip的方法
  
在设置wifi静态ip前需要
emerge -v wpa_supplicant dhcpcd net-misc/netifrc  sys-apps/ifplugd

systemctl enable dhcpcd
systemctl enable wpa_supplicant (非systemd用rc-update)

  
1./etc/wpa_supplicant/wpa_supplicant.conf

 ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
 update_config=1
 network={
  ssid=”###”
  psk=”###”
  scan_ssid=1
  proto=RSN
  key_mgmt=WPA-PSK
  group=CCMP TKIP
  pairwise=CCMP TKIP
  priority=5
 }
 
2./etc/conf.d/net

modules_wlan0=”wpa_supplicant”
wpa_supplicant_wlan0=”-Dwext”
config_wlan0=”192.168.2.172 netmask 255.255.255.0”
routes_wlan0=”default via 192.168.2.1”

3 ./etc/resolv.conf
nameserver 211.136.192.6
nameserver 8.8.8.8

在systemd环境下呢就需要将第二步的改为服务
cd /etc/systemd/system
nano -w static-network.service
/etc/systemd/system/static-network.service
[Unit]
Description=Static network service
After=local-fs.target
Documentation=man:ifconfig(8)
Documentation=man:route(8)

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/ifconfig wlan0 192.168.2.172 broadcast 192.168.2.255 netmask 255$
ExecStart=/bin/route add default gw 192.168.1.1 wlan0

[Install]
WantedBy=multi-user.target
chmod +x static-network.service
systemctl enable static-network.service
systemctl start static-network.service
就可以获得静态ip了

raspberry pi免密码登陆

Posted on 2016-05-09

1.用户输入

  ssh-keygen -t rsa
  Enter file in which to save the key (/root/.ssh/id_rsa): #直接回车
  Created directory '/root/.ssh'. 这里显示的是root的效果
  Enter passphrase (empty for no passphrase):#输入密码短语一般留空直接回车
  Enter same passphrase again:重复密码短语
  在/root/.ssh/目录下生成了2个文件,id_rsa为私钥,id_rsa.pub为公钥。公钥就像们的锁头,私钥就像我们的密码,所以钥匙要保存好,钥匙是用来开门的。

2.导入公钥

  cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

3.更改ssh配置文件

  nano /etc/ssh/sshd_config
  #RSAAuthentication yes
  #PubkeyAuthentication yes
  #AuthorizedKeysFile .ssh/authorized_keys

4.重启ssh服务。

5.制作用于putty的私钥

  将/root/.ssh/id_rsa下载到本地,利用PUTTYGEN.EXE转换为putty用的ppk文件。
  enter description here
  点击File,Load private key,导入/root/.ssh/id_rsa文件。成功后的图片如下所示:
  enter description here
  
   点击Save private key按钮,生成一个后缀为ppk的文件,比如起名为teddysun.ppk,这个文件就是已经制作好的用于putty无密码登录的私钥了,妥善保存。

6.登录选择ppk路径

enter description here
   于Auth处选择ppk秘钥

7.关闭密码登录<于私人的话可选:因为你丢失秘钥的可能性很大咧>

  nano /etc/ssh/sshd_config
  PasswordAuthentication yes 改为
  PasswordAuthentication no重启ssh服务。

树莓派上搭建dokuwiki

Posted on 2016-05-09

安装前配置

  1.nano /etc/portage/package.accept_keywords
  =www-apps/dokuwiki-20150810a **
  =www-servers/nginx-1.9.13 ~arm
  2.nano /etc/portage/make.conf
  USE="php"
  NGINX_MODULES_HTTP="access browser charset empty_gif fastcgi gzip limit_conn limit_req map proxy realip referer scgi split_clients secure_link spdy ssi ssl upstream_hash upstream_ip_hash upstream_keepalive upstream_least_conn userid uwsgi"
  PHP_TARGETS="php5-6"
  PHP_INI_VERSION="production"
  3.nano /etc/portage/package.use
  www-servers/nginx NGINX_MODULES_HTTP: fastcgi
  www-apps/dokuwiki vhosts
  dev-lang/php frm nginx xmlreader xmlwriter berkdb bzip2 cgi cli crypt ctype curl force-cgi-redirect gdbm hash iconv intl ldap mysql ncurses nls pcre pic readline reflection session spl ssl zlib exif gd imap json pdo sockets soap suhosin wddx xml xmlrpc zip unicode
  >=app-eselect/eselect-php-0.9.1 fmp

安装

  USE="frm" emerge -v php 这里必须使用frm因为需要php-frm启动.
  emerge -v ngxin
  emerge -v www-apps/dokuwiki
  `emerge -v webapp-config’

安装后配置

nginx 配置

  nano /etc/vhosts/webapp-config
  找到#vhost_server="nginx" 去掉#

安装dokuwiki

  webapp-config -I dokuwiki 20150810a

  nano /etc/nginx/nginx.conf
  index doku.php,index.html;

server {   只是server部分,前面参看gentoo wiki.
        listen 192.168.88.108;
        server_name localhost;

        access_log /var/log/nginx/localhost.access_log main;
        error_log /var/log/nginx/localhost.error_log info;

        root /var/www/localhost/htdocs/dokuwiki;
         location ~ \.php$ {
         try_files $uri =404;
               include /etc/nginx/fastcgi.conf;
               fastcgi_pass unix:/run/php-fpm.socket;
          }

         location ~ /(data|conf|bin|inc)/ {  #保护数据安全
                                    deny all;
                } 
                }

php-fpm设置

  nano /etc/php/fpm-php5.6/php-fpm.conf
   [global]
   pid = run/php-fpm.pid
   error_log = log/php-fpm.log
   user = nginx
   group = nginx
   listen = /run/php-fpm.socket
   listen.owner = nginx
   listen.group = nginx
   listen.mode = 0660
   pm.max_children = 5
   pm.start_servers = 3
   chdir = /var/www/localhost/htdocs/dokuwiki   

  nano /etc/php/fpm-php5.6/php.ini
  date.timezone =<Asia/Shanghai>   

设置dokuwiki权限

  chown -R nginx:nginx /var/www/localhost/htdocs/dokuwiki

启动nginx php-fpm 服务

  /etc/init.d/nginx start
  /etc/init.d/php-fpm start   

浏览器登入dokuwiki

在地址栏输入你的ip+install.php
  `eg: 192.168.1.108/install.php
  
  write by vastchen
   2016.4.30    

     

Rashberry pi-gentoo安装云盘限定文件夹大小

Posted on 2016-04-03

  购买了Raspberry Pi有一段时间了,一直想着榨尽其功效。用来做过广告过滤,Ftp,shairport-sync ,web服务器。其实大多数时候还是作为下载器使用BaiduExporter aria2 下载百度云盘电影,使用迅雷固件作为下载器。很久以前就看到有说用做云盘使用的文章,但是一直没用动手终于在这一天抽出手来了。因为是在树莓派上有很多人估计还是使用SD卡,不过本人使用得是64G U盘,SD卡和U盘想要性能好点价格还不是大白菜,所以限定云盘的空间就很有必要了。

1.1linux文件夹大小限制

  linux下文件夹大小限定本来我以为是非常简单的一件事情可是真的弄起来就不是这么回事了,要是您还没安装,恭喜你这个事情还是非常简单的,只要单独分个分区或使用xfs可以限制项目比较容易实现。但是要是你已经分区好了并且运维着系统时上面这些方法可能就是不是很适合使用了,方法不适用但是我们根据方法灵活思考适用什么适合的方法,比如分区安装linux就是挂载分区到某个文件夹比如:
mount /dev/sda1 /mnt/
就是讲某个文件挂载到一个目录中。于是我想到了与swapfile类似的方法,就是创建一个文件,然后将这个文件格式化,最后挂载在某目录中,创建文件是可以限制大小的,具体实现步骤如下

  1. 创建文件,我打算创建5G作为私人云(安全),其他的可以使用网盘。
        $ dd if=/dev/zero of=/space.img bs=5M count=1000
  2. 挂载设备相当于linux分区
        # losetup /dev/loop0 /目录/space.ing

  3. 格式化分区。
        mkfs.ext4 /dev/loop0

  4. 挂载文件夹
       mkdir /mnt/clound
       mount -t ext4 /dev/loop0 /mnt/clound 

  5. 加入gentoo开机启动
       nano /etc/local.d/filemount.start
       #!/bin/bash
       losetup /dev/loop0 /home/vast/clound.img
       mount -t ext4 /dev/loop0 /home/vast/clound

至此Linux限制文件夹大小步骤已经完成了。

1.2安装云盘配置

  本来也应该是比较容易的,但是在“墙”的世界一切都变得不那么理所当然了,原本是打算安装BitTorrent Sync的因为分布bt保密方便各种都还不错不过不是开源的也保证不了,更加主要的原因是因为网站基本是在半墙状态。打开官网没有下载链接一一点不到还是看网页元素分析得到下载链接的,结果经常下载5M左右半小时都下载不下来经常断。后来想下实在是不行这个方案难道每次更新都这样维护就太头疼了。
  于是在能继续找方法了,忽然想起很久以前就看到过收藏在收藏夹的一个实现云盘软件syncthing 更重要的是这货是开源的,开源的,开源的(重要事情要说三遍)因为就你自己的服务器与客户端所以隐私得到保护,开源,源代码的安全也有保障了。绑定每个设备ID就可以同步了支持跨内网,支持Mac OS X、Windows、Linux、FreeBSD和Solaris 以及安卓,有点点遗憾就是ios客户端还没有。

1. 安装

1.1. 安装
   emerge -v net-p2p/syncthing
1.2. 启动服务
   /etc/init.d/syncthing start
1.3. 运行
   # sything

2. 配置

2.1 开机启动使用cron服务控制
   # nano syncthing.sh
   #!/bin/bash
   syncthing
   # crontab -e 输入30 3 * * * /root/syncthing.sh

2.2启动后运行一会自动配置文件中断运行ctrl+c 修改配置文件
   # nano ~/.config/syncthing/config.xml
将”《address》127.0.0.1:4448《/address》”改为0.0.0.0:8000
然后再次运行syncthing。
浏览器输入你机器IP:8000就可以访问控制你的云盘了

  • 第一次记得输入你的名字密码进行保护
  • 点击+添加文件夹我们上面限定大小的文件夹按照文件夹目录添加即可,记得设定文件夹标识,你别的机器客户端如安卓手机添加同步目录时需要使用相同的文件夹标识,才会同步。

    至此安装网盘限定文件夹大小的目的都达成了。
    write by vastchen
    blog:vastchen.github.io

gentoo下hexo 安装配置部署到github

Posted on 2016-03-05

hexo是基于nodejs的静态博客生成器,或直接叫node即可,在gentoo下安装nodejs。

1.gentoo安装nodejs
emerge -v nodejs
2.gentoo下安装hexo
npm install -g hexo
3.在你喜欢的地方新建一个hexo目录
mkdir hexo
4.下载hexo ,cd进入hexo目录执行
hexo init
至此hexo安装完毕

github上传设置,github上传目录在hexo目录的_config.yml配置文件中:
deploy:
type: git
repo: git@github.com:vastchen/vastchen.github.io.git
branch: master
  只要将上面的type设置为git repo设置为你github上的项目连接即可
在hexo d之前我们需要上传我们的密钥,密钥生成代码:
  ssh-keygen -t rsa -C “你在github上注册的邮箱”
  cat ~/.ssh/rd_rsa.pub
  复制到你建项目右上角点击设置后看到的add ssh keys处即可。
hexo d上传后在你项目右上角设置处可以找到你github hexo 博客地址。
提示出现hexo deploy命令显示ERROR Deployer not found : github 时需要安装git 插件
npm install hexo-deployer-git --save
hexo很多功能是插件实现的,所以出错不妨看下是否某些插件没有安装。

   详细步骤可以观看百度经验的一份文件《史上最详细“截图”搭建Hexo博客并部署到Github》 
  以下部分为个人备份不需要继续观看
  
  自己博客设置备份记录

文件详解参考

博客主题

安装主题
git clone https://github.com/wzpan/hexo-theme-freemind.git themes/freemind
博客主题需要安装的插件

  npm install hexo-generator-feed --save
  npm install hexo-generator-sitemap --save
  npm install hexo-generator-tag --save
  npm install hexo-tag-bootstrap --save
  npm install hexo-generator-search --save

需要在source目录下新建以下目录
logo
插入本地图片需要安装

确认_config.yml中post_asset_folder: ture

npm install https://github.com/CodeFalling/hexo-asset-image --save

在要插入的文章中输入
logo
write by vastchen.
blog url=http://vastchen.github.io

Raspberry2-gentoo

Posted on 2016-02-22

 在年前入手了Raspberry2之前安装了archlinux总的来说没啥不好的,搭建十分容易特别的archlinux对wifi的支持不错,树莓派安装wifi,dlna vsftp搭建都什么容易,但是有点稍微不好的就是python版本太高了,虽然现在是说python 支持3.0了,可是很多人依然是用python2.7的。主要还是熟悉。   
  后来就换成gentoo了,因为自己一直使用的都是gentoo当我看到有gentoo时立马打算换gentoo arm版本了,
不过由于不熟悉arm版本的问题也想了很久,主要的原因是一般gentoo都是使用iso 加载进入内存安装,而树莓派的iso基本。。。没有。后来还是用arm archlinux安装到一个u盘基于archlinux chroot安装的,不过后来看到了,想到这个其实算是个笨方法。因为其实也更加简单的方法主要gentoo 官方wiki也有误导,说到这里吐槽下gentoo树莓派的文档散乱不严谨,比如ditccd 安装需要在编译主机安装crossdev,但是crossdev需要设置Local_overlay,但是gentoo 《Raspberry Pi/Cross building》中并没提到。   
  安装过程基本上参照Raspberry Pi/Quick Install Guide这里的安装过程基本没啥问题,其中有几点要注意的:  
1.我是用u盘安装的
  u盘分区各种和硬盘基本差不多,需要注意的是启动必须使用sd卡我有张古老的4Gsd卡所以我直接就用sd卡作为boot分区分区格式化直接用fdisk 格式化mkfs.vfat -F 16 /dev/mmcblk0p1
2.引导需要将/boot/cmdline.txt 中添加   
  dwc_otg.lpm_enable=0 console=ttyAMA0,11520 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait 加粗部分改为你自己的
3.net.eth0 sshd
  由于树莓派启动没用另外加keyboard 以及显示器所以你可以选择archlinux chroot或者这里有更简单的方法
ln -s /mnt/gentoo/etc/init.d/sshd  /mnt/gentoo/etc/runlevel/default/sshd
cp /mnt/gentoo/etc/init.d/net.lo  /mnt/gentoo/etc/init.d/net.eth0 
ln -s /mnt/gentoo/etc/init.d/net.eth0  /mnt/gentoo/etc/runlevel/boot/net.eth0
4.use里添加 -video_cards_omapfb 否则编译xorg-server会出很多莫名其貌的问题。
5.差点忘了Raspberry 2需要选择stage3-armv7a_hardfp官方wiki也更改到这个了。   
  安装基本上按照wiki就可以了当然你可以安装distcc ccache加速编译各种,但是前提也是搭建好基本环境。
  
  write by vastchen.
  blog url=http://vastchen.github.io

vastchen

10 posts
10 tags
© 2018 vastchen
Powered by Hexo
|
Theme — NexT.Muse v6.0.3