- 1.设置交叉编译环境
- cmake clion 设置交叉编译环境
- kernel2.6, 指定开机启动某个应用程序
- 如果安装过程中提示缺少相关依赖,则执行如下命令解决
- 列举指定进程和其状态
- 查看动态链接库的所有函数
- 查看so或可执行程序的依赖库
- 查看哪些进程在使用某一个so
- 在动态链接库中查找某一个函数是否存在以及函数入口地址
- 拷贝某一分区内容到某个文件
- 查看目录树状图,tree
- 从主机本地传文件到设备
- 从设备端拷贝文件到本地主机
- 查看camera摄像头参数
- 安装V4l2工具包
- 打开摄像头
- 查看usb信息
- 开启内核打印log
- 添加路由
- 查看cpu信息
- 记录的是系统进程整体的统计信息
- 远程同步 rsync
- 制作补丁
- 查看系统中断
- 查看当前环境变量
- 添加临时环境变量
- 添加动态库的查找路径
- 命令行参数
- 其他参考
1.设置交叉编译环境
方法一:修改/etc/bash.bashrc文件(此文件只对当前当前终端使用)
输入命令:# gedit /etc/bash.bashrc
在最后加上 export PATH=$PATH:/usr/local/arm/4.4.3/bin
输入命令:# source /root/.bashrc
方法二(推荐):修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用):
输入命令:# vim /etc/profile
增加路径设置,在末尾添加如下,保存/etc/profile文件:
export PATH=”$PATH:/usr/local/arm/4.4.3/bin/“
输入命令:# source /etc/profile
/home/neethan/work/standard_robots/toolchain/gcc-linaro/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/
方法三:修改/etc/environm文件
输入命令:# gedit /etc/environment
原文件应为 PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games“
将其改为 PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin”
方法三立即生效
方法四:
# export PATH=$PATH:/home/neethan/work/jz2440/toolchain/arm/4.3.2/bin
注:(这只能在当前的终端下才是有效的!)
[设置工具链 环境]
交叉编译工具链主要是用于在ubuntu主机上编译并声称可以在其它平台上运行的系统。设置交叉编译工具主要是设置PATH ARCH和CROSS_COMPILE三个环境变量,下面介绍具体设置方法。
- 永久生效
如需永久修改,请修改用户配置文件, Ubuntu系统下,修改如下:
vim ~/.bashrc
在行尾添加或修改:
export ARCH=armexport CROSS_COMPILE=arm-linux-gnueabihf-export PATH=$PATH:~/work/toolchains/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin
AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc
CPP = $(CC) -E
AR = $(CROSS_COMPILE)ar
NM = $(CROSS_COMPILE)nm
- 临时生效
执行完“export”命令后,该设置只对当前终端有效
book@100ask:~$ export PATH=$PATH:~/work/toolchains/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin book@100ask:~$ export ARCH=arm book@100ask:~$ export CROSS_COMPILE=arm-linux-gnueabihf-
- 手动指定
Make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链
book@100ask:~$ export PATH=$PATH:/home/book/100ask_am335x/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- [命令]
检查是否将路径加入到PATH:
# echo $PATH
cmake clion 设置交叉编译环境
https://blog.csdn.net/qq_24011271/article/details/82498500
修改CMakeLists.txt如下
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER /home/neethan/workspace/toolchains/arm-linux-gcc-4.3.2/bin/arm-linux-gcc)
SET(CMAKE_CXX_COMPILER /home/neethan/workspace/toolchains/arm-linux-gcc-4.3.2/bin/arm-linux-g++)
kernel2.6, 指定开机启动某个应用程序
修改 etc/rc.local,添加要启动的脚本
如果安装过程中提示缺少相关依赖,则执行如下命令解决
sudo apt -f install
列举指定进程和其状态
ps aux | grep xxx
查看动态链接库的所有函数
nm yourLib.so or
objdump -tT yourLib.so
objdump -tT yourLib.so | grep xx
查看so或可执行程序的依赖库
Linux下可执行程序包括可执行程序exe和so, 两者文件都是ELF打头的。
objdump -x libxxxxx.so | grep NEEDED
objdump -x 可执行程序名 | grep NEEDED
查看哪些进程在使用某一个so
lsof **.so
在动态链接库中查找某一个函数是否存在以及函数入口地址
nm -D yourLib.so | grep -w yourFunction
拷贝某一分区内容到某个文件
dd if=/dev/mtdblock7 of=/scan_cert.txt
https://blog.csdn.net/xizaihui/article/details/53307578
查看目录树状图,tree
tree -L n // 列出n层结构目录
tree -d // 列出目录结构
出现乱码,解决,alias tree=’tree —charset ASSCII’
从主机本地传文件到设备
$ scp hello-world root@192.168.81.31:/home/root
从设备端拷贝文件到本地主机
root@apalistk1:~/lairdbackport7.0.0.84#scp/home/root/laird_insmod.sh neethan@192.168.81.37:/home/neethan/work
linuxC程序设计中不能使用system(“cd ..”)来改变当前工作路径,而用chdir()
查看camera摄像头参数
lusb
dmesg | grep video
sudo cat /sys/kernel/debug/usb/devices
# 获取连接的Video设备
ls /dev/video*
$ sudo add-apt-repository ppa:pj-assis/ppa $ sudo apt-get update $ sudo apt-getinstall guvcview
安装V4l2工具包
sudo apt install v4l-utils
# 查看设备信息
v4l2-ctl -d /dev/video0 —all
打开摄像头
guvcview -d /dev/video0
# cheese测试
cheese
查看usb信息
lsusb
sudo usb_modeswitch -KW -v 0b05 -p 1841
开启内核打印log
$ echo “7 4 1 7 “ > /proc/sys/kernel/printk
添加路由
$ sudo route add default gw 192.168.1.1
查看cpu信息
$ cat /sys/devices/system/cpu
记录的是系统进程整体的统计信息
$ cat /proc/stat
远程同步 rsync
远程到本地
[root@tecmint]# rsync -avzh root@192.168.3.101:/home/neethan/rpmpkgs /tmp/
本地到远程
[root@tecmint]$ rsync -avz rpmpkgs/ root@192.168.3.101:/home/
———————————————————————————————————-
查看系统gpio资源使用情况
root@apalis-tk1:~# cat /sys/kernel/debug/gpio
每隔2s查看cpu温度并输出到文件
root@apalis-tk1-mainline:~# watch -n 2 ‘cat cat /sys/class/hwmon/hwmon0/temp?_input | tee -a thermal_cpu.log’
查看系统版本
cat /proc/version
回收僵尸进程
在程序中注册信号,让父进程回收
signal(SIGCHLD,SIG_IGN)
批量打补丁
linux-4.14.109$ for file in ../thudPatches/meta-toradex-tegra/recipes-kernel/linux/linux-toradex-mainline-4.14/*.patch; do patch -p1 < $file; done
查看进程占用的内存
过滤显示文本sed
程序编译的过程
制作补丁
查看系统中断
root@apalis-tk1-mainline:~# cat /proc/interrupts
查看当前环境变量
添加临时环境变量
export PATH=/home/neethan/workspace/valgrind/bin:$PATH
添加动态库的查找路径
LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/neethan/workspace/valgrind/lib:$LD_LIBRARY_PATH
置之后最好运行一下:ldconfig
命令行参数
其他参考
1、https://www.yanxurui.cc/categories.html
2、Linux LCD 显示图片
https://blog.csdn.net/niepangu/article/details/50528190
3、Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
https://blog.csdn.net/lu_embedded/article/details/53061901
4、中文TTS 的简单实现(基于linux)之 语音库的实现
http://soft.zhiding.cn/software_zone/2008/0326/784110.shtml
5、电源管理
https://blog.csdn.net/longwang155069/article/details/52923159
6、
https://blog.csdn.net/renlonggg/article/details/78204305?locationNum=7&fps=1