博文

MB2 开发笔记

# 座子错位 调试USB的时候发现通讯不上, 测量的时候发现引脚不对, 经检查发现是主板对sensor板3.3V没有加上, 导致所有引脚偏移了一位 # 16V电源异常 有个比较严重的问题, 机器带着墨盒上电, 会出现电流异常增大, 表现为2个16V的4504芯片和16Vdcdc发热, 电源电压从 4V 降到 3.3V 以下关机了, 经历了以下排查步骤: 1. 16V_EN 和 16V_CUR 标号弄反, 飞线之后好了, 后来又不行了, 本质只是概率降低, 并不是完全好了 2. 后来定位到电池升压到16V, 9V的地方, 没有用mos管拦住, 导致4V直接通到16V的地方, 上电之后会让4504芯片通电, fpga上电之后状态不确定, 导致墨盒一直通着电, 通电就会掉电, 导致机器无法越过bl这个坎, 无法初始化fpga, 上电时拆下墨盒是临时解决方案 3. 打印时总是有一定几率电流变得很大, 导致关机, 原因未知 4. 把dcdc芯片和4504芯片换了, 打印不出来了, 怀疑是板子问题 5. 上电时fpga总是有类似喷墨信号输出, 经查是fpga初始化代码有操作eeprom的操作, 是不用的, 我拷贝错了 # 鼠标传感器 ## 事务流程 1. 创建一个sen_buf[2]的数组, 把要读写的内容放到这个数组里, 再把这个数组地址配置到相应的DMA参数里, 通知DMA启动 2. 通过上述的流程, 可以把数据发给传感器, 做初始化, 例如设置开启, dpi等 3. 当通过配置后, 传感器检测到移动, 就会有中断, 此时在中断函数里发出一个读取0x02的指令, 并启动DMA 4. DMA成功读取到数据之后也会来一个中断, 此时我们在DMA中断里处理刚刚获得的数据, 这个数据就在sen_buf[2]里, 因为我们指定了获得的数据会填在这里 5. 因为我们需要3个数据, 这时我们在DMA中断里处理数据之后再次发起读取0x03, 0x13的指令, 并且处理相关计算, 例如获取的数据怎么转换成我们需要的形式, 滤波等... 6. 因为3个数据需要连续读, 如果此时又来一个普通中断, 会大乱顺序, 所以我们要通过一个flag来控制, 如果正在处理3个数据的过程中, 又来了中断, 则不处理, 直到处理完毕之后, 再读取一下中断脚, 如果有中断就处...

CDBUS GUI python 环境配置

``` pip install json5 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install aiohttp -i https://pypi.tuna.tsinghua.edu.cn/simple pip install websockets -i https://pypi.tuna.tsinghua.edu.cn/simple pip install intelhex -i https://pypi.tuna.tsinghua.edu.cn/simple pip install umsgpack -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pythoncrc -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pyserial -i https://pypi.tuna.tsinghua.edu.cn/simple ```

Linux操作科诚G500U标签机调试笔记

# 前言 需要让标签机在 linux 环境下配合 python 打印指定的字符串, 我们手上科诚 G500U, 有商家推荐科诚 G500UES, 但是后面发现 G500U 也能打印, 后面再说 # 资料下载 [下载地址](https://www.godexintl.com/downloads?locale=zh_TW) SDK: Ezio.so Linux DLL V1.1.0 命令解析: EZPL命令手冊-Rev.O.4 # 调试 里面有一个 x64.zip 的压缩包, 解压完之后目录是这样子的 ``` . ├── ezio.cmd ├── ezio.h ├── libezio.so -> libezio.so.1.1.0 ├── libezio.so.1 -> libezio.so.1.1.0 ├── libezio.so.1.1.0 ├── libttf_x64.so ├── libusb-1.0.so -> libusb-1.0.so.0.3.0 ├── libusb-1.0.so.0 -> libusb-1.0.so.0.3.0 ├── libusb-1.0.so.0.3.0 ├── license │   ├── FTL.TXT │   └── libusb-LGPL-V2.1.txt ├── makefile_x64_test ├── readme ├── test.c └── test_x64 ``` 其中 test_x64 是直接可以用的, 编译好的demo, 他会读取标签机信息, 打印预设图案, 再打印 ezio.cmd 的图案 不过我运行的时候遇到字体等问题, 所以我改了 test.c 里面的内容, 并且编译运行: ``` gcc -D_GNU_SOURCE test.c -I. -L. -lezio -lttf_x64 -lusb-1.0 -lm -lpthread -o a && LD_LIBRARY_PATH=. ./a ezio.cmd ``` # 指令解析 [命令解析](https://godex.s3-accelerate.amazonaws.com/PalMOUQVAD8fE7zwPTFcsQ.preview?v01) 我在 demo 指令的基础上,...

