両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン |
hardware:raspberry_pi:sdcard_overclock [2021/09/25 04:03] – ともやん | hardware:raspberry_pi:sdcard_overclock [2022/10/10 08:26] – [SD カードの転送速度は Raspberry Pi でも PC の半分ほどまでは引き上げられる🤔 安定常用可能なチューニングは 125 MHz の時代へ!!😍] ともやん |
---|
====== Raspberry Pi で SD カードをオーバークロック🔥💥する方法🤤 ====== | ====== Raspberry Pi で SD カードを 125 MHz にオーバークロック🔥💥する方法🤤 ====== |
| |
| ===== SD カードの転送速度は Raspberry Pi でも PC の半分ほどまでは引き上げられる🤔 安定常用可能なチューニングは 125 MHz の時代へ!!😍 ===== |
| <html> |
| <style> |
| div.wrap_mintbl table>thead>tr>th, |
| div.wrap_mintbl table>tbody>tr>th { |
| background-color: #eee; |
| } |
| div.wrap_mintbl table>thead>tr>th, |
| div.wrap_mintbl table>thead>tr>td, |
| div.wrap_mintbl table>tbody>tr>th, |
| div.wrap_mintbl table>tbody>tr>td { |
| /*line-height: 9px;*/ |
| padding: 1px 4px; |
| } |
| </style> |
| </html> |
| **KIOXIA EXCERIA 128GB/256GB microSDXC Class10 UHS-I U1 (read 100MB/s)**\\ |
| {{:hardware:sdcard_bench_kioxia_exceria_128gb_microsdxc_class10_uhs-i_u1_001.jpg?100|KIOXIA EXCERIA 128GB microSDXC Class10 UHS-I U1}} |
| {{:hardware:sdcard_bench_kioxia_exceria_256gb_microsdxc_class10_uhs-i_u1_001.jpg?100|KIOXIA EXCERIA 256GB microSDXC Class10 UHS-I U1}}\\ |
| <WRAP group 100% mintbl> |
| <WRAP left> |
| ^ [[hardware:raspberry_pi:sdcard_overclock:kioxia_exceria_128gb_microsdxc_class10_uhs-i_u1|KIOXIA EXCERIA 128GB microSDXC Class10 UHS-I U1 (read 100MB/s)]] <wrap em> </wrap>\\ [[hardware:raspberry_pi:sdcard_overclock:kioxia_exceria_256gb_microsdxc_class10_uhs-i_u1|KIOXIA EXCERIA 256GB microSDXC Class10 UHS-I U1 (read 100MB/s)]] <wrap em>New!</wrap> ^^^^^^^^^^ |
| ^ Windows CrystalDiskMark ^^^^^^^^^^ |
| ^ SEQ1M Q8T1 ^ Read | 98.311 MB/s ^ Write | 32.031 MB/s ^ SEQ1M Q1T1 ^ Read | 97.013 MB/s ^ Write | 29.957 MB/s | |
| ^ Raspberry Pi Benchmarks (AVG) ^^^^^^^^^^ |
| ^ core_freq ^ turbo ^ sd clock ^^ WRITE(dd) ^^ READ(dd) ^^ HDPARM ^^ |
| ^ CONFIG: force_turbo=1,core_freq=565,sd_overclock=125 (<wrap em>安定常用可能🤤</wrap>) ^^^^^^^^^^ |
| | 565 | 1 | 125.000 MHz || 15.57 MB/s || 46.89 MB/s || 47.23 MB/s || |
| | 550 | 1 | 125.000 MHz || 15.46 MB/s || 45.62 MB/s || 45.52 MB/s || |
| ^ CONFIG: force_turbo=1,sd_overclock=100 ^^^^^^^^^^ |
| | 400 | 1 | 100.000 MHz || 13.58 MB/s || 41.56 MB/s || 41.15 MB/s || |
| ^ CONFIG: default ^^^^^^^^^^ |
| | 400 | 0 | 50.000 MHz || 12.05 MB/s || 22.09 MB/s || 21.79 MB/s || |
| </WRAP> |
| </WRAP> |
<wrap em>注意!! UHS 認定されていないカードの場合、データが破損する可能性があるので、バックアップは必須です😊</wrap>\\ | <wrap em>注意!! UHS 認定されていないカードの場合、データが破損する可能性があるので、バックアップは必須です😊</wrap>\\ |
[[windows:usb_image_tool|USB Image Tool - USB フラッシュ、SD カードのバックアップ/復元]]\\ | [[windows:usb_image_tool|USB Image Tool - USB フラッシュ、SD カードのバックアップ/復元]]\\ |
| |
以下の環境でオーバークロックして検証する。\\ | 以下の環境でオーバークロックして検証する。\\ |
OS: DietPi v7.4.2\\ | OS: DietPi v7.4.2, v8.7.1\\ |
Device model: RPi Zero W (armv6l)\\ | Device model: RPi Zero W (armv6l)\\ |
Kernel: Linux DietPi-002 5.10.52+ #1441 Tue Aug 3 18:08:18 BST 2021 armv6l GNU/Linux\\ | Kernel: Linux DietPi-001 5.10.52+ #1441 Tue Aug 3 18:08:18 BST 2021 armv6l GNU/Linux\\ |
| Linux DietPi-001 5.15.32+ #1538 Thu Mar 31 19:37:58 BST 2022 armv6l GNU/Linux\\ |
| <wrap em>CrystalDiskMark でのベンチマーク結果は [[hardware:sd_memory_card|SD メモリーカード]] を参照😉</wrap>\\ |
| |
| ===== 元にした海外の文献を整理 ===== |
| [[tw>geerlingguy|Jeff Geerling]] 氏のブログ投稿\\ |
| [[git>geerlingguy|geerlingguy - GitHub]] で多くのオープンソースプロジェクトの維持に貢献されているエンジニアの方です🥰\\ |
| |
| **2018/04/06**\\ |
| Raspberry Pi microSD カード パフォーマンス比較 - 2018\\ |
| [[https://www.jeffgeerling.com/blog/2018/raspberry-pi-microsd-card-performance-comparison-2018|Raspberry Pi microSD card performance comparison - 2018 | Jeff Geerling]]\\ |
| <WRAP minfont>「Raspberry Pi microSD カード パフォーマンス比較 - 2015」人気のあるブログ投稿から 3 年間で Raspberry Pi に新しいリビジョンが増えて「Raspberry Pi 3B+ のレビューとパフォーマンスの比較」の一環として、多くの microSD カードが再ベンチマークされました😍\\ </WRAP> |
| |
| **2018/04/05**\\ |
| Raspberry Pi 3B+ のレビューとパフォーマンスの比較\\ |
| [[https://www.jeffgeerling.com/blog/2018/raspberry-pi-3-b-review-and-performance-comparison|Raspberry Pi 3 B+ Review and Performance Comparison | Jeff Geerling]]\\ |
| |
| **2016/03/16**\\ |
| [[https://www.jeffgeerling.com/blog/2016/how-overclock-microsd-card-reader-on-raspberry-pi-3|How to overclock the microSD card reader on a Raspberry Pi 3 | Jeff Geerling]]\\ |
| <WRAP minfont>[[http://www.pidramble.com/|Pi Dramble]] は [[https://github.com/geerlingguy/raspberry-pi-dramble|GitHub - geerlingguy/raspberry-pi-dramble: Raspberry Pi Kubernetes cluster that runs HA/HP Drupal 8]] で公開されている Drupal の Raspberry Pi クラスターである🤔\\ |
| 「Raspberry Pi microSD カード パフォーマンス比較 - 2015」ブログ投稿後に、数人の読者から UHS microSD カードの速度をさらに上げる方法が寄せられてまとめられました🤤\\ </WRAP> |
| |
| **2015/12/01**\\ |
| Raspberry Pi microSD カード パフォーマンス比較 - 2015\\ |
| [[https://www.jeffgeerling.com/blogs/jeff-geerling/raspberry-pi-microsd-card|Raspberry Pi microSD card performance comparison - 2015 | Jeff Geerling]]\\ |
| <WRAP minfont>ブログ投稿の中で <wrap em>Raspberry Pi のパフォーマンスを向上させるための最も影響の大きいアップグレードの 1 つは、可能な限り最速の microSD カードを購入すること。ランダムな読み取りと書き込みを大量に行う必要があるアプリケーションの場合は特にそうです。</wrap> と述べられている。\\ </WRAP> |
| |
===== ベンチ結果まとめ ===== | ===== ベンチ結果まとめ ===== |
<WRAP prewrap 100% mintbl> | <html> |
^ TOSHIBA EXCERIA 32GB MicroSDHC Class3 UHS-I U3 ^^^^^^ | <style> |
^ CrystalDiskMark ^^^^^^ | div.wrap_mintbl table>thead>tr>th, |
^ SEQ1M Q8T1 ^ Read | 97.552 MB/s ^ Write | 57.942 MB/s | | div.wrap_mintbl table>tbody>tr>th { |
^ SEQ1M Q1T1 ^ Read | 95.505 MB/s ^ Write | 59.038 MB/s | | background-color: #eee; |
^ Raspberry Pi Benchmarks (AVG) ^^^^^^ | } |
^ core_freq ^ turbo ^ sd clock ^ WRITE(dd) ^ READ(dd) ^ HDPARM ^ | div.wrap_mintbl table>thead>tr>th, |
| 400 | 0 | 50.000 MHz | 14.36 MB/s | 22.24 MB/s | 21.43 MB/s | | div.wrap_mintbl table>thead>tr>td, |
^ CONFIG: dtparam=sd_overclock=100 ^^^^^ | div.wrap_mintbl table>tbody>tr>th, |
| 400 | 0 | 100.000 MHz | 16.46 MB/s | 43.12 MB/s | 40.00 MB/s | | div.wrap_mintbl table>tbody>tr>td { |
^ TeamGroup 128GB MicroSDXC Class10 UHS-I U3 V30 A1 ^^^^^^ | /*line-height: 9px;*/ |
^ CrystalDiskMark ^^^^^^ | padding: 1px 4px; |
^ SEQ1M Q8T1 ^ Read | 準備中... MB/s ^ Write | 準備中... MB/s | | } |
^ SEQ1M Q1T1 ^ Read | 準備中... MB/s ^ Write | 準備中... MB/s | | </style> |
^ Raspberry Pi Benchmarks (AVG) ^^^^^^ | </html> |
^ core_freq ^ turbo ^ sd clock ^ WRITE(dd) ^ READ(dd) ^ HDPARM ^ | <WRAP group mintbl> |
| 400 | 0 | 50.000 MHz | 11.59 MB/s | 22.22 MB/s | 21.10 MB/s | | |
^ CONFIG: dtparam=sd_overclock=100 (指定しても 80 MHz 動作) ^^^^^^ | <WRAP left> |
| 400 | 0 | 80.000 MHz | 12.38 MB/s | 33.19 MB/s | 26.37 MB/s | | ^ [[hardware:raspberry_pi:sdcard_overclock:kioxia_exceria_256gb_microsdxc_class10_uhs-i_u1|KIOXIA EXCERIA 256GB microSDXC Class10 UHS-I U1 (read 100MB/s)]]\\ [[hardware:raspberry_pi:sdcard_overclock:kioxia_exceria_128gb_microsdxc_class10_uhs-i_u1|KIOXIA EXCERIA 128GB microSDXC Class10 UHS-I U1 (read 100MB/s)]] ^^^^^^^^^^ |
| 400 | 1 | 80.000 MHz | 13.63 MB/s | 34.74 MB/s | 33.40 MB/s | | ^ Windows CrystalDiskMark ^^^^^^^^^^ |
| ^ SEQ1M Q8T1 ^ Read | 98.311 MB/s ^ Write | 32.031 MB/s ^ SEQ1M Q1T1 ^ Read | 97.013 MB/s ^ Write | 29.957 MB/s | |
| ^ Raspberry Pi Benchmarks (AVG) ^^^^^^^^^^ |
| ^ core_freq ^ turbo ^ sd clock ^^ WRITE(dd) ^^ READ(dd) ^^ HDPARM ^^ |
| ^ CONFIG: default ^^^^^^^^^^ |
| | 400 | 0 | 50.000 MHz || 12.05 MB/s || 22.09 MB/s || 21.79 MB/s || |
| ^ CONFIG: force_turbo=1,core_freq=565,sd_overclock=125 (<wrap em>安定常用可能🤤</wrap>) ^^^^^^^^^^ |
| | 565 | 1 | 125.000 MHz || 15.57 MB/s || 46.89 MB/s || 47.23 MB/s || |
| | 550 | 1 | 125.000 MHz || 15.46 MB/s || 45.62 MB/s || 45.52 MB/s || |
| ^ CONFIG: force_turbo=1,sd_overclock=100 ^^^^^^^^^^ |
| | 400 | 1 | 100.000 MHz || 13.58 MB/s || 41.56 MB/s || 41.15 MB/s || |
</WRAP> | </WRAP> |
| |
===== TOSHIBA EXCERIA 32GB MicroSDHC Class3 UHS-I U3 ===== | <WRAP left> |
{{hardware:sdcard_bench_toshiba_exceria_32gb_uhs3_micro_sdhc_001.jpg?100|TOSHIBA EXCERIA 32GB MicroSDHC Class3 UHS-I U3 001}}\\ | ^ [[hardware:raspberry_pi:sdcard_overclock:sandisk_128gb_microsdxc_class10_uhs-i_u1_a1|SanDisk 128GB microSDXC Class10 UHS-I U1 A1 (read 120MB/s)]] ^^^^^^^^^^ |
| ^ Windows CrystalDiskMark ^^^^^^^^^^ |
| ^ SEQ1M Q8T1 ^ Read | 125.470 MB/s ^ Write | 36.448 MB/s ^ SEQ1M Q1T1 ^ Read | 124.919 MB/s ^ Write | 36.075 MB/s | |
| ^ Raspberry Pi Benchmarks (AVG) ^^^^^^^^^^ |
| ^ core_freq ^ turbo ^ sd clock ^^ WRITE(dd) ^^ READ(dd) ^^ HDPARM ^^ |
| ^ CONFIG: default ^^^^^^^^^^ |
| | 400 | 0 | 50.000 MHz || 16.03 MB/s || 22.09 MB/s || 21.88 MB/s || |
| ^ CONFIG: force_turbo=1,core_freq=520,sd_overclock=104 ^^^^^^^^^^ |
| | 520 | 1 | 104.000 MHz || 19.50 MB/s || 44.50 MB/s || 43.39 MB/s || |
| | 500 | 1 | 100.000 MHz || 20.51 MB/s || 42.24 MB/s || 41.19 MB/s || |
| ^ CONFIG: force_turbo=1,sd_overclock=100 ^^^^^^^^^^ |
| | 400 | 1 | 100.000 MHz || 17.00 MB/s || 41.90 MB/s || 40.79 MB/s || |
| </WRAP> |
| |
| <WRAP left> |
| ^ [[:hardware:raspberry_pi:sdcard_overclock:toshiba_exceria_32gb_microsdhc_class10_uhs-i_u3|TOSHIBA EXCERIA 32GB MicroSDHC Class10 UHS-I U3]] ^^^^^^^^^^ |
| ^ Windows CrystalDiskMark ^^^^^^^^^^ |
| ^ SEQ1M Q8T1 ^ Read | 97.552 MB/s ^ Write | 57.942 MB/s ^ SEQ1M Q1T1 ^ Read | 95.505 MB/s ^ Write | 59.038 MB/s | |
| ^ Raspberry Pi Benchmarks (AVG) ^^^^^^^^^^ |
| ^ core_freq ^ turbo ^ sd clock ^^ WRITE(dd) ^^ READ(dd) ^^ HDPARM ^^ |
| ^ CONFIG: default ^^^^^^^^^^ |
| | 400 | 0 | 50.000 MHz || 14.36 MB/s || 22.24 MB/s || 21.43 MB/s || |
| ^ CONFIG: force_turbo=1,core_freq=555,sd_overclock=125\\ (core クロックを引き上げると SD bus クロックも core の乗数で引き上げられる) ^^^^^^^^^^ |
| | 555 | 1 | 125.000 MHz || 6.89 MB/s || 47.66 MB/s || 46.31 MB/s || |
| | 550 | 1 | 125.000 MHz || 6.78 MB/s || 47.62 MB/s || 45.48 MB/s || |
| | 550 | 1 | 110.000 MHz || 6.62 MB/s || 47.47 MB/s || 45.92 MB/s || |
| | 532 | 1 | 125.000 MHz || 6.83 MB/s || 46.11 MB/s || 44.57 MB/s || |
| ^ CONFIG: sd_overclock=100 ^^^^^^^^^^ |
| | 400 | 0 | 100.000 MHz || 16.46 MB/s || 43.12 MB/s || 40.00 MB/s || |
| </WRAP> |
| |
| <WRAP left> |
| ^ [[:hardware:raspberry_pi:sdcard_overclock:teamgroup_128gb_microsdxc_class10_uhs-i_u3_v30_a1|TeamGroup 128GB MicroSDXC Class10 UHS-I U3 V30 A1]] ^^^^^^^^^^ |
| ^ Windows CrystalDiskMark ^^^^^^^^^^ |
| ^ SEQ1M Q8T1 ^ Read | 98.512 MB/s ^ Write | 55.455 MB/s ^ SEQ1M Q1T1 ^ Read | 96.388 MB/s ^ Write | 52.610 MB/s | |
| ^ Raspberry Pi Benchmarks (AVG) ^^^^^^^^^^ |
| ^ core_freq ^ turbo ^ sd clock ^^ WRITE(dd) ^^ READ(dd) ^^ HDPARM ^^ |
| ^ CONFIG: default ^^^^^^^^^^ |
| | 400 | 0 | 50.000 MHz || 11.59 MB/s || 22.22 MB/s || 21.10 MB/s || |
| ^ CONFIG: force_turbo=1,core_freq=532,sd_overclock=100 (<wrap em>安定常用可能🤤</wrap>) ^^^^^^^^^^ |
| | 532 | 1 | 88.667 MHz || 13.55 MB/s || 37.45 MB/s || 37.08 MB/s || |
| | 515 | 1 | 85.833 MHz || 14.37 MB/s || 36.81 MB/s || 35.64 MB/s || |
| | 510 | 1 | 85.000 MHz || 13.56 MB/s || 36.28 MB/s || 35.60 MB/s || |
| | 500 | 1 | 71.429 MHz || 12.80 MB/s || 30.77 MB/s || 30.56 MB/s || |
| ^ CONFIG: sd_overclock=100 (指定しても 80 MHz 動作) ^^^^^^^^^^ |
| | 400 | 0 | 80.000 MHz || 12.38 MB/s || 33.19 MB/s || 26.37 MB/s || |
| | 400 | 1 | 80.000 MHz || 13.63 MB/s || 34.74 MB/s || 33.40 MB/s || |
| </WRAP> |
| </WRAP> |
| |
| ===== ベンチスクリプト ===== |
| <WRAP mincode> |
| {{:hardware:raspberry_pi:sdbench.sh|sdbench.sh (修正)}}\\ |
| <code bash> |
| #!/bin/bash |
| |
| APPLICATION_NAME="SD Bench" |
| APPLICATION_VERSION="0.0.1" |
| |
| LANG=C |
| LC_ALL= |
| DATAMB=512 |
| FILENM=~/test.dat |
| |
| [ -f /flash/config.txt ] && CONFIG=/flash/config.txt || CONFIG=/boot/config.txt |
| |
| trap "rm -f ${FILENM}" EXIT |
| |
| [ "$(whoami)" == "root" ] || { echo "Must be run as root!"; exit 1; } |
| |
| HDCMD="hdparm -t --direct /dev/mmcblk0 | grep Timing" |
| WRCMD="rm -f ${FILENM} && sync && dd if=/dev/zero of=${FILENM} bs=1M count=${DATAMB} conv=fsync 2>&1 | grep -v records" |
| RDCMD="echo 3 > /proc/sys/vm/drop_caches && sync && dd if=${FILENM} of=/dev/null bs=1M 2>&1 | grep -v records" |
| #grep OpenELEC /etc/os-release >/dev/null && DDTIME=5 || DDTIME=6 |
| DDTIME=8 |
| |
| str_repeat() { |
| str=$1 |
| count=$2 |
| |
| echo "`printf %${count}s | sed "s/ /${str}/g"`" |
| } |
| |
| getperfmbs() |
| { |
| local cmd="${1}" fcount="${2}" ftime="${3}" bormb="${4}" |
| local result count _time perf |
| |
| result="$(eval "${cmd}")" |
| count="$(echo "${result}" | awk "{print \$${fcount}}")" |
| _time="$(echo "${result}" | awk "{print \$${ftime}}")" |
| if [ "${bormb}" == "MB" ]; then |
| perf="$(echo "${count}" "${_time}" | awk '{printf("%0.2f", $1/$2)}')" |
| else |
| perf="$(echo "${count}" "${_time}" | awk '{printf("%0.2f", $1/$2/1024/1024)}')" |
| fi |
| echo "${perf}" |
| echo "${result}" >&2 |
| } |
| |
| getavgmbs() |
| { |
| echo "${1} ${2} ${3}" | awk '{r=($1 + $2 + $3)/3.0; printf("%0.2f MB/s",r)}' |
| } |
| |
| systemctl stop kodi 2>/dev/null |
| #clear |
| sync |
| |
| [ -f /sys/kernel/debug/mmc0/ios ] || mount -t debugfs none /sys/kernel/debug |
| |
| gethwinfo() |
| { |
| conf_core_freq="$(grep -E "^core_freq" ${CONFIG})" |
| conf_sd_overclock="$(grep -E "^dtoverlay|^dtparam" ${CONFIG} | grep -E "mmc|sdhost|sd_overclock")" |
| conf=("${conf_core_freq}" "${conf_sd_overclock}") |
| for idx in "${!conf[@]}"; do [ -z "${conf[$idx]}" ] && unset -v 'conf[$idx]'; done |
| [ -z "${conf[*]}" ] && conf=("default") |
| |
| clock_sdbus="$(grep "actual clock" /sys/kernel/debug/mmc0/ios 2>/dev/null | awk '{printf("%0.3f MHz", $3/1000000)}')" |
| clock_arm="$(vcgencmd measure_clock arm | awk -F= '{printf("%0.3f MHz", $2/1000000)}')" |
| clock_sdram="$(vcgencmd get_config int | grep sdram_freq | awk -F= '{print $2}')" |
| soc_temp="$(cat /sys/class/thermal/thermal_zone0/temp | awk '{printf("%0.3f ℃", $1/1000)}')" |
| volt_core="$(vcgencmd measure_volts core | awk -F= '{print $2}')" |
| volt_sdram_c="$(vcgencmd measure_volts sdram_c | awk -F= '{print $2}')" |
| volt_sdram_i="$(vcgencmd measure_volts sdram_i | awk -F= '{print $2}')" |
| volt_sdram_p="$(vcgencmd measure_volts sdram_p | awk -F= '{print $2}')" |
| core_now="$(vcgencmd measure_clock core | awk -F= '{print $2/1000000}')" |
| core_max="$(vcgencmd get_config int | grep core_freq | awk -F= '{print $2}')" |
| turbo="$(vcgencmd get_config int | grep force_turbo | awk -F= '{print $2}')" |
| [ -n "${turbo}" ] || turbo=0 |
| [ ${turbo} -eq 0 ] && turbo="$(cat /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy)" |
| [ -n "${core_max}" ] || core_max="${core_now}" |
| } |
| |
| version() |
| { |
| printf "$APPLICATION_NAME Ver $APPLICATION_VERSION" |
| } |
| |
| main() |
| { |
| command_name="sdbench" |
| command="$1" |
| |
| case "$command" in |
| "-h" | "--help" ) |
| echo $(version) |
| printf "%6s %-50s\n" "Usage:" "$command_name [-h|--help]" |
| printf "%6s %-50s\n" "" "$command_name [-i|--info]" |
| printf "%6s %-50s\n" "" "$command_name [data size (MB)]" |
| echo |
| exit 0 |
| ;; |
| "-i" | "--info" ) |
| INFO_ONRY=1 |
| ;; |
| * ) |
| if [[ "$command" =~ ^[0-9]+$ ]]; then |
| INFO_ONRY="" |
| DATAMB=${1:-512} |
| elif [ -n "$command" ]; then |
| echo "Invaled option: '$1'" |
| exit -1 |
| fi |
| ;; |
| esac |
| |
| gethwinfo |
| echo |
| printf "$(str_repeat "=" 10) $(version) $(str_repeat "=" 10)\n" |
| bak_ifs=$IFS |
| echo "CONFIG: $(IFS=", "; echo "${conf[*]}")" |
| IFS=$bak_ifs |
| echo "CLOCK : SD Bus: ${clock_sdbus}, CPU: ${clock_arm}, CPU Temp: ${soc_temp}, SDRAM: ${clock_sdram} MHz" |
| echo "VOLTS : core: ${volt_core}, sdram(controller, I/O, physical): ${volt_sdram_c}, ${volt_sdram_i}, ${volt_sdram_p}" |
| echo "CORE : ${core_max} MHz(${core_now} MHz), turbo=${turbo}" |
| echo "DATA : ${DATAMB} MB, ${FILENM}" |
| echo |
| |
| if [ -n "$INFO_ONRY" ]; then |
| exit 0 |
| fi |
| |
| echo "HDPARM:" |
| echo $(str_repeat "=" 6) |
| HD1="$(getperfmbs "${HDCMD}" 5 8 MB)" |
| HD2="$(getperfmbs "${HDCMD}" 5 8 MB)" |
| HD3="$(getperfmbs "${HDCMD}" 5 8 MB)" |
| HDA="$(getavgmbs "${HD1}" "${HD2}" "${HD3}")" |
| |
| echo |
| echo "WRITE:" |
| echo $(str_repeat "=" 5) |
| WR1="$(getperfmbs "${WRCMD}" 1 ${DDTIME} B)" |
| WR2="$(getperfmbs "${WRCMD}" 1 ${DDTIME} B)" |
| WR3="$(getperfmbs "${WRCMD}" 1 ${DDTIME} B)" |
| WRA="$(getavgmbs "${WR1}" "${WR2}" "${WR3}")" |
| |
| echo |
| echo "READ:" |
| echo $(str_repeat "=" 4) |
| RD1="$(getperfmbs "${RDCMD}" 1 ${DDTIME} B)" |
| RD2="$(getperfmbs "${RDCMD}" 1 ${DDTIME} B)" |
| RD3="$(getperfmbs "${RDCMD}" 1 ${DDTIME} B)" |
| RDA="$(getavgmbs "${RD1}" "${RD2}" "${RD3}")" |
| |
| gethwinfo |
| echo |
| echo "RESULT (AVG):" |
| echo $(str_repeat "=" 12) |
| printf "%9s %7s %12s %11s %11s %13s\n" "core_freq" "turbo" "sd clock" "WRITE" "READ" "HDPARM" |
| printf " %d %d %11s %10s %10s %10s\n" "${core_max}" "${turbo}" "${clock_sdbus}" "${WRA}" "${RDA}" "${HDA}" |
| |
| echo |
| echo "microSD card benchmark complete!" |
| echo "CPU Temp: ${soc_temp}" |
| echo |
| } |
| |
| main "$*" |
| </code></WRAP> |
| |
| 元になったオリジナルのスクリプトは http://www.nmacleod.com/public/sdbench.sh です。\\ |
| 参考 [[https://www.bnote.net/raspberry_pi/info_cmd.html|Raspberry Pi の OS に関する情報やハードウェアの情報を得る - bnote]]\\ |
| |
| ===== TOSHIBA EXCERIA 32GB microSDHC Class3 UHS-I U3 ===== |
| {{hardware:sdcard_bench_toshiba_exceria_32gb_uhs3_micro_sdhc_001.jpg?100|TOSHIBA EXCERIA 32GB microSDHC Class10 UHS-I U3 001}}\\ |
| |
==== 参考: Windows での CrystalDiskMark ==== | ==== 参考: Windows での CrystalDiskMark ==== |
Kingston UHS-II SD Reader USB Device, exFAT\\ | Kingston UHS-II SD Reader USB Device, exFAT\\ |
{{:hardware:toshiba_exceria_32gb_microsdhc_class3_uhs-i_u3_002_king_exfat.png?800|TOSHIBA EXCERIA 32GB MicroSDHC Class3 UHS-I U3 002 King exFAT}}\\ | {{:hardware:toshiba_exceria_32gb_microsdhc_class3_uhs-i_u3_002_king_exfat.png?800|TOSHIBA EXCERIA 32GB MicroSDHC Class10 UHS-I U3 002 King exFAT}}\\ |
<WRAP prewrap 100% mincode> | <WRAP prewrap 100% mincode> |
<code> | <code> |
| |
ベンチマークスクリプトをダウンロードする。\\ | ベンチマークスクリプトをダウンロードする。\\ |
{{:hardware:raspberry_pi:sdbench.sh|}}\\ | |
元になったスクリプトは http://www.nmacleod.com/public/sdbench.sh です。\\ | |
<WRAP prewrap 100%> | <WRAP prewrap 100%> |
<code> | <code> |
| |
ベンチマークを実行する。\\ | ベンチマークを実行する。\\ |
※ sdbench.sh は hdparm コマンドを使用するので、予めインストールしておく。(DietPi は標準でインストールされている)<html><code>$ sudo apt install hdparm</code></html>\\ | ※ sdbench.sh は hdparm コマンドを使用するので、予めインストールしておく。(DietPi は標準でインストールされている)\\ |
| <html><code>$ sudo apt install hdparm</code></html>\\ |
<WRAP prewrap 100%> | <WRAP prewrap 100%> |
<code> | <code> |
</code> | </code> |
</WRAP> | </WRAP> |
<WRAP prewrap 100% result> | <WRAP result 100%> |
<code> | <code> |
CONFIG: | CONFIG: |
</code> | </code> |
</WRAP> | </WRAP> |
<WRAP prewrap 100% result_long> | <WRAP result_long 100%> |
<code> | <code> |
| |
</WRAP> | </WRAP> |
| |
===== TeamGroup 128GB MicroSDXC Class10 UHS-I U3 V30 A1 ===== | ===== TeamGroup 128GB microSDXC Class10 UHS-I U3 V30 A1 ===== |
{{hardware:sdcard_bench_team_group_128gb_micro_sdxc_class3_uhs-i_001.jpg?100|TeamGroup 128GB MicroSDXC Class10 UHS-I U3 V30 A1 001}}\\ | {{:hardware:sdcard_bench_team_group_128gb_class10_uhs-i_micro_sdxc_001.jpg?100|TeamGroup 128GB microSDXC Class10 UHS-I U3 V30 A1 001}}\\ |
==== 参考: Windows での CrystalDiskMark ==== | ==== 参考: Windows での CrystalDiskMark ==== |
| |
</code> | </code> |
</WRAP> | </WRAP> |
| |
| ===== オーバークロック検証 ===== |
| [[:hardware:raspberry_pi:sdcard_overclock:samsung_evo_plus_128gb_microsdxc_uhs-i_u3|SAMSUNG EVO Plus 128GB microSDXC UHS-I U3]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:teamgroup_128gb_microsdxc_class10_uhs-i_u3_v30_a1|TeamGroup 128GB microSDXC Class10 UHS-I U3 V30 A1]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:hidisc_128gb_microsdxc_class10_uhs-i_u1|HIDISC 128GB microSDXC Class10 UHS-I U1]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:klevv_128gb_microsdxc_class10_uhs-i_u3_a1|KLEVV 128GB microSDXC Class10 UHS-I U3 A1]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:toshiba_exceria_32gb_microsdhc_class10_uhs-i_u3|TOSHIBA EXCERIA 32GB microSDHC Class10 UHS-I U3]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:kingston_128gb_microsdxc_uhs-i_u1_v30_a1|Kingston 128GB microSDXC UHS-I U1 V30 A1]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:sandisk_128gb_microsdxc_class10_uhs-i_u1_a1|SanDisk 128GB microSDXC Class10 UHS-I U1 A1]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:kioxia_exceria_128gb_microsdxc_class10_uhs-i_u1|KIOXIA EXCERIA 128GB microSDXC Class10 UHS-I U1]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:adata_8gb_microsdhc_class10_uhs-i_u1|ADATA 8GB microSDHC Class10 UHS-I U1]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:transcend_128gb_microsdxc_uhs-i_u3_v30_a1|Transcend 128GB MicroSDXC UHS-I U3 V30 A1]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:au_32gb_microsdhc_class10_uhs-i_u1|au 32GB MicroSDHC Class10 UHS-I U1]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:transcend_16gb_microsdhc_class10|Transcend 16GB microSDHC Class10]]\\ |
| [[:hardware:raspberry_pi:sdcard_overclock:silicon_power_2gb_microsd|SILICON POWER 2GB microSD]]\\ |
| |
===== 参考文献 ===== | ===== 参考文献 ===== |
[[https://www.raspberrypi.org/forums/viewtopic.php?t=195895|SD-Card-Overclock - Raspberry Pi Forums]]\\ | [[https://www.raspberrypi.org/forums/viewtopic.php?t=195895|SD-Card-Overclock - Raspberry Pi Forums]]\\ |
[[https://www.jeffgeerling.com/blog/2016/how-overclock-microsd-card-reader-on-raspberry-pi-3|How to overclock the microSD card reader on a Raspberry Pi 3 | Jeff Geerling]]\\ | [[https://www.jeffgeerling.com/blog/2016/how-overclock-microsd-card-reader-on-raspberry-pi-3|How to overclock the microSD card reader on a Raspberry Pi 3 | Jeff Geerling]]\\ |
| [[qita>noguhiro2002/items/60103e6bd21134cad543|Raspberry PiのMicro SDカードから配布用imageファイルを作る with Ubuntu 18.04 LTS - Qiita]]\\ |
| |
| [[http://fisherman.jp/23/3336|CPUクロック周波数を表示 Raspberry Pi Zero WH | 石垣島海人 fisherman.jp #23]]\\ |
| [[https://forums.raspberrypi.com/viewtopic.php?t=131550|PiZero clock speed on RISC OS - Raspberry Pi Forums]]\\ |
| [[https://forums.raspberrypi.com/viewtopic.php?t=249071|UPDATED: Overclocking pi zero W - Raspberry Pi Forums]]\\ |
| [[tw>TransAmGTA92/status/1224371068820869123|ちなみに、最終的な /boot/config.txt のクロックアップ設定は以下の通り。gpu は 530 にすると、サーマルスロットリングで使い物にならなくなり、arm は 1080 でも余裕という人もいるけどオレのはNG |
| arm_freq=1050 |
| gpu_freq=520 |
| over_voltage=2 |
| core_freq=515 |
| sdram_freq=533 |
| over_voltage_sdram=1]]\\ |
| [[https://forum-raspberrypi.de/forum/thread/44142-speicher-ram-des-raspberry-pi4-uebertakten/|Speicher (RAM) des Raspberry Pi4 übertakten?! - Deutsches Raspberry Pi Forum]]\\ |
| |
==== 付録 ==== | ==== 付録 ==== |
[[tw>tomoyan596/status/1425366975220383747|じつは、SDカードのオーバークロックの方法が変わっていて、元にした方法で行うとWi-Fiに繫がらないとか悩むことになりますけど、あたらしくパラメータで設定する方法が存在していてRaspberry Pi Zeroで上手く出来ました😊👏👏👏 / Twitter]]\\ | [[tw>tomoyan596/status/1425366975220383747|じつは、SDカードのオーバークロックの方法が変わっていて、元にした方法で行うとWi-Fiに繫がらないとか悩むことになりますけど、あたらしくパラメータで設定する方法が存在していてRaspberry Pi Zeroで上手く出来ました😊👏👏👏 / Twitter]]\\ |
[[tw>tomoyan596/status/1441445004413571077|あれ❓TermさんのCrystalDiskMarkのデータが無い😭 / Twitter]]\\ | [[tw>tomoyan596/status/1441445004413571077|あれ❓TermさんのCrystalDiskMarkのデータが無い😭 / Twitter]]\\ |
| [[tw>tomoyan596/status/1495573389905645569|“Linuxなら、わずか2200円税込でも快適なマシンがさらに数で勝負出来ちゃう🥰SDカードオーバークロックしますけど😅 / Twitter]]\\ |
| [[tw>tomoyan596sp/status/1509759405746577412|KIOXIA EXCERIA 128GB microSDXC Class10 UHS-I U1core_freq=565,dtparam=sd_overclock=125SDオーバークロックは125MHz時代へ🥰dmesgで確認するとKernelがエラー吐いている時は強制的に125MHzから調整に入るのでsd_overclock=125以上を指定出来ない模様🤔Kernelの限界❓🤔]]\\ |
| [[tw>tomoyan596sp/status/1519948839452819456|そろそろ、Raspberry Pi Zero のSD bus オーバークロック 125MHz乗用1ヶ月🤔何も問題ないのて安定乗用可能マークしておきます😊通常SD busクロックは50MHz🤔PCの1/4倍速です😅125MHzなら倍以上速いです🤤]]\\ |
| |