linux各种重启命令 及STi7105不能重启原因分析

STi 7105 Programming manual STi7105 Programming manual 立即下载
最近发现STlinux系统无法reboot,执行了如下几个命令都是一样的结果
root@wtCAB7167jffs2 :~# reboot
INIT: Switching to runlevel: 6
root@xxha:~#
Broadcast message from root (console) (Sat Jan  1 00:09:00 2000):
The system is going down for reboot NOW!
INIT: Sending processes the TERM signal
INIT: Sending processes the KILL signal
Stopping portmap daemon: portmap.
Stopping sshd:ok
Saving random seed...done.
Stopping xinetd: ok
Stopping kernel log daemon: klogd.
not deconfiguring network interfaces: network file systems still mounted.
Stopping system log daemon: syslogd.
Stopping kernel event manager...
Sending all processes the TERM signal...done.
Sending all processes the KILL signal...done.
Unmounting remote and non-toplevel virtual filesystems...done.
Deactivating swap...umount: invalid option -- t
done.
Unmounting local filesystems...umount: invalid option -- t
done.
Rebooting... Restarting

root@xxha :~# init 6
INIT: Switching to runlevel: 6
INIT: Sending processes the TERM signal
INIT: Sending processes the KILL signal
Stopping portmap daemon: portmap.
Stopping sshd:ok
Saving random seed...done.
Stopping xinetd: ok
Stopping kernel log daemon: klogd.
not deconfiguring network interfaces: network file systems still mounted.
Stopping system log daemon: syslogd.
Stopping kernel event manager...
Sending all processes the TERM signal...done.
Sending all processes the KILL signal...done.
Unmounting remote and non-toplevel virtual filesystems...done.
Deactivating swap...umount: invalid option -- t
done.
Unmounting local filesystems...umount: invalid option -- t
done.
Rebooting... Restarting

root@xxha :~# shutdown -r now
INIT: Switching to runlevel: 6
root@xxha:~#
Broadcast message from root (console) (Sat Jan  1 00:06:13 2000):
The system is going down for reboot NOW!
INIT: Sending processes the TERM signal
INIT: Sending processes the KILL signal
Stopping portmap daemon: portmap.
Stopping sshd:ok
Saving random seed...done.
Stopping xinetd: ok
Stopping kernel log daemon: klogd.
not deconfiguring network interfaces: network file systems still mounted.
Stopping system log daemon: syslogd.
Stopping kernel event manager...
Sending all processes the TERM signal...done.
Sending all processes the KILL signal...done.
Unmounting remote and non-toplevel virtual filesystems...done.
Deactivating swap...umount: invalid option -- t
done.
Unmounting local filesystems...umount: invalid option -- t
done.
Rebooting... Restarting
 
root@xxha :~# reboot -f
Restarting
 
分析,应该是kernel和uboot出了问题。
在uboot里执行reset,也没重起反应,说明uboot的重起也有问题。
 
后来联系了支持,得到几个补丁。打上后,果然就好了。
补丁如下:
1.内核部分,有2个patch:
[root@localhost kernel]# cat linux-sh4-2.6.23.17_stm23_0122-7105machine_restart-kernel122.patch
--- linux-sh4-2.6.23.17_stm23_0122/ arch/sh/kernel/process.c     2009-08-28 13:07:14.000000000 +0100
+++ linux-sh4-2.6.23.17_stm23_0122new/arch/sh/kernel/process.c  2009-09-29 13:41:35.000000000 +0100
@@ -26,6 +26,7 @@
 #include <asm/system.h>
 #include <asm/ubc.h>
 #include <asm/watchdog.h>
+#include <linux/stm/sysconf.h>
 
 static int hlt_counter;
 int ubc_usercnt = 0;
