如果在uClinux中让自己的应用程序在内核启动的时候自动运行

oscp备考,oscp系列——Djinn3靶场:ssti漏洞,pkexec提权 oscp备考,oscp系列——Djinn3靶场:ssti漏洞,pkexec提权难度简单偏上对于低权限shell获取涉及:ssti漏洞对于提权:pkexec提权。 阅读详情
这是一个很老的话题了--不过网上还是很难找到一个完整的操作步骤,所以打算写一下送给象我一样的菜鸟.
 
仍然以已经编译成功的例子--hello(具体内容可以参阅前面的文章)来说明这个过程.也就是假设程序已经编译好了!(hello的编译过程可以参看http://www.itsn.cn/bbs/dispbbs.asp?boardID=2&ID=1&page=1中第7个问题)
在网上搜索了一些相关内容,都提到了如果想实现程序自启动,需要修改一个etc/rc文件的内容.这个文件大家都不陌生,就是一个负责启动或运行级别变化的脚本文件.但uClinux-dist目录下并没有etc这个目录,所以定位rc文件的位置成了关键.
最开始我找到了uClinux-dist/romfs/etc/rc这个文件,并在文件的最后添加了一行:
/bin/hello --也就是编译好的可执行文件
保存,重新编译uClinux,并不需要从头开始编译
只需执行下面的4步就可以了.
make user_only
make romfs
make image
make
之后下载uClinux的镜象到ITSN的开发板中,重新启动.
但是结果让我很失望,程序并没有自动运行起来,分析一下原因,我错误的以为是由于没有重新编译内核的原因,所以我重新编译了一次(重头开始),步骤如下:
make mrproper
make menuconfig
make clean
make lib_only
make user_only
make romfs
make image
make
这些过程都是按照ITSN上的说明来做的.
可是结果还是一样让人失望.
 
冷静下来仔细分析,编译的时候执行了make romfs,也就是说romfs目录中的内容应该是根据其他文件的内容生成的,并用于下载到开发板中的镜象文件的源代码,这样说来,它的内容是不能直接修改的,为了验证我的想法,我又打开了这个rc文件,果然,刚才的改动已经自动消失了.
 
我又开始在uclinux-dist目录下搜索可能的rc文件,发现了uClinux- dist/vendors/Samsung/44B0/rc这个文件(vendors目录下保存的是所有厂商和产品的备选),由于在设置内核的时候使用的就是44B0这个选项,猜想大概就是它了,增加一行:
/bin/hello
保存并编译,也是只执行了后4步.
重新启动,竟然ok了!
超级终端上显示出"hello andy"
【图像去噪】论文精读:AKDT: Adaptive Kernel Dilation Transformer for Effective Image Denoising 论文题目:AKDT: Adaptive Kernel Dilation Transformer for Effective Image Denoising —— AKDT:用于有效图像去噪的自适应核膨胀Transformer图像去噪是一项基本但具有挑战性的任务,特别是在处理高分辨率图像和复杂的噪声模式时。大多数现有方法依赖于标准的 Transformer 架构,该架构通常计算复杂度高,并且对不同噪声水平的适应性有限。在本文中,我们介绍了自适应核膨胀Transformer(AKDT) 阅读详情

相关推荐

MT5-双均线-EA交易

MT5-双均线-EA交易

Linux驱动编程day5-驱动自动加载,编译进内核以及自动执行

驱动提供一种机制(实现什么功能), 应用程序提供一种策略(如何使用这些功能) 1、linux驱动自动加载ko和应用 (1)在自动执行脚本中添加应用程序 cd /etc/ 里有一个profile文件 vim profile 在最后添加自己要执行的命令#/sbin/insmod /root/cyw/leddrv.ko #/root/cyw/led_test &多次登录会多次执行多进程,会带来影

qq_32266237的博客 833

嵌入式uCLinux内核启动过程分析

一个基于uCLinux的完整的嵌入式系统由三个部分组成,即系统引导程序Bootloader、uCLinux操作系统内核和文件系统。嵌入式系统的启动引导技术是嵌入式系统开发的一个难点,系统启动引导的成功与否决定了应用程序运行环境是否能正确建立,系统启动成功是应用正确运行的前提。而uCLinux内核启动过程也是其中重要一环,分析uCLinux启动过程,可以加快系统启动速度、正确建立应用环境。本文要研究的就是uCLinux操作系统内核启动过程。

Linux用户模式和内核模式

<br />MS-DOS等操作系统在单一的CPU模式下运行,但是一些类Unix的操作系统则使用了双模式,可以有效地实现时间共享。在Linux机器上,CPU要么处于受信任的内核模式,要么处于受限制的用户模式。除了内核本身处于内核模式以外,所有的用户进程运行在用户模式之中。<br />内核模式的代码可以无限制地访问所有处理器指令集以及全部内存和I/O空间。如果用户模式的进程要享有此特权,它必须通过系统调用向设备驱动程序或其他内核模式的代码发出请求。另外,用户模式的代码允许发生缺页,而内核模式的代码则不允许。<

痞子龙3D编程 5987

uclinux用户应用程序添加

uclinx用户应用程序添加过程,在网上有很多资料,但是大部分是转的,而且具体方法非常多,自己在实践的过程中,找到了一种自己比较喜欢的,没有什么技术含量,算是记录吧1)在/user目录下新建sample目录,并将hello.c和Makefile文件添加到此文件下.hello.c #include "stdio.h"int main (void){printf("hell

冷竹的专栏 688

uClinux中添加应用程序自动运行(参考uClinux-dist/REAMDME)

