General :: How To Recompile My Module On Boot Time With Kernel
Jan 25, 2010
I am using FC9, I want to write a module that will always show current time after booting.But for that I need not only to load module using insmod/modprobe, but also to compile that module during boot time.How can I perform this 2 steps correctly.
I wish to recompile serial_core module to make a change in the way ioctl works. I don't wish to rebuild the whole kernel package. Can someone point me to the proper method?? I know I will need to download the kernel headers etc. But I would like to avoid the unneeded compiles of things I don't need to recompile.
I have recompiled a few kernels, but all on 32bit systems so not sure if that has anything to do with it.
Running Arch Linux 64bit, most recent version.
My first thoughts was that it might be my grub bootloader configuration, so had a big play around with that but it didn't fix it. Also made sure support was built for filesystems. However almost all that Fstab mounts are ext3 anyway, and certainly the root and /boot are. Now thinking it may be a memory error so will run a check when I shutdown.
I have a asus M51 Se that not work with 4GB of memory ram, due to a bug of bios. Only work with one slot of 2GB. I find this link https://bugs.launchpad.net/ubuntu/+s...ux/+bug/316079 that help to solve my problem. But for that I have to change a file.
My question is I need to recompile the kernel that I have? if yes, how can i make that without installing other kernel.
I tried to run some virtual machine using Virtual Machine Manager but the guest OS (windows server 2003) was not able to "see" the rest of my network. I believe VMM did some NAT-ing (192.168.122.x subnet) so i'm not able to "see" my network. I tried various network setting in VMM but couldnt get it to pull my network IP (192.168.1.x subnet).So i installed VirtualBox as a work around because i know VB work when i tried it on my windows machine. I ran into some issue getting VB to run, i think it was that i need to compile the kernel to "optimize" it for VB. I am fairly new to linux so that the impression that i get when i research for the fix to get VB working. In some of the forum post people suggest few things and it seem to me like it to compile the kernel. After a few hours of working i finally got it to compile but the computer crashed during compilation.
I am guess what happened is that i was trying to optimize the kernel for VB but the version of kernel i was using (2.6.18-164.6.1.el5xen) is already optimized for xen (VMM) so it crashed. I am looking to restore or recompile the 2.6.18-164.6.1.el5xen kernel. I am not sure if this is the right thing to do to fix it. With my limited knowledge of linux that all i can think of.
This has got me stumped. I expected to do /etc/init.d/vboxdrv setup after the upgrade from 11.3 to 11.4 but the command fails. The log is (it seems to repeat so I only quote the final bits to make it fit into the wordcount limit):
Code: make KBUILD_VERBOSE=1 -C /lib/modules/184.108.40.206-1.2-desktop/build SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 modules
I installed the latest security update for squeeze. It entailed an update of the kernel. Now when it boots, it give continuous kernel error messages about "can't enumerate usb .... " I have a custom kernel compiled from source (not sure about the patch level) from the same kernel 2.6.32. It seems to work OK. Should I worry about the security of this custom kernel or should I try to recompile it? I don't really know how to do any patching of the kernel source.
For a diskfull node (the OS installed in a disk), I can use the 'insmod' command to insert a kernel module into the kernel. And after the reboot, the module is still in the kernel. I have a question here: how, when and which kernel module will be loaded in the boot up process for a diskfull node?And for the diskless node, can I use the chroot or some other ways to install the kernel modules into ramdisk, so that kernel module can work when the diskless node boot up? I think it needs certain mechanism to load the kernel like the boot up of diskfull node.
I've been playing around in attempt to see how small a usable kernel I can build. The theory is that it should mainly be useful for preparing a recovery disk or some such thing; disk drivers and a few network drivers are what goes in.
I built the kernel with the attached config. It boots, reaches the hdd (if I specify root as /dev/sda5 manually), then dies when it tries to start Plymouth (something about catching a SEGV signal). What needs to be enabled to run Plymouth? Alternatively, has anyone managed to remove plymouth from boot on Maverick?
(That would require a modified mountall version, I know.) I'm using the mainstream kernel 220.127.116.11 sources on Maverick (yes, I know Maverick uses 2.6.35; but this does boot).
Hardware: Wireless-RTL8192SE b/g/n, uses an out-of-tree driver (r8192se_pci, from Realtek; Ubuntu builds in an older version of this driver); r8169 works for ethernet; ATI Radeon Mobility 3200 graphics, AMD Neo X2 cpu; SATA hd in AHCI mode.
I've been having a problem on my AMD based machine, 4cpu, gigabyte ga-ma78gm-s2h Mobo, 8GB mem, two 2 terabyte Sata HDs.One thing I've found is that any kernel after 2.6.32-17 has a randomness at boot time whether the system will completely boot or not.
For instance just today I downloaded and installed 2.6.32-24
It fails to boot (I've tried cold boot, warm boot).Running its repair also fails to completely boot.My experience is that if I keep trying it "may" eventually boot but I believe there was some change after 2.6.32-17-generic that's causing the problem.Because as with 18.104.22.168... which also fails to complete bootup many times... eventually my guess is that 22.214.171.124 will also boot "sometimes".But why does 126.96.36.199 always boot for me? Something changed and its not my setup.
PAM time restrictions - changing Time.conf so it gets time from a sql table. I was wondering with the PAM authentication module (pam_time) that I can grab time from a server using sql/postgress which uses TIMEDATE function to get the time of logging out into pam_time? So basically I want to insert sql statements into Time.conf which would get the time from a table.
I have a Samsung phone GT-B3210. For some time I was unable to find working Windows drivers for it. I eventually gave up looking. Then one time I was charging phone over its USB port and booted Ubuntu and was pleasantly surprised when I saw phone's μSD card reader on my desktop. I now need to switch to Gento and would like to be able to work with phone there too. Lsusb tells me it's detected as Bus 007 Device 006: ID 04e8:663f Samsung Electronics Co., Ltd SGH-E720/SGH-E840but lsmod wasn't very helpful. On the list of loaded modules, I wasn't able to find one which looks like it's related to the phone.
I'd like openSUSE to automatically load a kernel module (e.g. libsas) at boot time even no device requires it. In Ubuntu, you would add the module name to the file /etc/modules. Is this the correct place for openSUSE as well?
I update my last kernl to 2.6.38-rc7 but when I launch VirtualBox, on stdout.The vboxdrv kernel module is not loaded. Either there is no module available for the current kernel (2.6.38-rc7) or it failed to load. Please recompile the kernel module and install it by sudo /etc/init.d/vboxdrv setup.
Recently I was trying to look into vmware pvscsi modules for newly announced linux kernel 2.6.35-rc2. I compiled the kernel with option: make oldconfig where it asked me for various interactive options and all I did is Kept pressing the Enter ENTER key(Donno if that is the correct way to slect default ).The Kernel Compilation anyway went fine and I can see new kernel at grub screen, booted and it went fine.Now when I explored I found that nor the vmware_balloon and vmw_pvscsi modules are present which means I need to install these modules.I came to know that recently a new version of the vmware memory drivers being included through this page:
where you can see an entry like:
MODULE_AUTHOR("VMware, Inc."); MODULE_DESCRIPTION("VMware Memory Control (Balloon) Driver"); -MODULE_VERSION("188.8.131.52-K"); +MODULE_VERSION("184.108.40.206-k");
Doesn't it mean that the new kernel has new driver version inboxed?Also, I tried to install modules through modprobe and insmod(seems that this doesnt work) but couldnt do that.
I am trying to write a kernel module that will DMA my custom card. Right now when i plug the card into linux no valid PCI device shows up (meaning I probably have a error on my end, i know) however, If I halt the system at startup in the bootloader (uboot) I am able to directly access the card as I know in uboot the physical memory address that is mapped to my device. Is there a way I can access the card in a simliar fashion in linux?
I have a loadable module, simple enough I believe it should run on any 2.6 kernel. I want to force the load and test that assumption. How can I do it?
ismod does not seem to notice the -f in 2.7 modprobe has -f but cannot locate the module.No go. So I read the manpage for modprobe which says: modprobe looks in the module directory /lib/modules/'uname -r'.So I copied MYMODULE.ko to /lib/modules/2.6.(the only directory in here) and type: modprobe -f MYMODULE.ko.Still can't locate MYMODULE.ko.I notice there are no other .ko modules in that directory; so I go in deeper to kernel/drivers/char, guessing about the char directory, and copy MYMODULE.ko there.
i have written some really basic loadable kernel modules. There are a couple of concepts that i'll like to get cleared.
In a tutorial, the Makefile was given as follows- obj-m += try.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
I understand that -C option of 'make' changes the current directory to /lib/modules/$(shell uname -r)/build (which depends on my kernel).
Now, my question is why to change to that particular directory? Also M=$(PWD) will hold the dir where i have written the module. Why is it required? What does 'modules' at the end of that line indicate?
Q2> We need to include <linux/module.h> and <linux/kernel.h> in a module. If i am right, the module uses kernel headers for these definitions. But how does 'make' find these definitions.
Q3> We are planning to write a custom scheduler for linux kernel. cat /sys/block/sda/queue/scheduler gives us the currently loaded schedulers. How do we expose our scheduler to linux kernel so that we can use it by switching to it.