@@ -106,10 +107,20 @@ static void watchdog_trigger_immediate(v
 
 void machine_restart(char *__unused)
 {
-       /* Use watchdog timer to trigger reset */
-       local_irq_disable();
-       watchdog_trigger_immediate();
-       while (1) {};
+   struct sysconf_field *sc1;
+   struct sysconf_field *sc2;
+        /* Use watchdog timer to trigger reset */
+        local_irq_disable();
+        /* ensure the reset period is short and that the reset is */
+        /* not masked */
+        if (! (sc1 = sysconf_claim (SYS_CFG, 9, 29, 29, "kernel")))
+           printk (KERN_EMERG "Cant claim sysconf9\n");
+        if (! (sc2 = sysconf_claim (SYS_CFG, 9, 0, 25, "kernel")))
+           printk (KERN_EMERG "Cant claim sysconf9\n");
+        sysconf_write (sc1, 0x0);
+        sysconf_write (sc2, 0x00000a8c);
+        watchdog_trigger_immediate();
+        while (1) {};
 }
 
 void machine_halt(void)
[root@localhost kernel]#

[ root@localhost kernel]# cat linux-sh4-2.6.23.17_stm23_0122-pdk7105setup.patch
--- linux-sh4-2.6.23.17_stm23_0122 /arch/sh/boards/st/pdk7105/setup.c    2009-08-28 13:07:14.000000000 +0100
+++ linux-sh4-2.6.23.17_stm23_0122-new/arch/sh/boards/st/pdk7105/setup.c        2009-09-29 13:44:53.000000000 +0100
@@ -313,6 +313,12 @@ static int __init device_init(void)
        struct sysconf_field *sc;
        u32 boot_mode;
 
+        /* Get the reset chain correct to start with */
+        sc = sysconf_claim(SYS_CFG, 9, 27, 28, "reset_chain");
+        sysconf_write(sc, 0);
+        /* release the sysconf bits so the coprocessor driver can claim them*/
+        sysconf_release (sc);
+
        bank1_start = emi_bank_base(1);
        bank2_start = emi_bank_base(2);
 
[root@localhost kernel]#
 
2.uboot部分内核:
把 pdk7105.romgen 拷贝到
[root@localhost u-boot-sh4-1.3.1_stm23_0046]# cp -f pdk7105.romgen board/st/pdk7105/pdk7105.romgen
 
[root@localhost kernel]# cat u-boot_0042_reset_7105.patch
--- u-boot-sh4-1.3.1_stm23_0042/cpu/sh/stx7105/stx7105.c        2008-10-15 00:09:42.000000000 +0100
+++ u-boot-sh4-1.3.1_stm23_0042-mb680/cpu/sh/stx7105/stx7105.c  2009-03-23 13:47:15.000000000 +0000
@@ -181,10 +181,9 @@ int soc_init(void)
 
        bd->bi_devid = *STX7105_SYSCONF_DEVICEID_0;
 
-#if QQQ        /* QQQ - TO FIX */
-       /*  Make sure reset period is shorter than WDT timeout */
-       *STX7105_SYSCONF_SYS_CFG09 = (*STX7105_SYSCONF_SYS_CFG09 & 0xFF000000) | 0x000A8C;
-#endif /* QQQ - TO FIX */
+       /*  Make sure reset period is shorter than WDT timeout and that */
+        /*  the reset is not bypassed                                   */
+       *STX7105_SYSCONF_SYS_CFG09 = (*STX7105_SYSCONF_SYS_CFG09 & 0xF7000000) | 0x000A8C;
 
        return 0;
 }
[root@localhost kernel]#
 
打完上述4个补丁,重新编译u-boot,kernel,烧写进nandflash,启动,就可以reboot成功了~,u-boot也可以成功reset了~

使用JLink烧写Nand 申嵌mini2440体验篇4-5_使用JLink烧写Nand和Nor_Flash_-2.rar 立即下载

相关推荐

hi3515-Nand Flash烧写说明

介绍hi3515的nand flash烧录步骤,注意事项

linux命令telinit 1,Linux系统中不同情况的重启命令如何使用

在进行Linux系统操作的时候,如果出现更换硬件、更改系统配置及死机等情况时,就需要对电脑进行重启,而不同的情形重启的方式也不同,即使用的命令不同,下面小编就给大家介绍下Linux下不同情形的重启方法。不同于桌面系统,作为服务器,我们较少对Linux系统进行系统重启,但在以下情形出现时,我们会对机器进行重启:更换硬件更改系统配置系统僵死,需要重启恢复关闭和重启系统方式引导系统本质上只能用一种方法,...

weixin_39836751的博客 660

JLink烧写Nand Flash方法.rar

包含烧写说明,和所使用的bin文件.下载这个就可以搞定

linux关机出现错误,Solved: 关于petalinux2019.1 linux系统关机指令出现error问题 - Community Forums...

我使用的是ZYNQ7035,软件平台用的petalinux2019.1,在我使用shutdown -h now指令后,无法关机,并且打印提示如下错误:The system is going down for�system halt NOW!INIT: Switching to runlevel: 0INIT: Sending processes the TERM signalStopping Dr...

weixin_39915210的博客 732

