原创 0-Linux coredump捕獲分析

1.製作debug-root commit a4a3b5ba5a7bdb3fb98028793d62f37788c0790a config: CONFIG_DEBUG use debug rootfs, sstrip real rootfs

原创 1-Linux 保存kernel panic信息到flash

在系統運行過程中,如果內核發生了panic,那麼開發人員需要通過內核報錯日誌來進行定位問題。但是很多時候出現問題的時候沒有接調試串口,而報錯日誌是在內存裏面的,重啓後就丟失了。所以需要一種方法,可以在系統發生crash時,將crash i

原创 2023新的征程

距離上一篇的五年睿進已經過了四年,不知出於什麼理由,中間的這三年沒有寫年終總結,今年也是比較特殊的一年,重新開始自己的年終總結,回顧四年裏發生的事情,計劃2023新的征程。 回顧四年 2018年底,畢業後的第二個五年,我給自己列了六個不

原创 19-Openwrt雙固件升級

在上一章節《Openwrt sysupgrade系統升級》中,我們描述了sysupgrade升級系統的過程,這種升級過程會直接firmware分區進行寫入,無法保證系統的安全性,只要在寫入過程突然斷電就會出現系統寫入失敗,升級失敗無法啓動

原创 20-Openwrt crond crontab

crond和corntab都是busybox下的一個工具,crond是一個後臺進程,每隔一分鐘讀取配置文件中的參數,執行對應的動作。crontab是提供的一個命令行,可以對配置文件進行增刪改查。 1、openwrt上啓動crond進程

原创 24-Openwrt dnsmasq

dnsmasq是openwrt一個重要的進程,裏面提供了兩個重要的功能。一個是dhcp server,給lan口使用的,另一個是dns功能,維護路由器的dns信息,而且支持ipv4和ipv6。 1、 dnsmasq啓動過程 從/etc/

原创 26-Openwrt 端口轉發 dmz upnp

我們經常會在路由器上面配置端口轉發的規則,用來訪問內網機器的某個端口,openwrt上面有很多中實現端口轉發的方式。 1、端口轉發 比如我想用wan口的IP,192.168.2.180,遠程連接lan口內網192.168.18.235的

原创 22-Openwrt 使用外部kernel和kernel_config

由於內核的修改要通過打patch的方式會比較麻煩,有時候我們會把內核直接解壓出來用修改源碼的方式,這時候就需要使用外部kernel的這個選項。openwrt的內核config是根據版本保存的,如config-4.19,當我們在一個版本下如

原创 21-Openwrt 內核模塊改成.ko自動加載

openwrt下有很多開源的內核模塊位於package/kernel/下,如gpio-button-hotplug、mwlwifi等。這些模塊都是文件系統啓動後,通過autoload的方式進行insmod載入的。 1、正常思路 在《Op

原创 25-Openwrt 訪客網絡添加

很多路由器都會有訪客網絡的需求,主人網絡和訪客網絡相互隔離,wifi密碼不同,而且也不能訪問到主網絡的內容。原理就是多了一個vlan,有兩個網段,相互之間隔離。 1.訪客網絡dhcp網段添加 我們在/etc/config/network裏面

原创 23-Openwrt switch vlan配置

路由器上面基本都是用switch芯片來實現lan/wan的劃分,但是有的switch只有一個GMAC,有的有多個GMAC,對於內核驅動設備來說就是有的switch生成的只有eth0,有的switch生成的有eth0和eth1。 1、基本

原创 18-Openwrt sysupgrade系統升級

openwrt的升級是使用sysupgrade工具來升級的,該工具爲sbin下面的一個腳本,可以附帶很多參數,但是我們一般就直接sysupgrade openwrt-ramips-mt7621-device-squashfs-sysupg

原创 遠程調試frp

嵌入式設備上線之後,如果遇到問題想要線上維護,最直接的方法的能夠遠程ssh進入到設備裏,然後查看日誌定位問題,這邊介紹使用frp配合mqtt的方式進行設備遠程調試。 1.遠程調試原理 遠程調試的原理如下: 本地網關與MQTT服務器保持

原创 14-Linux gpio模擬spi

1.config配置 首先是spidev,要在/dev/下面產生設備文件,需要spidev的支持 CONFIG_SPI_SPIDEV=y 使用的是gpio模擬spi,gpio模擬spi的時序原理是bitbang文件實現的,所以這個也需要打

原创 13-Linux-gpio-system

對於gpio的應用其實會在很多地方,最常用的就是led和key,我們也可以使用類似單片機的寫法,去直接讀寫寄存器來控制,沒有文件的體現,但這樣總感覺不夠Linux,所以我們還是要使用linux已有的一些設備節點來實現。 一 概述 Lin