-
Notifications
You must be signed in to change notification settings - Fork 1.7k
RPi2 kernel 4.1.13-v7+ freezes with green LED on #510
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Can you confirm when this issue arose? You can revert to older firmware/kernel with |
First observed on Nov 7 on this RPi2. Recall seeing a log of rpi-updates just today, forgetting which file. |
So are you saying the preceding firmware/kernel: |
Not sure. Exact history of rip-updates would help. Do you know where that file is located on the RPi2? |
I linked to the complete list of firmware updates in my first post. |
Thanks, I understand, but have limited time. What would help speed up is the local log file listing the time and hash of rbi-update invocations on my local RPi2 filesystem, which I saw an hour ago but forgot the name/location. |
You can try Just pick a point when you believe it was stable (a week ago? a months ago?) and update to that point. Then just carry on with what you normally do with the pi. If you get a crash then pick an older firmware. If you believe it is stable then pick a newer one. It may take a few days to narrow down (depending on how frequent the hangs tend to be). |
Ok, I remember the log file. I was saving the uname printouts manually. Here it is:
Unfortunately, I started doing this only recently, and did not know the commit hash number. This RPi2 was stable until Nov 7. The latest commit before Nov 7 appears to be done on Sep 4 2015, Hexxeh/rpi-update@3d0ce93 , which apparently had the fault. Being out-of-town, I detected the freeze seven days later, have been using rpi-update more frequently since then, with results I do not quite understand. For example:
|
I believe |
How is the commit |
The commit messages will describe any kernel version bumps. Some commits will be firmware only so the kernel may not change every update. |
Thanks. The fault has been triggered with the commit from yesterday. |
I experienced a similar issue with Version 4.1.12 v7+ #824 when the Pi is totally idle. It froze with red and green led on and blue light of Edimax WiFi dongle constant on. But when the Pi has something to do, in my case answering on TCP Requests and /or writing every minute the status of my wifi connection to a logfile. Now i have a uptime of over 14 days. Maybe this helps a bit. |
@Phelonas was the pi actually hung if interacting with it locally? |
@popcornmix i went the extra mile to be sure the dongle wont enter sleep mode. This included turning power management off in /etc/network/interfaces , writing into the drivers (8192cu.conf file) to not go into sleep more /powermgnt off and pinging the router every 10 seconds (and try a reconnect as long as theres no connection made) |
In my rpi2 the freeze happens with eth0 only and no other peripheral connected. Installed watchdog package today, hoping it triggers a restart when freeze occurs, thus restoring remote access. |
Suggesting patch for rpi-update, not tested, addressing the following:
*** /usr/bin/rpi-update~ 2015-12-03 14:58:02.783631930 -0600
--- /usr/bin/rpi-update 2015-12-03 14:58:02.843631796 -0600
***************
*** 40,45 ****
--- 40,46 ----
FW_MODPATH="${ROOT_PATH}/lib/modules"
FW_REV=${1:-""}
FW_REVFILE="${FW_PATH}/.firmware_revision"
+ LOGFILE="/var/log/rpi-update";
[ "${RPI_UPDATE_UNSUPPORTED}" -ne 0 ] && echo -e "You appear to be trying to update firmware on an incompatible distribution. To force update, run the following:\nsudo -E RPI_UPDATE_UNSUPPORTED=0 rpi-update" && exit 1
function update_self() {
***************
*** 189,196 ****
--- 190,199 ----
echo " *** Running ldconfig"
ldconfig -r "${ROOT_PATH}"
fi
+ local logmsg="$(date -R) : revision change from { $(ls --full-time ${FW_REVFILE}) : { $(cat ${FW_REVFILE}) } } to ${FW_REV} }";
echo " *** Storing current firmware revision"
echo "${FW_REV}" > "${FW_REVFILE}"
+ echo "$logmsg" | tee -a "$LOGFILE";
}
function do_backup {
***************
*** 352,364 ****
fi
do_backup
else
! if [[ $(cat "${FW_REVFILE}") == "${FW_REV}" ]]; then
echo " *** Your firmware is already up to date"
exit 0
fi
if [[ ${JUST_CHECK} -ne 0 ]]; then
echo " *** Firmware update required. New commits available:"
! DIFF_API=${REPO_URI/github.com/api.github.com\/repos}/compare/$(cat "${FW_REVFILE}")...${BRANCH}
SEPARATOR="======================================================"
curl -Ls ${DIFF_API} | awk -v SEPARATOR="${SEPARATOR}" -F\" ' { if ($2 == "commits") {commits=1} if (commits && $2 == "message") {print SEPARATOR "\nCommit: " $4} }' | sed 's/\\n\\n/\nCommit:\ /g'
exit 2
--- 355,368 ----
fi
do_backup
else
! FW_OLDREV=$(cat "${FW_REVFILE}");
! if [[ "${FW_OLDREV}" == "${FW_REV}" ]]; then
echo " *** Your firmware is already up to date"
exit 0
fi
if [[ ${JUST_CHECK} -ne 0 ]]; then
echo " *** Firmware update required. New commits available:"
! DIFF_API=${REPO_URI/github.com/api.github.com\/repos}/compare/"${FW_OLDREV}...${BRANCH}"
SEPARATOR="======================================================"
curl -Ls ${DIFF_API} | awk -v SEPARATOR="${SEPARATOR}" -F\" ' { if ($2 == "commits") {commits=1} if (commits && $2 == "message") {print SEPARATOR "\nCommit: " $4} }' | sed 's/\\n\\n/\nCommit:\ /g'
exit 2
Will let know how log looks when tested. |
Watchdog config file needed minor correction: a closing single quote was missing. *** /lib/systemd/system/watchdog.service 2015/12/03 21:20:22 1.1
--- /lib/systemd/system/watchdog.service 2015/12/03 21:20:32
***************
*** 7,13 ****
[Service]
Type=forking
EnvironmentFile=/etc/default/watchdog
! ExecStartPre=/bin/sh -c '[ -z "${watchdog_module}" ] || [ "${watchdog_module}" = "none" ] || /sbin/modprobe $watchdog_module
ExecStart=/bin/sh -c '[ $run_watchdog != 1 ] || exec /usr/sbin/watchdog $watchdog_options'
ExecStopPost=/bin/sh -c '[ $run_wd_keepalive != 1 ] || false'
--- 7,13 ----
[Service]
Type=forking
EnvironmentFile=/etc/default/watchdog
! ExecStartPre=/bin/sh -c '[ -z "${watchdog_module}" ] || [ "${watchdog_module}" = "none" ] || /sbin/modprobe $watchdog_module'
ExecStart=/bin/sh -c '[ $run_watchdog != 1 ] || exec /usr/sbin/watchdog $watchdog_options'
ExecStopPost=/bin/sh -c '[ $run_wd_keepalive != 1 ] || false'
|
I've just done |
Have not observed the freeze for a while, with watchdog running. Running the modified rpi-update locally to log firmware revision when update occurs. Log looks a bit ugly, need to change ls option to show mod time only.
|
Need to run a while without watchdog module inserted in the kernel to reverify. This is to make sure insmod'ing a kernel module is not masking the issue. |
@McTrk How did your test go? Can this issue be closed? |
The issue was not triggered until the next firmware upgrade, which was through aptitude to the next raspbian firmware, "testing" branch, if I recall correctly. |
So far issue seems resolved when using distributed firmware in raspbian. Closing. |
Registering new issue as the one suggested in https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=122620 by yy502 on Fri Oct 30, 2015 8:15 pm:
Last observed on
Linux version 4.1.13-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015
.Updated to:
c213b61355d6ebcd805157b57440b00b4e3de04d
today; kernel version same as above, uptimeup 2:19, 1 user, load average: 0.00, 0.04, 0.05
, observing.grep -v '^ *#' config.txt
The text was updated successfully, but these errors were encountered: