使用 gdb 解析 ppp driver crash log
由于项目整合,经过一次大版本升级后的项目,继承了大家族中许多新的特性,然而在正常功能测试中崩溃了,而且还是kernel crash, 会导致reboot的那种。本文就此问题重现、调试分析过程予以归纳总结。 问题描述PPTP 拨号上网模式下,Router 在添加特定静态路由后crash. 添加路由的原因在本文讨论内容中不重要,因此略过。 问题再现实际测试过程中寻找重现方法耗时较长,经过大量实验后简化如下: 连接 WAN Port PPTP 拨号上网 拨号成功后,查看 WAN 口及 ppp0 的 IP. root@model:$ ifconfig brwan brwan Link encap:Ethernet HWaddr 00:13:2F:34:42:59 inet addr:10.0.0.84 Bcast:10.156.23.255 Mask:255.255.254.0 inet6 addr: fe80::203:7fff:fe94:229/64 Scope:Link UP BROADCAST RUNN...
Setup PPTP and DNS server
PPTP (Point to Point Tunneling Protocol) 点对点隧道协议,与PPPoE, L2TP 均属于 PPP(Point to Point Protocol) 点对点协议。这篇来记录下PPTP server的安装和配置过程。 install DHCP server除了PPPoE外,PPTP 与 L2TP 都无法直接给client分配IP,需要使用dhcp server分配。所以在安装PPTP的同时,也要保证DHCP server也已安装。具体方法参考 Setup dhcpd/dhcpdv6 server. 需要注意的是,在Ubuntu 20.10 版本中,网卡的静态IP管理模式与以往有所不同。在以往版本中,是修改 /etc/network/interfaces 文件,但是在最新Ubuntu确不一样,最新版提出了一个叫 netplan 的概念,修改的文件是: /etc/netplan/01-network-manager-all.yaml 以 yaml 文件存储配置信息,我们将配置dhcp 对应接口的静态IP为 10.0.0.138/24, 对应配...
openssl 验证证书有效性
OpenSSL is a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library. openssl是非常强大的TLS/SSL协议相关的工具集,包含丰富的测试工具。 这篇文章来讲讲如何使用openssl工具集中的s_client测试证书认证。 $ openssl -h openssl:Error: '-h' is an invalid command. Standard commands asn1parse ca ciphers cms crl crl2pkcs7 dgst dh dhparam dsa dsaparam ...
python之给pdf添加页码
最近写release note, 总感觉用tex不太方便,特别是装texlive占用大量空间,还有各种依赖问题,想着能不能用markdown写更方便。实践证明,typora导出pdf的功能真的很棒,唯独一个不足之处就是生成的PDF不带页码。 这个虽然可以使用在线工具实现,或者使用Adobe、福昕的 pdf 编辑功能,但是很多情况,尤其是工作平台是不方便使用的。为此我想到了Python,通过脚本把页码加上。 安装Python库首先需要安装两个依赖库,PyPDF2以及reportLab, PyPDF2可以对PDF进行拆分、合并、删除、加密等操作;reportlab则更是强大,看看下面的官方介绍。 We build solutions to generate rich, attractive and fully bespoke PDFs at incredible speeds.Over 5 million documents are generated each month using Reportlab's software--- https://www.reportla...
Python网络爬虫8 - 爬取彼岸图网美图
彼岸图网收集了大量美图,是个不错的爬取对象。话不多说,直接上图。 分析站点分类列表爬取之前,自然要分析一波,这个站点的框架比较简单,从分类着手,共包含12个分类项。 4K人物 4K动漫 4K动物 4K宗教 4K影视 4K明星 4K汽车 4K游戏 4K美女 4K美食 4K背景 4K风景 名称都含有4K,但是获取原图是需要会员的,所以我这里获取的不是原图,而是详细页展示的大图。首先要获取的当然是分类页面的网址,看下面的DOM. 通过xpath //div[contains(@class, "classify")]/a 可以得到分类链接信息,从而可以得到分类名称和网址。 缩略图列表接下来以4k影视为例,解析每个分类页面,从分类页面可以看到图片的缩略图列表,点击缩略图就能进入详细页面看到大图。 缩略图列表中的图片链接可以通过xpath //div[@class="slist"]//a/@href 获得。 此外,分类页面包含大量图片,是通过分页展示的,分页的页数可以从页面尾部看到。 页面数量可以通过xpath //span[@class=...
VPS搭建在线VSCode Server
VSCode ServerVSCode(Visual Studio Code), 是我目前使用过的最好的编辑器,也应该是很多程序员的首选。然而很多人不知道的是,这款开发利器还有在线版,这包括GitHub即将推出的Satellite, 也会搭载VSCode,那么如果我们想要搭建自己的在线开发环境呢?答案就是Code Server, 一款可以部署在个人服务器上的VSCode服务。 安装如果在本地,自然是无需搭建这个server的,我的选择是放在阿里云服务器上,对应的是Ubuntu系统,安装过程非常简单。 curl -fsSL https://code-server.dev/install.sh |sh 安装完会给出提示该怎么操作,其它系统可以参考官方文档。 运行使用systemctl启动服务,并保证系统重启可以自启动服务,可以执行以下指令: systemctl --user enable --now code-server 配置VSCode服务有一个配置文件~/.config/code-server/config.yaml,默认配置包含: bind...
Win10中使用ssh访问WSL
win10的WSL作为目前日常必备,实在是爱不释手,奈何默认终端界面实在一言难尽,尽管配色问题可以解决,但是字体问题导致ohmyzsh的很多图标无法正常显示,配置好powerline字体略有改善,但配合tmux使用又会出现乱码问题,实在难以忍受,于是准备通过ssh间接访问。 配置ssh重装openssh-server, 如果自带的没问题也不用重装。 sudo apt remove openssh-server sudo apt install openssh-server 修改/etc/ssh/sshd_config # 服务端每分钟发送一次数据包给客户端,客户端回复即保持连接 ClientAliveInterval 60 # 客户端3次未响应则断开 ClientAliveCountMax 3 # 开启密码认证,拒绝空密码 PasswordAuthentication yes PermitEmptyPasswords no 手动启动ssh, 可以用以下方法,二选一 sudo service ssh start sudo /etc/init.d/...
Linux 内核驱动解析 - UBI坏块预留大小
在处理ubifs相关bug的过程中,学习了ubi驱动对坏块保留分区的处理方式,在此记录一下。 相关概念mtdmtd 全称 memory technology device 内存技术设备,是用于访问内存设备(RAM, Flash)的Linux 子系统,在硬件层和用户空间之间提供抽象接口。 在嵌入式linux设备中的/dev/目录下有很多/dev/mtdxx文件,这些文件对应的就是内存设备。比如,嵌入式设备的Nand Flash被划分为多个分区,每个分区对应一个/dev/mtdxx文件。 如下所示,/dev/mtd0至/dev/mtd10对应uboot分区,mtd21对应固件分区,mtd20就是本文将要用到的数据分区。 root:/dev# ls mtd* |grep -v block mtd0 mtd16ro mtd23ro mtd30ro mtd0ro mtd17 mtd24 mtd31 mtd1 mtd17ro mtd24ro mtd31ro mtd10 mtd18 ...



