树莓派串口驱动的情况

树莓派串口驱动详细

串口驱动现状

本来在树莓派上插入了一个sim800c的设备,但是这个产品带着一颗ch3401的芯片,在设备上用ls /dev/ttyUSB*竟然没有找到串口设备,内心想可能是没有驱动,于是到官方站点上下载了一下。

看更新时间是2018年3月,然后打开压缩包。

然后发现Readme里面已经告诉我们支持的内核只能是:

太老了。后来查资料发现好像这几款常见芯片已经被加入到Linux内核,早已经支持。抱着怀疑的态度查看了一下。

果然都支持了。
包括ch341, cp210x系列,pl2303, ftdi, 好吧,这下方便多了,以后在linux下做串口设备的调试就不要担心串口芯片不兼容了!
然后再通过lsusb和lsmod还有dmesg检查后发现,已经识别了。。

检查看看串口是否连上来出现一个/dev/ttyUSB0的设备:

这样才对么。我下面就可以用串口来获取一下sim800C的sim卡联网的状态信息了。

测试代码:

#!/usr/bin/env python3
import serial
import time
import operator
import os

time.sleep(2)
ser = serial.Serial('/dev/ttyUSB0', 115200)
print("串口初始化完成...")

if ser.isOpen == False:
    ser.open()
try:
    print('-'*60)
    print("初始化SIM800C")
    print("尝试测试SIM800C联网获取CCID信息...")
    time.sleep(2)
    i = 0
    while True:
        ser.write(str.encode("AT+CCID\r"))
        size = ser.inWaiting()
        if size != 0:
            response = ser.read(size)
            ccid = str(response,encoding="utf8")
            print(ccid)
        ser.write(str.encode("AT+CGMR\r"))
        size = ser.inWaiting()
        if size != 0:
            connection = ser.read(size)
            creg = str(connection, encoding="utf8")
            print(creg)
            time.sleep(1)
        ser.write(str.encode("AT+CSQ\r"))
        size = ser.inWaiting()
        if size != 0:
            csq = ser.read(size)
            csqstatus = str(csq, encoding="utf8")
            print(csqstatus)
            time.sleep(1)
        ser.write(str.encode("AT+CGACT=1\r"))
        size = ser.inWaiting()
        if size != 0:
            cgact = ser.read(size)
            cgactstatus = str(cgact, encoding="utf8")
            print(cgactstatus)
        else:
            ser.flushInput()
            time.sleep(1)
except KeyboardInterrupt:
    ser.close()

结果

今天就到这里,白了个白~

Debian 9 配置 DHCP 服务器

DHCP 很常见,自动分配 IP 地址子网掩码,默认网关等,还可以结合其他服务做远程无人值守安装服务器.

配置步骤

root@ns1:~# apt -y install isc-dhcp-server
root@ns1:~# vi /etc/default/isc-dhcp-server
# line 4: uncomment
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
# line 17,18: specify listening interfaces
# if not use IPv6, comment out it
INTERFACESv4="ens3"
INTERFACESv6="ens3"
root@ns1:~# vi /etc/dhcp/dhcpd.conf
# line 7: specify domain name
option domain-name "yoyojacky.com";
# line 8: specify nameserver's hostname or IP address
option domain-name-servers ns1.yoyojacky.com;
# line 21: uncomment
authoritative;
# add to the end
# specify network address and subnet-mask
subnet 10.0.0.0 netmask 255.255.255.0 {
     # specify default gateway
     option routers 10.0.0.1;
     # specify subnet-mask
     option subnet-mask 255.255.255.0;
     # specify the range of leased IP address
     range dynamic-bootp 10.0.0.200 10.0.0.254;
}
root@ns1:~# systemctl restart isc-dhcp-server 

基本上就搞定了,测试 linux 用 dhclient 获取一下,windows 用 ipconfig /release 和/renew.

How to add new desktop shortcut on Raspberry Pi

To add a new desktop shortcut in Raspbian, right click on the desktop and create new file with “desktop” extension, e.g. MyApp.desktop.

Once you’ve created the file, open it in text editor and add the following content

[Desktop Entry]
Name=App Name
Comment=Some comment
Icon=/usr/share/pixmaps/openbox.xpm
Exec=/usr/bin/myapp
Type=Application
Encoding=UTF-8
Terminal=false
Name – application name
Comment – you can put any comment you wish
Icon – path to icon file to be used for the shortcut
Exec – path to application executable

Save the file and you can use new shortcut to launch your application.

记一次怼SB的感慨!

今天我是出来怼某些蠢货的~ 我个人博客我怎么写我乐意~

每次我谈论树莓派都会遇到几个啥也不是的东西跳出来瞎逼逼, 我个人从总体使用过程中来看我更倾向于使用3B+, 我很在乎那一点点儿性能的提升,虽然我遇到很多工程师都会跳出来反驳说NanoPi性能超越树莓派,orangePi超越树莓派,说各种Pi的能力都很强大,但是我就是喜欢树莓派,大概是树莓派是我使用的第一个pi的版本吧,交点儿情怀税哈~

