<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[风之伤]]></title><description><![CDATA[为人当作君子，一生不畏苦寒]]></description><link>https://blog.youkuaiyun.com/fzs333</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fzs333]]></copyright><item><title><![CDATA[__stack_chk_fail问题分析]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/129196840</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/129196840</guid><author>fzs333</author><pubDate>Fri, 24 Feb 2023 12:00:06 +0800</pubDate><description><![CDATA[再说一下，canary破坏很大可能是memset memcpy越界修改造成的，而且是栈中的变量，如下static概率就比较小，因为static变量不在栈中，所以，大概率是tmp这个数组。，canary存放位置如下，如果func1函数中有越界操作，很可能会修改到canary，stack_chk_fail检测canary就会失败。所以大概率问题出现在32行的memcpy，p2-p1可能越界了，因为tmp与stlog大小一样，tmp在开头加了一断字符，p2-p1+l。发生了缓冲区溢出，canary被破坏。]]></description><category></category></item><item><title><![CDATA[docker部署redmine]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/120169641</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/120169641</guid><author>fzs333</author><pubDate>Wed, 08 Sep 2021 10:48:53 +0800</pubDate><description><![CDATA[1. 创建网络


docker network create some-network

2. 启动sql数据库


docker run -d --name some-postgres --network some-network -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=redmine postgres

3. 启动redmine

1）创建挂载目录


mkdir /root/redmine/data -p

2）启动redmine