首先在/uclinux-dist/usr中建立一个目录:hello,再在这个目录上添加自己的应用程序hello.c(参考uClinux-dist/REAMDME)1>在config/config.help中最后一行添加CONFIG_PROP_HELLO_HELLO  THIS IS MY PROGRAM    2>在config/config.in中添加mainmenu_option next_c

hitlerisyou的专栏 2417

uClinux启动过程

uCinux的启动主要经历三个阶段。首先,必须完成CPU和存储器的硬件初始化,在系统RAM中建立程序堆栈和数据段,建立程序的运行时的环境。初始化完成之后,uClinux内核就取得了CPU的控制权,开始操作系统自身的初始化,这包括建立RAM中断矢量表、加载设备驱动程序、内存管理模块等等。这一切完成后,uClinux启动一个最初的init线程,进入到第三阶段,这时内核已经正常运行,外围模块也都就绪,开

hitlerisyou的专栏 4379

uClinux中添加应用程序2

以下通过一个具体实例向读者介绍将程序添加到uClinux的标准方法。例如要把前面提到的源程序lednxy.c添加到运行于目标板上的uClinux操作系统中,则文件应在目录/home/nie/uClinux-Samsung/user下,进入uClinux-Samsung/user目录并建立个自己的子目录,比如键入:mkdir myapp,这样在user目录下就建立了一个新的子目录myapp,把led

hitlerisyou的专栏 1308

uClinux 启动过程详细分析

uclinux启动的详细过程有着诸多的信息可以给我们巨大的启发,我们在这里讨论的就是要对这些信息做一个具体细致的分析,通过我们的讨论,大家会对uclinux启动过程中出现的、以前感觉熟悉的、但却又似是而非的东西有一个确切的了解,并且能了解到这些输出信息的来龙去脉。uclinux启动过程,它是一幅缩影图,对它有了一个详细的了解后,有助于指导我们更加深入地了解uclinux的核心。

vrix的专栏 852

uClinux内核和标准linux内核的比较

应该说uClinux同标准Linux的最大区别就在于内存管理,支持没有MMU(内存管理单元)的CPU是uClinux与主流linux的基本差异。标准linux是针对有MMU的CPU设计的,有MMU把虚拟地址映射为物理地址,所以标准的linux访问的是虚拟内存。而对uClinux来说,其设计针对没有MMU的处理器,所以无法使用处理器的虚拟内存管理技术,只能直接访问物理内存。uClinux在对物理

shieh的专栏 1684

linux运行uclinux程序,uClinux的编译与运行详解

按常规编译完成后应该生成image.bin linux linux.data linux.text romfs.img这5个文件,不过我只有linux/boot.rom(=romfs.img),今天上网查了查它们的定义。romfs.img:这个文件是通过tools/romfs-inst.sh脚本,生成romfs目录及其下面的文件,然后通过genromfs程序打包成一个文件romfs.i...

weixin_42131618的博客 749

uClinux在S3C4510上的启动分析(ZT)

uClinux的执行过程  uCinux的启动主要经历三个阶段。首先,必须完成CPU和存储器的硬件初始化,在系统RAM中建立程序堆栈和数据段,建立程序的运行时的环境。初始化完成之后,uClinux内核就取得了CPU的控制权,开始操作系统自身的初始化,这包括建立RAM中断矢量表、加载设备驱动程序、内存管理模块等等。这一切完成后,uClinux启动一个最初的init线程,进入到第三阶段,这时内

我的仓库 My Storehouse 1436

移植uClinux

<br />在移植uClinux之前要做一些准备工作,比如调试器是否可以正常工作,交叉编译环境的建立等。然后,再开始启动代码的移植和uClinux的移植。<br />①要保证硬件和JTAG接口正常以及正确的跳线。看调试器是否可以正确操作JTAG口;是否可以正确设置CPU寄存器的值,并可以通过设置LED地址的值来点灯。这一步保证了硬件的正确。<br />②检查调试器和JTAG是否可以正常工作。我们可以通过用JTAG调试器编译一个最简单的LED程序并让它在S3C44BOX的SDRAM中运行来进行测试。这一步的难

bruno231的专栏 4502

s3c44b0 uClinux环境下的应用程序之hello world

板子不是优龙的,买的杂牌板,网络工作在8位方式,割线,变成16bit模式,可用优龙的bios了。但他的romfs下的var目录有问题,不能ftp应用程序到/var下,编译romfs成功,内核编译还不成功,用的是优龙的内核,自己的romfs,能ftp应用程序到/var下。编写应用程序hello.c,编译arm-elf-gcc -o hello hello.c报错,抓狂!!!/

dp__mcu的专栏 898

内核添加应用程序

HELLO WORLD 的实现   编写的第一个程序当然是hello world程序。   1)在Uclinux-dist/user/下创建一新文件夹lensens_hello   2)编写hello.c      #include       int main(void)      {       printf("Hello World!/n"):      

369

(笔记)Linux下的准确延时,#include <linux/delay.h>调用出错

在编写应用层程序时,有时需要延时一下,这个时候该怎么办呢?   在内核代码中,我们经常会看到这样的头文件使用#include &lt;linux/delay.h&gt;,心想着直接调用这个就可以了吧!可是在编译时发现,压根通不过, 提示错误如下:error: No such file or directory.   是不是觉得很奇怪,明明文件是存在的,怎么就不能调用了,而且内核很多文件调...

weixin_34248023的博客 1393
上一篇: 将nfs文件系统挂载到uClinux中
下一篇: linux-2.6.14下madplay在S3C2410上移植的全过程详解
林大虫子
博客等级 码龄19年 35粉丝 67原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值