切换到宽版
  • 12103阅读
  • 61回复

泡泡云服务器移植python3.6 home-assistant(智能家居平台) [复制链接]

上一主题 下一主题
在线wenxueroom
 

发帖
440
M币
3397
专家
7
粉丝
27
— 本帖被 發騷友 设置为精华,作者+3000M币+5专家(2018-03-29) —
论坛里积分换购的泡泡云服务器:http://bbs.mydigit.cn/read.php?tid=2375485,前几天到手了,买之前就想试试能不能把home-assistant移植到里面运行。


说一下什么是 home-assistant 吧  先上一张官网的截图



Home Assistant 是一款基于python3 的开放源代码的家庭自动化平台。他能够跟踪和控制家里所有的设备并且能实现自动化,能够完美的运行在树莓派上。说白了,就是开源的智能家居平台,能够集中控制家里的智能设备。

推荐几个关于home-assistant的网站
官网:https://www.home-assistant.io/
一个还不错的中文网站:https://www.hachina.io/
跟多的玩法 可以参考一下上面两个网站 或者我后面发点帖子

说一下这个泡泡云的优缺点吧

优点是:功耗低 作为一天24小时运行的小型家庭控制中心来说,省电;价格低,1999M还包邮,除了运费基本等于白送;
缺点是:网卡的速度不行,百兆的网卡,做下载机什么的,感觉不合适;

扯了这么多 截止到现在2018年3月29 上午10:32 我已经移植完 并且home-assistant(以下简称HA)已经运行在泡泡云了



-----------------------分割线------------------------


移植过程正式开始
先说一下大体的流程
一、下载论坛提供的资料包 建立交叉编译环境
二、下载 python3.6 sqlite3 zlib openssl unzip 等软件包源代码,并在交叉编译环境中交叉编译
三、泡泡云服务器刷机按照论坛里的教程,并进行相关设置
四、将第二部编译好的二进制文件 和 库文件 拷贝到泡泡云(以下简称popo)系统中(我编译好的直接拷贝包在最后面)
五、在popo中安装home-assistant 以及安装必要的python扩展模块

此方法适合许多arm设备移植HA

一、下载论坛提供的资料包 建立交叉编译环境

论坛提供的开发包地址 开发资料链接:https://pan.baidu.com/s/1YcerWv2pG2d8QU3JPGJCPg 密码:k584
什么是交叉编译? 引用百度百科的一句话  简单地说,就是在一个平台上生成另一个平台上的可执行代码

引用百度百科的截图


我采用的环境是 mac+virtualBox(虚拟机软件)+ubuntu 的环境 当然 你用真机装ubuntu也可以
1.安装虚拟机 虚拟机中安装ubuntu 这个就不在展开说了 百度教程一大把
2.在ubuntu的home目录新建一个文件夹 作为我们后续的工作目录 (我的文件夹叫 popo)
3.解压缩上面下载到的开发资料 我们只用包名有 arm-none-linux-gnueabi 的那个压缩包 将其解压到 我们的popo目录 见下图


4.将bin目录 加入的系统环境变量中
4.1 打开命令行 ctrl+alt+t
4.2 在命令行中输入:vi /etc/profile
4.3 在打开文件的末尾添加 :export PATH=$PATH:/home/lipingsheng/popo/arm-2009q3/bin  (该目录就是上述bin目录)
4.4 输入:wq 回车 保存 退出vi (具体vi操作 见 百度) 并且重启ubuntu 系统


4.5 重启之后 在命令行打:arm-none- 按tab健 看能不能跳出如下情景


4.6 如果出现上图场景 第一步完成 如果没有 请百度 “交叉编译环境搭建“看具体的教程

各位 咱们楼下见
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共2条打赏M币+17
谭咏麟 M币 +9 歡迎探討 04-01
junerjoe M币 +8 優秀文章 03-31
在线wenxueroom

发帖
440
M币
3397
专家
7
粉丝
27
只看该作者 1楼 发表于: 03-29
在开始之前 我们先新建一个目录 用来存我们的输出文件 (要拷贝到popo的头文件 库文件 可执行文件)我的目录是 /home/lipingsheng/popo/local/

二、下载 python3.6 sqlite3 zlib openssl unzip 等软件包源代码 并在交叉编译环境中交叉编译