双硬盘下Ubuntu 16.04与Win10双系统的安装

之前写过一个双系统安装过程,今天再次整理的原因是想重点强调双硬盘的区别。标红的一定要注意看,那就是我自己一步一步踏出来的坑啊...   基础步骤就不再重复,重点讲区别,需要看详细步骤的童鞋(或者你只有一个硬盘)请看我上一篇博客https://blog.youkuaiyun.com/weixin_40308540/article/details/80157444   区别:双硬盘和单硬盘的区别是什么呢?...

不吃包子 1124

深入解析poi-tl自定义表格渲染插件中的多级子循环实现

本文深入解析了poi-tl自定义表格渲染插件中的多级子循环实现,详细介绍了其在处理复杂业务数据时的核心价值、实现原理及实战技巧。通过多级子循环机制,开发者可以高效地将层级数据结构渲染到Word表格中,显著提升代码简洁性和维护效率。文章还分享了性能优化和异常处理经验,帮助开发者更好地应用该插件。

weixin_33734785的博客 485

Linux 信 号 机 制

前面介绍了信号的基本概念,在这一节中,我们将介绍内核如何实现信号机制。即内核如何向一个进程发送信号、进程如何接收一个信号、进程怎样控制自己对信 号的反应、内核在什么时机处理和怎样处理进程收到的信号。还要介绍一下setjmp和longjmp在信号中起到的作用。  1、内核对信号的基本处理方法  内核给一个进程发送软中断信号的方法,是在进程所在的进程表项的信号域设置对应于该信号的位。这

轮子工厂 544

别再让地图加载慢吞吞!GeoServer + GeoWebCache 缓存配置实战(附性能对比)

本文详细介绍了如何通过GeoServer和GeoWebCache优化地图服务性能,实现地图加载速度的显著提升。从缓存机制解析到实战配置流程,再到高级性能调优技巧,帮助开发者构建高效地图缓存系统,解决地图加载慢的问题。

weixin_42525369的博客 407

Linux halt --停止系统运行,但不关闭电源

用途说明 halt命令可以停止系统运行,但不关闭电源;poweroff命令也可实现关机,同时关闭电源。它们两个都是调用shutdown命令来进行的,reboot可以将机器重启。   常用方式 格式:halt 格式:shutdown -h 停止系统运行,但不关闭电源。   格式:poweroff 停止系统运行,同时关闭电源。   格式:reboot 重启系统。   使用示

老莫小小朋友 3万+

渗透测试工具之Sliver

攻击者需要将生成的植入物传输到目标系统,并执行它。C2 框架的架构与 Metasploit(如 Meterpreter)类似,但更专注于。(Red Teaming)中常见的攻击工具之一,攻击者利用 C2 服务器。组成,二者共同实现 C2 服务器与受控设备的通信。植入物(Implants)是 Sliver 生成的。抓包分析时,可以看到所有数据都是加密传输的。和**监听器(Listeners)**功能。Sliver 支持多种通信协议,如。随着安全防御的不断提升,企业应加强。进行通信,数据仍然是加密的。

idlecloud0105的博客 1936

免费教你快速学会分析运算放大器电路(保证学会)

本文旨在学习如何快速简单地对运算放大器进行分析

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 1万+

imx6 reboot指令无法重启 & kernel 停留在start kernel ......

reboot指令无法重启: log: root@imx6dlsabresd:~#reboot   Thesystem is going down for reboot NOW!d (ttymxc0) (Tue Oct 11 06:41:03 2016 INIT:Switching to runlevel: 6 INIT:Sending processes the TERM sign

WXXGoodJob的博客 7083

SAP Group Reporting入门指南(1)--开篇及系统环境搭建

文章介绍了SAP GR的发展历程、与BPC的对比优势,数据收集的多种方式(实时同步、外部导入等)以及合并整体流程,并推出《SAP Group Reporting入门指南》专栏。

bflyfish的博客 283

linux 系统从启命令,Linux系统各种重启命令

在进行Linux系统操作的时候,如果出现更换硬件、更改系统配置及死机等情况时,就需要对电脑进行重启,而不同的情形重启的方式也不同,即使用的命令不同,下面小编就给大家介绍下Linux下不同情形的重启方法。不同于桌面系统,作为服务器,我们较少对Linux系统进行系统重启,但在以下情形出现时,我们会对机器进行重启:更换硬件更改系统配置系统僵死,需要重启恢复关闭和重启系统方式引导系统本质上只能用一种方法,...

