禁止Linux开机自动加载某个内核模块的方法zz
嵌入式试题库3

嵌入式系统设计试题卷三一、单项选择题1、在ARM体系构建的嵌入式系统中,由电平模式触发的中断,其对应的中断标准应该在何时被清除?AA、当中断处理程序结束以后,才可以清除B、进入相应的中断处理程序,即可以清除C、产生IRQ中断的时候,处理器自动清除D、任何时候都可以清除2、在操作系统中,Spooling技术是用一类物理设备模拟另一类物理设备的技术,实现这种技术的功能模块称做( B )。
A、可林斯系统B、斯普林系统C、图灵机系统D、虚拟存储系统3、通过修改下面文件哪个文件,可以设定开机时候自动安装的文件系统(C )A. /etc/mtaB. /etc/fastbootC. /etc/fstabD. /etc/inetd.conf4、下面关于Shell的说法,不正确的是:(D)A. 操作系统的外壳B. 用户与Linux内核之间的接口程序C. 一个命令语言解释器D. 一种和C类似的程序语言5、init可执行文件通常存放在( C )目录中。
A./etc B./bootC./sbin D./root6、假设root用户执行“init 0”命令,系统将会( B )。
A.暂停B.关机C.重新启动D.初始化7、嵌入式系统应用软件一般在宿主机上开发,在目标机上运行,因此需要一个( B )环境。
A、交互操作系统B、交叉编译C、交互平台D、分布式计算8、已知有变量data1定义如下:Cunion data{ int i;char ch;float f;} data1;则变量data1所占的内存存储空间可表示为。
A、sizeof(int)B、sizeof(char)C、sizeof(float)D、sizeof(int)+sizeof(char)+sizeof(float)9、软件开发模型给出了软件开发活动各阶段之间的关系,( D )不是软件开发模型。
A、瀑布模型B、螺旋模型C、原型模型D、程序模型10、实时操作系统(RTOS)内核与应用程序之间的接口称为( C )。
内核模块加载命令

-c, --showconfig //显示当前使用的配置
-d, --debug //显示调试信息
-h, --help //帮助
-k, --autoclean //将指定模块设置为"自动清除"模式.
modules
-l, --list //显示所有匹配模块
note: wildcard patterns should be escaped
Show configuration:
modprobe [-C config ] -c
Remove module(s) or autoclean:
modprobe [-C config ] -r [ module ...]
参数:
-f 不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入。
-k 将模块设置为自动卸除。
-m 输出模块的载入信息。
-o <模块名称> 指定模块的名称,可使用模块文件的文件名。
-p 测试模块是否能正确地载入kernel。
-s 将所有信息记录在系统记录文件中。
1、modprobe 命令是根据depmod -a的输出/lib/modules/version/modules.dep来加载全部的所需要模块。
2、删除模块的命令是:modprobe -r filename
3、系统启动后,正常工作的模块都在/proc/modules文件中列出。使用lsmod命今也可显示相同内容。
从以上显示结果可知,RAID1模块已加载成功。只是在使用insmod命令加载模块时,需要使用绝对路径方能加载,且加载时无法自动解决依赖关系。
Linux如何禁止系统内核Kernel自动升级

Linux如何禁止系统内核Kernel自动升级Kernel是系统内核,Linux系统在进行升级的时候内核也会跟着更新,有时为了避免不必要的麻烦,不少用户会选择不升级Linux内核,那么要如何禁止Kernel升级呢?不过在更新其他软件包时,如果依赖最新的内核,那么该软件包是没法更新成功的。
方法如下:方法1:# vim /etc/yum.confexclude=kernel*在 [main]配置段下,追加或修改以上内容。
可通过下面的命令查看是否生效:# yum update | grep -i kernel方法2:在yum命令行中加上-x参数,来跳过指定的更新。
如:# yum -x ‘kernel*’ updateLinux禁止系统内核Kernel升级的方法就介绍到这里了,方法2是通过在yum命令行中加入参数来实现的,相较于方法1简单了很多。
【拓展阅读】Linux 新手容易犯的 7 个错误7. 选择错误的 Linux 发行版Linux 有几百个不同的版本,或者按他们的称呼叫做发行版(distribution)。
其中许多是专门针对不同的版本或用户的。
选择了错误的版本,你与 Linux 的第一次亲密体验将很快变成一个噩梦。
如果你是在朋友的帮助下切换的话,确认他们的建议是适合你,而不是他们。
有大量的文章可以帮助到你,你只需要关注前 20 名左右的或者列在 Distrowatch 的即可,就不太可能会搞错。
更好的做法是,在你安装某个发行版之前先试试它的 Live DVD。
Live DVD 是在外设上运行发行版的,这样可以允许你在不对硬盘做任何改动的情况下对其进行测试。
事实上,除非你知道怎么让硬盘在 Linux 下可访问,否则你是不会看到你的硬盘的。
6. 期待什么都是一样的由于经验有限,许多 Windows 用户不知道新的意味着新的程序和新的处理方式。
事实上你的 Windows 程序是无法在 Linux 上运行的,除非你用 WINE 或者 Windows 虚拟机。
Linux终端命令管理系统启动和关闭