但是我很快就发现我喜欢树莓派的原因了,是互联网上铺天盖地的树莓派资料应接不暇,Maker创建自己的DIY项目,学生用树莓派做毕业设计, 工程师用树莓派做自动化管理设备,网络工程师用树莓派做流量监控设备,黑客用树莓派hack无线网络,航模爱好者用树莓派做数传+图传,艺术家用树莓派打造自己的Magic Mirror, 音乐爱好者用树莓派制作自己的打击垫儿和效果器, 油头宅男用树莓派打造自己的家庭媒体中心,仓鼠党用树莓派打造自己的家用NAS, 还有科技大牛用树莓派建立自己的科学运算集群和超牛逼的机器人, 我的小伙伴还用树莓派结合tensorflow制作自动学习避障小车DonkeyCar, 游戏爱好者不断用树莓派制作游戏机,不管是手持的还是街机,都有它小众的市场,树莓派基金会最想看到的还是我们用它来学习编程, 教育孩子接触和学习,但是我们已经玩儿得停不下来了,哎,还有太多的好玩儿的项目数也数不过来,这么多资源,就算是我按照他们的想法全部玩儿一遍,也够玩儿数月时间了,总结下来,就是海量的资料漫天飞舞。

也许,这就是吸引我的原因之一吧,但谁又知道是不是一种情结呢?

身边的很多小伙伴都有树莓派,遇到我给我说的第一句话就是:我到底能拿树莓派做什么?

每次我都无法回答, 因为可能因为他不懂linux,不懂硬件,更不了解GPIO能做什么。难道大家的创意都被扼杀了吗?

身边的大牛们一次次过来PK我:“你这个东西为什么不用STM32做?”“ 你这个项目我用arduino就实现了!” “我觉得lattepanda做起来会更高性能!”“ 你这个树莓派弱爆了,我都用nanoPi 实现了!”“ 我觉得你这个项目用香蕉派会更好!” “我用ESP32也能实现和你一样的功能!” “你觉得树莓派到底比arduino好在哪里?” 

这时候他们的表情都是:

每次遇到这个问题,我都只好笑笑:"因为我不会其他的板子”,“因为我没有其他的开发板” “因为我不懂STM32”,“因为我懒”,最后直接统一回复:因为我愿意~” 从此整个世界安静了, 都不用手起刀落。

当时我的内心活动可能是这样的:

刚开始:yyi.jpg

我深知1万小时定律,东一榔头西一棒子我真的搞不定,来不及学精那么多东西,只能笨鸟慢点儿飞,移山慢点儿挖, 看不惯的都给我闭上你们的嘴,别让我出来给你一顿怼, 二营长,你他娘的意大利炮呢!?!

!!!!!!!

也就这样吧,心里默念:仁慈的主啊,快来收了这群SB吧~

据说阿里云昨晚上又大面积故障了

早上起来发现朋友圈哀鸣遍野,仔细一看原来是阿里云大面积宕机了,吓得我赶紧起来看了看我的博客,好像还没有影响到...暗自庆幸!

看来阿里运维开年就知道年终奖已消失殆尽,今年的干劲儿也会受到影响吧?话说苦逼的运维一直是给开发背锅的....

凉凉....

 

 

 

 

 

 

记一次坑爹的grub修复

公司的路由盘存放着共享的数据,年前老板最后离开公司的时候来了把硬关机,直接拔电源的那种硬, 过完年回来就发现路由盘死了,上面的seafile系统瘫痪了。

Tater不在,只好自己硬上,修呗,检查发现每次开机map device table都找不到,起初以为硬盘坏了,烧录了一个USB启动盘,用了个软件叫: https://rufus.ie/

自己下载,然后各种安装添加ppa仓库,安装boot-repair工具,完全不好用。后来同事找到一篇帖子,需要修复EFI。。。

步骤如下:

尝试 EFI shell环境启动

开机总是停留在这里:


一般情况下进入 efi shell 后会显示 Device mapping table, 有时候会出现磁盘的信息,就是fs0,当出现的时候说明识别出了硬盘,但是无法引导。

在shell下面键入:

reconnect -r 

重新连接控制器,出现成功后再执行map看看是否有磁盘列出来。

如果这样列出,就可以确认磁盘没有问题了,问题出现在grub上,由于设备是X86_64架构,而且又是用了EFI的启动模式,初步估计问题出在了grub-efi上。

Ubuntu U盘PE,大白菜修复盘~

利用烧录工具烧录Ubuntu16.04 镜像到U盘,软件已经上面提到,简单粗暴,还很小巧。

选择设备镜像文件然后选择U盘设备信息。

一路默认即可。

 