ESP32 Linux 开发笔记

[官方教程](https://docs.espressif.com/projects/esp-idf/zh_CN/v5.4.1/esp32c3/get-started/linux-macos-setup.html#get-started-linux-macos-first-steps) # 第一步:安装准备 ``` sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 ``` note: 我没有做这一步 # 第二步:获取 ESP-IDF 这里直接看最下面, 有个国内站点 推荐国内用户使用国内的下载服务器,以加快下载速度。 ``` git clone git@github.com:espressif/esp-idf.git git checkout v5.4.1 git reset --hard --recurse-submodule cd ~/esp/esp-idf export IDF_GITHUB_ASSETS="dl.espressif.cn/github_assets" ./install.sh ``` 注意: 下载好后切换到一个好分支, 默认会到不稳定的开发分支 # 第三步:设置工具 除了 ESP-IDF 本身,还需要为支持 ESP32-C3 的项目安装 ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等。同样地, 有国内资源 我之前这步没有选择国内资源, 下载失败了我没注意, 然后后续步骤失败了 ``` cd ~/esp/esp-idf export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets" ./install.sh esp32c3 ``` 然后安装一下环境, 这个在改路径之前只需要跑一次 ``` export IDF_TOOLS_PATH="$HOME/required_idf_tools_path" ./install.sh . ./ex...

硬件故障 之 双mos上电就有电 #4

因为我们需要使用 pmos 和 nmos 去控制 35V 的通断, 但是测试过程中发现默认通电, 原因是使用的 nmos CJ1012, VGS导通电压只有 0.8V 左右, 可能有点残电就会导通, 后续换成导通阈值高一点的 2N7002, 还有把下拉换成 4.7k

硬件故障 之 电容损坏 #3

客户机器经常打不出墨, 发现是 0805 10uF 50V 电容损坏, 损坏现象为短路, 导致24V线路烧断, 原因是贴片厂用了2012年的库存电容, 特此记录

Kicad 文字编辑卡顿

# 定位问题 当时 Kicad 某次更新之后一直卡顿, 以为是 Kicad 自身的问题, 用了几个月之后发现是文字编辑的时候才会卡, 而且别人的 Linux 是不会卡的, 所以怀疑是字体太多, 导致每次字体编辑都会遍历这些字体 # 查询 Fonts 路径 找到 /usr/share/fonts 路径, 对比别人系统, 发现我的大小800M, 是别人的20倍, 大部分是 google 的 noto 字体, 里面包含了很多小语种的字体, 问题应该是在这里 注: noto = (no more tofu), 是 google 为了解决小语种问题做的东西 # 解决问题 1. 尝试过给 Kicad 指定字体路径等, 结果不行 ``` mkdir -p ~/.kicad_fonts cp /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf ~/.kicad_fonts/ export FONTCONFIG_PATH=~/.kicad_fonts kicad ``` 2. 尝试手动删除 Fonts 路径里的 noto 字体, 但是太多了, 不知道删除哪些, 删除 opentype 之后字体变得很怪, 删除 truetype 之后电脑所有字体变成了 tofu(豆腐块), 放弃这个做法 3. 直接在 apt 管理里列出所有字体, 并且卸载 ``` sudo apt-get remove font Display all 119 possibilities? (y or n) fontconfig fonts-sahadeva ... ``` 但是数量太多了, 删了几个之后放弃这个做法, 而且删的应该是系统里的文字, 这种做法不太好, 顺便在此记录一下尝试过程中删除了哪些字体: ``` sudo apt-get remove fonts-beng* sudo apt-get remove fonts-kacst* sudo apt-get remove fonts-arphic-u* sudo apt-get remove fonts-deva* sudo apt-get remove fonts-gujr* sudo apt-get remove fo...

烧录AT32

# 安装pyocd ``` pip install pyocd ``` # 下载AT的包 [雅特力pack包下载地址](https://www.arterytek.com/cn/support/index.jsp) 下载这个 -> pack -> 支持AT32 MCU型号于Keil5 MDK运行 # 添加路径 解压好后, 在~/.bashrc里添加路径, 对应型号对应包 ``` export AT32F405_DFP_PACK_FILE="xxx/Keil5_AT32MCU_AddOn_V2.4.2_ZH/ArteryTek.AT32F402_405_DFP.2.1.1.pack" ``` # 操作芯片 操作时, 在指令后面添加 --pack=$AT32F405_DFP_PACK_FILE, 例如 ``` pyocd list --targets --pack=$AT32F405_DFP_PACK_FILE pyocd flash -t at32f405cbt7 build/*.hex --pack=$AT32F405_DFP_PACK_FILE ``` # 自己的操作 1. 拷贝key, key里define开启, 关掉if 1, 编译A.hex放一边, 烧录A.hex 2. 关闭keydefine, 开启if 1, 编译正式app, 烧录 # 20250515 方法1: 1. 普通烧录bl 2. 开key, if 0, stlink编译烧录 3. 关key, if 1, stlink编译烧录 方法2: 1. 普通烧录bl 2. 开key, if 1, stlink编译烧录(可以编译完长期不改, 放一边) 3. 关key, if 1, cdbus gui 烧录_e

MFD制作笔记

# 晶振选择 好像要选内部晶振的话, 默认就是, 不用选择 # 内存映射文件错误 CUBE生成的STM32G030C8Tx_FLASH.ld有问题, 编译不过, 修改里面的一些内容就可以了 ``` 56: -_estack = ORIGIN() + LENGTH(); /* end of RAM */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ 146: - } > AT> FLASH + } > RAM AT> FLASH 163: - } > + } >RAM 174: - } > + } >RAM ``` 后来更新了stm32cube就可以了 # 开机不上电 之前开机ldo可以到3.3v, 后来不行了, 找了一下原因好像是pmos的g脚电压拉得不够低, 把下拉由10k换成1k, 还是不行, 结果是因为PWR脚默认拉低, 一上电就掉电, 一掉电就拉高, 如此反复... # adc调试 adc多通道需要开启扫描模式, 扫描模式选项下面要开启4个通道才允许开启扫描模式 rf检测功能失效, 看了一下是低电平时能, 但是效果不太行, 后续优化 # pwm 频率计算 主频 / PSC / ARR, 单位Hz, 我以为是kHz, 导致4Hz用起来不正常 我把ARR设置成99, 这样直接传0~100就可以换算成占空比 电机4kHz就差不多够了, 蜂鸣器要8k左右, 但是他们是同个TIM, 不能分开设置频率, 除非换分开, 或者把电机直接高电平启动 蜂鸣器通过调节PSC来调节声音频率 # ang spi 设置 发送和接受函数还没研究, 直接用duke那套模板, 有空再研究一下 https://www.st.com/resource/en/datasheet/lis2dh12.pdf https://i-blog.csdnimg.cn/blog_migrate/2e7b39c9867fab3f450cb881db1e539a.png#pic_center 根据上面两个链接的结合, stm32设置, 设置为CPOL = High, CPHA = ...

安装stm32的烧录工具st-link

之前st-link一直不正常, 我就在stm32programmer进行stm32的烧录, 前几天stm32programmer也不行了, 提示java-JDE还是什么环境不对, 不得不把st-link重新安装一下 首先去git上面下载st-link的源代码, 因为我之前有, 所以直接切换到最新版本的分支1.8.0 然后 make clean, make, 却提示我的cmake版本太低, 更新一下cmake ``` sudo apt-get update sudo apt-get install -y wget wget -qO - https://apt.kitware.com/keys/kitware-archive.sh | sudo bash sudo apt-get install cmake ``` 更新一下cmake, 提示3.25安装成功, 但是我用 cmake --version 的时候, 还是显示版本是3.8 应该是我配置了其他默认的cmake版本, 先用命令看一下cmake指向哪里 ``` which cmake ``` 结果显示指向我某个程序的路径, 应该是我的程序需要用老版本cmake, 应该是从bashrc里配置的, 查看环境配置, 并且把他屏蔽 ``` vim ~/.bashrc ``` 屏蔽完之后, 在st-link里安装就好了 ``` make clean make make install ``` done!

git 把过老的分支删除

复制一份待会要fetch用的 ``` cp -r test test-2 ``` 进入test路径, 去到要合并的节点, 然后删除 git 库, 新建一个 git 库 ``` cd test git checkout xxx rm -rf .git/ git init git add . git commit -m "first commit" ``` fetch 刚刚复制的库 ``` git remote add ttt ../test-2 git fetch ttt ``` 引入分支 ``` git rebase --onto=master 刚刚合并的节点SHA 结尾的SHA ``` 额外内容: ``` git submodule update --init --recursive ```

编辑二进制文件的某位

1. 使用vim打开二进制文件 (vim -b xxx) ``` vim 文件 ``` 2. 将内容转化为16进制 想要修改二进制文件内容,需要将文件修改为16进制以后再进行修改。命令如下: ``` :%!xxd ``` 备注:也可以指定每行显示的字节数,默认是每行显示16个字节。例如:每行显示12个字节【:%!xxd -c 12】 3. 将当前文本转化回文本格式 ``` :%!xxd -r ``` 4. 保存退出 ``` :wq ```

win10 配置 gcc 编译环境

markdown # 安装Mingw 折腾了一顿, 结果发现这个是 x86 的编译环境, 跟stm32 的 arm 编译环境没关, pass掉这个方案 具体表现为 - 无法使用rm删除, 需要用 win10 的 del 指令 # 安装 arm 编译环境 [win10 配置 arm 编译环境教程](https://blog.csdn.net/py8105/article/details/106543150) [下载gcc-arm-none-eabi](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads) gcc 只有 32bit 的下载, 跟 arm 架构有关, 跟我们使用的电脑无关 [下载cygwin(安装了好像没用到)](https://cygwin.com/install.html) [下载一个make](http://www.equation.com/servlet/equation.cmd?fa=make) 根据教程配置系统环境, 然后把下载的 make 放进 gcc-arm-none-eabi/bin 目录里 然后用指令测试有没有正确配置 ``` make -v ``` 正确配置后, 在 makefile 的目录下进行 make 结果缺少 cdnet 的文件, 去 github.com/dukelec 去下载cdnet, 然后编译就好了

v2ray 问题修复

# DNS有问题 最近v2ray突然用不了, 这一个月内没有修改本地和服务器的任何配置文件等 首先尝试更新软件, 在国内网站找了一个v2ray的教程, 在里面找到链接, 链接不确定, 请注意甄别 ``` wget https://install.direct/go.sh ``` 结果他说找不到这个域名对应的IP地址, 但是我本地电脑ping可以ping通, 我以为是停止维护了 然后检查了配置, 用v2ctl config xx/config.json, 提示某一行有错误, 原因是大括号内最后一个元素多了一个逗号, 但是以前也是这么用, 不确定为什么这次就报错了, 删除之 结果还是不行, 然后继续排查时间的因素, 安装运行一个对时的指令, 结果发现没网, 原因是DNS服务器有问题, 修复方式如下: ``` apt-get install ntpdate # 网络错误, 安装失败 cat /etc/resolv.conf # 查看DNS rm /etc/resolv.conf echo "nameserver 8.8.8.8" > /etc/resolv.conf ``` 然后DNS就可以了, 其实刚刚重装v2ray的时候就暴露这个问题了, 只是没重视 # 用 screen 管理 v2ray ``` screen -S v2ray # 创建名为v2ray的线程 v2ray # 因为是全局安装, 所以直接运行, 不用到特定路径 screen -X quit # 如需退出, 运行此命令 ``` # 自动对时指令 ``` ntpdata tw.pool.ntp.org & hwclock --systohc || echo "ntpdata sync err" ```

Git 使用问题若干

markdown # 代理 git ssh 添加 sock5 代理 新增文件 vim .ssh/config ``` Host xx.xx HostName xx.xx User xxx ProxyCommand nc -v -x 127.0.0.1:1080 %h %p ``` 设置权限 ``` sudo chmod 600 config ``` 另外, 目前我自己在用的Gerrit, http和ssh的链接是不一样的, ssh需要在前面加个 d. , 网页生成的ssh链接还没改过来, 老是被坑几小时的时间, 特此记录一下 # 多分支 先在 Gerrit 上创建新分支, 新分支会跟master同个版本 创建完之后在本地库里无需添加新的链接, 只需要切换到typec的分支里输入以下指令就可以 ``` git push -f origin typec:typec # : ```

mbd -> png 总结

markdown # 思路 正向一共有 4 个步骤: 1. rbg -> ch\_x 2. ch\_x -> re\_x 3. re\_x -> out\_5b(此步骤带实际尺寸偏移) 4. out_5b -> out(压缩数据密度) 反向同理: 1. out -> out_5b (width+shift) 2. out\_5b -> re\_x (width+shift) 3. re\_x -> ch\_x (width) 4. ch\_x -> rbg (width) 无需分析每一步的操作, 因为都是根据墨盒的喷墨口的排列顺序重新排列, 无实际意义, 只需根据程序逆向即可 # 遇到的问题 ## 内存错乱 用的过程中遇到内存错乱等问题, 原因是 反向第2步 的时候,当判断out_5b的数据不在画幅内时, 错误操作了re\_x之前的内存 错误语句和修改内容参见以下git信息: ``` static inline void load_1byte(uint8_t *buf, int l, int i, int shift, const uint8_t *f) { if (l = img_width) - *(buf + (l - shift) * 36 + i) = 0; + ; else *(buf + (l - shift) * 36 + i) = *f; ``` ## 像素点偏移 发现 M Y 颜色的像素点有偏移, 原因是用mk的正向生成图片程序时, 加入了dpi等元素, 导致shift除了一个数字, 四舍五入后, M Y 的shift都少了1 解决方法是反向程序也引入同样的dpi补偿

自行编译安装Gtkterm

markdown # 下载工程 ``` git clone https://github.com/Jeija/gtkterm.git ``` # 依赖 readme文件写明了依赖软件 ``` GTKTerm has a few dependencies- Gtk+3.0 (version 3.12 or higher) vte (version 0.40 or higher) intltool (version 0.40.0 or higher) libgudev (version 229 or higher) ``` 安装时可以注意, 我的话是安装了下面三个 ``` pip3 install meson ninja sudo apt install -y libgtk-3-dev sudo apt-get install libvte-2.91-dev ``` # 安装 这是编译第一步, 没有依赖可能会报错, 根据报错信息来安装依赖 ``` meson build ``` 编译可运行文件 ``` ninja -C build ``` 如果想全局安装, 就用以下指令 ``` ninja -C build install ``` # 修改 安装后发现 自动连接选项 每次都要手动点, 很麻烦, 就在源程序里找到相关语句: ``` grep Autoreconnect ./src/* ``` 定位到 interface.c 文件 ``` {"Autoreconnect", NULL, N_("Autoreconnect"), NULL, NULL, G_CALLBACK(Autoreconnect_toggled_callback), FALSE} ``` 改为: ``` {"Autoreconnect", NULL, N_("Autoreconnect"), NULL, NULL, G_CALLBACK(Autoreconnect_toggled_callback), TRUE} ``` 再次安装就可以了 # 权限问题 usb串口设备插入之后, 无法连接, 此时用以下指令查看设备: ``` ls -l /de...

backup before delete youtubedl script

markdown ``` #!/bin/bash tty -s; if [ $? -ne 0 ]; then xfce4-terminal -e "\"$0\""; exit; fi if [ $UID -ne 0 ]; then echo "restart as root"; sudo "$0"; exit; fi cd /home/jax/Videos/ while((1)) do # Get link echo "Please enter link:" read link id=${link#*=} best=$(youtube-dl --list-formats --proxy socks5://127.0.0.1:1080 $link | grep best) best=($best) # Try download #youtube-dl --proxy socks5://127.0.0.1:1080 -f ${best[0]} $link output=$(youtube-dl --proxy socks5://127.0.0.1:1080 -f ${best[0]} $link 2>&1) # If name too long, changing name to "$id.mp4" if [[ $? == 1 ]];then name=${output#*"'"} name=${name%.*} #echo $name #echo $id echo "File name too long." echo "$id -> $name" >> ./filename.txt youtube-dl --proxy socks5://127.0.0.1:1080 --id -f ${best[0]} $link fi ...

实时词典软件

markdown 安装词典: ``` sudo apt-get install goldendict ``` 找词典文件: [俄语的词典下载网站](http://lingvodics.com/pages/languages/) 找到中文选项: Китайский 然后下载, 我的点击顺序是: Advanced Chinese Dictionary (Zho-Eng) [http://dadako.narod.ru/paperpoe.htm#chinese](http://dadako.narod.ru/paperpoe.htm#chinese) English - Chinese dictionary • DT (Eng-Zho) 然后在软件里导入: ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/Screenshot_2024-01-25_16-47-00.png)

带底座唤醒的自动关机电路

markdown # 电路图 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2024-01-10_15-49.png) ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2024-01-10_15-52.png) # A区 主电路开关, 控制了一个pmos # B区 SW1 从 OFF 拨到 ON 的时候, 电流会短暂通过未充电的 C2, 将 Q2 的 1脚拉高, 外部供电使能 外部供电使能时, 外部CPU将SLEEP_SIGNAL第一时间拉高, 维持供电 当CPU需要软件关机时, 只需将SLEEP_SIGNAL拉低, 此时全部电源关闭, 且无法重新启动 # C区, D区 如果机器底座需要唤醒机器, 只需将V_BOTTOM短暂拉高, 此时 Q4 会短暂导通, 导通后CPU一样可以维持住开机状态 # Order [Power on/off key circuit](https://blog.d-l.io/key-on-off) END

硬件故障 之 墨盒驱动排阻发热 #2

markdown # 起因 给创客做一个板子, 里面有一个 24V 转 16V 的dcdc电路, 型号是 ti 的 TPS560430YF # 现象 有几个排阻连接墨盒之后, 上电就发热冒烟 # 排查 - 换了电感, 现象依旧 - 发现 16V dcdc 的 EN 脚下拉电阻虚焊 # 解决 16V dcdc 的 EN 脚下拉电阻虚焊, 导致 16V 信号时序不对, 导致墨盒一直导通 焊接完就好了 END

硬件故障 之 dcdc上电烧毁 #1

markdown # 起因 给创客做一个板子, 里面有一个 24V 转 16V 的dcdc电路, 型号是 ti 的 TPS560430YF. 这次贴片厂分两次给, 第一批次没问题, 第二批次一上电就炸芯片, 冒烟冒火花 # 现象 炸的板子 24V 的走线鼓起, 明显是 24V 处通过了大电流 炸了两个之后不敢乱试, 先用 12V 0.2A 小功率上电, 结果电流飙到 0.2A, 不正常, 赶紧断电, dcdc附近发热 # 排查 - 换 dcdc 芯片, 现象依旧 - 量了分压电阻, 没问题 - 量了对地有没有短路, 没问题 - 打算换电感试一下 # 解决 打算换电感的时候, 上网查了一下电感损坏的表现, 没想到网上也有人说这个情况, 看了一下跟我的情况很吻合 [[DCDC] 记录一次关于DCDC的TPS5430反复烧坏的经历](https://bbs.21ic.com/icview-3066202-1-1.html) 然后我就换了电感, 就好了, 怀疑是过炉的时候把电感弄坏了, 下次选用好一点的电感 END # 20240517 补充 之前电感由 [cjiang(长江微电)](https://item.szlcsc.com/902303.html) 换成 [Sunlord(顺络)](https://item.szlcsc.com/84589.html), 结果还是出现问题, 那跟电感的关系不大, 还是工艺或良品率造成的

更换域名邮箱服务商

markdown 2021年用腾讯的域名邮箱到现在, 基本上没怎么用, 因为登录很麻烦, 每次都要扫码, 手机验证之类的, 一直想换一个, 在网上搜了一下 [几大免费企业邮箱服务商对比](https://www.iplaysoft.com/free-domain-email.html) 按照这个教程换了阿里云的, 虽然还是要实名制, 但是无所谓了吧 然后在iPhone的官方邮箱软件上登录该邮箱, 按照图片所示的教程设置, 但是不生效 [如何在iPhone手机上登录阿里邮箱](https://help.aliyun.com/document_detail/36672.html?spm=a2c4g.36595.0.i0) ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-12-20_16-37_1.png) 原来阿里云默认第三方软件登录是关闭的, 登录postmaster的账户, 打开, 保存就好了, 千万记得保存 [禁止使用三方客户端](https://help.aliyun.com/document_detail/606337.html?spm=a2c4g.36576.0.i0) ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-12-20_16-37.png) 手机上的设置 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/IMG_2898.PNG)

blogger使用技巧

markdown # 删除blogger底部的主题信息 不喜欢这个主题信息, 想删除 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-12-16_09-46.png) 首先获取他的ID, 在浏览器F12查看, 并找到 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-12-16_09-49.png) 进入主题背景, 编辑HTML, 找到这段话, 注释掉 但是不能保存, 估计为了推广, 做了保护机制 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-12-16_09-58.png) 所以得用JavaScript动态删除, 进入控制台, 输入以下代码: ``` var d_div = document.getElementById("Attribution1") d_div.remove(); ``` ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-12-16_09-49_1.png) 删除成功 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-12-16_09-53.png) 然后进入布局页面, 在添加JavaScript的地方, 加入你想加入的代码就可以了 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-12-16_09-55.png) --- # JS调用报错 调试主页Markdown的时候发现经常有报错 ``` The resource from “https://raw.githubusercontent.com/xxx/blog_img/main/2404877392-indie_compiled.js” was blocked due to MIME type (“text/plain”) mism...

Markdown 表格调试

markdown # 开启表格选项 之前想在blog里用markdown的表格, 没生效, 后来才知道markdown的表格并不是一个标准的规范, 但是确实很多人有需求, 所以一般不会默认开启. showdown也是, 默认不会开启表格, 需要手动开启 [ showdown官方wiki之开启选项 ](https://github.com/showdownjs/showdown/wiki/Showdown-options) 在自己的blog后台编辑script那里加代码就可以开启了 方法1: ``` var converter = new showdown.Converter(); converter.setOption('tables', true); ``` 方法2: ``` var converter = new showdown.Converter({tables:true}); ``` # 美化表格 开启之后只有排版, 看不到效果, 以为是开启失败了, 研究了半天才知道是太丑了没认出来, 需要美化一下 [美化表格](https://megahertz66.github.io/technical-records/2020/08/28/%E9%9D%99%E6%80%81%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA%E8%AE%B0%E5%BD%95/) [表格美化css](https://megahertz66.github.io/technical-records/2020/08/28/%E9%9D%99%E6%80%81%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA%E8%AE%B0%E5%BD%95/) 从上面下载美化表格的css, 然后放到自己的图床PicGo里, 在库里找到这个文件, 点击raw, 会得到链接一个链接 https://raw.githubusercontent.com/Baileyus/blog_img/main/style.css 然后把 https://raw.githubusercontent.com/ 替换成-> http://raw.githack.com/ 就可以用了, 但是这个...

搭建88元一年的Linux僵毁服务器

markdown ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/f3115cd0e88937cbf82507d9516ceeffe1f67633.png) # 序言 之前在淘宝买过服务器,配置方式少,配置参数不自由,经常坏档,特别难受,导致自己脱坑了很长一段时间,最近自己搭建了服务器之后,觉得很不错,所以写出这篇实操性很强的专栏帮助自己记忆,希望也能帮助到大家 特别鸣谢  [岁岁兽-SuiSuiShou](https://space.bilibili.com/48936688) 的专栏让我一晚上的时间就搭建了服务器(下面有链接) # 购买腾讯服务器 [https://cloud.tencent.com/](https://cloud.tencent.com/) 在此处购买腾讯云轻量服务器,新人套餐很便宜 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/a55c129988823038f02a2e3017537d94eb894891.png) ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/d78e7fc4a075bfcc9e1c31994874596aa18988c4.png) 图片不代表实际情况,我购买的时候确实是80元/年 # 配置 Linux 系统 ## 进入腾讯服务器 [https://console.cloud.tencent.com/lighthouse/](https://console.cloud.tencent.com/lighthouse/) 首先从腾讯服务器的界面进入你的服务器 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/4659ffdefa31be62b58777abdd674f87d3ec53ac.png) 然后选择登陆的用户,默认就可以 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/b5e375092b0d...

