Logical Memory Space of 4GB is divided in to 3GB User Space and 1GB Kernel Space. Always. Correct?
1. How can we change it? (just changing value of PAGE_OFFSET is okay?)
2. If system have only 256MB of memory (embedded system) and suppose Kernel Modules eat away all the memory during boot. User space will be left will no memory. Is this case possible?
I am writing device driver in which i have to call callback function from kernel space, which are saving my data. But the callback functions are in userspace. While accessing them i am getting segmentation fault.
I am developing a I2C CDROM client driver. The CDROM firmware supports TOC information read through a I2C command. It sends the TOC information in burst ( Interrupts a GPIO pin when it is ready ) and my CPU does a I2C read to read the TOC. When the CDROM firmware finishes sending the last data burst , it informs my CPU that it is done with the TOC, by a flag in the last data burst. I would like to know, which is the most efficinet way I can send these TOC information to userspace?
I wanna write a file in kernel space but from my searching I can to know that instead of writeing file in kernel space ,I can write data to user space by copy_to_user space.
But link is missing ...I dont know how will my user space will access kernel space means my function in kernel space which will do copy_to_user /....How my user space function will call my kernel level function ..
Can any one of you provide me with some example file which are doing this .I know every char driver is using it ...but i could not trace back how user level function is accessing it ...i m confused between user space and kernel space.
I need a shared buffer between user and kernel space. I read that one way is to allocated buffer in kernel and then call mmap from the user space. I searched for an example but couldn't find something useful. If you know, could you please send me any links or sample code that does this..
I have the following requirement in my module. The driver gets some data from the external device. After getting 1MB of data it has to send it to the user space application. What is the best thing to implement for this in driver.? Is it ok to implement like, after getting data, the driver will send a signal to the user space application. Then the user space application sends an ioctl to read the data. Is there any alternate, that the driver directly sends the data without the user space application asks for it.?
I need to install module u32 into the netfilter module for kernel 2.6.27.
I did not see the source code in the kernel version I have. where can I find the code for U32 module.
I have checked "netfilter.org" and looks like POM is discontinued. Is the u32 module committed to kernel version 2.6.27 or need to patch it. If yes, where can I find the patch?
I am writing a program which i dont want the kernel scheduler to preempt before certain time duration. I am using the system call sched_get_priority_max to set the maximum priority. However it is not producing results.
In a 32-bit system, max memory addressable is 4GB. Now Linux kernel does memory mapping division of 1GB for kernel address space and 3GB for user address space. That means 4GB of virtual address space is divided between kernel (1GB) and user (3GB).
Q1. All virtual mapping utilizes the available physical RAM without any division? I mean to say that if RAM is 512MB then a page in kernel space can lie any where RAM (leave aside old PCI dma accesses)? (How this fits to fact that kernel memory is non-pageble)
Q2. If a process is created in user space, it has visibility 4GB address space or 3GB address space?
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 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 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:
[URL]
where you can see an entry like:
Code:
MODULE_AUTHOR("VMware, Inc."); MODULE_DESCRIPTION("VMware Memory Control (Balloon) Driver"); -MODULE_VERSION("1.2.1.0-K"); +MODULE_VERSION("1.2.1.1-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 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 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.
I have an issue that is fixed by changing the lpfc driver to run using MSI interrupts. This is done by adding "options lpfc lpfc_use_msi=2" /etc/modprobe.conf.local file.
Is there a way to make this change using kernel boot parameters?
I am facing problem(system gets crash) while I try to send IPv6 packet by using my kernel module. I have given the code and makefile for my module. I will appreciate if any one shares any tester module for sending IPv6 packets.The kernel version that I am using is 2.6.9 and it supports for IPv6.
I am trying to install atheros AR5007EG on my toshiba laptop -i figured out that best way to install this wireless card is through madwifi -while configuring madwifi i get this error
I am posting the output of different commands so you can understand better -i manually tried to link the build directories to kernel-source which failed - i am not sure exactly what kernel source is and how i can link to kernel source -