![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
dong_shi_bo_
将有限的生命投入到无限的代码当中
展开
-
树莓派系统的安装与使用
1. 从官网下载img文件(Raspberry Pi)2. 使用命令解压xz -d ******.xz3. 使用dd命令将解压后的img写入sd卡sudo dd if=2021-10-30-raspios-bullseye-armhf.img of=/dev/sdX bs=4M conv=fsync4. 将写好的sd卡插到树莓派上,启动系统,安装内核头文件sudo apt install raspberrypi-kernel-headers...原创 2022-05-16 11:21:15 · 382 阅读 · 0 评论 -
linux命令总结dd命令详解
一:dd命令dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file > of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file > ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。 obs=by转载 2021-12-06 16:43:48 · 647 阅读 · 0 评论 -
Python Linux Edition 安装手顺
Python Linux Edition 安装手顺一般情况的安装:背景Linux Python例子作成时需要Python环境,需要手动安装。所需材料(以Python-3.8.3为例)Python Linux Edition :Python-3.8.3.tgz安装OS:(文档作成时的安装OS) Ubuntu 20.04 LTS (kernel 5.4.0-26-generic)(64bit US) Ubuntu 18.04.3 L...原创 2021-12-06 09:37:31 · 320 阅读 · 0 评论 -
如何配置RedHat/centos启动时不启动桌面
修改/etc/inittab文件,把id:5:... 改为id:3原创 2021-08-13 15:14:36 · 332 阅读 · 0 评论 -
Linux下/usr/local/bin 和 /usr/bin 里的内容有什么区别?
usr的并不是user的意思,而是unix system resrouces,这一点有助于理解/usr这个子文件系统。/usr/bin:几乎所有的系统可执行文件都会安装在这里/usr/local/bin:则是可以存放一些系统用户自己特定的可执行文件,不用担心会被系统升级之类的行为覆盖,破坏,这个目录不是必须的...转载 2021-07-23 10:24:14 · 774 阅读 · 2 评论 -
Ubuntu 安装指定内核的方法
1. 查看当前的内核版本 使用命令:# uname -a2.搜索目前存在的内核版本 使用命令:# apt-cache search linux|grep linux-image3.安装image和headers(注意两个版本号要相同) 使用命令:# apt-get installlinux-image*** # apt-get installlinux-headers***4. 安装完成后默认进入新的内...原创 2021-04-26 16:09:52 · 7683 阅读 · 0 评论 -
/bin/sh: -c: line 0: syntax error near unexpected token ‘(‘问题解决
执行Makefile时编译驱动时出现/bin/sh: -c: line 0: syntax error near unexpected token '('连哪个文件都没有提示,鼓捣了半天发现是因为文件路径带了'('的原因。如果你也遇到了,先看看路径吧。。。ORZ原创 2021-03-22 11:04:56 · 2141 阅读 · 2 评论 -
linux console 分辨率设置
在grub menu list文件的kernel行尾加 vga=value,比如:title Ubuntu, kernel 2.6.15-23-386 root (hd0,0) kernel /boot/vmlinuz-2.6.15-23-386 root=/dev/hda1 ro quiet splash vga=791 initrd /boot/initrd.img-2.6.15-23-386 savedefau...转载 2021-01-14 15:59:58 · 491 阅读 · 0 评论 -
网易开源镜像站地址
http://mirrors.163.com/原创 2020-09-24 16:39:10 · 1577 阅读 · 0 评论 -
RH6.7 i686 Python-3.8.3 + Tkinter 8.6.10 模块安装手顺
1. 背景 测试会用到Tkinter模块。2. 所需PackageX11 Packages : xorg-x11-proto-devel-7.7-9.el6.noarch.rpm, libXau-devel-1.0.6-4.el6.i686.rpm, libxcb-devel-1.9.1-3.e...原创 2020-09-24 16:30:37 · 600 阅读 · 0 评论 -
Python-3.8.3 Linux Edition 安装手顺
背景Linux Python例子作成时需要Python环境,需要手动安装。所需材料Python Linux Edition :Python-3.8.3.tgz安装OS:(文档作成时的安装OS) Ubuntu 20.04 LTS (kernel 5.4.0-26-generic)(64bit US) Ubuntu 18.04.3 LTS (kernel 5.0.0-23-generic)(64bit US)安装步骤 安装所需...原创 2020-09-24 16:13:53 · 416 阅读 · 0 评论 -
如何查看Linux内核内置的驱动
cat /lib/modules/$(uname -r)/modules.builtin转载 2020-06-23 13:30:00 · 4501 阅读 · 0 评论 -
Linux 内核 Change Log
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?h=linux-5.4.y&ofs=600原创 2020-05-27 10:54:11 · 295 阅读 · 0 评论 -
linux内核编程 内存分配
在linux下编一个可以动态调用的模块,该模块需要申请很大的连续内存,比如255*255*255,约16M,用kmalloc申请却提示我__you_cannot_kzalloc_that_much,我想请问一下,是不是内核情况下不允许申请这么大内存还是这个函数不支持,假如这样的话用什么函数呢|如果一个模块需要分配大块的内存,它常常最好是使用一个面向页的技术.请求整个页也有其他的优点,这个在15章介绍.为分配页,下列函数可用:get_zeroed_page(unsignedi...转载 2020-05-21 16:35:33 · 186 阅读 · 0 评论 -
如何查看linux pagesize的大小
使用getconf命令即可查看pagesize的大小 ,命令如下:getcon PAGESIZE执行结果如下图所示:扩展:getconf命令详解用途:将系统配置变量值写入标准输出。语法:getconf[-vspecification] [SystemwideConfiguration|PathConfigurationPathName] [DeviceVariableDeviceName]getconf-a参数:-a规格 显...转载 2020-05-20 16:19:17 · 11292 阅读 · 0 评论 -
mount: unknown filesystem type 'LVM2_*'解决方案
解决办法:需要安装 lvm2:yum install lvm2然后按一下步骤:1、查看物理卷:pvsPV VG Fmt Attr PSize PFree /dev/sda2 VolGroup00 lvm2 a- 279.22G 32.00M2、查看卷组:vgsVG #PV #LV #SN Attr VSize VFr...转载 2020-04-29 14:10:48 · 1731 阅读 · 0 评论 -
Linux fsck命令详解
fsck(file system check)用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。有时因为系统时间不对导致系统不能启动也可以用此命令修复。fsck常见命令参数-a:自动修复文件系统,不询问任何问题;-A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统;-N:不执行指令,仅列出实际执行会进行的动作;...转载 2020-04-29 14:04:51 · 1127 阅读 · 0 评论 -
基于RHEL8/CentOS8的网络IP配置详解
在rhel8(含centos8)上,没有传统的network.service,在/etc/sysconfig/network-scripts/里也看不到任何脚本文件,那么该如何进行网络配置呢。➡ 本文详细阐述基于rhel8的网络配置,包含多种配置方法。➡ 事先声明:本文提及的所有内容,仅适用rhel8/centos8,因为不同linux系统的NetworkManager行为存在部分差异。...转载 2019-11-05 10:16:37 · 309 阅读 · 0 评论 -
Linux下串口编程总结
1.串口操作需要的头文件#include <stdio.h> //标准输入输出定义#include <stdlib.h> //标准函数库定义#include <unistd.h> //Unix标准函数定义#include <sys/types.h>#include <sys/stat.h>#include <fcntl....转载 2018-07-25 15:13:05 · 406 阅读 · 0 评论 -
-1 转换成二进制数是多少,负数左移右移。
一. -1 转换成二进制数 32位 11111111 11111111 11111111 11111111 16位 11111111 11111111 8位 11111111 4位 1111 第一步:绝对值化为你需要多少位表示的二进制 第二步:各位取反,0变1,1变0 第三步:最后面加1二. 负数左移右移操作数为正数: ①...转载 2018-08-02 17:04:05 · 14329 阅读 · 1 评论 -
Ubuntu 16.04 编译安装内核
第一步:下载内核源码并解压内核源码可以在官网下载:https://www.kernel.org/ 点击相近版本号后的[changelog] 可以找到所有的版本,并可以查看不同版本之间都有哪些改动。也可以使用命令下载:(貌似只能下载最新的不能精确到小号) 首先看一下自己的内核版本 apt-cache search linux-source 下载内核代码:sudo a...原创 2018-09-05 14:08:09 · 6444 阅读 · 0 评论 -
Linux cut命令
一个非常有用的命令,主要用来提取各种各样的数据。cut -cchars file如: -c5 提取第5个字符 -c5- 提取第5个字符以后的字符 -c1,5,12 提取多个字符,中间用“,”符号隔开 -c5-14 提取第5个字符到第14个字符间的字符http://gan.cublog.cn[servi转载 2017-07-21 16:04:30 · 169 阅读 · 0 评论 -
_IO, _IOR, _IOW, _IOWR 宏的用法与解析
在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量传送转载 2017-08-21 16:29:16 · 224 阅读 · 0 评论 -
#pragma pack(push,1)与#pragma pack(1)的区别
这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式。#pragma pack (n) 作用:C编译器将按照n个字节对齐。#pragma pack () 作用:取消自定义字节对齐方式。#pragma pack (push,1) 作用:是指把原来对齐方式设置压转载 2017-08-21 14:19:39 · 163 阅读 · 0 评论 -
fcntl
功能描述:根据文件描述词来操作文件的特性。 用法: int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock); 参数: fd:文件描述词。 cmd:操作命令。 arg:转载 2017-07-27 17:05:49 · 1062 阅读 · 0 评论 -
tcgetattr函数的说明
tcgetattr函数用于获取与终端相关的参数。参数fd为终端的文件描述符,返回的结果保存在termios结构体中,该结构体一般包括如下的成员:tcflag_t c_iflag;tcflag_t c_oflag;tcflag_t c_cflag;tcflag_t c_lflag;cc_t c_cc[NCCS];其具体意义如下。c_iflag:转载 2017-07-27 17:03:57 · 5947 阅读 · 0 评论 -
Linux 下如何查看cpu信息
几个cpumore /proc/cpuinfo |grep "physical id"|uniq|wc -l每个cpu是几核(假设cpu配置相同)more /proc/cpuinfo |grep "physical id"|grep "0"|wc -lcat /proc/cpuinfo | grep processor1. 查看物理CPU的个数#cat /proc/cpui转载 2017-08-19 07:49:19 · 324 阅读 · 0 评论 -
GCC选项_-Wl,-soname
-Wl选项告诉编译器将后面的参数传递给链接器。-soname则指定了动态库的soname(简单共享名,Short for shared object name)soname的关键功能是它提供了兼容性的标准:当要升级系统中的一个库时,并且新库的soname和老库的soname一样,用旧库链接生成的程序使用新库依然能正常运行。这个特性使得在Linux下,升级使得共享库的程序和定转载 2017-07-25 16:06:41 · 498 阅读 · 0 评论 -
linux系统kbhit的几种实现
一,用select#include #include #include #include #include void changemode(int);int kbhit(void);int main(void){int ch;changemode(1);while ( !kbhit() ){putchar('.');}ch转载 2017-07-27 16:36:05 · 2573 阅读 · 2 评论 -
linux驱动初识PCI驱动(二)
一,初始化设备模块 当Linux内核启动并完成对所有PCI设备进行扫描、登录和分配资源等初始化操作的同时,会建立起系统中所有PCI设备的拓扑结构,此后当PCI驱动程序需要对设备进行初始化时,一般都会调用如下的代码: static int __init example_init_module (void) { /* 注册硬件驱动程序 */ if转载 2017-08-11 15:58:00 · 218 阅读 · 0 评论 -
访问pci寄存器的方法
以rtl8139d以太网卡驱动为例子可以很好的来学习、分析这个问题: 8139芯片中开始六个寄存器中存放的是网卡的mac地址,有多种方法可以得到。pci设备有三个空间分别为配置空间、io空间、内存空间,配置空间在开机时由bootloader设置、程序中一般用系统函数将一些配置信息读出来就可以了,很方便,没有必要直接操作。io空间和内存空间这两种模式都可以帮助我们得到mac的值,利转载 2017-08-10 10:07:16 · 5113 阅读 · 0 评论 -
Linux设备驱动编程之内存与I/O操作
对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间,如下图:转载 2017-08-10 09:52:57 · 802 阅读 · 0 评论 -
printf 函数实现的深入剖析
研究printf的实现,首先来看看printf函数的函数体 int printf(const char *fmt, ...) { int i; char buf[256]; va_list arg = (va_list)((char*)(&fmt) + 4); i = vsprintf(buf, fmt, arg); write转载 2017-08-22 15:29:28 · 409 阅读 · 0 评论 -
Linux系统查看系统是32位还是64位方法总结
方法1:getconf LONG_BIT 查看如下例子所示: 32位Linux系统显示32, 64位Linux系统显示64。最简单、快捷的方法。[root@DB-Server ~]# getconf LONG_BIT32[root@gettestlnx01 ~]# getconf LONG_BIT64 方法2:uname命令查转载 2017-09-27 09:22:57 · 255 阅读 · 0 评论 -
linux struct utsname 结构详解
【uname系统调用】 功能描述: 获取当前内核名称和其它信息。用法: #include extern int uname (struct utsname *__name) __THROW;参数: __name:指向存放系统信息的缓冲区,原型如下struct utsname { char sysname[_UTSNAME_SYSNAME_LENGTH]转载 2017-11-17 18:30:24 · 1384 阅读 · 0 评论 -
Linux中记录终端输出到文本文件
一,把命令运行的结果保存到文件当中:用 > 把输出转向就可以了 例子: $ ls > ls.txt #或者 ls-->ls.txt #把ls命令的运行结果保存到文件ls.txt中 说明: > 是把输出转向到指定的文件,如文件已存在的话也会重新写入,文件原内容不会保留 >> 是把输出附向到文件的后面,文件原内容会保留下来二,在输出...转载 2018-05-25 09:53:26 · 5900 阅读 · 0 评论 -
RHEL 7配置CentOS yum源
因Redhat 的(yum)更新包只对注册的用户生效,所以我们使用centos7.0的yum才能正常使用以下操作本人已实机操作成功。注意:系统版本一定要相同。系统:RedHat Enterprise Linux 7.0-x86_64[root@RHEL7-anker ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server releas...转载 2018-04-09 11:30:07 · 1139 阅读 · 0 评论 -
linux系统修改系统时间与时区
有装过Linux系统的人,可能都会有这样的经历,就是该机器安装windows系统时,时间正确,但是安装了linux系统后,尽管时区选择正确,也会发现系统时间不对。这是由于安装系统时采用了UTC,那么什么是UTC呢,简单的说UTC就是0时区的时间,是国际标准,而中国处于UTC+8时区。另外还有一种时间是当地时间,而windows采用的就是当地时间。所以安装linux系统时,不要选择使用UTC转载 2017-11-29 19:32:25 · 2467 阅读 · 0 评论 -
warning: this decimal constant is unsigned only in ISO C90
关于c语言中的大整数常量--by流氓兔斯基之前编译程序的时候发现了这个问题:warning: this decimal constant is unsigned only in ISO C90找了一下解决方式,记录一下:1 在常数后面增加一个UL标识,或者ULL表示,如4294967295UL,这样就不会报警了2 使用十六进制的数字,如0xFFFFFFFF3 使用gcc -st转载 2017-11-15 12:19:57 · 394 阅读 · 0 评论 -
"undefined reference to" 问题解决方法
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(转载 2017-11-15 12:18:27 · 804 阅读 · 0 评论