docker ]]></description><category></category></item><item><title><![CDATA[umount失败]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/103564605</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/103564605</guid><author>fzs333</author><pubDate>Mon, 16 Dec 2019 16:09:34 +0800</pubDate><description><![CDATA[umount失败

# fuser -mk /opt
973 974 1013 1014 1075
# umount /opt
umount: can't unmount /opt: Device or resource busy

常规umount失败后有3种处理方法：fuser,lsof,和umount -l

这几个方法都试过，仍然失败，umount -l实际上骗人的，df虽然显示已经卸载...]]></description><category></category></item><item><title><![CDATA[vim 技巧]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/88541424</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/88541424</guid><author>fzs333</author><pubDate>Wed, 13 Mar 2019 21:03:50 +0800</pubDate><description><![CDATA[搜索通配符

:%s/(.*)/str/gn

其中，.* 表示匹配任何东西

快捷搜索，复制，粘贴

/ (Ctrl + R) 0 （即 /”0），回车， 就查找到了第一个匹配的单词，





vim跨文件复制粘贴

同一个vim打开多个文件是很方便复制粘贴，但是跨terminal就麻烦了，google了半天找到一个不错的办法，直接使用系统剪切版，干净简洁，配一个快捷键就完美了。



...]]></description><category></category></item><item><title><![CDATA[通过指定配置修改文件chown]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/86149420</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/86149420</guid><author>fzs333</author><pubDate>Wed, 09 Jan 2019 14:04:57 +0800</pubDate><description><![CDATA[ 

 

 

chown -h -R 0:0 /home/meteor/work/projects/metal/dueros/metal/metal-rk3308/buildroot/output/rockchip_rk3308_32_dueros/target
  4 chown -h -R 1000:1001 '/home/meteor/work/projects/metal/dueros...]]></description><category></category></item><item><title><![CDATA[ubifs烧写到nand flash中的几种方法]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/82587699</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/82587699</guid><author>fzs333</author><pubDate>Mon, 10 Sep 2018 11:52:47 +0800</pubDate><description><![CDATA[1. UBIFS文件系统镜像的制作过程

1.1 所需的工具

制作UBIFS镜像所需的工具有mkfs.ubifs和ubinize，可以通过以下方式获取到此两个工具：

1. 方法一：从官网通过git工具下载源码，编译可得之，下载命令：

 

git clone git://git.infradead.org/mtd-utils.git
下载到源码后，编译需要的的软件包有：uuid-dev和lz...]]></description><category></category></item><item><title><![CDATA[蓝牙核心技术了解（蓝牙协议、架构、硬件和软件笔记）]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/80991079</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/80991079</guid><author>fzs333</author><pubDate>Tue, 10 Jul 2018 19:48:23 +0800</pubDate><description><![CDATA[原文地址：http://www.cnblogs.com/zjutlitao/p/4742428.html声明：这篇文章是楼主beautifulzzzz学习网上关于蓝牙的相关知识的笔记，其中比较多的受益于xubin341719的蓝牙系列文章，同时还有其他网上作者的资料。由于有些文章只做参考或统计不足，如涉及版权请在下面留言~。同时我也在博客分类中新建一个蓝牙通信分类，用来研究分享蓝牙相关技术。 主要...]]></description><category></category></item><item><title><![CDATA[Systemd 入门教程：命令篇]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/80834855</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/80834855</guid><author>fzs333</author><pubDate>Wed, 27 Jun 2018 20:54:26 +0800</pubDate><description><![CDATA[Systemd 入门教程：命令篇作者： 阮一峰日期： 2016年3月 7日Systemd 是 Linux 系统工具，用来启动守护进程，已成为大多数发行版的标准配置。本文介绍它的基本用法，分为上下两篇。今天介绍它的主要命令，下一篇介绍如何用于实战。一、由来历史上，Linux 的启动一直采用init进程。下面的命令用来启动服务。
$ sudo /etc/init.d/apache2 start
# 或...]]></description><category></category></item><item><title><![CDATA[vim排序，统计，数据处理等]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/80312927</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/80312927</guid><author>fzs333</author><pubDate>Mon, 14 May 2018 17:51:53 +0800</pubDate><description><![CDATA[转自他人的成果“CTRL+v” 进入“可视 块”模式，也即列模式，可删除列:g/root/d   删除包含root的行1：如果我们想以第4列数据进行排序，可以在vim中如此做：1，12!sort -r -n -k4.1,5-r 是降序排序-n 是按数字大小排序-k,表示根据那个字段排序，4.1,表示第4列第一个字符开始 ，5表示到第5个字段为结束-t 后面跟分隔符，缺省是空格2： 在VIM里面, ...]]></description><category></category></item><item><title><![CDATA[Ubuntu 16.04 LTS 降级安装GCC 4.8]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/80264413</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/80264413</guid><author>fzs333</author><pubDate>Thu, 10 May 2018 10:54:18 +0800</pubDate><description><![CDATA[https://www.linuxidc.com/Linux/2017-03/142299.htm由于gcc在5.x版本修改了ABI，导致新版本gcc编译的二进制文件放在老的环境下会报错，所以需要安装gcc4.8.5。4.8.5这个版本支持c++11。首先尝试下载gcc-4.8.5的源码编译安装，结果make时报错“libstdc++.so.6: : version `CXXABI_1.3.8' ...]]></description><category></category></item><item><title><![CDATA[gcc 库的链接顺序问题]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/80108369</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/80108369</guid><author>fzs333</author><pubDate>Fri, 27 Apr 2018 15:08:52 +0800</pubDate><description><![CDATA[gcc 库的链接顺序问题前言最近MIPS上开发一个程序，需要用到浮点运算。写好bootloader，main函数，在main函数调用log浮点运算，包含math库。然后再写好makefile，ld脚本。gcc的参数用到了：CFLAGS= -c -march=3081 -msoft-float -fno-inline  $(ENDIAN) -G0ld的参数用到了：LDFLAGS= -march=30...]]></description><category></category></item><item><title><![CDATA[nand flash块，坏块，页，oob等解释]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/79013293</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/79013293</guid><author>fzs333</author><pubDate>Tue, 09 Jan 2018 15:21:49 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/seasonyrq/article/details/51510965


本文针对nand flash坏块部分进行简单的记录


什么是坏块

我们先来看一下nand flash的存储结构 


nand flash的存储结构为：一个flash由许多个block组成，一个block又是有许多个page组成，一个page又是由有效的数据]]></description><category></category></item><item><title><![CDATA[svn服务器代码上传检查配置]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/78624220</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/78624220</guid><author>fzs333</author><pubDate>Fri, 24 Nov 2017 14:40:43 +0800</pubDate><description><![CDATA[log的提交格式检查
修改svn server目录下hooks下的pre-commit.tmpl
/home/svn/work/hooks/pre-commit.tmpl

#!/bin/sh

REPOS="$1"
TXN="$2"

SVNLOOK=/usr/bin/svnlook

LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-]]></description><category></category></item><item><title><![CDATA[gdb调试和技巧]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/78538831</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/78538831</guid><author>fzs333</author><pubDate>Wed, 15 Nov 2017 11:16:32 +0800</pubDate><description><![CDATA[GDB调试


第一部分 命令行和使用方法

gdb常用命令在下表列出：






命令


描述




backtrace（或bt）


查看各级函数调用及参数




finish


连续运行到当前函数返回为止，然后停下来等待命令




frame（或f）


帧编号 选择栈帧




info（或]]></description><category></category></item><item><title><![CDATA[定位Oops错误代码行]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/78401053</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/78401053</guid><author>fzs333</author><pubDate>Tue, 31 Oct 2017 10:59:45 +0800</pubDate><description><![CDATA[http://zjf30366.blog.163.com/blog/static/41116458201222893224924/


[17184178.672000] Bad mode in data abort handler detected
[17184178.672000] Internal error: Oops - bad mode: 0 [#1] PREEMPT
[17]]></description><category></category></item><item><title><![CDATA[Linux UBI子系统设计初探]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/78050095</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/78050095</guid><author>fzs333</author><pubDate>Thu, 21 Sep 2017 11:33:09 +0800</pubDate><description><![CDATA[转自：http://www.cnblogs.com/wahaha02/p/4814698.html 
flash存储设备存在如下特点：

存在坏块使用寿命较短存储介质不稳定读写速度慢不支持随机访问（nand）只能通过擦除将0改成1最小读写单位为page or sub-page便宜
针对flash设备的特点，flash文件系统的核心功能需求和质量需求需包括如下这几个方面：

读写性能可靠]]></description><category></category></item><item><title><![CDATA[Linux内核中IO地址空间映射实例]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/77775763</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/77775763</guid><author>fzs333</author><pubDate>Fri, 01 Sep 2017 18:14:56 +0800</pubDate><description><![CDATA[关于IO地址映射，如中断外设的地址和映射后的地址访问
下面是P1020 手册中关于PIC中断控制器的描述
PIC Memory Map/Register Definition


The PIC programmable register map occupies 256 Kbytes of memory-mapped space.
Reading undefined portions]]></description><category></category></item><item><title><![CDATA[Linux 奇技淫巧]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/77717453</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/77717453</guid><author>fzs333</author><pubDate>Wed, 30 Aug 2017 15:49:51 +0800</pubDate><description><![CDATA[1.cmatrix 命令
黑客帝国，就是酷炫，先按F11全屏效果更佳
安装：luffy@ubuntu:~$ sudo apt-get install cmatrix
运行：luffy@ubuntu:~$ cmatrix (普通运行）　

luffy@ubuntu:~$ cmatrix -b（带闪光效果）


2.sl 命令
怒看屏幕上一辆火车开过。
安装：luffy@ubunt]]></description><category></category></item><item><title><![CDATA[Linux ranlib的用法]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/77680213</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/77680213</guid><author>fzs333</author><pubDate>Tue, 29 Aug 2017 17:01:43 +0800</pubDate><description><![CDATA[ranlib的用法！
    静态库文件需要使用“ ar ”来创建和维护。当给静态库增建一个成员时（加入一个 .o 文件到静态库中），“ ar ”可直接将需要增加的 .o 文件简单的追加到静态库的末尾。之后当我们使用这个库进行连接生成可执行文件时，链接程序“ ld ”却提示错误，这可能是：主程序使用了之前加入到库中的 .o 文件中定义的一个函数或者全局变量，但连接程序无法找到这个函数或者变量。 ]]></description><category></category></item><item><title><![CDATA[用户空间获取eth0开关状态和开关实现]]></title><link>https://blog.youkuaiyun.com/fzs333/article/details/76546676</link><guid>https://blog.youkuaiyun.com/fzs333/article/details/76546676</guid><author>fzs333</author><pubDate>Tue, 01 Aug 2017 17:35:34 +0800</pubDate><description><![CDATA[用户空间获取eth0开关状态和开关实现
开关的实现与ifconfig eth0 dow/up 相同


获取状态
int get_eth0_status()
{
		struct ifreq ifr;  
		int sockfd;  


		if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)  
		{  
				printf("]]></description><category></category></item></channel></rss>