linux55
A. linux内核中断之获取中断号
Linux内核中可使用 platform_get_irq() 函数获取 dts 文件中设置的中断号。
函数原型: int platform_get_irq(struct platform_device *dev, unsigned int num)
定义文件: driversaseplatform.c
中断号获取函数 platform_get_irq() 调用流程如下:
rk3399 使用的是 GICv3 ,对应 irq_domain->name 。
文件: drivers/irqchip/irq-gic-v3.c 。
translate() 函数实现如下:
以 RockPI 4A 单板 Debian 系统Linux 4.4内核中的获取 HDMI 中断号为例。
1、查找中断号
从手册“Rockchip RK3399 TRM V1.3 Part1.pdf”中,可以查到 HDMI_IRQ 中断号,即55。
2、 dts 配置
文件: arch/arm64/boot/dts/rockchip/rk3399.dtsi
hdmi 使用的是 GIC_SPI 中断,按照 gic_irq_domain_translate() 函数中处理,需要将中断号55减去32,得到 dts 中的中断号23。
注: interrupts = <中断类型 中断号 中断触发类型 中断分区(对应哪个CPU cluster,PPI类型中断特有)>
3、驱动函数
文件: driversgpudrm ockchipdw_hdmi-rockchip.c
此时, irq 返回值为55。
后续会介绍 GIC 和中断注册等实现函数。
B. linux把内存打到55%
1、使用top命令或htop命令查看当前内存使用情况,找出占用内存较多的进程信息。
2、尝试终止占用内存较多的进程。
3、调整应用程序的内存使用设置,例如通过修改etc,nginx,nginxconf配置文件来控制Nginx占用的内存大小。
4、升级系统硬件配置,例如增加内存条容量等。
C. Linux如何使用shell查看Linux是32位还是64
现在绝大多数用户使用的是Windows系统,都知道Windows系统有分32位和64位,其实Linux系统也有32位和64位之分,你知道你的Linux系统是几位的吗?下面小编就教你如何使用shell查看Linux是32位还是64位。
手动查看系统位数
查看linux系统位数,可以分别执行以下两个命令
getconf WORD_BIT
用于获取word的位数
getconf LONG_BIT
用于获取long的位数
对于64位系统以上两个命令应该分别得到32和64。
判断linux系统是32位还是64位有很多方法,推荐用getconf,然而有人认为getconf WORD_BIT=32则是32bit,getconf WORD_BIT=64则是64bit,请去64bit机器上执行,呵呵。getconf WORD_BIT显示结果还是32,why?
32位的系统中int类型和long类型一般都是4字节,64位的系统中int类型还是4字节的,但是long已变成了8字节inux系统中可
用”getconf WORD_BIT”和”getconf LONG_BIT”获得word和long的位数
shell判断系统位数
ldconfig
if [ $(getconf WORD_BIT) = ‘32’ ] && [ $(getconf LONG_BIT) = ‘64’ ] ; then
ln -s /usr/local/mysql/lib/mysql /usr/lib64/mysql
else
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
fi
补充一些其它方法
uname -a
32位:Linux localhost.localdomain 2.6.32-431.17.1.el6.i686 #1 SMP Wed May 7 20:52:21 UTC 2014 i686 i686 i386 GNU/Linux
64位:Linux demolinux 2.6.32-431.11.2.el6.x86_64 #1 SMP Tue Mar 25 19:59:55 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
上面就是Linux使用shell查看Linux32位和64位的方法介绍了,除了使用shell查看,你还能手动执行命令查看系统位数。
D. linux设置系统时区命令
修改系统时间。
linux系统时钟有两个,一个是硬件时钟,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时钟,是linux系统Kernel时间。当Linux启动时,系统Kernel会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。有时我们会发现系统时钟和硬件时钟不一致,因此需要执行时间同步,下面就分享一下时间设置及时钟同步的命令使用方法。
date命令将日期设置为2014年6月18日
---- date -s 06/18/14
将时间设置为14点20分50秒
---- date -s 14:20:50
将时间设置为2014年6月18日14点16分30秒(MMDDhhmmYYYY.ss)
----date 0618141614.30