因为HA 是基于python3运行的 所以我们要交叉编译python3.6到popo  因为 HA 能用到像 sqlite3(嵌入式数据库) openssl (ssl的开源实现) zlib (压缩)这样的功能 所以我们也要编译
1.1sqlite3
下载源码 : http://sqlite.org/2018/sqlite-autoconf-3220000.tar.gz    解压缩到 我们的工作目录
1.2在命令行中进入sqlite-autoconf-3220000目录 运行:./configure --host=arm-none-linux-gnueabi --prefix=/home/lipingsheng/popo/local



解释一下 --host后面跟着的是交叉编译工具链的前缀 我们的工具链叫 arm-none-linux-gnueabi-xxx 所以是 arm-none-linux-gnueabi
                      --prefix后面是编译完成 执行make install 时 安装的位置 我们指向我们的输出目录
1.3完成后 执行 :make & make install
1.4代码滚动完 去输出目录看看


图中选中的就是生成的可执行文件 此文件在当前平台上无法运行 拷贝到popo上才能运行 (cpu的指令集不一样)
1.5至此 sqlite3 就移植完成了

接下来分别移植其他几个程序 具体过程现在就不上了和上面差不多 最后直接上我编译完成的软件包 坛友们直接拷贝 解压 到popo云就ok
   
n.1 下载python3.6的源码 解压到工作目录 源码地址:https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz         ps:我下载的是3.6.4的版本
n.2 命令行 进入python3.6的目录  运行配置命令:./configure --enable-loadable-sqlite-extensions --host=arm-none-linux-gnueabi --build=arm --disable-ipv6 ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no --prefix=/home/lipingsheng/popo/local
n.3 修改 setup.py  添加上 上面我们编译好的 sqlite3 的 路径
n.4 make & make install


 
要不 具体的编译过程就不上了 因为编译太麻烦 我搞了好几天才搞定 在下楼 开始 我直接详细的讲如何将我编译好的软件包安装到 popo 吧

想要在泡泡云上运行home-assistant 直接从下一楼开始看吧
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共1条打赏M币+9
谭咏麟 M币 +9 歡迎探討 04-01
在线wenxueroom

发帖
440
M币
3397
专家
7
粉丝
27
只看该作者 2楼 发表于: 03-29
安装包下载地址:https://www.hxjslm.com/mydigit/homeasisstant.rar  (由于百度云上传速度太慢 我上传到自己的服务器了
要刷的系统地址:https://pan.baidu.com/s/1UIQbgReH08Fz71nxzKaXfA  (先刷系统)

第一步:刷系统 参见论坛内的教程 地址 http://bbs.mydigit.cn/read.php?tid=2375377
            关于这个教程 我提醒一下各位坛友 在进行到这一步的时候 见下图

图中第三步 点击下载文件 弹出文件选择窗口 进入system目录 这时候看不到任何文件
点击右下角的文件类型 选择所有文件 就能看到有文件了 这时选择后缀名为yaffs2的文件 确定
这个后缀名为yaffs2的文件就是系统文件

刷完系统 拔掉usb线 拿掉跳线帽 设备加电  插好网线  等待指示灯变绿  我们的准备工作就做好了

  第二步:相关设置
           1.打开路由器 找到泡泡云的IP地址 (不同的路由器 方法不一样 我的是ac9刷的华硕 见下图)



              2. windows系统的用户 打开压缩包内的 putty单文件.zip   (此软件是windows平台的ssh客户端,用来ssh登陆我们的popo云)

              3. liunx mac用户 打开你们的命令行

              4.windows用户 在打开的软件中 进行如下图 的设置



               5. 打开弹窗黑色的窗口 提示 选yes  输入密码 123456     打开之后差不多是这个样子的 (因为我用的不是win系统 所以截图外观可能会不一样 但是输入的命令 操作 是一样的)


                    6.最最最重要的一步 修改系统时间(因为时间错误 困住我好久)(ps:所有命令需在英文模式下输入 切记)



                     输入命令:date -s "2018-03-29 16:42:00"       回车 (引号内的时间换成你现在的时间)


                     输入命令:hwclock -w        回车 (将时间提交给硬件层)




                     这个时候输入命令:date   回车 看到的就行现在的时间了 (ps:该设备没有时钟芯片 停电后时间不走)