速度很快,也就几分钟就可以完成了,插到PPC上,按下F7, 这个很坑爹的操作尝试了好几次,才找到相应的启动选项:

   

通过USB启动后尝试检查设备是否有问题,能够挂载和读取设备内容说明没有问题。

检查了/boot分区的启动信息,看不出哪里出问题了,有点儿犹豫问题所在,决定还是重新构建grub信息。

这是检查了/etc/fstab文件系统挂载配置文件,没有啥问题,确认是grub的问题了。


再次重启,进入live CD,选择 Try Ubuntu without installing 进入Live OS。
进入系统后打开终端(快捷键Ctrl+Alt+T)这个是最常用的开终端的方式。

先来查看系统分区情况:

sudo fdisk -l  
sudo blkid  
df -Th  
这个系统2块硬盘 /dev/sda ,两个分区,/dev/sda1 为 EFI 分区,/dev/sda2 为系统分区, /dev/sdb1 是存储数据的分区。

为chroot做准备:

1. 挂载分区

sudo mount /dev/sda2 /mnt  
sudo mount /dev/sda1 /mnt/boot/efi

2. 挂载虚拟文件系统

系统上的/dev   /proc  /sys /run  /dev/pts 这些是常见的虚拟文件系统,可以通过循环直接挂载到目标位置。

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

3. chroot 切换系统根目录

sudo chroot /mnt

4. 最关键的部分-修复引导信息

apt-get update
apt-get -y install grub-efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi
update-grub

--target 指定系统结构
--efi-directory 指定 EFI 分区挂载点

update-grub 更新grub信息

Grub重新安装后,重启:

成功登陆,心里就想骂,这个EFI好鸡肋。

帮助参考文献

https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot

转载记得标明出处,你妹的,打字很累的。白了个白。

新西兰之行

先来一张我在huka falls 拍的大头照吧!哈哈!适逢当地圣诞节来临之际的大狂欢,蹭了一点儿热度.

这个就是新西兰靠近奥克兰的huka falls,湖卡瀑布.我也不知道是不是这个湖卡,原名给你们了自己查.

出了湖卡瀑布,我们就去了汉密尔顿国家公园,这里终于有机会飞无人机了,但是还是因为我们停留时间太短而放弃飞行...因为新到手的无人机还真tm不太会飞.

路边的随意拍摄的小房子,呸,是小别墅!据说便宜的地方50万纽币就可以买下来了!

一路的蓝天白云让我突然觉得这个资本主义国家的天空也不尽然是全阴霾密布的,乌云过去还是有蓝天的,至少水是纯净的,天空是蓝色的,空气是清新的,通透的感觉,深呼吸都觉得是放纵自己,猛吸一口觉得要醉氧。我突然觉得我爱上了这个世界上偏远的南半球小国,至少爱上了这里的草原,如果未来爱上一匹野马,在这里是真的不怕没有草原,听导游说如果买了房子可以拥有这里999年的居住权,就觉得自己费尽心思在上海买的这套40年商住简直是鸡肋中的鸡肋!

虽然已经旅途过半,而且这次还没看到毛利战舞,没有喝到当地鲜醇爽口的啤酒,但是已经被这里的人文环境深深影响了..

还有美美的老婆陪着我,还是很开心哒!

l路边吃点儿汉堡

也许应该去这家

大家还是去了一家看上去人气稍微旺点儿的地方.随后就是一路颠簸来到霍比屯..

老婆很幸福的拿起了我的单反

被她姐姐抢了先,手机拍出了大片的效果...

这也是..

.

她自己这张是老姨夫的华为荣耀拍摄的...是不是活捉一个精灵?

转眼就踏上飞往皇后镇的飞机了...

说实话,我手机拍摄的照片太少,单反里面的照片还有43Gb,等我整理出来再展示出来吧!

今天又到周末了

讲真的,我有点儿感觉吃力了,太多的开发板要尝试,太多的文档要写,太多的想法要去实现,我还要赚钱,养家, 要为了孩子做准备。。妈蛋,鸭梨山大思密达!
时间如流水,钱财如粪土!
我要继续赚更多的粪土才能养育我播种的这片土地。。。
我的瓦利机器人要继续做起来了,我的烂尾项目都要好好的开始收尾了,不能再拖了~

这是第三次推倒重来了!!!希望以后不要再出现这种情况~

之前的博客因为阿里云 Centos 镜像的问题,彻底报废了,我在尝试挽救无数次未果的情况下,无奈全盘格式化, 重新来过了,之前的博客因为也咩有什么人看, 只是作为自己的一个个人记事本的平台在积累自己的知识, 后来发现,以前的博客平台各种系统层面的 Bug, 就是请出雍正爷也解决不了的"八阿哥", 于是一怒冲冠为红颜~其实是看着 debian9的系统感觉杠杠滴,所以决定换掉centos, 拥抱 debian~

 

继续阅读这是第三次推倒重来了!!!希望以后不要再出现这种情况~