Linux终端命令管理系统启动和关闭Linux终端命令是操作Linux系统的重要工具,通过命令可以管理、操作系统,并进行各种任务。
在使用Linux终端命令之前,用户需要了解如何启动和关闭Linux终端命令管理系统。
本文将介绍Linux终端命令管理系统的启动和关闭步骤,并提供相关实例。
一、Linux终端命令管理系统启动Linux系统中,终端命令管理系统默认是自动启动的。
用户只需要打开终端窗口,就可以直接开始输入命令。
以下是启动Linux终端命令管理系统的步骤:1. 打开终端窗口在Linux系统中,用户可以通过快捷键Ctrl+Alt+T来打开一个新的终端窗口。
也可以在应用程序菜单中找到终端应用程序并打开。
2. 输入用户名和密码在终端窗口中,用户需要输入正确的用户名和密码来登录Linux系统。
请确保输入的用户名和密码正确无误。
3. 启动终端命令管理系统登录成功后,系统会自动启动终端命令管理系统,此时用户就可以开始输入各种命令来进行系统管理和操作。
二、Linux终端命令管理系统关闭关闭Linux终端命令管理系统可以通过以下步骤进行:1. 退出当前会话在终端窗口中,用户可以使用命令"exit"或"logout"退出当前会话。
执行该命令后,用户将会退出当前的终端会话,但是终端命令管理系统仍然在后台运行。
2. 关闭终端窗口如果用户不再需要使用终端命令管理系统,可以直接关闭终端窗口。
在关闭窗口之前,确保已经保存了所有的工作和文件。
三、实例演示下面提供实例演示Linux终端命令管理系统的启动和关闭步骤。
1. 启动终端命令管理系统打开终端窗口,输入正确的用户名和密码,登录Linux系统。
登录成功后,系统会自动载入终端命令管理系统。
例如:```$ ssh username@hostnamePassword:```2. 使用终端命令管理系统在终端窗口中,可以使用各种命令进行系统管理和操作。
uncompressing linuxdone, booting the kernel解决办法

Uncompressing Linux...done, booting the kernel解决办法u-boot是好的,是刚移植成功的,用其他的内核跑过没问题。
所以皇莡-boot传参有问题,问题就是出在我移植的内核上面。
我用的是mini2440的配置,linux2.6.35的内核。
网上找了很多资料试了都没有,开了CONFIG_DEBUG_LL(这个选项是在Kernel hacking里面,需要你打开Kernel low-level debugging functions & Kernel Low-level debugging message via S3C UART)本来想看下出错信息的,加了之后连Uncompressing Linux...done, booting the kernel都没有了。
悲剧。
后来没办法,只能设死循环调试。
后来发现在bl__lookup_machine_type 这条语句(在arch/arm/kernel/head.S中) 执行之后返回的r5寄存器一直是0. 由此可以推测我的MACHINE_TYPE肯定出问题了。
去arch/arm/mach-s3c2440/mach-mini2440.c 查看下面这个结构体:MACHINE_START(MINI2440, "MINI2440")/* Maintainer: Michel Pollet <buserror@> */ .phys_io = S3C2410_PA_UART,.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,.boot_params = S3C2410_SDRAM_PA + 0x100,.map_io = mini2440_map_io,.init_machine = mini2440_init,.init_irq = s3c24xx_init_irq,.timer = &s3c24xx_timer,MACHINE_END问题就是出在第一行的MINI2440,因为这个宏定义扩展之后的machine type 就成了MACHINE_TYPE_MINI2440, 而我在u-boot定义的是MACHINE_TYPE_S3C2440,因此不匹配导致内核不识别死在这里了。
Linux开机自动启动脚本方法linux设置开机服务自动启动关闭自动启动命令