第三步:上传文件到popo云
              1.1 第一种方法 准备一个u盘 (fat32格式)  将下载到的压缩包内的 install.tar.gz 文件 拷贝到u盘根目录 (不要拷贝到有中文文件名的目录中)



                   1.2 将u盘插入popo云的数据usb口(一开始被遮挡的那个usb口)


                   1.3 putty 输入命令 :mkdir /mnt/usb1       回车 (mkdir 命令 是新建文件夹命令 次文件夹就是等会u盘的根目录 )


                   1.4 输入命令:fdisk -l              回车 (此命令查看硬盘信息 加下图 )



                 1.5 输入命令 :mount -t vfat /dev/sda1 /mnt/usb1/      回车 (挂载u盘到1.3我们新建的文件夹)(注意此条命令的参数 /dev/sda1 是上图的路径 如果你的不是 这个 请输入你的路径)

                 1.6 此时 u盘已经挂载了 我们进入u盘根目录 输入命令:cd /mnt/usb1     回车 (cd 命令后面跟路径 是跳转到指定的路径)

                 1.7 输入命令:ls      回车 (ls命令是查看当前目录下的文件 类似于 win下的 dir )(此时应该可以看到你的u盘根目录的所有文件 包括install.tar.gz)
                 1.8 解压 install.tar.gz  输入命令:tar -zxvf install.tar.gz         回车 (等待解压完成)

                 1.9 进入install 目录 这么进呢 相信你已经学会了 输入命令:cd install     回车

                1.10 激动人心的时刻到了  执行安装命令 :./install.sh      回车 (接下来就可以放下鼠标等胜利了)(此条命令斜杠前面有个点 复制的时候别漏掉)

                1.11 等屏幕跑完 系统会自动重启 重启之后 在命令行输入 :hass   回车 (启动homeasisstant)

                1.12 安全卸载u盘的命令 :umount /mnt/usb1/        回车

                2.1 另一种上传文件的方法就是用scp命令 相信linux用户都知道 这就不在说了    (windows用户请忽略这条

               安装过程中有任何问题 请回帖 我会第一时间回复




[ 此帖被wenxueroom在2018-04-01 17:07重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共1条打赏M币+9
谭咏麟 M币 +9 謝謝分享 04-01
在线wenxueroom

发帖
440
M币
3397
专家
7
粉丝
27
只看该作者 3楼 发表于: 03-29
        关于那个 install.sh 自动安装脚本的说明 :实际上 ,上面那个脚本是复制文件到了系统的 /usr/目录而已 ,我的水平有限写不出太好的脚本 ,有linux命令行基础的大神也可以手动安装 ,只要解压 local.tar.gz 到系统的 /usr 目录 覆盖掉 /usr/local目录就可以了
       今天晚上研究一下能不能移植node.js到这块小板子上 实现用苹果的Siri控制家用电器
       明天 完善一下homeasisstant 开机自启动的问题 大神们也可以试试如何让它开机自启动 今天试了一下没有成功  明天继续研究 晚安 各位

[ 此帖被wenxueroom在2018-03-29 21:45重新编辑 ]
在线wenxueroom

发帖
440
M币
3397
专家
7
粉丝
27
只看该作者 4楼 发表于: 03-29
占楼  哎呀 被防水给禁了 占楼
离线zsyg

发帖
3494
M币
1728
专家
1
粉丝
12
只看该作者 5楼 发表于: 03-29
折腾挺快的啊
离线cs538138

发帖
700
M币
841
专家
10
粉丝
28
只看该作者 6楼 发表于: 03-29
楼主牛逼,服
在线wenxueroom

发帖
440
M币
3397
专家
7
粉丝
27
只看该作者 7楼 发表于: 03-29
回 zsyg 的帖子
zsyg:折腾挺快的啊[表情]  (2018-03-29 11:39) 回 zsyg 的帖子

额 弄不完总觉得心里跟个事儿似的 晚上睡不好
离线zsyg

发帖
3494
M币
1728
专家
1
粉丝
12
只看该作者 8楼 发表于: 03-29
回 wenxueroom 的帖子
wenxueroom:额 弄不完总觉得心里跟个事儿似的 晚上睡不好 (2018-03-29 11:47) 回 wenxueroom 的帖子

我也折腾了下homebridge,水平太低没弄成功
离线wxgwxg

发帖
6645
M币
2221
专家
1
粉丝
138
只看该作者 9楼 发表于: 03-29
支持一下,可惜没有抢到
快速回复
限80 字节
温馨提示:所有技术区严禁灌水,“沙发”“顶”字样;禁止广告贴;以免被删除
 
上一个 下一个