U disk partition

markdown # Partitioned hard disk repartition ## Preface I have a U disk with two partitions, 20G and 98G. Now I need to divide into four areas, 20G, 75G, 16G, 8G. ## Repartition Back up files first, and then use the following command: ``` gdisk /dev/sda ``` Then I did the following: ``` GPT fdisk (gdisk) version 1.0.5 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): d #Delete Partition number (1-4): 2 #The number of the partition to be deleted Command (? for help): n #New a partition Partition number (2-128, default 2): 2 #The number of the partition to be created First sector (34-249737182, default = 41945088) or {+-}size{KMGTP}: #Default Last sector (41945088-199231487, default = 199231487) or {+-}size{KMGTP}: +75G #Size Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): #Default Changed type of partition to 'Linux...

Linux 编译, 加载, 卸载驱动demo

markdown 从github下载驱动 ``` git clone git@github.com:bsdb0y/linux-kernel-hello-world-driver.git ``` 直接编译 ``` make ``` 然后加载驱动, 驱动以ko结尾 ``` sudo insmod hello.ko [ 7188.189653] HELLO LOADED ``` 然后卸载驱动 ``` sudo rmmod hello [ 7201.989317] HELLO UNLOADED ```

重新生成SSL证书之后的问题

markdown ## 问题 最近SSL证书到期了, 正常情况下可以用以下命令续租: ``` sudo /etc/init.d/apache2 stop certbot renew sudo /etc/init.d/apache2 start ``` 但是我的Blog从服务器中摘除了, 所以要生成新的证书: ``` sudo /etc/init.d/apache2 stop sudo certbot certonly --standalone -d xxx.xxx.xxx... sudo /etc/init.d/apache2 start ``` 成功, 但是SSL还是显示失效 ## 解决方法 用一个没有DNS代理的二级域名, 上去看看, 发现SSL证书没有用最新的 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-10-23_19-07_1.png) ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-10-23_19-09.png) 登录服务器, 查看证书目录, 果然多了一个 ``` ll /etc/letsencrypt/live/ drwx------ 5 root root 4096 Oct 23 10:41 ./ drwxr-xr-x 9 root root 4096 Oct 23 01:51 ../ -rw-r--r-- 1 root root 740 Feb 24 2022 README drwxr-xr-x 2 root root 4096 Oct 23 10:51 xxx.xxx-0001/ drwxr-xr-x 2 root root 4096 Jul 24 03:17 xxx.xxx/ ll /etc/letsencrypt/archive/ drwx------ 4 root root 4096 Oct 23 10:40 ./ drwxr-xr-x 9 root root 4096 Oct 23 01:51 ../ drwxr-xr-x 2 root root 4096 Oct 23 01:51 xxx.xxx-0001/...

