linux
小菜刀_
这个作者很懒,什么都没留下…
展开
-
ssh 自动登录脚本
#!/bin/bashPORT=22REMOTE_HOST=192.168.2.5REMOTE_USR=test1PWD=123function auto_login(){ /usr/bin/expect <<-EOF spawn ssh -p $PORT $REMOTE_USR@$REMOTE_HOST expect { "password" {send "$PWD\r"; set timeout -1} } expect eof exit EOF}au原创 2022-02-25 11:30:02 · 2356 阅读 · 0 评论 -
Linux 内核编译
查看帮助,会列出make 所支持的参数及说明make help清理内核清理绝大部分编译生成的文件,但保留配置文件(.config) 和 编译外部模块所需的环境make clean清理所有编译生成的文件,包括配置文件(.config) 及其他的备份文件、make mrproper在make mrproper 的基础,还清除编缉器里的备份文件和patch 文件make distclean编译内核# 这里以loongson3 的配置为例make loongson3..原创 2021-05-12 10:00:12 · 163 阅读 · 0 评论 -
如何提交kernel patch
1. 配置gitgit config --global --replace-all user.name "michael" //git 代码提交的名字git config --global --replace-all user.email "michael@gmail.com" //git 代码提交的邮箱git config --global --replace-all format.signoff true //使用git commit -s 提交时会自动加上signed-原创 2021-04-22 10:37:06 · 811 阅读 · 0 评论 -
busybox下 CAN 设置失败
操作与出错信息如下:[root@Loongson-GD:~]# ifconfig can0 down[root@Loongson-GD:~]# ip link set can0 up type can bitrate 250000ip: either "dev" is duplicate, or "type" is garbage[root@Loongson-GD:~]# ifconfig can0 up[ 1408.592235] sja1000_platform 1fe00c00.can c原创 2021-03-29 19:26:58 · 1018 阅读 · 0 评论 -
如何制作deb包(基于源码包与二进包)
安装工具与依赖# apt install build-essential devscripts基于源码包制作:$ tar xf foo-0.1.tar.gz$ cd foo-0.1$ ls foo.c Makefile$ dh_make -f ../foo-0.1.tar.gz$ ls debian foo.c Makefile$ ls ../ foo_0.1 foo_0.1-1_mips64el.buildinfo foo_0.1.orig.tar.gz foo_0...原创 2020-12-15 19:51:55 · 542 阅读 · 0 评论 -
uos20(龙芯平台)上编译及更换最新kernl 5.9及kernel 4.19
OS:UOS 20下载龙芯提供的4.19 源码源码下载地址:http://ftp.loongnix.org/kernel/linux-4.19.90/Linux-4.19.90-5.tar.gz解压编译$ tar xf Linux-4.19.90-5.tar.gz$ cd Linux-4.19.90-5$ make loongson3_defconfig$ make -j4$ make install INSTALL_PATH=./_install$ make modules_inst原创 2020-12-08 14:37:43 · 3769 阅读 · 9 评论 -
linux 4.19在龙芯平台上编译出错解决方法
OS: Loongnix server 1.7工具链为:系统自带的gcc-4.8.5 和 gcc-7.3平台:3A3000/3A4000源码:kernel: 4.19编译步骤···make loongson3_defconfigmake -j4···出错信息:HOSTCC arch/mips/boot/compressed/calc_vmlinuz_load_addr arch/mips/boot/compressed/head.S: Assembler messages: arch/m原创 2020-12-04 11:47:20 · 832 阅读 · 0 评论 -
启动busybox报错/linuxrc failed
启动busybox-1.31.1 制作的文件系统报错,错误信息:not syncing: Requested init /linuxrc failed (error -2).这是因为buysbox 编译为共享库方式,busybox编出来的文件系统不带动态库。而开发者没有将动态库复制完整或存放路径不对导致解决办法:通过ldd busybox 查看依赖的库及库的存放路径,之后将相应的库文件复制到相应路径即可或者将busybox编译改为静态编译make menuconfigSettings原创 2020-11-25 17:18:00 · 1098 阅读 · 1 评论 -
buildroot 制作交叉工具链指定安装位置
使用buildroot 制作交叉工具链时,默认在当前目录生成output 目录,之后全部安装到此目录下。由于编译交叉工具链时会引用此路径。为了便于使用所以指定安装路径就显点很有必要了。另外buildroot 本身就支持指定安装位置,所以何乐不为呢。指定安装位置非常简单在编译的时候通过BASE_DIR 和 ``make BASE_DIR=/opt/buildroot O=/opt/buildroot menuconfigmake BASE_DIR=/opt/buildroot O=/opt/buildr原创 2020-11-25 09:43:49 · 661 阅读 · 0 评论 -
程序调试之CPU 占用率高
cpu: ls2k基本思路:找到占用cpu 使用率最高的线程,之后查看此线程执行的函数栈,找到相应的函数。查看线程的cpu占用率可以用top , top -Hp 或者是 ps 命令。之后用gdb attach,查看线程信息,根据线程号即tid找到相应的线程并切换到此线程,之后查看此时的函数栈。详细过程如下:通过ps 或 top 找到线程号通过`ps` 命令打印出pid, tid, cpu 占用率,cmd 等信息[sancog@localhost build-qt-client-unknown-D原创 2020-10-29 16:27:14 · 1532 阅读 · 0 评论 -
ejtag 调试pmon 卡死
将ejtag调试器连到板子上,确定ejtag 连接正常之后重启板子# ./ejtag_debug_usb -t// 判断ejtag 连接是否正常cpu0 -jtagregs d8 1 100000001: 000000005a5a5a5a ZZZZ....//在pmon 卡死的时候,获取各寄存器的值cpu0 -cpus#cpus[00] 0xffffffff8f06ce40 [00] 0xffffffff8f013730 cpu0 -set#set原创 2020-09-28 20:49:20 · 517 阅读 · 0 评论 -
程序调试之非法指令(龙芯平台)
更换内核后运行 qrcreator 报非法指令之调试过程背景:在中标5.0系统上qtcreator 运行正常,由于中标5.0 自带内核为3.10比较旧,故采用自己移植的4.19。结果换了内核之后qtcreator 运行报非法指令。主要思路为通过gdb 找出产生非法指令的语句。具体过程如下:[sancog@localhost ~]$ qtcreator 非法指令[sancog@localhost ~]$ whereis qtcreatorqtcreator: /usr/bin/qtcreato原创 2020-09-25 19:51:00 · 1481 阅读 · 2 评论 -
在x86平台调试龙芯平台(mips64el)程序
os:ubuntu 18.04 x64使用qemu 作为模拟器,gdb 为作为调试器。安装相关软件sudo apt install gdb-multiarch qemu qemu-user gcc-multilib gcc-multilib-mips64-linux-gnuabi64测试代码$ cat code.c #include<stdio.h>int main(){ printf("Hello world!\n"); return 0;}原创 2020-09-25 15:19:42 · 1766 阅读 · 0 评论 -
龙芯平台Qt视频播放程序之性能分析
系统:UOS 20 龙芯版(MIPS64EL)程序的主要功能为以Qt + ffmpeg的形式实现播放rtsp网络实时流,并同时存储视频流(H264裸流)安装性能分析工具perfapt install linux-perf安装相关调试包(带符号信息)apt install ffmpeg-dbgsymapt install libavcodec58-dbgsym libswscale5-dbgsymapt install qtbase5-dev-tools-dbgsym运行程序,通过 top原创 2020-09-25 11:00:30 · 425 阅读 · 0 评论 -
Debian 类系统只下载而不安装软件包的方法
Debian 类系统包括但不限于 debian, ubuntu, uos20 ,kylin v10.Debian 类系统下通过apt工具只下载而不安装软件包的方法apt install -d ffmpeg-dbgsym下载的软件包默认存放位置/var/cache/apt/archives原创 2020-09-25 10:51:10 · 1845 阅读 · 0 评论 -
交叉编译出错之:reloaction truncated to fit : R_MIPS_CALL16
交叉编译工具链:cross-gcc-4.9.3-n64-loongson-rc6.1交叉编译出错的日志:/home/loongson/work/common/3rd/lib//3gpp.o: In function `asn1Init_ngap_GUAMI':/home/loongson/work/common/3rd/src/3gpp.c:1441:(.text+0x536c): relocation truncated to fit: R_MIPS_CALL16 against `asn1Init原创 2020-08-10 14:38:07 · 1868 阅读 · 3 评论 -
在linux 64系统中运行32位程序
在linux 64系统中运行32位程序,需要安装相应的32位运行环境。DEB :apt install libc6-dev-mips32RPM :yum install glibc-32-devel原创 2020-07-15 15:21:53 · 918 阅读 · 0 评论 -
如何制作debian(mips64el) docker镜像并上传到docker官方仓库
系统环境:龙芯3A3000+Loongnix1.0制作debian最小系统# debootstrap --arch mips64el buster debian10_mips64el http://mirrors.ustc.edu.cn/debian导入docker### 此处用loongsongd 是为了上传到hub.docker.com。 loongsongd 是在hub.docker 上注册的用户名 # tar -C debian10_mips64el/ -c . | docke原创 2020-06-12 10:21:21 · 1907 阅读 · 0 评论 -
龙芯平台(mips64)ffmpeg应用解码之性能分析
测试代码(demo.c):#include <stdbool.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#if HAVE_UNISTD_H#include <unistd.h>#endif#if HAVE_IO_H#include <io.h>#endif#include <sys/types.h>#include <s原创 2020-05-29 14:03:46 · 2069 阅读 · 1 评论 -
在搭载nk5.0 的2K工控板上添加Lcd输出支持
经过验证DVO0和DVO1都是能正常输出的(在2K开发机上验证),只是目前接的LCD 屏只支持1280x800 的分辨率。而当前系统中可选的分辨率只有1024x768和800x600两种。所以首先想到的就是修改 xorg.conf 来添加分辨支持。通过在xorg.conf 中设置modeline 和 modes 这两个参数来实现。xorg.conf 默认在 /etc/X11 目录下。但在/etc/X11 目录下没发现xorg.conf,只好自已动手丰衣足食了。Xorg 支持根据当前环境生成xorg.con原创 2020-05-28 20:45:48 · 305 阅读 · 0 评论 -
龙芯(MIPS64)平台线程栈设置出错之调试过程
###线程测试代码#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <pthread.h>void *thd_fn(void *args){ int n = *((int *)args); printf("this is thread:%d\n", n); while(1) { printf("this原创 2020-05-28 20:43:14 · 690 阅读 · 0 评论 -
Linux 开发所需基础软件包
Rpm系:exportg LC_ALL=Cyum group install "Development Tools"yum install rpm-buildDeb系:apt install build-essentialapt install net-toolsapt install vim原创 2020-05-12 20:00:56 · 542 阅读 · 0 评论 -
国产操作系统(Linux)技术流派
图1 Linux发行版如上图所示目前主流的Linux 发行版大体可以分为两类:一类是简称为RPM系,另一类是简称为DEB系。基中RPM系是以Redhat 为代表,其主导发行的包括:服务器商业版:Redhat Enterprise Linux服务器社区版:Centos社区版:FedoraCentos 以它是来自于Redhat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。Fedora 则是Redhat Enterprise Linux是...原创 2020-05-11 15:07:24 · 6413 阅读 · 0 评论 -
重置linux 系统密码(龙芯平台亦适用)
在电脑上电后出现grub menu list 时选择要启动的选项按 e 进入编辑模式找到linux 关键字,在其后添加内核参数 rd.break按F10 启动系统进入紧急模式执行 mount -o remount,rw /sysroot执行 chroot /sysroot进入系统后之后执行设置用户密码或添加用户等操作。参考链接:https://www.rootusers.com/how-to-reset-root-user-password-in-centos-rhel-7/...原创 2020-05-09 09:26:41 · 783 阅读 · 0 评论 -
Fedora 常用命令
FC21 启动模式设置:systemctl set-default multi-user.target //设置成文本模式systemctl set-default graphical.target //设置成图形模式在CentOS/RHEL中,系统服务是System V启动脚本控制,主要使用chkconfig和service两个命令,配置在/etc/init.d/下.在Fedora...原创 2019-12-23 10:18:03 · 1194 阅读 · 0 评论 -
linux常用操作命令
1、常用的文件目录操作命令ls 显示文件和目录列表touch 生成一个空文件或更改文件的时间cp 复制文件或目录mv 移动文件或目录、文件或目录重命名rm 删除文件或目录cat、tac 显示文本文件内容more、less 分页显示文本文件内容head、tail 显示文本文件的前若干行或后若干行wc 统计指定文本文件的行数、字数、字符数ln 建立链接文件whereis 查找系统...转载 2010-08-22 09:15:00 · 489 阅读 · 0 评论 -
Debian的init进程初始化工作原理
init和inittab ============= Linux下为什么会要有个init?用过windows 9.x的人应该知道有个批处理文件autoexec.bat,用过windows NT/2000系统的人应该在控制面板中见过system service工具,他们的目的是相同的。只是比较起来windows下的这些东西功能太弱(当然用法也更简单)。 init是Linux启动的最后一步,他帮...转载 2010-12-26 10:11:00 · 733 阅读 · 0 评论 -
Debian Linux X-Server分辨率微调
通过几行简单的命令可以让你的X工作的更好。很多时候缺省安装的X环境并不是我们所期望的。比如我最近自己安装Ubuntu的初始设置就会将显示器的分辨率自动设置为极限@60。我们可以通过下面的方法,计算出显示器分辨率的合适值来告诉 xorg.conf 让显示器工作的更合适。 1. 可以使用 gtf 命令计算出显示器分辨率的相关值: (比如1024×768@100)gtf 1024 76...转载 2010-12-30 14:55:00 · 1101 阅读 · 0 评论 -
linux里命令pkg-config工具的使用
一、编译和连接 一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的 不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用 -L 参数,也会造成连接界面...转载 2011-01-05 17:25:00 · 561 阅读 · 0 评论 -
如何通过终端命令查看 linux 的系统信息
系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # ...转载 2011-01-10 10:42:00 · 1273 阅读 · 0 评论 -
frame buffer device驱动程序
在后续的几篇里面会详细介绍如何编写一个显卡的驱动程序。framebuffer device在内核里面作为显卡驱动模型,许多函数和数据结构都是特定,正是这些特定的东西为我们的编程提供了方便。要开发frame buffer device驱动,你应该阅读Source/Source/Documentation/fb下面的说明文件,三个重要文件00-INDEX, framebuffer.txt,in...转载 2011-01-11 11:16:00 · 613 阅读 · 0 评论 -
linux 键盘映射修改
xmodmap -pke | grep -i tab 查看相应按键的键码值(keycode) xmodmap -pke | grep -i 1 查看全部的键码值 不同的系统上略有不同,比如,在我的系统上是:keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab 和 keycode 49 = grave asciitilde grave...转载 2010-12-17 11:00:00 · 3902 阅读 · 1 评论 -
linux PS1 提示符定义
注意: 使用方法: # PS1='自定义内容' 注意两边的单引号 示例: PS1='(/u@/H /d /t)/$' ---------------------------------------------------------------------------------------------------------------...转载 2010-12-21 16:26:00 · 574 阅读 · 0 评论 -
XFree86配置文件分析
X Window系统的程序和字体大多放在/usr/X11R6目录中,配置文件放在/etc/X11目录中,初始化程序(如xfs字体服务器)放在系统初始化目录/etc/init.d目录中。Xfree86 系统目录说明目录 描述/etc/X11 X配置文件/usr/X11R6/bin X运行程序/usr/X11R6/include X11程序运行所需的头文件和图形/...原创 2010-12-22 10:45:00 · 842 阅读 · 0 评论 -
修改Linux文本(命令行)模式的分辨率
进入到/boot/grub/目录下,然后就可以看到里面有个名为menu.lst的文件,用vim将其打开,可以看到以下内容:# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /...转载 2010-12-21 11:28:00 · 988 阅读 · 0 评论 -
mdev实现U盘和SD卡的自动挂载
1)确保内核支持热插拔# cd linux-2.6.30.4# vi .configCONFIG_KALLSYMS=y# CONFIG_KALLSYMS_ALL is not set# CONFIG_KALLSYMS_EXTRA_PASS is not set# CONFIG_STRIP_ASM_SYMS is not setCONFIG_HOTPLUG=y //确保这项为yCON...转载 2010-12-24 09:19:00 · 484 阅读 · 0 评论 -
yum install 出错处理
问题描述:Loaded plugins: fastestmirror, langpacksExisting lock /var/run/yum.pid: another copy is running as pid 17307.Another app is currently holding the yum lock; waiting for it to exit... The oth...原创 2019-02-26 08:24:09 · 699 阅读 · 0 评论 -
centos 7 通过 yum 安装mysql 8.x
CentOS7使用yum安装MySQL8.x# yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm# yum install mysql-community-server.x86_64启动 mysql:# systemctl start mysqld.service...原创 2019-02-26 09:20:51 · 599 阅读 · 1 评论 -
/dev/zero和/dev/null 详解
使用/dev/null把/dev/null 看作"黑 洞" .它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而,/dev/null 对命令行和脚本都非常的有 用.禁止标准输出 . 1 cat $filename >/dev/null 2 # 文件内容丢失,而不会输出到标准输出.禁止转载 2012-01-10 10:43:28 · 673 阅读 · 0 评论