RPiconfig

From eLinux.org
Revision as of 19:09, 24 August 2012 by Fjen (Talk | contribs)

Jump to: navigation, search


The Raspberry Pi config.txt file is read by the GPU before the ARM core is initialised. It can be used to set various system configuration parameters.

This file is an optional file on the boot partition. It would normally be accessible as /boot/config.txt from Linux.

To edit the configuration file, see the instructions at R-Pi_ConfigurationFile.

File format

The format is "property=value". value is an integer. You may specify only one option per line. Comments may be added by starting a line with the '#' character.

Here is an example file

# Set stdv mode to PAL (as used in Europe)
sdtv_mode=2
# Force the monitor to HDMI mode so that sound will be sent over HDMI cable
hdmi_drive=2
# Set monitor mode to DMT
hdmi_group=2
# Set monitor resolution to 1024x768 XGA 60Hz (HDMI_DMT_XGA_60)
hdmi_mode=16
# Make display smaller to stop text spilling off the screen
overscan_left=20
overscan_right=12
overscan_top=10
overscan_bottom=10

And here is another example file, containing extended documentation of features: link.

Video mode configuration

Video mode options

sdtv_mode defines the TV standard for composite output (default=0)

sdtv_mode=0    Normal NTSC
sdtv_mode=1    Japanese version of NTSC – no pedestal
sdtv_mode=2    Normal PAL
sdtv_mode=3    Brazilian version of PAL – 525/60 rather than 625/50, different subcarrier

sdtv_aspect defines the aspect ratio for composite output (default=1)

sdtv_aspect=1  4:3
sdtv_aspect=2  14:9
sdtv_aspect=3  16:9

sdtv_disable_colourburst disables colour burst on composite output. The picture will be monochrome, but possibly sharper

sdtv_disable_colourburst=1  colour burst is disabled

hdmi_safe Use "safe mode" settings to try to boot with maximum hdmi compatibility.

 hdmi_safe=1 (this does: hdmi_force_hotplug=1, config_hdmi_boost=4, hdmi_group=1, hdmi_mode=1, disable_overscan=0)

hdmi_ignore_edid Enables the ignoring of EDID/display data if your display is a crappy Chinese one

 hdmi_ignore_edid=0xa5000080

hdmi_force_edid_audio Pretends all audio formats are supported by display, allowing passthrough of DTS/AC3 even when not reported as supported.

 hdmi_force_edid_audio=1

edid_format_smart_match Allow fuzzy matching of modes described in edid. Picks the standard mode with matching resolution and closest framerate even if blanking is wrong.

 edid_format_smart_match=1

hdmi_ignore_cec_init Doesn't sent initial active source message. Avoids bringing (CEC enabled) TV out of standby and channel switch when rebooting.

 hdmi_ignore_cec_init=1

hdmi_ignore_cec Pretends CEC is not supported at all by TV. No CEC functions will be supported.

 hdmi_ignore_cec=1

hdmi_force_hotplug Pretends HDMI hotplug signal is asserted so it appears a HDMI display is attached

 hdmi_force_hotplug=1 Use HDMI mode even if no HDMI monitor is detected

hdmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached

 hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected

hdmi_drive chooses between HDMI and DVI modes

 hdmi_drive= 1 Normal DVI mode (No sound)
 hdmi_drive= 2 Normal HDMI mode (Sound will be sent if supported and enabled)

hdmi_group defines the HDMI type

Not specifying the group, or setting to 0 will use the preferred group reported by the edid.

hdmi_group=1   CEA
hdmi_group=2   DMT

hdmi_mode defines screen resolution in CEA or DMT format

