New IT forum
25 June 2022, 11:17:32 pm *
Welcome, %1$s. Please login or register.

: GertDuino now in stock.
 
Pages: [1]

Author Topic: Booting Debian "squeeze" with custom kernel  (Read 5206 times)

rteodor

  • Newbie
  • *
  • Posts: 3
Booting Debian "squeeze" with custom kernel
« on: 26 September 2010, 09:51:03 pm »

Hello everybody,


I have an openrd ultimate with Debian running mainly ok from an USB hard drive.
The problem with Debian is that it does not have the sound drivers on it's 2.6.32 kernel.

Now I am trying to backport those drivers from a newer kernel (2.6.36-5). I have
successfully compiled and loaded the .32 updated kernel (uImage), but I could not
figure out how I can produce a suitable uInitrd. If I use the default initrd the
booting process will end like this:

Code: [Select]
Begin: Waiting for root file system ...                                                                                                                             
done.                                                                                                                                                               
Gave up waiting for root device.  Common problems:                                                                                                                   
 - Boot args (cat /proc/cmdline)                                                                                                                                     
   - Check rootdelay= (did the system wait long enough?)                                                                                                             
   - Check root= (did the system wait for the right device?)                                                                                                         
 - Missing modules (cat /proc/modules; ls /dev)                                                                                                                     
FATAL: Could not load /lib/modules/2.6.32/modules.dep: No such file or directory                                                                                     
FATAL: Could not load /lib/modules/2.6.32/modules.dep: No such file or directory                                                                                     
ALERT!  /dev/disk/by-uuid/58a496ac-9c17-4361-b7d4-46d5841ab9fe does not exist.  Dropping to a shell!                                                                 
                                                                                                                                                                     
                                                                                                                                                                     
BusyBox v1.17.1 (Debian 1:1.17.1-4) built-in shell (ash)                                                                                                             
Enter 'help' for a list of built-in commands.                                                                                                                       
                                                                                                                                                                     
/bin/sh: can't access tty; job control turned off                                                                                                                   
(initramfs)

I do not have a clear idea of what is happening, so I am asking here if someone can give some directions.


TY,
Teodor
Logged

rteodor

  • Newbie
  • *
  • Posts: 3
Re: Booting Debian "squeeze" with custom kernel
« Reply #1 on: 03 October 2010, 07:33:55 pm »

At this moment I am quite sure that the uImage is ok, but something is wrong with my uInitrd.

On the external usb HDD I have a boot patition (ext3), with the follwing files on it:
Code: [Select]
lrwxrwxrwx 1 root root      19 Sep 26 21:38 config -> /boot/config-2.6.32                                                                                           
-rw-r--r-- 1 root root   70107 Sep 26 21:38 config-2.6.32                                                                                                           
-rw-r--r-- 1 root root   84207 Sep 19 04:53 config-2.6.32-5-kirkwood                                                                                                 
lrwxrwxrwx 1 root root      17 Sep 26 23:03 initrd.img -> initrd.img-2.6.32                                                                                         
-rw-r--r-- 1 root root 4626611 Sep 27 00:05 initrd.img-2.6.32                                                                                                       
-rw-r--r-- 1 root root 5664915 Sep 21 22:13 initrd.img-2.6.32-5-kirkwood                                                                                             
drwx------ 2 root root   12288 Sep 21 21:45 lost+found                                                                                                               
lrwxrwxrwx 1 root root      23 Sep 26 21:38 System.map -> /boot/System.map-2.6.32                                                                                   
-rw-r--r-- 1 root root 1077641 Sep 26 21:38 System.map-2.6.32                                                                                                       
-rw-r--r-- 1 root root 1002661 Sep 19 04:53 System.map-2.6.32-5-kirkwood                                                                                             
-rw-r--r-- 1 root root 2125248 Sep 27 00:00 uImage                                                                                                                   
-rw-r--r-- 1 root root 1431848 Sep 21 22:13 uImage.0                                                                                                                 
-rw-r--r-- 1 root root 4626699 Oct  3 16:50 uInitrd                                                                                                                 
-rw-r--r-- 1 root root 5664979 Sep 21 22:13 uInitrd.0                                                                                                               
lrwxrwxrwx 1 root root      20 Sep 26 21:38 vmlinuz -> /boot/vmlinuz-2.6.32                                                                                         
-rw-r--r-- 1 root root 1564304 Sep 26 21:38 vmlinuz-2.6.32                                                                                                           
-rw-r--r-- 1 root root 1431784 Sep 19 04:52 vmlinuz-2.6.32-5-kirkwood

uImage.0 and uInitrd.0 are the original Debian files from http://www.cyrius.com/debian/kirkwood/openrd/install.html
uImage and uInitrd are the new files that I want to use.

In the same order, the follwing uboot environment boots successfully:
Code: [Select]
setenv bootargs_console console=ttyS0,115200
setenv bootcmd_usb 'usb start; ext2load usb 0:1 0x01100000 /uInitrd.0; ext2load usb 0:1 0x00800000 /uImage.0'
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_usb; bootm 0x00800000 0x01100000; reset'
saveenv

but this one:
Code: [Select]
setenv bootargs_console console=ttyS0,115200
setenv bootcmd_usb 'usb start; ext2load usb 0:1 0x01100000 /uInitrd; ext2load usb 0:1 0x00800000 /uImage'
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_usb; bootm 0x00800000 0x01100000; reset'
saveenv

stops with:
Code: [Select]
2125248 bytes read                                                                                                                                                   
## Booting image at 00800000 ...                                                                                                                                     
   Image Name:   Linux-2.6.32                                                                                                                                       
   Created:      2010-09-26  21:00:41 UTC                                                                                                                           
   Image Type:   ARM Linux Kernel Image (uncompressed)                                                                                                               
   Data Size:    2125184 Bytes =  2 MB                                                                                                                               
   Load Address: 00008000                                                                                                                                           
   Entry Point:  00008000                                                                                                                                           
   Verifying Checksum ... OK                                                                                                                                         
OK                                                                                                                                                                   
## Loading Ramdisk Image at 01100000 ...                                                                                                                             
Bad Magic Number                                                                                                                                                     
Bÿ

The uInitrd image has been made on target with:
Code: [Select]
mkinitramfs -k -o ~/tmp/uInitrd 2.6.32
Anything wrong with that ? What would be the proper command ?
Logged

rteodor

  • Newbie
  • *
  • Posts: 3
Re: Booting Debian "squeeze" with custom kernel
« Reply #2 on: 03 October 2010, 10:18:30 pm »

Turns out that I was right, the uInitrd was not properly created. Here is how I solved it (for the record):

1. in file '/etc/initramfs-tools/initramfs.conf' comment the COMPRESS option

2. create ramdisk with command: update-initramfs -k 2.6.32 -c -v -b ~/boot/initrd.img-2.6.32
(also mkinitramfs -k -o ~/boot/initrd.img-2.6.32 2.6.32 command should work)

3. this last command will append some header info, and the resulting file is the usable uInitrd
mkimage -A arm -O linux -T ramdisk -C none -a 0x0 -e 0x0 -n 'Linux-2.6.32' -d ~/boot/initrd.img-2.6.32 uInitrd

Some parameters may need to be adapted to your configuration.
Logged
Pages: [1]
 
 

Powered by MySQL Powered by PHP SMF 2.0.10 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!