linux 杂类积累

PATH 这是一个环境变量,是系统自带的, 它的含义就是系统在查找可执行程序时会搜索的路径范围.
echo $PATH

export PATH=/usr/local/arm/arm-2009q3/bin:$PATH

~/.bashrc 添加 export PATH=/usr/local/arm/arm-2009q3/bin:$PATH

which ls 用来查看ls命令的路径

man 查找

1 用户命令, 可由任何人启动的。

2 系统调用, 即由内核提供的函数。

3 例程, 即库函数,比如标准C库libc。

man 2 open

Kconfig格式简单说明

menuconfig NEW_LEDS
	bool "LED Support"
	help
	  Say Y to enable Linux LED support.  This allows control of supported
	  LEDs from both userspace and optionally, by kernel events (triggers).

	  This is not related to standard keyboard LEDs which are controlled
	  via the input system.

if NEW_LEDS

config LEDS_CLASS
	tristate "LED Class Support"
	help
	  This option enables the led sysfs class in /sys/class/leds.  You'll
	  need this to do anything useful with LEDs.  If unsure, say N.

if LEDS_CLASS

comment "LED drivers"

config LEDS_88PM860X
	tristate "LED Support for Marvell 88PM860x PMIC"
	depends on MFD_88PM860X
	help
	  This option enables support for on-chip LED drivers found on Marvell
	  Semiconductor 88PM8606 PMIC.

config LEDS_ATMEL_PWM
	tristate "LED Support using Atmel PWM outputs"
	depends on ATMEL_PWM
	help
	  This option enables support for LEDs driven using outputs
	  of the dedicated PWM controller found on newer Atmel SOCs.

config:
定义了一个配置选项的开始, 后LEDS_CLASS 是配置选项的名称, 省略了CONFIG_

bool 配置选项的变量类型,一般是(bool(两种选项), tristate(三态),string, hex, int)前面两种更常见一点。
bool变量的值: y和n

tristate变量的值:y、n和m

string变量的值: 字符串

depends on: 表示依赖, 依赖的那个打开(on) 当前的配置选项才可配置
select: 表示选择, 选择那个选中, 当前配置选项也会选中

menu: 用于生成菜单
一般是 menu 和 endmenu成对出现。之间包含的是config 配置项的条目

menuconfig 有点类似menu,拆分开来就是menu 和 config 表示这个menu是可以配置的多了一个方框

还有
if MODULES
endif , 其实就是条件编译, MODULES被选中, if 里面的东西才能显示出来。

ubuntu 中会拦截insmod 中printk打印出来的信息, 使用dmesg命令就可以看得到.

insmod时要保证vermagic必须和内核相同, 否则不能安装, 报错信息为:insmod: ERROR: could not insert module module_test.ko: Invalid module format

想要保证模块vermagic和内核的vermagic一致, 就必须是这个模块要运行的内核源码树中进行编译,即可.

printk 和printf类似, 但是多了一个打印级别,打印级别数字分别是0-7, 数字越小,级别越高.
因此打印级别设置, 比打印级别小的,就能打印出来, 大的则屏蔽掉

使用 cat /proc/sys/kernel/printk来看打印级别
打印出来是
4 4 1 7
修改打印级别是
echo 4 > /proc/sys/kernel/printk

但是在ubuntu中设置printk的打印级别是没有效果的, 只能使用dmesg进行打印

什么是设备文件, 设备文件时用来描述驱动的, 也是驱动的索引, 因此我们应用层可以通过操作设备文件即可操作驱动.

内核中管理驱动是用主设备号来管理驱动的, 主设备号就是数组的下标.

创建设备文件, mknod /dev/xxx c 主设备号 次设备号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值