博文

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) 下载这个 -> 支持AT32 MCU型号于Keil 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、自定义域名,如果都可以的话,后续会把之前的博文搬过来。