These values are valid if hdmi_group=1 (CEA)
hdmi_mode=1    VGA
hdmi_mode=2    480p  60Hz
hdmi_mode=3    480p  60Hz  H
hdmi_mode=4    720p  60Hz
hdmi_mode=5    1080i 60Hz
hdmi_mode=6    480i  60Hz
hdmi_mode=7    480i  60Hz  H
hdmi_mode=8    240p  60Hz
hdmi_mode=9    240p  60Hz  H
hdmi_mode=10   480i  60Hz  4x
hdmi_mode=11   480i  60Hz  4x H
hdmi_mode=12   240p  60Hz  4x
hdmi_mode=13   240p  60Hz  4x H
hdmi_mode=14   480p  60Hz  2x
hdmi_mode=15   480p  60Hz  2x H
hdmi_mode=16   1080p 60Hz
hdmi_mode=17   576p  50Hz
hdmi_mode=18   576p  50Hz  H
hdmi_mode=19   720p  50Hz
hdmi_mode=20   1080i 50Hz
hdmi_mode=21   576i  50Hz
hdmi_mode=22   576i  50Hz  H
hdmi_mode=23   288p  50Hz
hdmi_mode=24   288p  50Hz  H
hdmi_mode=25   576i  50Hz  4x
hdmi_mode=26   576i  50Hz  4x H
hdmi_mode=27   288p  50Hz  4x
hdmi_mode=28   288p  50Hz  4x H
hdmi_mode=29   576p  50Hz  2x
hdmi_mode=30   576p  50Hz  2x H
hdmi_mode=31   1080p 50Hz
hdmi_mode=32   1080p 24Hz
hdmi_mode=33   1080p 25Hz
hdmi_mode=34   1080p 30Hz
hdmi_mode=35   480p  60Hz  4x
hdmi_mode=36   480p  60Hz  4xH
hdmi_mode=37   576p  50Hz  4x
hdmi_mode=38   576p  50Hz  4x H
hdmi_mode=39   1080i 50Hz  reduced blanking
hdmi_mode=40   1080i 100Hz
hdmi_mode=41   720p  100Hz
hdmi_mode=42   576p  100Hz
hdmi_mode=43   576p  100Hz H
hdmi_mode=44   576i  100Hz
hdmi_mode=45   576i  100Hz H
hdmi_mode=46   1080i 120Hz
hdmi_mode=47   720p  120Hz
hdmi_mode=48   480p  120Hz
hdmi_mode=49   480p  120Hz H
hdmi_mode=50   480i  120Hz
hdmi_mode=51   480i  120Hz H
hdmi_mode=52   576p  200Hz
hdmi_mode=53   576p  200Hz H
hdmi_mode=54   576i  200Hz
hdmi_mode=55   576i  200Hz H
hdmi_mode=56   480p  240Hz
hdmi_mode=57   480p  240Hz H
hdmi_mode=58   480i  240Hz
hdmi_mode=59   480i  240Hz H
H means 16:9 variant (of a normally 4:3 mode).
2x means pixel doubled (i.e. higher clock rate, with each pixel repeated twice)
4x means pixel quadrupled (i.e. higher clock rate, with each pixel repeated four times)
These values are valid if hdmi_group=2 (DMT)
hdmi_mode=1    640x350   85Hz
hdmi_mode=2    640x400   85Hz
hdmi_mode=3    720x400   85Hz
hdmi_mode=4    640x480   60Hz
hdmi_mode=5    640x480   72Hz
hdmi_mode=6    640x480   75Hz
hdmi_mode=7    640x480   85Hz
hdmi_mode=8    800x600   56Hz
hdmi_mode=9    800x600   60Hz
hdmi_mode=10   800x600   72Hz
hdmi_mode=11   800x600   75Hz
hdmi_mode=12   800x600   85Hz
hdmi_mode=13   800x600   120Hz
hdmi_mode=14   848x480   60Hz
hdmi_mode=15   1024x768  43Hz  DO NOT USE
hdmi_mode=16   1024x768  60Hz
hdmi_mode=17   1024x768  70Hz
hdmi_mode=18   1024x768  75Hz
hdmi_mode=19   1024x768  85Hz
hdmi_mode=20   1024x768  120Hz
hdmi_mode=21   1152x864  75Hz
hdmi_mode=22   1280x768        reduced blanking
hdmi_mode=23   1280x768  60Hz
hdmi_mode=24   1280x768  75Hz
hdmi_mode=25   1280x768  85Hz
hdmi_mode=26   1280x768  120Hz reduced blanking
hdmi_mode=27   1280x800        reduced blanking
hdmi_mode=28   1280x800  60Hz
hdmi_mode=29   1280x800  75Hz
hdmi_mode=30   1280x800  85Hz
hdmi_mode=31   1280x800  120Hz reduced blanking
hdmi_mode=32   1280x960  60Hz
hdmi_mode=33   1280x960  85Hz
hdmi_mode=34   1280x960  120Hz reduced blanking
hdmi_mode=35   1280x1024 60Hz
hdmi_mode=36   1280x1024 75Hz
hdmi_mode=37   1280x1024 85Hz
hdmi_mode=38   1280x1024 120Hz reduced blanking
hdmi_mode=39   1360x768  60Hz
hdmi_mode=40   1360x768  120Hz reduced blanking
hdmi_mode=41   1400x1050       reduced blanking
hdmi_mode=42   1400x1050 60Hz
hdmi_mode=43   1400x1050 75Hz
hdmi_mode=44   1400x1050 85Hz
hdmi_mode=45   1400x1050 120Hz reduced blanking
hdmi_mode=46   1440x900        reduced blanking
hdmi_mode=47   1440x900  60Hz
hdmi_mode=48   1440x900  75Hz
hdmi_mode=49   1440x900  85Hz
hdmi_mode=50   1440x900  120Hz reduced blanking
hdmi_mode=51   1600x1200 60Hz
hdmi_mode=52   1600x1200 65Hz
hdmi_mode=53   1600x1200 70Hz
hdmi_mode=54   1600x1200 75Hz
hdmi_mode=55   1600x1200 85Hz
hdmi_mode=56   1600x1200 120Hz reduced blanking
hdmi_mode=57   1680x1050       reduced blanking
hdmi_mode=58   1680x1050 60Hz
hdmi_mode=59   1680x1050 75Hz
hdmi_mode=60   1680x1050 85Hz
hdmi_mode=61   1680x1050 120Hz reduced blanking
hdmi_mode=62   1792x1344 60Hz
hdmi_mode=63   1792x1344 75Hz
hdmi_mode=64   1792x1344 120Hz reduced blanking
hdmi_mode=65   1856x1392 60Hz
hdmi_mode=66   1856x1392 75Hz
hdmi_mode=67   1856x1392 120Hz reduced blanking
hdmi_mode=68   1920x1200       reduced blanking
hdmi_mode=69   1920x1200 60Hz
hdmi_mode=70   1920x1200 75Hz
hdmi_mode=71   1920x1200 85Hz
hdmi_mode=72   1920x1200 120Hz reduced blanking
hdmi_mode=73   1920x1440 60Hz
hdmi_mode=74   1920x1440 75Hz
hdmi_mode=75   1920x1440 120Hz reduced blanking
hdmi_mode=76   2560x1600       reduced blanking
hdmi_mode=77   2560x1600 60Hz
hdmi_mode=78   2560x1600 75Hz
hdmi_mode=79   2560x1600 85Hz
hdmi_mode=80   2560x1600 120Hz reduced blanking
hdmi_mode=81   1366x768  60Hz
hdmi_mode=82   1080p     60Hz
hdmi_mode=83   1600x900        reduced blanking
hdmi_mode=84   2048x1152       reduced blanking
hdmi_mode=85   720p      60Hz
hdmi_mode=86   1366x768        reduced blanking

