小问题解决汇总

1. ubuntu共享文件夹mnt下没有文件

1.vmware-hgfsclient进行检查会出现你要共享的文件夹

2.执行sudo apt-get install open-vm-dkms #必须得安装这个

如果失败,找不到软件包,可以更新一下软件源试试

或者试用

vmhgfs-fuse /mnt/hgfs

3.sudo mount -t vmhgfs .host:/ /mnt/hgfs挂载

2.我们在vim中使用命令,可以使其现实行号

set number

3.给权限给文件夹

sudo chmod -R 777 linuxbuild-2.0.0

4.安装linux版本的QT

直接用apt命令安装

sudo apt-get install qt5-default qttools5-dev-tools
//不支持qt5版本,安装qt3或者4

执行完毕后,就安装好了。 再次运行designer命令,就可以启动qtdesigner

5.虚拟机提示:无法连接虚拟设备 sata0:1,因为主机上没有相对应的设备,解决办法。

硬件设置里的CD/DVD(STAT)里面的连接改为使用ISO镜像文件

6.ubutu修改任务栏位置

gsettings set com.canonical.Unity.Launcher launcher-position Bottom   #底部(苹果风格)
gsettings set com.canonical.Unity.Launcher launcher-position Left     #左侧(默认)
gsettings set com.canonical.Unity.Launcher launcher-position Right    #右侧
gsettings set com.canonical.Unity.Launcher launcher-position Top      #顶部

7.ubuntu16.04忽略笔记本合盖设置方法

希望机器一直开机提供服务,或者长期下载大文件

1.打开terminal:
sudo vim /etc/systemd/logind.conf
2.然后将其中的:
#HandleLidSwitch=suspend
改成:
HandleLidSwitch=ignore
3.然后重启服务:
systemctl restart systemd-logind.service
或者
sudo restart systemd-logind

Remark:注意要删除此行前的#

ignore、poweroff、reboot、halt、suspend、hibernate、hybrid-sleep、lock、kexec
忽略,关闭,重新启动,停止,暂停,休眠,混合睡眠,锁定,快速启动

8 自启动eth0

https://wenwen.sogou.com/z/q717112854.htm

auto eth0
iface eth0 inet dhcp
全局配置文件
系统初始化
 
 
/etc/inittab 运行级别、控制台数量
/etc/timezone 时区
/etc/inetd.conf 超级进程
文件系统
 
 
/etc/fstab 开机时挂载的文件系统
/etc/mtab 当前挂载的文件系统
用户系统
 
 
/etc/passwd 用户信息
/etc/shadow 用户密码
/etc/group 群组信息
/etc/gshadow 群组密码
/etc/sudoers Sudoer列表(请使用visudo命令修改此文件,而不要直接编辑)
Shell
 
 
/etc/shell 可用Shell列表
/etc/inputrc ReadLine控件设定
/etc/profile 用户首选项
/etc/bash.bashrc bash配置文件
系统环境
 
 
/etc/environment 环境变量
/etc/updatedb.conf 文件检索数据库配置信息
/etc/issue 发行信息
/etc/issue.net
/etc/screenrc 屏幕设定
网络
 
 
/etc/iftab 网卡MAC地址绑定
/etc/hosts 主机列表
/etc/hostname 主机名
/etc/resolv.conf 域名解析服务器地址
/etc/network/interfaces

8.1 修改interfaces文件,添加eth0

image-20200807083512607

8.2 重启网络

运行/etc/init.d/rcS重启网络

rcK,是关闭网络,可以先关闭再重启。

9 嵌入式linux系统启动流程

上电,ROM,MBR,GRUB,kernel,init,rc.sysinit,modules,rc0.d,rc.local,login

10 /etc/inittab,文件格式

  • id 为入口标识符,
  • runlevel 为运行级别,
  • action 为动作代号,
  • process 为具体的执行程序。

11 查看磁盘

df -Th

12 mkprom使用

将文件交叉编译成.elf

$sparc-gaisler-elf-gcc -msoft-float -qbsp=leon3 -O2 test.c -o test

使用mkprom2将文件转成.rom

$mkprom2 -leon3 -msoft-float -freq 100 -baud 38343 test -o prom.rom

13 下载文件到flash里面

详细参考grmon的用户手册

flash unlock 0x0 0x02000000
flash erase 0x0 0x02000000
flash load c:/opt/lijieromok/test2.rom
flash lock 0x0 0x02000000

14 linux下面有对can的测试软件

can-calc-bit-timing cangen cansend
canbusload cangw cansniffer
candump canlogserver
canfdtest canplayer

15 系统开机启动应用程序

把你要自启的程序放到 这个路径/etc/init.d/下的这个文件rcS里,在这个文件下的最后一行再加上这样一句命令:cd 你要执行的程序的绝对路径 ./test (test为你要执行的可执行文件)

设置/etc/init.d/rcS

image-20200901144526821

运行:

image-20200901144705541

16 配置eclipse环境