weixin_30334411的博客 385

【系统架构设计师】2026年上半年真题论文:论高并发系统的设计与实践

本文围绕高并发系统架构设计展开,重点论述了电商秒杀系统的实战经验。文章采用"痛点-解决方案-效果"的逻辑结构,从缓存设计、异步处理、限流降级、数据库优化等6个维度详细阐述了应对高并发的技术策略。其中,重点介绍了多级缓存体系、基于消息队列的异步处理机制和微服务拆分实践,并辅以实际案例说明如何解决超卖、缓存雪崩等典型问题。全文强调高并发设计需要系统性思维,通过空间换时间、异步换吞吐、横向换能力等原则,最终实现系统吞吐量从500TPS提升至20000TPS的性能突破。

数据知道的博客 1159

[游戏排查] Baldur‘s Gate 3 加载完成即崩溃?五步排查帮你快速定位问题

《博德之门3》加载崩溃问题解决方案:针对游戏进度条走完后闪退的情况,提供五步排查法。首先清除LevelCache缓存(成功率最高),其次检查Mod兼容性,然后切换Vulkan/DX11渲染API,再排查存档损坏问题,最后可删除配置目录(需备份存档)。重点提示Steam验证无法解决此类问题,建议按步骤顺序排查,多数情况下前两步即可解决问题。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 3262

Linux系统关机与重新引导流程简介

引言 在《Linux启动之旅》中,我们了解了Linux的启动过程,下面我们一同来学习Linux关机与重新引导流程。   不同于桌面系统,作为服务器,我们较少对Linux系统进行系统重启,但在以下情形出现时,我们会对机器进行重启: 更换硬件 更改系统配置 系统僵死,需要重启恢复   关闭和重启系统方式 引导系统本质上只能用一种方法,与此不同的是,关闭或重新引导系统有多种方法...

weixin_34233421的博客 338

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

STi7105用nand flash启动的问题

7105支持从nand flash启动,首先需要把nand flash的片选一定要从A片选开始,nand flash使用flex mode。再把uboot、kernel、filesystem放在nand flash上。但是笔者通过切身经历验证发现,在nand flash上使用JFFS2文件系统,稳定性不好,会造成CRC 数据错误。笔者跟踪过这个问题,比如你在jffs2文件系统创建一个文件夹,如果你

Edsam--活到老学到老,掌握核心技术,做好产品服务! 2063

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Run level 的切换,利用run level重启,关机

Run level 的切换 在我们完成上面的所有资讯后,其实整个 Linux 主机就已经在等待我们使用者的登陆啦!但是,相信您应该还是会有一点疑问的地方,那就是:『我该如何切换 run level 呢?』会不会很难啊?不会啦!很简单~但是依据运行的时间而有不同的方式啊! 事实上,与 run level 有关的启动其实是在 /etc/rc.d/rc.sysinit 运行完毕之后。也就是说,其

wangzengdi的专栏 1573

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

PXE系列这三:制作根文件系统

PXE系列这三:制作根文件系统 (一)过程 利用现有的正常运行的文件系统(我这里是Centos5.3)来生成我们所需要的文件系统, 首先cd 到根目录下:#  cd  /     然后,把/etc /bin /sbin /usr /lib /lib64 /dev /var都拷贝到指定目录:        我这里是/home/centos_rootfs,以拷贝/b

chong232的专栏 4753

软关机 linux服务器,如何实现软关机?| Linux技术交流区 - 友善之家 嵌入式开发板技术交流社区...

我的2440的开发板带了一块硬盘,使用FAT32的文件系统存储文件。在使用过程中出现了硬盘文件系统被破坏不能挂载的情况,硬盘是好了,重新格式化后就可以用了。想来想去没有什么结果。现在想在程序中实现一个软关机。因为以前都是外部断电来关机的。断电关机可能对硬盘造成一些影响。就好像我们的电脑一样。我在我的一块arm板上使用shutdown -h now来关机。出来的信息如下:root@sbc8018:~...

weixin_35907189的博客 1003

ubuntu 中 python 版本问题

报错 : File "/usr/bin/pycentral", line 1472, in run     runtimes = get_installed_runtimes()   File "/usr/bin/pycentral", line 276, in get_installed_runtimes     default_version = pyversions.defaul

1506
上一篇: printk _dmesg 打印显示等级
下一篇: uboot 和 kernel 中的分区修改
lamdoc
博客等级 码龄18年 155粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值