overscan_left number of pixels to skip on left

overscan_right number of pixels to skip on right

overscan_top number of pixels to skip on top

overscan_bottom number of pixels to skip on bottom

framebuffer_width console framebuffer width in pixels. Default is display width minus overscan.

framebuffer_height console framebuffer height in pixels. Default is display height minus overscan.

framebuffer_depth console framebuffer depth in bits per pixel. Default is 16. 8bit is valid, but default RGB palette makes an unreadable screen. 24bit looks better but has corruption issues as of 20120615. 32bit has no corruption issues but needs framebuffer_ignore_alpha=1 and shows the wrong colors as of 20120615.

framebuffer_ignore_alpha set to 1 to disable alpha channel. Helps with 32bit.

test_mode enable test sound/image during boot for manufacturing test.

disable_l2cache disable arm access to GPU's L2 cache. Needs corresponding L2 disabled kernel. Default is 0.

disable_overscan set to 1 to disable overscan.

config_hdmi_boost configure the signal strength of the HDMI interface. Default is 0. Try 4 if you have interference issues with hdmi. 7 is the maximum.

Which values are valid for my monitor?

Your HDMI monitor may support only a limited set of formats. To find out which formats are supported, use the following method.

  • Set the output format to VGA 60Hz (hdmi_group=1 hdmi_mode=1) and boot up the Raspberry Pi
  • Enter the following command to give a list of CEA supported modes
/opt/vc/bin/tvservice -m CEA
  • Enter the following command to give a list of DMT supported modes
/opt/vc/bin/tvservice -m DMT
  • Enter the following command to show your current state
/opt/vc/bin/tvservice -s
  • Enter the following commands to dump more detailed information from your monitor
/opt/vc/bin/tvservice -d edid.dat
/opt/vc/bin/edidparser edid.dat

