Difference between revisions of "Hammer How to Thumb Drive"

From eLinux.org
Jump to: navigation, search
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
You can add a USB Thumb Drive to your Hammer pretty easily.  There are a few things you have to have in your kernel.
+
You can add a USB Thumb Drive to your Hammer pretty easily.  There are a few things you have to have in your kernel. Your Thumb Drive will be recognized as a SCSI device, probably /dev/sda1, if it is the only SCSI type device you have. When the usb-storage module loads, it will show which SCSI device you Thumb Drive is. Modular kernels are nice, and it is not difficult to be sure you have the right modules loaded. This how to is based on building everything possibe as modules.
  
You must have:
+
You '''must''' have the following built into your kernel or as modules:
* USB Core
+
* SCSI support (scsi_mod)
* USB Storage
+
* SCSI disk (sd_mod) support.
* SCSI, including generic support.
+
* USB Core (usbcore)
 +
* USB Storage (usb_storage)
  
 +
You can add this to your inittab file:
 +
 +
  null::sysinit:/sbin/modprobe scsi_mod
 +
  null::sysinit:/sbin/modprobe sd_mod
 +
  null::sysinit:/bin/sleep 5
 +
  null::sysinit:/sbin/modprobe usbcore
 +
  null::sysinit:/sbin/modprobe usb-storage
 +
  null::sysinit:/bin/sleep 10
 +
 +
The sleeps allow time for each subsystem to settle. Add those lines after the JFFS2 filesystem mount to be sure they get done early in the boot process.
 +
 +
Also be sure to activate the ''Kernel Automounter v4'' and ''Automatic Kernel Module Loading'' so your Thumb Drive will be automatically mounted at bootup.
 +
 +
Now you have to fix up the mount point where you want the Thumb Drive to appear. You can add a new mount point by editing the '''buildroot/target/device/Samsung/Hammer/device_table.txt''' file. If you want to mount your Thumb Drive at /opt (recommended for starters) then add the following line to '''device_table.txt''':
 +
 +
/opt            d      755    0      0      -      -      -      -      -
 +
 +
You'll want to uncomment the two lines that start in /dev/sda. You'll probably also want to change the 15 at the end of the 2nd line to a more reasonable number like 4. Then it will only create /dev/sda1, /dev/sda2, /dev/sda3, and /dev/sda4.
 +
 +
# SCSI Devices
 +
/dev/sda b 640 0 0 8 0 0 0 -
 +
/dev/sda b 640 0 0 8 1 1 1 4
 +
 +
Now it is time to add the Thumb Drive to your file system. When you build your rootfs, the /opt directory will be created for you with the permissions you set.
 +
 +
Now edit '''buildroot/target/device/Samsung/Hammer/target_skeleton/etc/fstab''' file to add your mount point as follows:
 +
 +
/dev/sda1      /opt            ext2    defaults                0      0
 +
 +
This allows the Thumb Drive to be automatically setup and mounted for use.
 +
 +
You can setup your Thumb drive for any mount point you want using this procedure. You can even mount your Thumb Drive as /usr.
 +
 +
NOTE: In order for the changes that you made to '''/etc/inittab''' and '''/etc/fstab''' to take effect, you'll need to copy them into the '''project_build_arm/Hammer/root/etc''' directory.
 +
 
 
[[Category:TCT-Hammer]]
 
[[Category:TCT-Hammer]]
 
[[Category:TinCanTools]]
 
[[Category:TinCanTools]]

Latest revision as of 22:48, 11 July 2008

You can add a USB Thumb Drive to your Hammer pretty easily. There are a few things you have to have in your kernel. Your Thumb Drive will be recognized as a SCSI device, probably /dev/sda1, if it is the only SCSI type device you have. When the usb-storage module loads, it will show which SCSI device you Thumb Drive is. Modular kernels are nice, and it is not difficult to be sure you have the right modules loaded. This how to is based on building everything possibe as modules.

You must have the following built into your kernel or as modules:

  • SCSI support (scsi_mod)
  • SCSI disk (sd_mod) support.
  • USB Core (usbcore)
  • USB Storage (usb_storage)

You can add this to your inittab file:

 null::sysinit:/sbin/modprobe scsi_mod
 null::sysinit:/sbin/modprobe sd_mod
 null::sysinit:/bin/sleep 5
 null::sysinit:/sbin/modprobe usbcore
 null::sysinit:/sbin/modprobe usb-storage
 null::sysinit:/bin/sleep 10

The sleeps allow time for each subsystem to settle. Add those lines after the JFFS2 filesystem mount to be sure they get done early in the boot process.

Also be sure to activate the Kernel Automounter v4 and Automatic Kernel Module Loading so your Thumb Drive will be automatically mounted at bootup.

Now you have to fix up the mount point where you want the Thumb Drive to appear. You can add a new mount point by editing the buildroot/target/device/Samsung/Hammer/device_table.txt file. If you want to mount your Thumb Drive at /opt (recommended for starters) then add the following line to device_table.txt:

/opt            d       755     0       0       -       -       -       -       -

You'll want to uncomment the two lines that start in /dev/sda. You'll probably also want to change the 15 at the end of the 2nd line to a more reasonable number like 4. Then it will only create /dev/sda1, /dev/sda2, /dev/sda3, and /dev/sda4.

# SCSI Devices
/dev/sda	b	640	0	0	8	0	0	0	-
/dev/sda	b	640	0	0	8	1	1	1	4

Now it is time to add the Thumb Drive to your file system. When you build your rootfs, the /opt directory will be created for you with the permissions you set.

Now edit buildroot/target/device/Samsung/Hammer/target_skeleton/etc/fstab file to add your mount point as follows:

/dev/sda1       /opt            ext2    defaults                0       0

This allows the Thumb Drive to be automatically setup and mounted for use.

You can setup your Thumb drive for any mount point you want using this procedure. You can even mount your Thumb Drive as /usr.

NOTE: In order for the changes that you made to /etc/inittab and /etc/fstab to take effect, you'll need to copy them into the project_build_arm/Hammer/root/etc directory.