linux
文章平均质量分 75
开发者说
专注于Linux智能设备与云
展开
-
胜软微智终端的创意玩法(一)玩转NAS
胜软微智终端的创意玩法(一)玩转NAS胜软微智终端采用了Arm64架构的CPU,具有强大的运算能力,并且配置了8G的内存。如此强大的配置,当然不能浪费。现在基于Arm64架构平台的可玩性也不是一般的强。更有现成的armbian可以开箱即用。今天我们就将我们的微智终端打造成为一个企业的NAS服务器吧。NAS解决方案freeNAS因为给予freeBSD系统所以对arm的支持不是很好。所以我们使用OMV这个基于Debian的方案来搞定。微智终端提供了usb3.0的接口,对于普通硬盘不会成为瓶颈。1. 系统原创 2020-05-11 09:03:10 · 831 阅读 · 0 评论 -
Qemu user mode运行跨平台应用
Qemu user mode运行静态编译应用运行动态编译应用内核自动判断运行不通平台应用总结先发两个感慨,一个是感概是学如逆水行舟不进则退,最近几年太关注与上层应用、微服务、大数据等前沿技术,而没有再在底层基础技术上下功夫,今天重新去做系统级底层的事情恍然若失。一个感慨是技术变化真的太快,几年前arm上跑的程序都需要自己编译,系统需要自己订制,现在随便下载就可以在很多硬件上跑起来。回归正题,Q...原创 2020-04-15 20:21:53 · 4594 阅读 · 0 评论 -
搭建跨平台开发环境
一、主要工具编译器:GCC 4.6+(windows:mingw)或llvm+clang调试器:GDB源码组织:文件目录源码管理:cmake(makefile)格式化:astyle静态检查:cppcheck动态检测:valgrind(windows没有找到支持的版本,可以使用windbg代替吧,不过功能差很多)IDE:eclipse(QtCreator、codeli原创 2013-03-30 10:17:54 · 5761 阅读 · 1 评论 -
交叉编译git
git依赖openssl首先编译openssl./Configure linux-armv4修改Makefile,CC、RANLIB、MAKEDEPPROG为对应的交叉编译器make depend;make完成原创 2013-08-14 13:55:59 · 3884 阅读 · 0 评论 -
AT&T汇编和GCC 嵌入汇编、x86汇编和vc嵌入汇编
关于AT&T汇编和intel汇编之间的区别: 1、AT&T有更加复杂的对立即数、变量($)和寄存器(%)的写法。而intel直接使用。 2、AT&T源操作数、目的操作数与intel相反。 3、寻址方式AT&T采用段地址:(偏移,基址,因子)而inel直接是段地址:[基址*因子+偏移] 4、代码端标识AT&T为.text而intel是.coder gcc嵌入汇编和VC嵌入汇编的区原创 2007-06-02 23:13:00 · 3053 阅读 · 0 评论 -
ajenti源码安装
先下载源码git clone https://github.com/Eugeny/ajenti.git ajenti从requirements.txt文件中可以看到ajenti的python环境的依赖项,逐一确认安装就可以。依赖如下:geventgevent-socketiolxml>=2.2.4passlibpsutil>=0.6.0python-catcherpython-原创 2013-12-10 09:37:00 · 3312 阅读 · 0 评论 -
archlinux中virtualbox无法运行问题解决
在archlinux中安装完成virtualbox后,新建虚拟机无法启动,而是出现下图的提示:在fedora中直接用root权限运行/etc/init.d/vboxdrv setup重新加载一下驱动就可以了,archlinux却不不行,点击OK,进一步提示:要求安装virtulbox-host-modules,安装后,仍旧失败,应该是提示中的不是stock kernel的问原创 2013-05-08 10:12:24 · 5650 阅读 · 0 评论 -
vim与emacs脚本编程对比
1、定义变量vim:let a = 123emacs:(setq a '123)2、定义函数vim:function Fun() //如果不使用作用域限制,首字母需要大写endfunction命令行调用:command! -nargs=1 Gdb :!命令 "" emacs:(defun fun () "message" (inte原创 2012-09-04 22:17:09 · 3814 阅读 · 0 评论 -
docker lxc cgroup namespace入门
docker、lxc、cgroup、namespace是最近比较的技术。先了解一下他们分别是什么,然后说一下他们怎么用,具体实现机制以后再单独研究。docker是lxc的管理器,lxc是cgroup的管理工具,cgroup是namespace的用户空间的管理接口。namespace是linux内核在task_struct中对进程组管理的基础机制。再详细点说:docker是用go来实现的原创 2013-12-01 10:48:57 · 16419 阅读 · 3 评论 -
root sysroot chroot rootfs解析
1、root是管理员,是最高权限的象征,系统一般从安全角度默认禁用,通过su或sudo获取root权限;2、rootfs是根文件系统,linux系统的根目录的挂载点是/,roofs是根目录下的所有的文件集合,是一个可以运行的系统的组织。3、chroot是把目标地址作为根目录来使用,这个目录下边是一个可以运行的系统组织,当然PATH中必须要有shell才行。4、sysroot是交叉编译时原创 2011-05-05 15:52:00 · 8892 阅读 · 2 评论 -
Raspberry Pi入手篇
一直在关注Raspberry Pi这块板子,最近的趋势是地球人已经无法阻止树莓派的扩张了。所以从ickey上购买的树莓派周五下的订单周一到手,走的顺丰快递,速度的蛮快的。开封前先show一张。ICKEY的防护太好了,防护就这么厚。所有购买来个全家福:在element14的包装盒的raspberry Pi来个特写。英文的说明书:插上SD原创 2013-07-08 12:04:41 · 2522 阅读 · 1 评论 -
archlinux升级pacman
4月份升级archlinux时因为pacman的升级导致冲突而无法升级,冲突的原因是yaourt、pacman-color、pacman-query、apper等对pacman的依赖。解决方法:先卸载yaourt、pacman-color、pacman-query、packagekit、apper等,卸载过程中出现依赖提示无法卸载的情况,手动卸载相应的依赖包升级pacman,pac原创 2013-04-16 08:19:33 · 3083 阅读 · 0 评论 -
wine安装RTX、QQ、飞信
wine在linux上运行的效果并不比虚拟机好太多,但整合性和资源占有上会比虚拟机上跑windows之后运行软件会好一些,但是配置起来会比虚拟机上直接安装相应的软件复杂不少。鱼和熊掌岂能兼得。wine比虚拟机最大的好处是能玩大型游戏,当然玩的种类会有些少。不过国外那些经典的游戏大部分都能玩,比如:魔兽、星际、红警...这些都没有问题的。不说废话了,直接说配置的原因吧,公司内部沟通现在使用的是RTX原创 2012-10-23 16:41:46 · 7888 阅读 · 1 评论 -
使用oracle开发的配置
从oracle官网下载oracle的基础包 Instant Client for Microsoft Windows或者Instant Client for Linux,将其解压。设置ORACLE_HOME环境变量为解压目录,windows下将oracle的bin目录添加到PATH变量中,并将oci.dll复制到系统搜索目录中或者添加这个目录到PATH中,linux下将oracle的lib原创 2013-04-27 20:55:47 · 1371 阅读 · 0 评论 -
archlinux安装iptux
通过yaourt使用aur源安装iptux,会出现安装成功但是无法找到iptux程序的情况,因为PKGBUILD文件中的安装路径有问题,所以需要手工来修改安装。从aur仓库下载iptux.tar.gz文件,解压。将PKGBUILD文件中的buid函数build() { cd $srcdir/ msg "Starting make..." ./configure --prefi原创 2013-05-07 10:37:59 · 2972 阅读 · 0 评论 -
bash信号处理
linux的信号 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SI原创 2013-05-07 09:59:43 · 2781 阅读 · 0 评论 -
archlinux配置netctl
archlinux的网络链接管理服务由netcfg切换成了netctl,netctl配置文件的位置是/etc/netctl。将/etc/netctl/examples目录的对应配置文件拷贝到/etc/netctl目录下,根据自己的需求修改。使用netctl指令可以查看、修改、启动对应的网卡服务。具体指令列表如下:使用netctl enable ethernet-dhcp命令将d原创 2013-05-08 11:00:56 · 9986 阅读 · 0 评论 -
hadoop部署错误
hadoop的单机部署很简单也不容易出错,但是对生产环境的价值和意义不大,但是可以快速用于开发。部署hadoop的错误原因不少,并且很奇怪。比如,用户名不同,造成客户端和服务器通讯产生认证失败的错误,客户端,服务器各节点的用户名应当是一致的,并且个节点应该建立ssh的无认证登陆。一、出现下面错误:13/07/09 13:57:07 INFO ipc.Client: Retryi原创 2013-07-09 14:19:54 · 14612 阅读 · 0 评论 -
Raspberry Pi无线路由器篇
RaspberryPi可以折腾的方法很多,我将会吧自己的折腾经验与大家分享。作为无线路由器,需要提供dhcp的功能和无线ap的能力,我们分别通过isc-dhcp-server和hostapd这两个软件来实现,网卡间转发直接通过iptables定义nat规则来实现。原创 2013-07-10 11:14:32 · 3634 阅读 · 0 评论 -
linux系统调用编写方法变化
在2.6的时代,写一个linux的系统调用的步骤是这样的:编写实际操作函数在linux/include/asm-i386/unistd.h中添加宏定义#define __NR_myfunctioin 399在linux/arch/i386/kernel/entry.S中添加.long SYMBOL_NAME(myfunction)编译内核通过_syscall[1-6](原创 2013-08-13 15:22:56 · 3059 阅读 · 0 评论 -
gcc 4.5.1交叉编译器构建过程
1、下载地址:http://ftp.gnu.org/gnu/ 下载内容:gcc,binutils,glibc2、步骤:1)binutils 2)最小化交叉编译gcc 3)linux kernel headers 4)glibc 5)最终版gcc3、由于binutils原创 2011-01-05 18:41:00 · 3807 阅读 · 0 评论 -
Linux init系统
我手上的版本有archlinux、fedora20、debian7、centos6我主要以以上这些版本为例来描述,BSD init以上版本默认都没有了,所以无法验证,描述很可能有漏洞。其中archlinux、fedora20使用systemd,debian7使用system V init,centOS6使用upstart。 在谈init之前先说一下linux kernel的启动过程,在PC上和ar原创 2014-12-30 20:53:19 · 5910 阅读 · 0 评论 -
emacs使用elpa升级插件
emacs 24以后自动支持了elpa包管理功能,直接 package-list-packages 列出插件来,然后 Ctrl-x s 搜索插件,选择安装就可以.这样很是方便,本来以为这样就可以了,但是随着时间推移,插件列表中出现了大量的插件版本,并且有很多 obsolete 标识的插件.所以想到了我需要elpa来更新插件和删除插件.更新管理插件需要进入package-list中进行操作:pack原创 2015-01-20 15:16:15 · 11391 阅读 · 0 评论 -
whiptail
whiptail 是替代 dialog 的实现,它基于 newt 库.而 newt 则是为了简化 ncurses 开发而产生的新的 tty 下的UI库.所以说一切都是新的.whiptail与dialog比较从使用角度来看 whiptail 和 dialog 几乎是相同的.先看一个messgebox的代码:#whiptailwhiptail --title "Message Box" --msg原创 2015-01-06 14:58:20 · 11604 阅读 · 1 评论 -
eamcs中出现调用wakatime的错误
现象原因与解决方法解决方法原因wakatime简介现象当我执行保存操作时在emacs中出现调用wakatime的错误。error in process sentinel: WakaTime Errorwakatime没有执行成功,wakatime的网站中也没有相应的编辑记录信息。原因与解决方法出现这个问题的原因是emacs在调用wakatime的时没有找到cli.py文件。解决方法将 wakati原创 2016-03-29 23:03:47 · 4177 阅读 · 0 评论 -
openstack连接ceph不成功解决
现象openstack集成ceph过程中出现rbd和rados连接ceph成功,但是openstack连接不成功。原因我配置的ceph使用了admin用户进行连接ceph没有建立用户,可能是权限限制。解决方法给ceph新建授权用户就可以ceph get-or-create client.glance mon 'allow *' osd 'allow *' mds 'allow *' -o ceph.原创 2016-06-24 17:24:08 · 10951 阅读 · 0 评论 -
vim 插件列表
vim 插件列表仓库地址基础 插件 用途 gmarik/vundle, L9 包管理 The-NERD-tree 目录树 ctrlpvim/ctrlp.vim, dyng/ctrlsf.vim 快速搜索 bling/vim-airline 状态栏美化 zenorocha/dracula-theme’,{‘rtp’:’vim/’} 配色 terryma原创 2016-10-12 14:47:35 · 4408 阅读 · 0 评论 -
emacs cask
emacs cask 是 emacs 的一个包管理工具,他的描述文件是 Cask . 他主要的开发语言是 python 。我的emacs配置地址: https://github.com/cnsworder/crossemacs安装安装方法有三种,分别是:直接下载安装脚本$ curl -fsSkL https://raw.github.com/cask/cask/master/go | pythong原创 2017-01-10 14:57:16 · 3189 阅读 · 0 评论 -
修改 Ambari 的默认端口号
Ambari 使用 8080 端口提供服务,这个端口很多情况下会被 tomcat 等其他应用所占用。修改的方法如下:修改配置文件 /etc/ambari-server/conf/ambari.propertiesclient.api.port=<port_number>默认情况下配置文件中没有这个选项,添加上就可以。原创 2017-03-06 12:48:27 · 11856 阅读 · 1 评论 -
fedora下体验gentoo安装
服务器上安装了fedora,但是对gentoo很想体验一番,没有新机器,不想重装系统,所以只能chroot来体验getoo了。下载portage-20130817.tar.bz2和stage3-amd64-20130816.tar.bz2两个文件建立chroot目录/opt/gentoo,将stage3-amd64-20130816.tar.bz2解压到这个目录,portage解压到/原创 2013-08-22 15:17:06 · 2633 阅读 · 0 评论 -
fedora20升级到21
fedora18以后的版本都是采用fedup来做升级工具,这里不再细说,可以参考 fedora17升级到18 的内容.但是现在直接直接使用 fedup --network 21 会出现以下的提示:根据提示,原来fedora 21根据不同的使用特点分别分包了不同的版本.主要包括:workstation 工作站server 服务器cloude 云nonproduct 非生产性而在安装和升级时需要通过-原创 2014-12-10 10:34:09 · 7070 阅读 · 2 评论 -
/etc/qemu-ifup与/etc/qemu-ifdown
/etc/qemu-ifup与/etc/qemu-ifdown,是kvm启动后将网卡在宿主主机上配置的脚本文件,我的archlinux没有这个脚本自己写了一个,直接上代码/etc/qemu-ifup#! /bin/shswitch=br0ifconfig $1 up #ip link set $1 upbrctl addif ${switch} $1/etc/qemu-if原创 2013-03-11 16:28:06 · 9860 阅读 · 0 评论 -
Archlinux 2012.7.15安装(2014年05月09日更新)
Archlinux 2012.7.15昨天刚刚发布,抢鲜安装一下,因为使用pacstrap替代了原理的安装菜单,安装过程并不是很顺利。用最新的ISO盘启动机器,自动使用root进入系统,原来是使用/arch/setup命令直接进入安装菜单,通过菜单导航的方式来安装,现在的方式是使用脚本系统来安装。用分区工具划定分区,使用parted或者fdisk吧,我用GPT分区表所以就用parted原创 2012-07-23 11:47:27 · 6954 阅读 · 0 评论 -
编译系统对跨平台代码的支持
问题起因项目需要跑在不同的平台上不希望代码中掺杂大量的define宏做平台判断(有洁癖呀~~~)定义一些通用宏来处理只能解决一些类型差异的问题处理将跨平台代码写入不同的文件夹下 os/linux 和 os/win在外部暴露的.h文件加入判断宏//file: public.h#ifdef WIN32#include "os/windows/public.h"#else#include "os原创 2014-05-09 11:47:31 · 3188 阅读 · 1 评论 -
编译synergy
起因由于我的 archlinux 的openssl版本过高,与源内以及发布的deb/rpm包的版本不兼容,无法验证登陆(我也是捐过的)。虽然无法登陆可以使用但总是心痛。前几天 synergy 发布了1.5版而源内的版本没有即使跟进更新。所以自己编译一下。下载源码从 http://synergy-project.org/download/ 上下载源码,注意不要从souceforge.net上下载,上原创 2014-05-27 13:48:23 · 6622 阅读 · 1 评论 -
vim-snippets Ultisnips的写法
vim的代码片段补全插件有名气的有vim-snipmate和Ultsnips,我的环境中snipmate因为冲突一直没法使用,所以使用的是Ultisnips。他们都是采用一样的vim-snippets做为配置文件,并且分别存放在对应名称的目录下。他们的格式基本上是相同的,但是也有少许差别,个人感觉ultisnips提供了更多的扩展。UltiSnipsEdit快速打开编辑配置文件,名字为.snipp原创 2014-07-24 20:41:06 · 12766 阅读 · 2 评论 -
龙芯2f笔记本安装debian错误--bzcat
在正常安装龙芯2f的debian系统时出现如下错误:requires the bzcat command which is not available说明,原有的安装镜像中没有将bzip2这个包打入到系统中,所以需要自己手动将其安装.先将其下载到根目录 / .wget http://ftp.us.debian.org/debian/pool/main/b/bzip2/[libbz2-1.0_1.原创 2014-08-27 10:09:00 · 5516 阅读 · 0 评论 -
linux chrome运行android应用方法
chromeos-apk 是一个可以讲android的apk程序包装成chrome可以运行的插件的工具。github的地址是: https://github.com/vladikoff/chromeos-apk使用方法:安装 npm install chromeos-apk -g转换 chromeos-apk chrome 通过开发者模式来加载生成的插件现在加载会不成功,因为chrome缺少 AR原创 2014-09-23 22:46:46 · 14241 阅读 · 5 评论 -
我的vim和emacs配置文件(2014-05-19更新)
vimrc:"cnsworder setcolorscheme ronsyntax onset nobackupset tabstop=4set softtabstop=4set shiftwidth=4set expandtabset autoindentset numberset laststatus=2source $VIMRUNTIME/ftplugin/m原创 2012-03-01 11:37:18 · 6794 阅读 · 3 评论 -
gdb调试脚本
gdb脚本在在线调试时很有用处,使业务流程不被中断的情况下产生需要的调试信息,在不需要人工干预的情况下通过set logging file FILENAME和set logging on来实现将调试信息输出到文件。我们直接查看log文件就可以得到我们需要的调试信息了。gdb调试脚本我知道的有两种,一种是直接写gdb命令,一种是python脚本。gdb命令方式更直接且方便,但是支持的逻辑有限原创 2013-11-15 11:01:29 · 14489 阅读 · 0 评论