linux
find_xiaohei
在这里和同名公众号分享计算机相关的内容。
展开
-
搭建gitserver并实现git push 自动部署
git push自动部署能大大提交开发部署效率git 自动部署分为2类,git server和部署不在同一个服务器上(比如通过github部署) git server和要部署的目录在同一个服务器上。这里记录第2种情况,说明如何实现在远程服务器上搭建git server并实现git push自动部署。0. 整体框架我这里服务器的IP为 192.168.1.123, 工作流程如下:在本地PC 的/home/my/website上开发, 开发完成后push到服务器上的git仓库/home原创 2020-08-14 14:14:19 · 287 阅读 · 0 评论 -
ubuntu服务器新建用户,并且免密码ssh登陆
1 在服务器新建用户(注意使用adduser,不要使用useradd)这里创建xiaohei用户,根据提示完成信息确认就创建成功了server$ sudo adduser xiaohei2 设置免密码登陆2.1 本地PC生成密钥(一路回车默认即可)PC$ ssh-keygen查看生成的密钥PC$ ls ~/.sshid_rsa (私钥)id_rsa.pub (公钥)2.2 上传公钥到服务器PC$ ssh-copy-id -i ~/.ssh/id..原创 2020-08-14 11:45:12 · 619 阅读 · 0 评论 -
Iptables入门教程
Iptables入门教程zhangsan · 2014/04/21 15:140x00 iptables介绍linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成。netfilter 组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables 组件转载 2016-02-18 13:25:57 · 322 阅读 · 0 评论 -
netfilter/iptables全攻略
内容简介--------------------http://www.opsers.org/linux-home/videos/chapter-netfilter-iptables-raiders.html防火墙的概述iptables简介iptables基础iptables语法iptables实例案例详解防火墙的简介防火墙是指设置在不同网络或网络安全域之间的一系转载 2016-02-18 11:49:04 · 362 阅读 · 0 评论 -
vi 打开多个文件
一、如果在终端中开没有打开vim,可以:横向分割显示:$ vim -o filename1 filename2 纵向分割显示:$ vim -O filename1 filename2二、如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件:横向分割显示::vs filename纵向分割显示::sp filen转载 2016-02-03 15:45:35 · 880 阅读 · 0 评论 -
内核 API,第 1 部分:从内核调用用户空间应用程序
调用特定的内核函数(系统调用)是 GNU/Linux 中软件开发的原本就有的组成部分。但如果方向反过来呢,内核空间调用用户空间?确实有一些有这种特性的应用程序需要每天使用。例如,当内核找到一个设备,这时需要加载某个模块,进程如何处理?动态模块加载在内核通过 usermode-helper 进程进行。让我们从探索 usermode-helper 应用程序编程接口(API)以及在内核中使用的例转载 2016-01-13 16:08:03 · 1078 阅读 · 0 评论 -
C语言函数之可变参数原理:va_start、va_arg及va_end !!!!!!和printascii在kernel启动前的应用
说到C语言函数可变参数,我们最先想到的可能就是printf、scanf、printk了。在Linux-2.6.24.7内核源码里,printk函数原型如下:asmlinkage int printk(const char *fmt, ...) asmlinkage表示通过堆栈传递参数。gcc编译器在汇编过程中调用c语言函数时传转载 2015-11-19 14:47:05 · 1138 阅读 · 0 评论 -
grep过滤
1.使用管道进行双层“过滤”,其中第二次grep使用了-v选项,即逆向匹配,打印出不匹配的行 grep -r 'function_name' * | grep -v '.svn' 2.或者更简单一些,直接使用--exclude-dir选项,即指定排除目录。 grep -r --exclude-dir=".svn" 'function_name' *转载 2016-01-28 17:32:39 · 468 阅读 · 0 评论 -
I2C Tools 学习笔记
1.安装 I2C驱动载入和速率修改请查看博文【树莓派学习笔记——I2C设备载入和速率设置】。2.I2C总线扫描 通过i2cdetect -l指令可以查看树莓派上的I2C总线,从返回的结果来看树莓派含有两个I2C总线,通过阅读相关的资料,树莓派1代使用I2C0,而树莓派2代使用I2C1。[plain] view plaincopy转载 2015-12-09 10:43:25 · 1011 阅读 · 0 评论 -
Linux 软件看门狗 watchdog
Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序。内核 watchdog 模块通过 /dev/watchdog 这个字符设备与用户空间通信。用户空间程序一旦打开 /dev/watchdog 设备(俗称“开门放狗”),就会导致在内核中启动一个1分钟的定时器(系统默认时间),此后,用户空间程序需转载 2015-12-08 16:33:10 · 571 阅读 · 0 评论 -
Linux 下Can的配置
CAN总线配置在Linux系统中,CAN总线接口设备作为网络设备被系统进行统一管理。在控制台下, CAN总线的配置和以太网的配置使用相同的命令。在控制台上输入命令:ifconfig –a 可以得到以下结果:can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00转载 2015-12-07 13:57:08 · 9982 阅读 · 1 评论 -
Linux内存压力测试-memtester工具简析
进行内存的压力测试,Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和次数, 可以对系统现有的内存进行上面项目的测试。 1 下载1wget http://pyropus.ca/software/memtester/old-versions/me转载 2016-01-08 11:28:46 · 6183 阅读 · 0 评论 -
测试cpu的简单工具-dhrystone
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在现在的internet网站上,有很多的cpu性能测试工具。这其中包括了各种评分软件,但是我还是比较中意dhrystone这份软件。说是软件,其实也就是三个文件,分别是dhry.h、dhry_1.c、dhry_2.c。测试的标准也很简单,关键就是单位时间内跑了多少个d转载 2016-01-08 11:10:59 · 10643 阅读 · 1 评论 -
linux can收发程序
Linux下can发送应用程序代码#include #include #include #include #include #include #include #include #include #include /*** @brief: print usage message转载 2015-12-04 14:07:03 · 1479 阅读 · 0 评论 -
linux usb系统
1、 简述:USB 出自豪门,一问世便有 IBM,Microsoft,compaq 等前呼后拥,不红实在是没有道理,以致于连三岁小毛孩都知道买游戏手柄要买 USB 的。USB 名气这么大,但 USB 是什么呢?要是想找份写驱动的活谋生,常会被问到这样的要求: “ 给我讲讲 USB 。 ”无论你是谁,遇到这样的问题一定要扭头就跑,不然一定被雷死。USB 使用方便,硬件设计也简单,转载 2016-02-22 13:07:56 · 1260 阅读 · 0 评论 -
安卓源码下编译
在安卓源码下编译内核模块hello.c/* test hello.c */#include #include static int __init test_module_init(void){ printk(KERN_DEBUG "test_module_init"); return 0;}static void __exit test_module原创 2016-02-23 13:16:59 · 795 阅读 · 0 评论 -
Linux内核编译 CONFIG_MODVERSIONS 作用
关于Linux内核编译 CONFIG_MODVERSIONS 作用的两篇文章整理。一般情况下,如果没有选择CONFIG_MODVERSIONS,这些符号是正常的字串;如果选择了CONFIG_MODVERSIONS,这些符号就会在后面加一段校验字串。这样做的目的是避免模块不正确加载情况下,使得Linux内核崩溃。一、如果内核选择了CONFIG_MODVERSIONS选项,你的转载 2016-08-08 08:44:36 · 5756 阅读 · 3 评论 -
Kernel Symbols and CONFIG_MODVERSIONS
Kernel Symbols and CONFIG_MODVERSIONS了解modversion挺不错的文章,后面有linuxforum的朋友翻译的中文版------------------------------------- Kernel Symbols and CONFIG_MODVERSIONS ------------------------------------转载 2016-08-08 08:44:02 · 646 阅读 · 3 评论 -
linux debug开关 dev_dbg
1、最近在写I2C下EEPROM的驱动程序,但发现使用i2c_new_probed_device函数无法枚举到设备,于是想调试该函数(位于driver/i2c/i2c-core.c内),看到其中有些调试信息如下:i2c_new_probed_device(...){ ... if (addr_list[i] == I2C_CLIENT_END) { dev_dbg(转载 2016-07-21 17:43:03 · 601 阅读 · 0 评论 -
Linux声音系统
Linux声音系统有些混乱,它有三套音频驱动: OSS (Open Sound System), 商业版的OSS,和ALSA (Advanced Linux Sound Architechture)。 所以底层驱动有OSS和ALSA两套API。一、声卡的工作原理音频驱动的主要作用是驱动声卡工作,所以也叫声卡驱动。 声卡的主要作用是完成数模转换。 当电脑播放声音时,将数字数据送到声卡转载 2016-07-21 09:22:50 · 581 阅读 · 0 评论 -
ppp拨号脚本配置
ppp拨号脚本配置摘要 本文主要介绍了嵌入式Linux系统下使用pppd 2.4.4来进行PPP拨号需要使用的脚本是如何配置的,配置项的含义,同时也说明了如何来配置参数,实现ppp拨号上网。一.问题提出 嵌入式Linux操作系统下,如果要进行PPP连接,就需要配置拨号要使用的连接脚本。这些脚本参数就决定了PPPD的行为,会对PPP连接产生很大的影响。所以需要对这转载 2016-04-22 17:33:42 · 2166 阅读 · 0 评论 -
使用resize2fs调整ext4分区大小
安装公司samba服务器时对磁盘需求量估计不足,原本分的只有100GB,使用一段时间后磁盘就达到了 86%的使用量, 这都什么人啊用这么大量的磁盘。。。。现在又不想重新格式化磁盘,通过google找到了无损调整磁盘分区大小的方法。 现记录如下,以备后用。 我的情况 将一块硬盘分成了两个区,一个100GB 一个60GB ,只使用了前100GB空间的内容,后面的分区没有挂转载 2016-05-30 09:15:55 · 51644 阅读 · 1 评论 -
alsa-utils工具的使用
下载地址:http://www.alsa-project.org/main/index.php/Download源码包安装方法:# tar zxvf alsa-utils-1.0.6.tar.gz# cd alsa-utils-1.0.6# ./configure# make install三.alsa-utils工具的使用alsa-utils包含的工具有:al转载 2016-05-13 13:49:13 · 624 阅读 · 0 评论 -
UART和RS232/RS485的关系是什么?
串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式。但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句中同等的位置使用。在百度搜索二者的区别,可以看到排在最前面的答案充斥着混淆的概念。就此,谈谈我对这几个概念的理解,希望能帮初学者厘清它们之间的关系。~~ 通讯问题,和交通是转载 2016-04-25 14:00:57 · 433 阅读 · 0 评论 -
linux ppp上网的文章
作者:admin 来源:未知本文将说明如何在Linux下用CDMA modem完成拨号上网的工作。首先,读者需要对PPP协议有初步的了解,比如,读者至少应该知道LCP和NCP是什么,以及PAP和CHAP是做什么的;其次,读者可能需要安装pppd和chat两个工具,通常系统中默认都是安装了这两个程序的。如果没有安装pppd,可以到http://ppp.samba.org/下载最新转载 2016-04-07 16:15:38 · 492 阅读 · 0 评论 -
CDMA2000 3G Chat 拨号
使用CDMA2000 3G拨号加载驱动[plain] view plaincopyinsmod usbserial vendor=0x#### product=0x#### 查看驱动是否加载正常查看驱动[plain] view plaincopyT: Bus=01 Lev=02 Prnt=02 Port=0转载 2016-04-07 13:20:33 · 895 阅读 · 0 评论 -
电信3G linux
物联网的发展,嵌入式节点具备3G无线上网功能是个必不可少的功能,奈何网上的资料多数以WCDMA为主,电信的evdo资料不是很多,笔者经过一番实验,搜寻了一些网站,终于在开发板上,将EVDO模块(中兴MC8630)成功拨号上网,现分享步骤如下:3G模块的速度非常快,所以普通的UART串口已经不能满足速度,所以会通过芯片的USB口来进行数据交互。硬件连接这里就忽略了,有兴趣的朋友可以买个usb转载 2016-04-06 14:50:27 · 666 阅读 · 0 评论 -
设备树使用手册
This page walks through how to write a device tree for a new machine. It is intended to provide an overview of device tree concepts and how they are used to describe a machine.本文将介绍如何为一个新机器编写设备树。我们准转载 2016-03-24 11:23:55 · 541 阅读 · 0 评论 -
Linux内核驱动开发之KGDB单步调试内核(kgdboc方式)
如何单步源码级调试Linux内核一直困扰着linux驱动开发人员,内核有其代码量大、逻辑复杂、与硬件交互的特性。因此,有着不同于应用程序的调试方法,据统计Linux内核开发者使用最普遍的调试方法是printk方法,而其他的方法大多是在特殊情况下才会使用。本文介绍的Kgdb调试方法是一种源码级的Linux内核调试器。使用Kgdb调试内核时,需要结合gdb一起使用,使用他们可以对内核进行单步调试,设置转载 2015-12-03 14:08:20 · 408 阅读 · 0 评论 -
两种方式的i2c设备驱动的编写方法
我的理念:简单实用即可,不要搞一堆源码出来,结果让人看了以后还不知道怎么用,看我的:1、在arch/arm/mach-xxx/ 自己的平台文件里添加i2c信息,美其名曰:i2c_board_info例如:static struct i2c_board_info __initdata xxxi2c_board_info[] = { {转载 2015-12-18 10:57:14 · 2286 阅读 · 0 评论 -
使用update-alternatives切换ubuntu下默认java命令
我的ubuntu系统中,既安装了openjdk,又安装了jdk5,jdk6. 其中,openjdk是使用debian自动安装,安装在/usr/lib/jvm/java-6-openjdk中。系统自动地将openjdk设为默认java命令环境。Java代码 :~/download$ ll /usr/bin/java lrwxrwxrwx 1转载 2015-11-05 09:37:42 · 222 阅读 · 0 评论 -
如何理解ip路由和操作linux的路由表
如何理解ip路由和操作linux的路由表 在ip选路中,我们知道路由表起着比较大的作用,它决定的ip包到底会怎么走。关于ip选路的问题,记得大学时候和舍友们曾经有过激烈讨论和验证,如今还略有印象,真是怀念当时伟大的623宿舍做实验时的生活啊,这么快就一年了。说正事吧: 路由其实就是选择一条数据包传输路径的过程,也就是说主机怎么向它的目的地顺利发送数据的过程。当TCP/IP主转载 2015-11-03 16:24:52 · 298 阅读 · 0 评论 -
wget
wget的几种典型用法(介绍典型的)Wget可以下载http和ftp网站文件,小命令但功能强,它的参数很多,但常用的不多。一. 最简单的用法wget http://download.xxx.com/soft/software.tar.gz二. 下载整个网站wget --mirror [--convert-links] http://www.xxxx.org/转载 2015-11-03 17:26:11 · 480 阅读 · 0 评论 -
Vim 复制粘贴剪切板
网上有两种法比较多:“:1,$y”和 “dG”:1,$y是全部复制,不是全选dG这是删除光标所在行到最后一行的内容(包括光标所在行的内容)还有一个命令是 ggVG解释是:gg 让光标移到首行,在vim才有效,vi中无效G 光标移到最后一行选中内容以后就可以其他的操作了,比如:d 删除选中内容y 复制选中内容到0号寄存器"+y 复制选原创 2015-09-29 15:07:37 · 609 阅读 · 0 评论 -
platform平台总结
总线设备驱动模型主要包含总线、设备、驱动三个部分,总线可以是一条真实存在的总线,例如USB、I2C等典型的设备。但是对于一些设备(内部的设备)可能没有现成的总线。Linux 2.6内核中引入了总线设备驱动模型。总线设备驱动模型与之前的三类驱动(字符、块设备、网络设备)没有必然的联系。设备只是搭载到了总线中。在linux内核中假设存在一条虚拟总线,称之为platform总线。platform总线转载 2014-12-24 11:04:21 · 485 阅读 · 0 评论 -
Linux芯片级移植与底层驱动(基于3.7.4内核)
宋宝华 BarrySong 21cnbao@gmail.com>新浪微博: @宋宝华Barry 1. SoC Linux底层驱动的组成和现状为了让Linux在一个全新的ARM SoC上运行,需要提供大量的底层支撑,如定时器节拍、中断控制器、SMP启动、CPU hotplug以及底层的GPIO、clock、pinctrl和DMA硬件的封装等。定时器节拍、中断控制器、SMP启动和C转载 2015-03-04 18:23:43 · 2114 阅读 · 0 评论 -
SVN 命令
1、将文件checkout到本地目录svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add转载 2015-03-31 17:09:52 · 341 阅读 · 0 评论 -
linux自动创建设备节点
在有2.6系列版本中支持udev管理设备文件可以方便的创建设备节点,不必使用mknod来创建//主要用到的四个方法在linux/device.h定义: //创建类和释放类的函数 创建成后将创建/sys/class/name文件夹 extern struct class *class_create(struct module *owner, const char *name);转载 2014-12-24 11:43:51 · 404 阅读 · 0 评论 -
vim插件之AutoComplPop和OmniCppComplete的安装和使用
在coding过程中,有了变量或函数的自动弹出功能,可以极大的提高编码的效率和准确率,这里介绍的AutoComplPop和OmniCppComplete脚本插件就是实现这样一个功能。1. 代码(普通变量函数)的自动弹出 AutoComplPop下载:http://www.vim.org/scripts/script.php?script_id=1879转载 2015-09-25 16:10:15 · 1098 阅读 · 0 评论 -
linux 下route命令
为了让设备能访问另一个子网,需要在设备里增加路由到子网络,下面是一些资料。基本操作如下:一般来说,都是为了能访问别的子网才设置路由的,比如说,你的主机处于192.168.10.0/24,而你想访问192.168.20.0/24网的主机,当然你知道一个网关IP,例如192.168.10.1(必须和你主机处于同一子网),那么,你可以这样配置路由。添加路由route add -n转载 2015-09-25 09:27:38 · 412 阅读 · 0 评论