Difference between revisions of "Bering-uClibc 4.x - User Guide - Basic Configuration - Booting for the First Time"
Davidmbrooke (Talk | contribs) (Created initial content) |
Davidmbrooke (Talk | contribs) (Added Section on DMA troubleshooting) |
||
Line 45: | Line 45: | ||
==Troubleshooting== | ==Troubleshooting== | ||
− | + | ===DMA Issues=== | |
+ | Some drives, especially some Compact Flash drive / adaptor combinations, do not properly support DMA. | ||
+ | The symptoms of problems are boot messages like the following, accompanied by delays while the drive access times out and it reverts to non-DMA operation: | ||
+ | [ 36.768088] ata1: lost interrupt (Status 0x58) | ||
+ | [ 36.769016] ata1: drained 4096 bytes to clear DRQ. | ||
+ | [ 36.772872] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen | ||
+ | [ 36.773075] ata1.00: failed command: READ DMA | ||
+ | [ 36.773261] ata1.00: cmd c8/00:08:00:00:00/00:00:00:00:00/e0 tag 0 dma 4096 in | ||
+ | [ 36.773273] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) | ||
+ | [ 36.773752] ata1.00: status: { DRDY } | ||
+ | [ 36.773970] ata1: soft resetting link | ||
+ | [ 36.931430] ata1.00: configured for MWDMA2 | ||
+ | [ 36.931597] ata1.00: device reported invalid CHS sector 0 | ||
+ | [ 36.931772] ata1: EH complete | ||
+ | |||
+ | The solution is to disable any attempt to use DMA for the relevant device by setting options for the libata driver. | ||
+ | The following is a small extract from <code class="filename">linux-2.6.35.8/Documentation/kernel-parameters.txt</code> (part of the kernel source distribution): | ||
+ | libata.dma= [LIBATA] DMA control | ||
+ | libata.dma=0 Disable all PATA and SATA DMA | ||
+ | libata.dma=1 PATA and SATA Disk DMA only | ||
+ | libata.dma=2 ATAPI (CDROM) DMA only | ||
+ | libata.dma=4 Compact Flash DMA only | ||
+ | Combinations also work, so libata.dma=3 enables DMA | ||
+ | for disks and CDROMs, but not CFs. | ||
+ | |||
+ | So, assuming the problem affects only Compact Flash devices, these can have DMA disabled by using kernel argument <tt>libata.dma=3</tt>. | ||
+ | This should be specified by editing file <code class="filename">syslinux.cfg</code>: | ||
+ | # Mount the boot drive: <tt>mount /dev/sda1 /mnt</tt> | ||
+ | # Edit <code class="filename">syslinux.cfg</code>: <tt>edit /mnt/syslinux/syslinux.cfg</tt> | ||
+ | # Add <tt>libata.dma=3</tt> to the <tt>APPEND</tt> line so that the complete line reads: <tt>APPEND reboot=bios libata.dma=3</tt> | ||
+ | # Unmount the boot drive: <tt>umount /mnt</tt> | ||
+ | # Reboot | ||
Revision as of 11:39, 4 December 2010
Basic Configuration - Booting for the First Time | ||
---|---|---|
Bering-uClibc 4.x - User Guide | Next |
Install Media and Boot
Insert the prepared boot media into the system which is to run Bering-uClibc 4.x and power it on.
Successful First Boot
If everything works properly you should see lots of diagnostic output followed by a login prompt similar to the following:
LEAF Bering-uClibc 4.0.0 Rev 9 uClibc 0.9.30.3 firewall tty1 firewall login:
Login as user "root" (no password required at this point). You will be prompted to set a password for the root account (twice). You will then be presented with the LEAF configuration menu:
LEAF configuration menu 1) Network configuration 2) System configuration 3) Packages configuration s) Save configuration m) Backup modules f) Find & load modules for hardware c) Show configuration changes since last save d) Show configuration changes from defaults h) Help q) quit ---------------------------------------------------------------------------- Selection:
Troubleshooting
DMA Issues
Some drives, especially some Compact Flash drive / adaptor combinations, do not properly support DMA. The symptoms of problems are boot messages like the following, accompanied by delays while the drive access times out and it reverts to non-DMA operation:
[ 36.768088] ata1: lost interrupt (Status 0x58) [ 36.769016] ata1: drained 4096 bytes to clear DRQ. [ 36.772872] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen [ 36.773075] ata1.00: failed command: READ DMA [ 36.773261] ata1.00: cmd c8/00:08:00:00:00/00:00:00:00:00/e0 tag 0 dma 4096 in [ 36.773273] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) [ 36.773752] ata1.00: status: { DRDY } [ 36.773970] ata1: soft resetting link [ 36.931430] ata1.00: configured for MWDMA2 [ 36.931597] ata1.00: device reported invalid CHS sector 0 [ 36.931772] ata1: EH complete
The solution is to disable any attempt to use DMA for the relevant device by setting options for the libata driver.
The following is a small extract from linux-2.6.35.8/Documentation/kernel-parameters.txt
(part of the kernel source distribution):
libata.dma= [LIBATA] DMA control libata.dma=0 Disable all PATA and SATA DMA libata.dma=1 PATA and SATA Disk DMA only libata.dma=2 ATAPI (CDROM) DMA only libata.dma=4 Compact Flash DMA only Combinations also work, so libata.dma=3 enables DMA for disks and CDROMs, but not CFs.
So, assuming the problem affects only Compact Flash devices, these can have DMA disabled by using kernel argument libata.dma=3.
This should be specified by editing file syslinux.cfg
:
- Mount the boot drive: mount /dev/sda1 /mnt
- Edit
syslinux.cfg
: edit /mnt/syslinux/syslinux.cfg - Add libata.dma=3 to the APPEND line so that the complete line reads: APPEND reboot=bios libata.dma=3
- Unmount the boot drive: umount /mnt
- Reboot
Up | Next |