尝试eclipse进行应用程序开发,在gaisler官网有指导手册进行配置

https://www.gaisler.com/eclipse/qsg_sw_ide.pdf

https://www.gaisler.com/anonftp/grtools/

17 内核的五个子系统

进程调试(SCHED)
内存管理(MM)
虚拟文件系统(VFS)
网络接口(NET)
进程间通信(IPC)

18 条件搜索

|grep 文件名 //条件搜索

find ./ -name *amp*

19 Makefile书写注意

注意“all”和“clean”的下一行是以tap键开头的,Makefile文件严格区分tap键和空格键

20 编译内核耗时

make graph-build

21 查询中断号

cat /proc/interrupts

22 shell默认输出y

Linux_shell自动输入y或yes

# 一次
echo yes|[命令] # 输入 yes
echo y|[命令] # 输入 y
# 多次
yes yes|[命令] # 输入 yes
yes y|[命令] # 输入 y
 
 
# 例
yes yes|docker exec -i gitlab gitlab-rake gitlab:backup:restore
yes y|cp /mnt/hgfs/linux/drivers/* /opt/linuxbuild-2.0.0/linux/build-linux/drivers -rf
# 效果如图 第二次询问自动执行

23 EXPORT_SYMBOL_GPL使用

一个模块mod1中定义一个函数func1;在另外一个模块mod2中定义一个函数func2,func2调用func1。
在模块mod1中,EXPORT_SYMBOL(func1);
在模块mod2中,extern int func1();
就可以在mod2中调用func1了。

同理EXPORT_SYMBOL_GPL使用相同

24 查看DMA Highmem ZONE

cat /proc/buddyinfo
echo m > /proc/sysrq-trigger

25chroot

26.git diff

27.script,记录Linux终端的输出

script
//使用Ctrl + D 后者 exit退出记录
vi typescript

28.搜索安装包,search

apt-get search xxx_dev

apt-get install xxx_dev

29.反汇编

sparc-gaisler-elf-objdump -D -S hello.exe>hello1.txt

搜索section

30.安装32位的软件包

//搜索库文件
apt search libnspr4
//安装32位的库版本
apt-get insrall libnspr4:i386

31.需要使用xconfig

sudo apt-get install qttools5-dev

32.shell中source使用

source filename其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

配置当前shell的环境变量。

33.编译完成后拷贝软连接文件

cp -L rockdev /mnt/hgfs/linux_rk/image2 -rf

34.设置指定网卡进行ping

ping -I etho www.baidu.com

35.apt-get锁死了

linux下载官方软件安装包时由于没有镜像速度很慢,如果意外退出下载,第二次进入下载的时候缓存会被锁住,以下三行命令完美解锁

sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

36.git .rej文件

git am --abort
git apply --reject <patch_name>
//发生冲突的部分会保存为.rej文件(例如发生冲突的文件是a.txt,那么运行完这个命令后,发生conflict的部分会保存为a.txt.rej)
根据.rej文件,编辑patch文件来解决冲突
git am --abort //废弃patch
git am <修改后的patch>
方案一(个人推荐):
(1) 根据git am失败的信息,找到发生冲突的具体patch文件,然后用命令git apply --reject
<patch_name>,强行打这个patch,发生冲突的部分会保存为.rej文件(例如发生冲突的文件是a.txt,那么运行完这个命令后,发生conflict的部分会保存为a.txt.rej),未发生冲突的部分会成功打上patch
(2) 根据.rej文件,通过编辑该patch文件的方式解决冲突。
(3) 废弃上一条am命令已经打了的patch:git am --abort
(4) 重新打patch:git am ~/patch-set/*.patchpatch
 
方案二:
(1) 根据git am失败的信息,找到发生冲突的具体patch文件,然后用命令git apply --reject
<patch_name>,强行打这个patch,发生冲突的部分会保存为.rej文件(例如发生冲突的文件是a.txt,那么运行完这个命令后,发生conflict的部分会保存为a.txt.rej),未发生冲突的部分会成功打上patch
(2) 根据.rej文件,通过编辑发生冲突的code文件的方式解决冲突。
(3) 将该patch涉及到的所有文件(不仅仅是发生冲突的文件)通过命令git add <file_name>添加到工作区中
(4) 告诉git冲突已经解决,继续打patch: git am --resolved (git am --resolved 和 git am --continue是一样的)
分析:方案一和方案二主要区别是解决冲突的方法不一样。方案一是通过编辑patch文件的方式解决冲突,方案二十通过编辑冲突code文件的方式解决冲突。这两种方案区别比较大:经过实验,核心区别在于,方案二无法验证冲突有没有切实的解决。即使你在方案二的第二步乱改一通,也能“打完”发生冲突的patch(并没有检测修改后的code文件跟patch期望的是否相同)。因此,如果采用方案二,那么再解决code文件冲突后,需要人工去确认修改的正确性。

posted on 2022-08-10 22:07  Qianer  阅读(266)  评论(0)    收藏  举报

导航