把 Namesilo 域名转到 CloudFlare

markdown 之前在 Namesilo 里用了好几年, 但是前阵子变得很贵, 而且之前过期没提醒, 导致过期, 收了我500人民币, 很难受, 所以想把他转到 CloudFlare 里, 刚续费的时候因为有账单没结清, 所以要等一阵子 在 Namesilo 里先把域名解锁, 获取授权码 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/namesilo-to-godaddy-1.jpg) 在 CloudFlare 里申请转入 ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/2023-10-19_19-27.png) 然后就可以了, 可能会收到 Namesilo 的确认, 不管他就可以

推算墨盒喷墨地址表格

markdown # 推算 测试原图: ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/308_carrtridge_test.png) 原地址表格打印在纸上的测试图: ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/20231010120927.jpg) 由图可见, 顺序已经乱了, 规律如下: 首先我们把地址表格 P列 列出来 | Line | P | | --- | --- | | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 | | 5 | 5 | | 6 | 6 | | 7 | 7 | | 8 | 8 | | 9 | 9 | | 10 | 10 | | 11 | 11 | | 12 | 12 | | 13 | 13 | | 14 | 14 | 第一行显示了 数字6, 表示第1行的内容是由 P6 决定的 同理, 第二行显示了 数字4, 表示第2行的内容是由 P4 决定的 ... 所以, 我们把 P6, P4, ... 按顺序重新排列, 如下: | Line | P | | --- | --- | | 1 | 6 | | 2 | 4 | | 3 | 2 | | 4 | 14 | | 5 | 12 | | 6 | 10 | | 7 | 8 | | 8 | 9 | | 9 | 11 | | 10 | 13 | | 11 | 1 | | 12 | 3 | | 13 | 5 | | 14 | 7 | 正好是图案的顺序, 排列之后重新做表, 打印的图案如下: ![](https://raw.githubusercontent.com/Baileyus/blog_img/main/20231010121000.jpg) --- ## 结论 用原表格生成的数据打印一次, 再按照打印后的乱序图片按顺序改P, 然后就可以生成新的表格 --- ## 错误推算 之前通过原手册的地址表格打印的图片按序号排好, 如下: | Line | P | | --- | --- | | 1 | 6 | | 2 | 4 | | 3 | 2 | | 4 | 14 | | 5 | 12...

