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
image.jpeg
image.jpeg
查看进程占用的内存
image.jpeg
过滤显示文本sed
image.jpeg
程序编译的过程
image.jpeg

制作补丁

image.jpeg

查看系统中断

root@apalis-tk1-mainline:~# cat /proc/interrupts
image.png

查看当前环境变量

echo $PATH

添加临时环境变量

export PATH=/home/neethan/workspace/valgrind/bin:$PATH

添加动态库的查找路径

LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/neethan/workspace/valgrind/lib:$LD_LIBRARY_PATH
置之后最好运行一下:ldconfig

命令行参数

image.png


其他参考

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