liunx相关
文章平均质量分 81
初秋的风
这个作者很懒,什么都没留下…
展开
-
定制适用于ARM平台的Ubuntu rootfs(根文件系统)
0 背景有一个很厉害的师兄针对我们实验室的需求设计了一块控制板,以beaglebone为基础,由于更改了一些底层的硬件,所以重新定制编译的内核,并预先烧写到了板子的flash中。现在需要安装ubuntu的文件系统,以使用ROS的相关功能函数库。前一段时间我在beaglebone官网下载了其提供的预编译好的根文件系统,修改挂载设置fstab文件后顺利启动,但是不能支持图形界面,不知是内核支持的原...转载 2019-05-30 17:20:41 · 3867 阅读 · 1 评论 -
thinkpad E480 安装ubuntu 17.10 使能WIFI驱动
问题:thinkpad E480 的无线网卡使用的是 rtl8821ce,对应的linux驱动要求内核版本在4.15以上,而ubuntu17.10的内核版本为linux 4.15。thinkpad安装更早的ubuntu版本可能可能还会有其他的硬件兼容性问题(我安装了14.04版本,开机的时候进入不了系统,安装17.04版本后在更新软件时提示说该版本的系统已经停止更新,所以后面直接使用的ubuntu...原创 2018-03-28 09:36:59 · 4355 阅读 · 4 评论 -
ubuntu 安装qt5.8
硬件: 机械师T58D系统环境:win10 + ubuntu14.04 (机械师T58D安装ubuntu14.04)1、下载qt从官网上获取qt5.8的安装包。网址为:https://download.qt.io/official_releases/qt/文件比较大,最好再windows环境下载好,ubuntu下用浏览器下载由于不支持断点续传很容易下到一半出错。2、安装将安装文件拷贝到ubuntu...原创 2018-02-25 14:25:30 · 1064 阅读 · 0 评论 -
T58D笔记本WIFI使能,Linux升级内核& 添加驱动
记录:问题:使用机械师This8笔记本,装Ubuntu14.04版本,自带的无线网卡无法识别到。原因:1、Ubuntu14.04的内核版本是3.19。2、AC 3168无线模块的驱动要求内核版本在4.6+ 以上。解决:1、升级内核版本 内核版本的更新网站为:http://kernel.ubuntu.com/~kernel-ppa/mainline/ 选择下载其中的3个版本文件: linu...原创 2018-02-24 17:07:42 · 1904 阅读 · 0 评论 -
临界区,时间,信号量,互斥量
原文:http://www.cppblog.com/killsound/archive/2009/07/15/16147.html在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就...转载 2018-03-02 11:28:55 · 417 阅读 · 0 评论 -
linux 守护进程
转载:http://zhoulifa.bokee.com/4627106.htmlLinux下后台守护进程的编写实例关键词:Linux 守护 后台 daemon 进程 相信随着Linux的普及,大家都在写不少Linux下的程序了,尤其是一些服务端程序慢慢地都转到Linux下了吧。大家必然碰到问题是如何让自己的进程成为守护进程,在系统启动的时候运行,并且永远是后台转载 2018-01-17 13:12:36 · 255 阅读 · 0 评论 -
linux 定时执行设置
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sb转载 2018-01-15 17:24:05 · 314 阅读 · 0 评论 -
qt 窗体全屏显示
在QT中对于窗口显示常用的有这么几个方法可以调用:Qt全屏显示函数 showFullScreen() Qt最大化显示函数 showMaximized()Qt最小化显示函数 showMinimized()Qt固定尺寸显示函数 resize(x,y)Qt设置最大尺寸函数 setMaximumSize(转载 2017-12-19 01:47:58 · 6774 阅读 · 1 评论 -
linux 连接WIFI
安装工具:sudo apt-get install iwconfigsudo apt-get install wpa_supplicant首先先启动无线网卡#下面wlan0代表网卡接口,请根据实际情况修改ifconfig wlan0 up查看你的要接入的无线网络的配置:iwlist wlan0 scan比如我家的WIFI结果大概如下: 说明我家的是WPA/WPA转载 2017-12-13 15:17:16 · 3267 阅读 · 0 评论 -
Ubuntu14.04环境下Qt5.5以上版本无法输入中文的解决教程
参考:https://www.cnblogs.com/gcl0909031172/p/8676470.html1、前言由于Qt5.4之后对之前的Qt5版本不再二进制兼容,所以网上很多简单的旧的办法已经失效了,所以本教程的办法是重新编译fcitx-qt5,生成最新的libfcitxplatforminputcontextplugin.so文件。 2、准备工作(1)安装fcitx-frontend-q...转载 2018-05-09 15:32:06 · 1083 阅读 · 0 评论 -
Linux rpc 编程
https://blog.csdn.net/hj19870806/article/details/8185604https://blog.csdn.net/jxb198899/article/details/49982207通过rpcgen的man手册看到此工具的作用是把RPC源程序编译成C语言源程序,从而轻松实现远程过程调用。1.下面的例子程序的作用是客户端程序(fedora Linux下)取中...转载 2018-04-27 18:26:39 · 441 阅读 · 0 评论 -
移植ubuntu 16.04.4 到arm平台
转自:https://blog.csdn.net/sinat_37141443/article/details/808822191.下载根文件系统首先创建保存路径$ mkdir ~/image$ cd image$ mkdir ubrfs16.04.4$ cd ubrfs16.04.4下载官方根文件系统。其他资料里提到的都是ubuntu-core,但进入到<a...转载 2019-03-19 16:02:05 · 2212 阅读 · 0 评论 -
交叉编译X11
1、下载源码 从参考资料[1]处下载相关源码(点击下面的文件名可跳到相应的下载链接):libX11-1.5.0.tar.bz2 在ubuntu中创建一个目录保存这些源码#mkdir src 将上述的源码都解压到src目录中。2、配置 创建一个用于目录作为libX11的安装位置(因为是交叉编译,所以不能使用默认的安装目录,否则会破坏ubuntu系统...转载 2019-02-19 14:15:09 · 3889 阅读 · 0 评论 -
ubuntu 浏览器访问VNC服务器
VNC是一种开源的远程控制工具,在远程主机上运行vncserver服务后,本地主机上可以用两种方式登录VNC服务器来进行远程控制。一是用vncviewer客户端,二是用浏览器进行登录控制。以下主要介绍通过浏览器登录来控制远程主机。注意事项1:浏览器需要安装JAVA插件,才能登录控制VNC服务器步骤1:查看是否安装JAVA插件。方法如下:点击“工具”->“附加组件”->“插件...转载 2019-02-15 16:07:17 · 1659 阅读 · 0 评论 -
交叉编译GDB到ARM板
原文:http://blog.chinaunix.net/uid-21977330-id-3761022.html 1. 安装依赖文件sudo apt-get install texinfo sudo apt-get install libncurses5-dev sudo apt-get install m4sudo apt-get install flex sudo apt...转载 2018-12-13 13:37:07 · 843 阅读 · 0 评论 -
QT 调用执行 linux脚本的三种方法
在linux系统下,Qt执行shell命令的方式有3种:(1)QProcess:execute("ls");(2)system("ls");(3)QProcess *process = new QProcess(); process->start("ls");注1:以上3中方法都可以,但是前两种会阻塞进程,直到ls结束,而第三种不会阻塞进程,可以多任务运行。注2:当命令中...转载 2018-10-16 13:51:20 · 7232 阅读 · 0 评论 -
ubuntu 17.10 自动升级为18.04后输入密码登陆不进去
在登陆界面中按ctrl+alt+F1 进入终端输入模式,输入:sudo vi /etc/X11/Xwrapper.config 然后输入密码,编辑Xwrapper.config 文件;按a,进入编辑状态,将文件中的allowed_users = config 修改为 allowed_users = anybody按esc退出编辑,输入:“:wq”保存修改并退出vi。然后重启系统。...原创 2018-07-16 10:57:56 · 2026 阅读 · 0 评论 -
双系统状态下磁盘只读模式以及修改/etc/fstab后无法登陆系统的问题
硬件:thinkpad E480软件:windows10, ubuntu 17.10问题:在windows10 的基础上安装ubuntu双系统,使用ubuntu时,对于两个系统可以共同访问的磁盘,有时会出现read only 的状况,linux可以读取磁盘但是不能修改。 处理过程记录:1.参考: https://zhidao.baidu.com/question/1689...原创 2018-05-07 10:10:03 · 1939 阅读 · 0 评论 -
GCC & ELF文件格式 &linux内核如何加载和启动一个可执行程序
gcc 编译器常用的命令行参数一览exec函数族库文件的制作与使用1、静态库文件的制作:2、静态库文件的使用:注意点:(1) -l 后面跟的是库名 没有lib也没有.a 的后缀 (2) -ltarget 必须放在 main.o 的后面,main.o 为我们要编译的文件也就是调用库文件的文件。3、动态库文件(共享库)的制作:4、动态库文件的使用:ELF( executable and linking format)是一种对象文件的格式,用于定义不同类型的对象文件(Object File原创 2016-04-10 19:14:30 · 6192 阅读 · 0 评论 -
分析linux进程调度与进程切换
一、Linux进程调度时机主要有:(1)主动调度:进程的运行状态发生变化时,例如等待某些事件而进入睡眠态;设备驱动程序 主动调度随时都可以进行,一个进程可以调用schedule() 启动一次调度。从应用的角度来看,用户空间放弃运行是可见的,而在内核空间放弃运行是不可见的,它隐藏在其他可能受阻的系统调用中。几乎所有设计外设的的系统调用都可能受阻,如read(),w原创 2016-04-15 22:13:17 · 2853 阅读 · 0 评论 -
linux 系统调用(1)
x86 系统调用及中断号 (附在最后)用法:mov $number, %%eaxint 0x80系统调用也需要输入输出参数,例如实际的值用户态进程地址空间的变量的地址甚至是包含指向用户态函数的指针的数据结构的地址system_call是linux中所有系统调用的入口点,每个系统调用至少有一个参数,即由eax传递的系统调用号一个应用程序调用f原创 2016-03-20 14:32:02 · 1518 阅读 · 0 评论 -
自己写内核——多任务调度
很多人对于写程序一点都不陌生,但是大部分都是写一个应用程序或是驱动程序,这些程序都有意个特点,那就是以为自己“独占“了整个计算机或是单片机,但是实际上一个处理器可能“同时“运行着多个程序,那么计算机是如何同时处理多个任务却能让每个任务都以为计算机是在单独为其服务的呢?这就要说到操作系统内核的任务调度功能了! 接下来我们就通过一些简单的代码来看看,内核是怎样实现这一功能的!一、原创 2016-03-06 16:47:51 · 2179 阅读 · 0 评论 -
linux 下定时器timer的使用
http://blog.csdn.net/jiahehao/article/details/7321176http://blog.csdn.net/njuitjf/article/details/16888821linux kernel中timer的使用在kernel中如果想周期性的干些什么事情,或者某个特定时间干些什么事情,可以使用timer。例如像周期性地dump某段b转载 2016-03-04 10:42:17 · 2768 阅读 · 0 评论 -
任务的堆栈
每个任务都有两个堆栈,分别用于用户态和内核态程序的执行,并且分别称为用户态堆栈和内核态堆栈。除了处于不同CPU特权级中,这两个堆栈之间的主要区别在于任务的内核态堆栈很小,所保存的数据量最多不能超过4096 – 任务数据结构块个字节,大约为3KB。而任务的用户态堆栈却可以在用户的64MB空间内延伸。(1)在用户态运行时每个任务(除了任务0和任务1)有自己的64MB地址空间。当一个任务(进程)转载 2016-03-29 14:46:54 · 1942 阅读 · 0 评论 -
从 system_call走进linux系统调用
慕课18原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000、课程实验:添加系统调用到MenuOS,并用GDB跟踪调试。一、将系统调用uname 添加到MenuOS1、在test.c中添加使用了系统调用uname 的函数的C语言版本和 汇编版本(具体内容)操作很简单原创 2016-03-27 18:44:05 · 4498 阅读 · 0 评论 -
linux下tar gz bz2 tgz z等众多压缩文件的压缩与解压方法
Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法: tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面 来举例说明一下: # tar -cf all.tar *.jpg转载 2016-03-03 19:40:22 · 839 阅读 · 0 评论 -
linux系统调用(2)
慕课18原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”这里我们通过一个小例子来了解一下里linux中系统调用的编程方法!我们以 系统调用 uname 为例 我们先通过C语言来实现这个小程序(后面使用嵌入式汇编来实现)第一步:我们只知道系统调用的名字为uname,却不知道这原创 2016-03-20 17:49:19 · 807 阅读 · 0 评论 -
linux内核启动过程追踪
在start_kernel中调用了一系列的初始化函数,已完成内核本身的设置:设置与体系结构相关的环境、进程调度器初始化、控制台初始化、系统IRQ初始化、内存初始化等。在Start_kernel函数的最后调用了rest_init()函数,在rest_init中建立了init线程,并在最后调用cpu_idle()函数。 可以这样理解:start_kernel最后clone出一个新的进程,也就是init进程,然后原来的进程就去执行cpu_idle()函数了,也就变成了idle进程,当发生一次进程调度后,in原创 2016-04-03 18:07:04 · 2404 阅读 · 0 评论 -
Linux的inode的理解
文件名 -> inode -> device block 转自:http://www.ruanyifeng.com/blog/2011/12/inode.htmlhttp://blog.s135.com/post/295/ http://hi.baidu.com/leejun_2005/blog/item/d9aa13a53b3af6e99152ee7e.html 一、inod转载 2016-05-10 20:56:31 · 367 阅读 · 0 评论 -
linux中库文件的生成和使用
1、linux库文件分为静态库和动态库两种。静态库习惯以.a 结尾,而动态库习惯以.so(shared object)结尾。而且必须以lib开头。2、静态库的原则是“以空间换时间”,增加程序体积,减少运行时间;生成:在编译时候,先生成目标文件.o,然后用ar文件对目标文件归档,生成静态库文件。例如:ar -rc libtest.a myalib.o (注意:ar -rc 目标 .o文件转载 2016-04-09 19:42:12 · 890 阅读 · 0 评论 -
ubuntu系统还原
Ubuntu 系统备份到移动硬盘(tar) 还原到另一台电脑更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=21.在桌面环境,打开你的移动硬盘查看磁盘所在盘符:df -ahdf(DiskFree) a 代表all,h代表human(人)能理解的字符,详见命令 df --helpwww.linuxidc.com @linux:/dev$ df -ah文件系统 容量 已用 可用 已用% 挂转载 2016-04-25 14:11:35 · 2172 阅读 · 0 评论 -
linux系统调用
一、 什么是系统调用 在Linux的世界里,我们经常会遇到系统调用这一术语,所谓系统调用,就是内核提供的、功能十分强大的一系列的函数。这些系统调用是在内核中实现的,再通过一定的方式把系统调用给用户,一般都通过门(gate)陷入(trap)实现。系统调用就是用户空间应用程序和内核提供的服务之间的一个接口。由于服务是在内核中提供的,因此无法执行直接调用;相反,您必须使用一个进程来跨转载 2016-03-23 20:15:36 · 758 阅读 · 0 评论 -
linux系统中关于中断、异常、系统调用、陷阱等概念的解析
中断:是为了设备与CPU之间的通信。典型的有如服务请求,任务完成提醒等。比如我们熟知的时钟中断,硬盘读写服务请求中断。 中断的发生与系统处在用户态还是在内核态无关,只决定于EFLAGS寄存器的一个标志位(中断允许位)。我们熟悉的sti, cli两条指令就是用来设置这个标志位,然后决定是否允许中断。在单个CPU的系统中,这也是保护临界区的一种简便方法(保护临界区的方法一般有:关中断、转载 2016-03-23 17:05:02 · 5135 阅读 · 2 评论 -
ubuntu永久修改主机名
ubuntu永久修改主机名 1、查看主机名在Ubuntu系统中,快速查看主机名有多种方法:其一,打开一个GNOME终端窗口,在命令提示符中可以看到主机名,主机名通常位于“@”符号后;其二,在终端窗口中输入命令:hostname或uname –n,均可以查看到当前主机的主机名。2、临时修改主机名命令行下运行命令:“hostname 新主机名”其中“新主机名转载 2016-03-11 21:06:34 · 444 阅读 · 0 评论 -
在shell中发送邮件的相关问题
环境:ubuntu10.04首先要安装软件包mailutils :apt-get install heirloom-mailx1、先通过通过mail给系统内的其他用户发送邮件mail -s “这是邮件的主题” user1********************.(另启一行输入一个“.” 再按回车结束内容的输入)su - user1原创 2016-03-05 17:08:56 · 3075 阅读 · 0 评论 -
linux 新进程的创建
一、背景知识:1、进程与程序的关系:2、进程的组成:3、进程控制块的组成: 进程标识符: 进程的上下文环境:进程调度信息:进程控制信息:fork()、vfork()、clone() 的定义clone()函数的参数及其意思原创 2016-04-03 20:11:58 · 1900 阅读 · 0 评论 -
linux 中几个非常有用的指令(1)
1、cat 命令cat指令通常用于查看文件的内容,cat 【opt】 filename ,但是这样会显示这个文件,有时候一屏都不够,没有后面说的more指令或less指令好用。cat指令还有一种用法是 cat > filename ,(这里的指令的作用是创建一个新的文件,filename就是你要创建的文件名称),然后接着输入文件的内容就行了。还有其他的指令也可以创建新的文件,例原创 2016-03-02 20:23:18 · 425 阅读 · 0 评论