1.openwrt编译流程
2.使用7zip压解各种文件的源码常用命令
3.从PR中学习如何修改 flashrom 读取国产 flash
4.bt4çå
å¹
openwrt编译流程
编译OpenWRT源码至Ubuntu下,需先进入OpenWRT根目录。源码通常,源码简单操作为执行命令make V=。源码若系统为多核处理器,源码为加速编译过程,源码突破监控源码可添加-j选项,源码如make –j3 V=。源码在编译过程中,源码系统将自动下载所需软件包,源码请确保网络畅通。源码若在编译时遇到下载失败,源码黑客首页源码可先执行make download指令,源码提前下载所需包,源码以避免后续错误。源码
初次编译耗时较长,且需下载大量源码包,建议使用较好的***,以加速过程。完成编译后,会在源码目录中生成一个名为bin的文件夹,其中包含两个文件:openwrt-ramips-rtx-wrn-squashfs-factory.bin 和 openwrt-ramips-rtx-wrn-squashfs-sysupgrade.bin。根据路由器的jsbridge源码分析原始固件或已安装的OpenWRT版本,选择相应的固件进行刷写。
在编译过程中,掌握一些技巧有助于提升效率。例如,执行make clean可以清理基本编译文件,make dirclean则会深度清理文件,相当于执行make clean后再清除交叉编译工具链目录。使用make distclean则会清除所有相关东西,包括下载的软件包、配置文件及feed内容等。在个人开发中,性商店源码常遇menuconfig无法更新问题,可通过删除tmp缓存目录解决。预先下载软件包,再执行编译的make download V=方法同样有效。最后,删除.config文件以清空所有配置。
使用7zip压解各种文件的常用命令
7zip简介 格式支持 压缩解压缩 仅支持解压缩 安装 Debian ubuntu Archlinux 使用 打包 解压 列出文件的信息列表 检查包的完整性 更新压缩包 删除包里的文件使用7zip压解各种文件的常用命令-老D
7zip简介
7-Zip 是一款 开源 软件。大多数源代码都基于 GNU LGPL 许可协议下发布。AES 代码基于 BSD 许可下发布。unRAR 代码基于两种许可:GNU LGPL 和 unRAR 限制许可。中文官网
格式支持
压缩/解压缩
7z,xcode查看源码 XZ, ZIP, TAR, BZIP2, GZIP and WIM
仅支持解压缩
ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR, Z
安装
Debian / Ubuntu
复制代码
代码如下:
sudo apt-get install p7zipsudo apt-get install p7zip-full #完整版
复制代码
代码如下:
ArchLinuxpacman -S p7zip
使用
复制代码
代码如下:
7z [adeltux] [-] [SWITCH]打包
复制代码
代码如下:
[poplar@arch Downloads]$ ls testbag.hpp hashtable.hpp minpq.hpp rbtree.hpp uf.hpp
hashchain.hpp maxpq.hpp queue.hpp stack.hpp
[poplar@arch Downloads]$ 7z a test.7z test/p
p...
Everything is Ok
[poplar@arch Downloads]
$ 解压
所有支持解压的文件类型都是一样的
复制代码
代码如下:
[poplar@arch Downloads]$ 7z x test.7z #解压到当前目录[poplar@arch Downloads]$ 7z e test.7z -otmp #加压到当前的tmp
从PR中学习如何修改 flashrom 读取国产 flash
在探索一款摄像头固件提取时,面对Flashrom无法识别XMC(长江存储)的XMQHA这一挑战,我们意识到当前开源工具对国产芯片的支持相对滞后。为了解决这一问题,我们决定学习如何为不常见芯片扩展支持能力。经过多次尝试,我们意识到需要将Flashrom进行自定义编译以支持特定芯片。
最初,我们使用Flashrom提取固件时遭遇失败,提示为“unknown SPI chip (REMS)”。进一步调查发现,V1.2 release版本的Flashrom并不支持长江存储的Flash。幸运的是,GitHub上的一份Pull Request(PR)中包含了对部分长江存储芯片的支持代码,包括XMQHC,我们猜测XMQHA也可能被支持。尽管没有查阅手册,但通过PR内容,我们了解了添加新设备支持的基本步骤。
在尝试手动编译Flashrom时,我们遇到的第一个障碍是缺少libftdi库,这导致了“未知编程器”的错误提示。解决这一问题需要查看编译说明,确保已安装所有依赖项。安装libftdi后,使用Make命令编译Flashrom,发现可以识别FTH编程器。然而,编译后尝试读取固件仍然失败,于是我们转而考虑直接修改源码以添加对XMQHA芯片的支持。
为了学习如何添加对新设备的支持,我们通过分析PR中对XMC芯片的修改内容,了解了添加新设备支持的基本步骤。PR中对6个XMC型号芯片的支持进行了详细说明,这为我们提供了灵感。通过对XMQHC的支持代码进行分析,我们了解到需要在flashchips.h和flashchips.c中添加芯片的制造商ID、设备ID、供应商名称、总线类型等详细信息。
通过调整制造商ID和设备ID为XMC_XMQHA和0x,我们成功添加了对XMQHA的支持。验证编译后的源码,固件读取顺利完成。进一步分析提取的固件,我们确认其包含Squashfs和JFFS2文件系统等信息,证明固件提取成功。最后,我们将修改后的代码提交至GitHub的PR中,以便更多用户能够利用这一工具。
总结此次经验,面对现有工具不支持的IOT设备与方案,自行添加支持成为一种有效解决方案。从PR中学习并模仿代码,不仅节省了时间,还提高了学习效率。通过这一过程,我们不仅成功解决了固件提取问题,还为Flashrom工具的用户社区贡献了一份力量。
bt4çå å¹
BT4 å¼å ¥äºè®¸å¤æ¾èçååï¼åºäºUbuntu Intrepidãç°å¨å¼å§ä½¿ç¨æ们èªå·±ä¿®æ¹äºçUbuntu软件å åæ¸éæµè¯å·¥å ·è½¯ä»¶æ¥ç»´æ¤æ们èªå·±å ¨é¨ç软件ä»åºãå¦å¤ä¸ä¸ªæ¾èçååæ¯æ´æ°linux æ ¸å¿çæ¬å°2.6..4.è¿ä¸ªæ°æ ¸å¿å¸¦æ¥äºä¸æ´å¥ç³»ç»å å¨çååï¼ä½¿å¾æ大å°æ¹åäºBackTrackçæ¶æã ä¸å使ç¨lzmaæ ¼å¼çsquashfsä½ä¸ºlive cdçæ件系ç»ï¼ä»è导è´äºä¸ä¸ªæ´å¤§å®¹éçISOæ件ãä½ä»å¦å¤ä¸ä¸ªæ¹é¢æ¥çï¼è¿ä¹ä½¿å¾æ们ä¸ç¨ç»´æ¤æ们èªå·±çæ ¸å¿è¡¥ä¸é®é¢ãè¿æ¯å¾çè¦çï¼å 为squashfsèå ¥ä¸»æµæ ¸å¿çé度ååç¼æ ¢ã
BT4使ç¨äºsquashfs-tools version 4.0,å 建çsquashfsæ ¸å¿æ¨¡åï¼2.6..4ï¼ï¼åæ§çæ¬ä¸å ¼å®¹ã使ç¨äºAUFSæ ¼å¼ä½ä¸ºç»ä¸æä»¶ç³»ç» ï¼unification filesystemï¼ã
æ ¸å¿å·²ç»å®è£ äºå 个æ 线驱å¨çæ³¨å ¥åä¼åè¡¥ä¸ï¼å¹¶ä¸æäºbootsplash è¡¥ä¸ï¼è¿äºè¡¥ä¸é½è½å¨æ ¸å¿æºç å ä¸æ¾å°ãï¼/usr/src/linux/patchesï¼
è¿äºååæå³ç以åå¾å¤å¨BT2/BT3ä¸ä½¿ç¨çæ¹æ³å·²ç»ä¸åææï¼æ¯å¦å¯å¨æ¶çcheatcodesåæ°ã
ç±äºæ ¸å¿ç转移ä¹æå³çä¸å使ç¨live-linuxèæ¬æ¥çæisoæ件ï¼æ以æ们使ç¨casperã