初次使用 Blogger, 感觉非常好用

markdown 博客已经搭好了, 有 HTTPS, markdown, custom domain 等功能, 非常简单易用. 为了在 blog 中插入一些图片, 搭了一个基于 github 的图床服务器, 用于放一些图片. 放在 google 服务器上的话, 国内基本上是看不了了. 后续还要把一些调用国外服务的功能屏蔽掉, 大概就能在国内流畅使用了, 很舒服. --- [基于 Github 和 PicGo 的图床教程](https://zhuanlan.zhihu.com/p/347342082) [谷歌blogger平台建立国内可访问博客攻略](https://www.lawpai.com/2016/10/blogger.html) [优化blogger在国内访问几个要点](https://www.shibanfang.com/2022/11/blogger_16.html) [在国内流畅使用 Blogger 的方法(已无法访问)](https://blog.cyfan.top/p/620f3e8d.html) 图床测试图: ![demo 图片](https://raw.githubusercontent.com/Baileyus/blog_img/main/demo.jpg)

入驻 Blogger 的第一篇 Blog

markdown 一直想通过一些方法来记录生活和记笔记,之前自己在服务器上搭的Blog,需要在本地写博文,推送到github,然后登录服务器,同步;而且很多功能也没用上,对于我来说还是太麻烦了,所以还是找了一个现有的平台来写,Google旗下的,应该比较稳定。 这个网页默认是不支持markdown的,需要手动修改一下,[这个是教程](http://etrex.blogspot.com/2017/03/blogger-code-markdown-prettyprint.html)。 最主要的还是稳定、支持SSL、自定义域名,如果都可以的话,后续会把之前的博文搬过来。