mini2440 kernel modules insmod

andromeda
hi,

i have compiled my kernel with modules, when i launch mini2440 i must do
insmod mymodule, its possible to do definitively this in mini2440 ?
how do i do ?

thanks.

open-nandra
Hi, yes if you would like to use your module you need to insmod it. Or
compile it directly to kernel is another option.

andromeda
thanks

ARMTRY
Attachment: mini2440_gpiob.c (1.66 KB)
Hi Andromeda,
              How did u create the modules and compile it into kernel
can u list out the steps briefly because I tried to create a driver for
GPIOs and compiled it with kernel but I am getting kernel panic
well here are the steps I followed 

(NOTE to whom so ever: THIS IS LENGTHY POST please understand I'm not
Hijacking this post kindly co-operate)

(Please look at my attachment files mini2440_gpiob.c uploaded in this
post).
 
1.I downloaded the kernel source from 

http://www.friendlyarm.net/dl.php?file=linux-2.6.32.2-mini2440_20100609.tgz

2.Untarred it in Documents Folder

3.In this path /root/Documents/linux-2.6.32.2/drivers/char/mini2440_gpiob.c
for accessing GPIO line from the 34-pin Expansion header

I created the file mini2440_gpiob.c on the same line as mini2440_leds.c
well and after that I edited the Kconfig file and the added these lines
below

config GPIOB_MINI2440
  tristate "34 GPIOs Support for Mini2440 GPIO LEDs"
  depends on MACH_MINI2440
  default y if MACH_MINI2440
  help
    This option enables support for LEDs connected to 34 GPIO lines
    on Mini2440 boards.

and after that I entered the path and /root/Documents/linux-2.6.32.2
and enterd the following commands

1. CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make mini2440_defconfig
    created .config file
2. CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make menuconfig
    select the driver which I created in device drivers in char drivers  
    section
3. CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make uImage
   after some time after compilation I got the uImage and zImage created in
this path 
  /root/Documents/linux-2.6.32.2/arch/arm/boot/
  
and I ported the kernel Image zImage onto the board from this location
when the board is switched on in NOR position and and press option K 
and in the host machine( Ubuntu linux) used the tool ./s3c2410_boot_usb
to copy the zImage kernel

and after porting it to board , reboot it with NAND switched position
and then I'm getting Kernel Panic
   
If any body has successfully created drivers for another hardware apart
from the pre-built in drivers that came with the kernel source
and are able to boot the mini2440 board successfully 
please guide me how to do it 

Thanks in advance,

regards,
ARMTRY.

open-nandra
Despite of fact that IOCTL function doesn't use correct IOCTL numbers I
build it like module and when insmod it I have no troubles with panic or
kernel oops. Maybe you do something wrong during kernel image building?
Could you please post panic what you get? Did you copy to NAND uImage?

ARMTRY
Attachment: Screenshot.png (143.07 KB)
Hi open-nandra,
               I used zImage and copied it to NAND , and please see the
attached file a screen shot and the driver gpiob which I created shows
during bootup as gpiob is initialised

and can u please tell me or show me a example of how to do it as module
becuase I tried that but have a problem with header files and GPIO
libraries which require <reg-gpio.h>

ARMTRY
Hi open-nandra,
               I have a question regarding the ioctl , u mean to say that
if we use it incorrectly it will cause kernel panic is it ? 

because I only added on mini2440_gpiob.c same as mini2440_leds.c and edited
Kconfig and Makefile as required 

Please Acknowledfge,

Thanks in advance,
ARMtry

open-nandra
Hi, you have problem with mounting rootfs. So your module doesn't do kernel
panic. What rootfs you're trying to mount?

ARMTRY
Hi Open-nandra,
               I'm trying to mount the root_qtopia-128M.img ( yaffs)  which
came along with the DVD , and when I tried to use a different kernel Image
(zImage_T35) then I'm able to boot the board properly with the same root-fs
and when I tried to copy the kernel that I installed the drivers and
compiled then I get the problem kernel panic 

did u try ( or can you please check thru my file)  to add my
mini2440_gpiob.c in the kernel and edit the kconfig and makefile and
re-compile to get a new zImage and try to port it to the NAND flash using
the supervivi boot loader.

Thanks in advance,
ARMTRY.

open-nandra
Well you should check if you have yaffs functionality build-in your kernel
which you try to compile.

ARMTRY
Hi Open-nandra,
               I am using linux-2.6.32 and root fs which comes along with
the DVD from Friendly arm and while compiling kernel I did select yaffs
option in Filesystems well ( I ported the root fs as per manual that says
to port root fs by pressing option b in bios ( when board boots up in NOR
position) 

Thanks in advance,
ARMtry.

open-nandra
Not sure if you have u-boot installed on your NAND flash. If yes check if
you have correct bootargs options for rootfs. You should start new thread
as this is not a problem with your driver but problem with rootfs mounting.