The edid.dat should also be provided when troubleshooting problems with the default HDMI mode

Boot options

disable_commandline_tags Stops start.elf from filling in ATAGS (memory from 0x100) before launching kernel

cmdline (string) Command line parameters. Can be used instead of cmdline.txt file

kernel (string) Alternative name to use when loading kernel.

kernel_address address to load kernel.img file at

ramfsfile (string) ramfs file to load

ramfsaddr address to load ramfs file at

initramfs (string address) ramfs file and adress to load it at (it's like ramfsfile+ramfsaddr in one option). NOTE: this option uses different syntax than all other options - you should not use "=" character here. Example:

initramfs initramf.gz 0x00800000

device_tree_address address to load device_tree at

init_uart_baud initial uart baud rate. Default 115200

init_uart_clock initial uart clock. Default 3000000

init_emmc_clock initial emmc clock. Default 50000000 (50mhz default. increasing this can speedup your SD-card)

boot_delay Waits for given number of seconds in start.elf before loading kernel.img.

avoid_safe_mode If set to one, safe_mode boot won't be enabled.

Overclocking configuration

WARNING: Setting any of the parameters which over volt your Raspberry Pi will set a permanent bit within the SOC and your warranty is void. So If you care about the warranty do not adjust voltage.

Also at your own risk you can try overscan settings from our wiki. These were posted on the forum and are not confimed to work.

Overclocking options

Option Description
arm_freq frequency of ARM in MHz. Default 700.
gpu_freq Sets core_freq, h264_freq, isp_freq, v3d_freq together.
core_freq frequency of GPU processor core in MHz. It have an impact on ARM performance since it drives L2 cache. Default 250.
h264_freq frequency of hardware video block in MHz. Default 250.
isp_freq frequency of image sensor pipeline block in MHz. Default 250.
v3d_freq frequency of 3D block in MHz. Default 250.
avoid_pwm_pll Unlink core_freq from the rest of the gpu. Analog audio should still work, but from a fractional divider, so lower quality. Default 0
sdram_freq frequency of SDRAM in MHz. Default 400.
over_voltage ARM/GPU core voltage adjust. [-16,8] equates to [0.8V,1.4V] with 0.025V steps. Default 0 (1.2V) [1]
over_voltage_sdram Sets over_voltage_sdram_c, over_voltage_sdram_i, over_voltage_sdram_p together
over_voltage_sdram_c SDRAM controller voltage adjust. [-16,8] equates to [0.8V,1.4V] with 0.025V steps. Default 0 (1.2V) [1]
over_voltage_sdram_i SDRAM I/O voltage adjust. [-16,8] equates to [0.8V,1.4V] with 0.025V steps. Default 0 (1.2V)[1]
over_voltage_sdram_p SDRAM phy voltage adjust. [-16,8] equates to [0.8V,1.4V] with 0.025V steps. Default 0 (1.2V)[1]

Clocks relationship

ARM, SDRAM and GPU each have their own PLLs and can have unrelated frequencies[2]. The GPU core, h264, v3d and isp share a PLL, so need to have related frequencies. PLL will be set to:

pll_freq = core_freq * 2^n, for smallest n satisfying pll_freq > 600MHz.

GPU core, h264, v3d and isp should all be integer divisors of pll_freq. So core_freq=480 sets pll_freq=960. That would allow a v3d_freq/h264_freq/v3d_freq of 320 with an integer divider of 3.

This is not necessary with "avoid_pwm_pll=1".

Tested values

The following table shows some successfull attempts of overclocking. These settings may not work on every device and can shorten the life of the Broadcom SoC. Warranty will be voided if overvoltage is used.

arm_freq gpu_freq core_freq h264_freq isp_freq v3d_freq sdram_freq over_voltage over_voltage_sdram
800
900 275 500
900 450 450
930 350 500
1000 500 500 6
1050 6

References

  1. 1.0 1.1 1.2 1.3 What this means is that you can specify -16 and expect about 0.8V as the GPU/core voltage. This is 0.4V below the normal value of 1.2. If you specify 16, you'd get 0.4V ABOVE the normal value of 1.2V, or 1.6V. The fact that someone carefully specified "8" and "1.4V" as the upper limit in the examples leads me to think that it is likely to shorten the life of your raspberry pi significantly if you would specify values above "8". So: don't specify values above zero, but if you do, don't go above 8.
  2. http://www.raspberrypi.org/phpBB3/viewtopic.php?f=29&t=6201&start=125#p126308