Linux开机自动启动脚本方法linux设置开机服务自动启动关闭自动启动命令Linux 开机自动启动脚本方法linux设置开机服务自动启动/关闭自动启动命令2011年09月08日星期四下午 03:111、相关基础知识点1)redhat的启动方式和执行次序是:加载内核执行init程序/etc/rc.d/rc.sysinit # 由init执行的第一个脚本/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式/etc/rc.d/rc.local #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中)/sbin/mingetty #等待用户登录在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:调入keymap以及系统字体启动swapping设置主机名设置NIS域名检查(fsck)并mount文件系统打开quota装载声卡模块设置系统时钟等等。
/etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。
凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。
调用的顺序按xx从小到大来执行。
(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用/etc/rc.d/rc3.d/下的脚本。
值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。
init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。
Linux操作系统修改内核参数的三种方法详细说明

Linux操作系统修改内核参数的三种方法详细说明linux内核的参数设置怎么弄呢,Linux 操作系统修改内核参数有以下三种方式:修改 /etc/sysctl.conf 文件;在文件中加入配置项,格式为 key = value,保存修改后的文件,执行命令 sysctl -p 加载新配置。
使用 sysctl 命令临时修改;如:sysctl -w net.ipv4.tcp_mem = “379008 505344 758016”直接修改/proc/sys/ 目录中的文件。
如:echo “379008 505344 758016” 》 /proc/sys/net/ipv4/tcp_mem 注意:第一种方式在重启操作系统后自动永久生效;第二种和第三种方式在重启后失效。
内核参数kernel.core_uses_pi d = 1core_uses_pid 可以控制 core 文件的文件名中是否添加 pid 作为扩展名。
设置为1,表示添加 pid 作为扩展名,生成的 core 文件格式为core.xxx;设置为0(默认),表示生成的 core 文件统一命名为 core。
kernel.core_pat te rn = corecore_pattern 可以控制 core 文件的保存位置和文件格式。
如:kernel.core_pattern = “/corefile/core-%e-%p-%t”,表示将core 文件统一生成到 /corefile 目录下,产生的文件名为 core-命令名-pid-时间戳。
以下是参数列表:%p - insert pid into filename 添加 pid%u - insert current uid into filename 添加当前 uid%g - insert current gid into filename 添加当前 gid%s - insert signal that caused the coredump into the filename 添加导致产生 core 的信号%t - insert UNIX ti me that the coredump occurred into filename 添加 core 文件生成时的 unix 时间%h - insert hostname where the coredump happened into filename 添加主机名%e - insert coredumping executable name into filename 添加命令名kernel.msgmax = 8192进程间的消息传递是在内核的内存中进行的。
linux 端口被占用解决方法

linux 端口被占用解决方法解决Linux端口被占用的问题是一个常见的任务。
在本文中,我将为您提供一些解决方法,以帮助您快速定位并解决Linux系统上端口被占用的情况。
第一步:确认端口被占用的情况============================在开始解决问题之前,我们需要确认Linux系统上的哪个端口被占用了。
为此,可以使用一些Linux系统命令。
1. netstat命令在终端中输入以下命令,可以列出当前正在运行的网络连接和监听端口:netstat -tuln这将显示所有正在监听的TCP和UDP端口以及它们的状态。
通过查看该列表,您可以找到被占用的端口和相应的进程。
2. lsof命令另一个查看哪个进程使用了特定端口的方法是使用lsof命令。
在终端中输入以下命令,需要将"port_number"替换为实际的端口号:sudo lsof -i :port_number该命令将显示使用指定端口的进程及其PID。
第二步:杀死占用端口的进程=========================一旦确定了占用端口的进程,下一步就是终止该进程。
要完成这个任务,可以使用kill命令。
在终端中输入以下命令,将"PID"替换为实际的进程ID:sudo kill PID这将终止使用指定进程ID的进程。
请注意,您可能需要以root或sudo权限运行此命令。
如果进程无法正常终止,您可以尝试使用"kill -9 PID"命令,这会强制终止进程。
第三步:解决持久性占用问题===========================有时,您可能会发现无论您如何终止占用端口的进程,它们会在系统重启后重新出现。
这表明这些进程是由系统服务或其他自动启动机制引起的。
要解决这个持久性占用问题,可以采取以下步骤:1. 停止相关服务确定占用端口的进程所属的服务,然后停止或禁用该服务。