linux驱动程序问题。我有一个有效打电话给内核模块的应用程序。内核模块必须从应用程序的调用期间从特定的绝对路径读取文件。
这一切在正常条件下都可以正常工作。
当应用程序从Chroot运行时,就会发生问题。那时,在从Chroot运行的应用程序的上下文中运行,我的驱动程序不再可以访问其必须读取的文件的绝对路径。
驱动程序正在使用filp_open((打开文件,该文件是从Chroot运行时失败的。
我是否可以在不打扰应用程序的chroot或使用应用程序中访问Chroot中的其他文件的情况下指定文件打开的根源。
。Linux版本是CentOS 7.1内核3.10.0-229-EL7.x86_64任何信息都非常感谢。
这在内核代码中爬行了很多,但是我弄清楚了如何。
首先,我需要使用get_fs_root(init_task.fs,& realrootpath(这是真正的根路径,而不是chroot路径。
然后,我需要使用filename_lookup((将名称数据设置为我的rootpath并传递在Lookup_root标志中,以便从真实的root路径上查看它。
最后,我必须使用Dentry_open((使用我查找的路径来打开文件。在这一点上,我可以访问并读取在当前任务之外的文件。