c1_init.sh 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/bin/sh
  2. for x in $(cat /proc/cmdline); do
  3. case ${x} in
  4. m_bpp=*) export bpp=${x#*=} ;;
  5. hdmimode=*) export mode=${x#*=} ;;
  6. esac
  7. done
  8. HPD_STATE=/sys/class/amhdmitx/amhdmitx0/hpd_state
  9. DISP_CAP=/sys/class/amhdmitx/amhdmitx0/disp_cap
  10. DISP_MODE=/sys/class/display/mode
  11. hdmi=`cat $HPD_STATE`
  12. if [ $hdmi -eq 1 ]; then
  13. echo $mode > $DISP_MODE
  14. fi
  15. outputmode=$mode
  16. common_display_setup() {
  17. fbset -fb /dev/fb1 -g 32 32 32 32 32
  18. echo $outputmode > /sys/class/display/mode
  19. echo 0 > /sys/class/ppmgr/ppscaler
  20. echo 0 > /sys/class/graphics/fb0/free_scale
  21. echo 1 > /sys/class/graphics/fb0/freescale_mode
  22. case $outputmode in
  23. 800x480*) M="0 0 799 479" ;;
  24. vga*) M="0 0 639 749" ;;
  25. 800x600p60*) M="0 0 799 599" ;;
  26. 1024x600p60h*) M="0 0 1023 599" ;;
  27. 1024x768p60h*) M="0 0 1023 767" ;;
  28. sxga*) M="0 0 1279 1023" ;;
  29. 1440x900p60*) M="0 0 1439 899" ;;
  30. 480*) M="0 0 719 479" ;;
  31. 576*) M="0 0 719 575" ;;
  32. 720*) M="0 0 1279 719" ;;
  33. 800*) M="0 0 1279 799" ;;
  34. 1080*) M="0 0 1919 1079" ;;
  35. 1920x1200*) M="0 0 1919 1199" ;;
  36. 1680x1050p60*) M="0 0 1679 1049" ;;
  37. 1360x768p60*) M="0 0 1359 767" ;;
  38. 1366x768p60*) M="0 0 1365 767" ;;
  39. 1600x900p60*) M="0 0 1599 899" ;;
  40. esac
  41. echo $M > /sys/class/graphics/fb0/free_scale_axis
  42. echo $M > /sys/class/graphics/fb0/window_axis
  43. echo 0x10001 > /sys/class/graphics/fb0/free_scale
  44. echo 0 > /sys/class/graphics/fb1/free_scale
  45. }
  46. case $mode in
  47. 800x480*) fbset -fb /dev/fb0 -g 800 480 800 960 $bpp; common_display_setup ;;
  48. vga*) fbset -fb /dev/fb0 -g 640 480 640 960 $bpp; common_display_setup ;;
  49. 480*) fbset -fb /dev/fb0 -g 720 480 720 960 $bpp; common_display_setup ;;
  50. 800x600p60*) fbset -fb /dev/fb0 -g 800 600 800 1200 $bpp; common_display_setup ;;
  51. 576*) fbset -fb /dev/fb0 -g 720 576 720 1152 $bpp; common_display_setup ;;
  52. 1024x600p60h*) fbset -fb /dev/fb0 -g 1024 600 1024 1200 $bpp; common_display_setup ;;
  53. 1024x768p60h*) fbset -fb /dev/fb0 -g 1024 768 1024 1536 $bpp; common_display_setup ;;
  54. 720*) fbset -fb /dev/fb0 -g 1280 720 1280 1440 $bpp; common_display_setup ;;
  55. 800*) fbset -fb /dev/fb0 -g 1280 800 1280 1600 $bpp; common_display_setup ;;
  56. sxga*) fbset -fb /dev/fb0 -g 1280 1024 1280 2048 $bpp; common_display_setup ;;
  57. 1440x900p60*) fbset -fb /dev/fb0 -g 1440 900 1440 1800 $bpp; common_display_setup ;;
  58. 1080*) fbset -fb /dev/fb0 -g 1920 1080 1920 2160 $bpp; common_display_setup ;;
  59. 1920x1200*) fbset -fb /dev/fb0 -g 1920 1200 1920 2400 $bpp; common_display_setup ;;
  60. 1360x768p60*) fbset -fb /dev/fb0 -g 1360 768 1360 1536 $bpp; common_display_setup ;;
  61. 1366x768p60*) fbset -fb /dev/fb0 -g 1366 768 1366 1536 $bpp; common_display_setup ;;
  62. 1600x900p60*) fbset -fb /dev/fb0 -g 1600 900 1600 1800 $bpp; common_display_setup ;;
  63. 1680x1050p60*) fbset -fb /dev/fb0 -g 1680 1050 1680 2100 $bpp; common_display_setup ;;
  64. esac
  65. # Console unblack
  66. echo 0 > /sys/class/graphics/fb0/blank
  67. echo 0 > /sys/class/graphics/fb1/blank
  68. # Network Tweaks. Thanks to mlinuxguy
  69. echo 32768 > /proc/sys/net/core/rps_sock_flow_entries
  70. echo 2048 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt
  71. echo 7 > /sys/class/net/eth0/queues/rx-0/rps_cpus
  72. echo 7 > /sys/class/net/eth0/queues/tx-0/xps_cpus
  73. # Move IRQ's of ethernet to CPU1/2
  74. echo 1,2 > /proc/irq/40/smp_affinity_list
  75. # Workaround for a cron issue
  76. DT=`date +%Y`
  77. if [ "$DT" -lt "1980" ]; then
  78. date -s "1/1/1980"
  79. fi