Category: Linux

使用 qemu 调试 linux kernel

  在 Ubuntu 中build kernel 参考如下: [Ref] https://wiki.ubuntu.com/KernelTeam/GitKernelBuild    可以直接在宿主机调试kernel, 但是当发生崩溃之后,工作环境又要重新配置。   所以考虑用 qemu,因为它有个option: -kernel, 可以直接引导kernel。比 VirtualBox 等虚拟机更快速更方便。 尝试使用 qemu 直接启动主机上的kernel  $ sudo qemu-system-x86_64 -kernel /boot/vmlinuz-`uname -r` 这会提示缺少文件系统 可以使用 debootstrap 构建一个rootfs  IMG=qemu-image.img DIR=mount-point.dir qemu-img create $IMG 1g mkfs.ext2 $IMG mkdir $DIR sudo mount -o loop $IMG $DIR sudo debootstrap --arch amd64 jessie $DIR sudo umount $DIR
Read More »

petalinux use guide summarize

petalinux 是针对 Xilinx FPGA-based SOC designs 的 embedded linux system development kit 。 包含了: Yocto Extensible SDK Minimal downloads XSCT and tool chains PetaLinux CLI tools   详情参考 PetaLinux Tools Reference Guide。 版本: v2018.2 June 6, 2018    不支持 ubuntu1804, 手贱装了ubuntu1804, 结果 build 的时候出现 Bitbake 运行不起来,google 一遍发现这版本petalinux  还是暂时不支持 ubuntu1804 ,遂重新装回1604. 总结: petalinux 安装, 略。 BSP
Read More »

c/c++编译相关技巧总结帖

链接时忽略文件中未用到的函数或者对象。这在移植代码过程中很有用, 我们就不需要去删除或者注释掉那些大量没用到的对象或者不需要去链接的对象。 For GCC, this is accomplished in two stages: First compile the data but tell the compiler to separate the code into separate sections within the translation unit. This will be done for functions, classes, and external variables by using the following two compiler flags: -fdata-sections -ffunction-sections Link the translation units together using the
Read More »

linux bash shell 像cmd.exe 一样的滚动补齐功能

有些情况下,比如我们遇到文件名含有一些字符不容易输入时就很着急了,这时候就需要让linux shell像windows cmd.exe 一样自动补全部的文件名,且可自动按顺序一个个滚动切换。方法如下: 在用户目录创建 ~/.inputrc (若不存在则自己创建) 文件里添加一行: 。 登出再登陆用户就可以了。 For more details see the READLINE section in man bash .

make工具使用

这里简单记录Makefile 写法,以备忘。 1. Makefile 基本规则: target... : prerequisites ... command ... ... ------------------------------------------------------------------------------- target: 为目标文件,即所要生成的对象; prerequisites : 为要生成target所需要的文件或是目标; command: 即make需要执行的命令,(任意的shell命令,即对应编译器或者平台的命令)。 第一行表示依赖关系,第二行是规则。( 第二行必须由Tab键开头 )。 2.比如有源文件:main.c api.c api.h 用gcc 作编译的过程: gcc -c main.c; gcc -c api.c; gcc -o main main.o api.o ; 写成Makefile的话就是: main: main.o api.o gcc -o main main.o api.o main.o: main.c gcc -c main.c api.o:
Read More »

linux 常用命令笔记

1. 修改文件夹所有者 chown -R [owner] ..          ; 修改当前目录下所有文件夹的所有都为owner, -R表示递归调用。 2. 解压命令 tar -zxvf xxx; -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 创建用户 useradd 修改密码 passwd 安装包 apt-get install apt-get update //更新源 iptables iptables -nv -L //列出 netstat ps aux 查看进程