1、

自动挂载U盘和SD卡问题的解决:

http://blog.csdn.net/xdw1985829/article/details/6684968

用的mdev的方法。

在 Linux中我们经常用到U盘、SD卡的挂载问题,每次都手动挂载或卸载非常麻烦,我们可以采取以下方法实现自动挂载或卸载U盘、SD卡

@1: 首先在/etc/init.d/rsC中加入以下语句

echo /sbin/mdev >/proc/sys/kernel/hotplug

@2:在/etc/下简历mdev.conf的文件,包含以下内容

sd[a-z][0-9]      0:0 666        @(/etc/hotplug/insert.sh $MDEV$SUBSYSTEM)

sd[a-z]           0:0 666        $(/etc/hotplug/remove.sh $MDEV$SUBSYSTEM)

ub[a-z][0-9]      0:0 666        @(/etc/hotplug/insert.sh $MDEV$SUBSYSTEM)

ub[a-z]           0:0 666       $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)

mmcblk[0-9]p[0-9] 0:0 666        @(/etc/hotplug/insert.sh $MDEV$SUBSYSTEM)

mmcblk[0-9]       0:0 666        $(/etc/hotplug/remove.sh $MDEV$SUBSYSTEM)

@3:在/etc/下建立以下文件夹hotplug,并在hotplug目录下建立以下文件,包含以下内容

insert.sh:

if [ -n "$1" ] ; then

if [ -b /dev/$1 ]; then

if [ ! -d /mnt/usb/sda1 ]; then

mkdir -p /mnt/usb/sda1

fi

if [ ! -d /mnt/usb/$1 ]; then

mkdir -p /mnt/usb/$1

fi

mount /dev/$1 /mnt/usb/$1

if [ $? -ne 0 ]; then

rm -rf /mnt/usb/$1

fi

fi

fi

remove.sh:

MOUNTS=$(mount | grep $1 | cut -d' ' -f3)

umount $MOUNTS

rm -rf $MOUNTS

SD卡的自动挂载同理:

@4:在/etc/下建立以下文件夹hotplug,并在hotplug目录下建立以下文件,包含以下内容

insertsd.sh:

if [ -n "$1" ] ; then

if [ -b /dev/$1 ]; then

if [ ! -d /mnt/mmc/mmcblk0p1 ]; then

mkdir -p /media

fi

if [ ! -d /mnt/mmc/$1 ]; then

mkdir -p /mnt/mmc/$1

fi

mount /dev/$1 /mnt/mmc/$1

if [ $? -ne 0 ]; then

rm -rf /mnt/mmc/$1

fi

fi

fi

removesd.sh:

MOUNTS=$(mount | grep $1 | cut -d' ' -f3)

umount $MOUNTS

rm -rf $MOUNTS

2、

date 日月时分年.秒                //设置系统时间

hwclock -f /dev/rtc1 -w          //将系统时间写入到/dev/rtc1中写到硬件rtc中

hwclock -f /dev/rtc1 -s              //将rtc1的时间同步到系统时间中      从硬件rtc中同步到系统中

3、

RTC的hwclock问题的解决:

用的pcf8563驱动

在arch/arm/mach-nuc970/dev.c中

将:

static struct i2c_board_info __initdatanuc970_i2c_clients0[] =

{

#ifdef CONFIG_SND_SOC_NAU8822

{I2C_BOARD_INFO("nau8822",0x1a),},

#endif

};

改为:

static struct i2c_board_info __initdatanuc970_i2c_clients0[] =

{

#ifdef CONFIG_SND_SOC_NAU8822

//{I2C_BOARD_INFO("nau8822",0x1a),},

#endif

{I2C_BOARD_INFO("pcf8563",0x51)},                               //添加pcf8563

};

之后将:

#ifdef CONFIG_I2C_BUS_NUC970_P0

i2c_register_board_info(0,nuc970_i2c_clients0, sizeof(nuc970_i2c_clients0)/sizeof(structi2c_board_info));

#endif

改为:

#ifdef CONFIG_I2C_BUS_NUC970_P0

//i2c_register_board_info(1,nuc970_i2c_clients0, sizeof(nuc970_i2c_clients0)/sizeof(struct i2c_board_info));

i2c_register_board_info(0,nuc970_i2c_clients0, sizeof(nuc970_i2c_clients0)/sizeof(structi2c_board_info));    //我们使用的是I2C0

#endif

编译内核,看内核中的log信息,来得知pcf8563的rtc,是在/dev/rtc1

所以操作hwclock操作这个rtc时,要指定文件设备(用-f),否则直接hwclock可能是对应的/dev/rtc0

date 月日时分年.秒

hwclock -f /dev/rtc1 -w

4、

看门狗无法复位的问题:

硬件电路上没有32.768KHZ的晶振,然而内核中看门狗用的却是这个32.768KHZ晶振提供的时钟源。

解决方案两种:

第一种:硬件电路上加上这个32.768KHZ的晶振。

第二种:软件上,在内核驱动中,读改写了看门狗的时钟来源的寄存器,将其设置为了从PCLK/4096来的时钟源,也就是75MHZ/4096。

在 driver/watchdog/nuc970_wdt.c 中

将:

static int nuc970wdt_start(structwatchdog_device *wdd)

{

unsignedint val = 0;

val|= (WTRE | WTE | WTR);

if(wdd->timeout< 2) {

val|= 0x5 << 8;

}else if (wdd->timeout < 8) {

val|= 0x6 << 8;

}else {

val|= 0x7 << 8;

}

Unlock_RegWriteProtect();

__raw_writel(val,REG_WDT_CR);

Lock_RegWriteProtect();

return0;

}

修改为:

static int nuc970wdt_start(structwatchdog_device *wdd)

{

unsignedint val = 0;

val|= (WTRE | WTE | WTR);

if(wdd->timeout< 2) {

val|= 0x5 << 8;

}else if (wdd->timeout < 8) {

val|= 0x6 << 8;

}else {

val|= 0x7 << 8;

}

//      printk(KERN_INFO"/****************************WDT_START val = 0x%x ************\n", val);//0x783            //why

Unlock_RegWriteProtect();

__raw_writel(val,REG_WDT_CR);

__raw_writel((__raw_readl(REG_CLK_DIV8)& (~0x300)) | 0x200, REG_CLK_DIV8);            //why  PCLK/4096           //设置看门狗的时钟源

Lock_RegWriteProtect();

return0;

}

将:

static int nuc970wdt_probe(structplatform_device *pdev)函数中的

nuc970_wdd.timeout= 2;                 // default time out =2 sec (2.03)

nuc970_wdd.min_timeout= 1;

nuc970_wdd.max_timeout= 9;       // max time out = 9 sec (8.03)

修改成:

//nuc970_wdd.timeout = 2;              // default time out = 2 sec (2.03)

nuc970_wdd.timeout= 8;                          //why

nuc970_wdd.min_timeout= 1;        // min time out = 1 sec (0.53)

//nuc970_wdd.max_timeout= 9;   // max time out = 9 sec (8.03)

nuc970_wdd.max_timeout= 14;                       //why

5、Qt移植

./configure -prefix /usr/local/qt4.8.3-arm-embedded arm -release -shared -fast -no-largefile -qt-sql-sqlite -qt3support-no-xmlpatterns -no-glib -no-phonon -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg-webkit -qt-zlib -qt-libtiff -qt-libpng -qt-libjpeg -make libs -nomake examples-nomake docs -nomake demo -no-nis -no-cups -iconv -no-dbus -openssl -xplatformqws/linux-arm-g++ -little-endian -qt-freetype -depths 16,24,32 -qt-gfx-linuxfb-qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb-qt-kbd-linuxinput -no-kbd-qvfb -armfpa -no-mouse-qvfb -qt-mouse-linuxtp-qt-mouse-tslib -DQT_QLOCALE_USES_FCVT -I/usr/local/arm/tslib/include -L/usr/local/arm/tslib/lib-confirm-license

echo yes | ./configure -prefix/usr/local/qt4.8.3-arm -release -no-largefile -opensource -embedded arm -stl-qt-freetype -qt-sql-sqlite -no-qt3support -no-svg -no-xmlpatterns-no-phonon-backend -no-scripttools -no-phonon -no-script -no-audio-backend-no-multimedia -no-openssl -nomake tools -nomake examples -nomake demos -nomakedocs -xplatform qws/linux-arm-g++ -no-webkit -no-qvfb -no-cups -no-neon-qt-gfx-vnc -no-gfx-multiscreen -qt-kbd-tty -qt-gfx-transformed -no-libtiff-no-libmng -qt-libpng -qt-mouse-pc -no-mouse-linuxtp -qt-mouse-tslib

nuc972 linux 升级,NUC972移植工作记录相关推荐

  1. [linux kernel]内核移植过程记录

    系统版本:Ubuntu18.04-64 编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) uboot版本:2018.07 - ...

  2. selinux移植调试记录

    LINUX平台selinux移植调试记录 前言 什么是selinux 主要作用 selinux的组成 工作模式 工作流程 查看当前的文件或进程的安全上下文 uboot和kernel中的配置 refpo ...

  3. mac软件移植linux,相比软件迁移 Apple Silicon Mac的Linux系统移植工作更困难

    Asahi Linux 项目团队在博客文章中写道,他们尝试了在 Apple Silicon 系统上设置备用启动内核.虽然已实现大多数功能,但还是缺乏对安装非苹果内核的命令支持. Apple Insid ...

  4. 基于全志A33开发板linux系统移植学习记录(Boot0)

    基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...

  5. 移植Linux(ucLinux)到GBA的记录

    移植Linux(ucLinux)到GBA的记录 v1.0 teawater@hotmail.com 1.感谢 向所有直接和间接帮助过我的的朋友们表示衷心的感谢,因为人数太多我就不一一提到了. 2.写在 ...

  6. boa linux arm修改网卡,Boa服务器在ARM+Linux上的移植

    Boa服务器在ARM+Linux上的移植 一.Boa服务器介绍 Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右. 作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会 ...

  7. 【转】将 Linux 应用程序移植到 64 位系统上

    原文网址:http://www.ibm.com/developerworks/cn/linux/l-port64.html 随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux® 软 ...

  8. linux内核报告,Linux升级内核报告.docx

    Linux升级内核报告精要 我的Linux 内核升级记录 准备工作内核安装包的下载下载地址为: HYPERLINK "/pub/linux/kernel/" /pub/linux/ ...

  9. Linux学习笔记---移植官方uboot步骤(一)

    目录 编写shell脚本 修改MakeFile文件 重命名shell脚本 添加默认配置文件 修改默认配置文件 准备需要的板级文件夹 重命名.C文件 修改Makefile 修改imximage.cfg配 ...

  10. zybo上运行linux,Zybo开发板linux作业系统移植

    文章主要介紹zybo board上linux作业系统移植过程.分别介绍了开发环境搭建.U-boot编译.linux内核编译.busybox制作等流程及注意事项.文章使用的开发板是zynq 7000系列 ...

最新文章

  1. NAACL | 通过对抗性修改,探究链接预测的鲁棒性和可解释性
  2. mysql半同步复制问题排查
  3. Linux Kernel TCP/IP Stack — L1 Layer — Network Interface
  4. Python学习之路:NumPy初识
  5. xshell / xftp家庭/学校免费版官网下载地址
  6. lis3dh 三轴加速度计 运动检测 中断配置实现
  7. linux nohup screen注解
  8. 如何设计区块链项目的通证(token)模型
  9. jquery调用asp.net 页面后台方法
  10. Colder框架硬核更新(Sharding+IOC)
  11. ahp层次分析法软件_层次分析法在历史街区研究中的应用简析
  12. VALSE学习(十三):网络结构搜索提速方法和训练技巧-NAS
  13. Hbase-1.1.1-java API
  14. 令牌环(Token-Ring)
  15. 软件测试常用的8种功能测试类型
  16. 微信公众号支付的回调地址 不起作用的问题
  17. IP地址和子网的划分详解
  18. 英文字母间隔变得很大abcdefg
  19. 微信小程序 15 个人中心页
  20. vscode默认输出到调试控制台

热门文章

  1. tds for mysql_PostgreSQL9.3安装tds_fdw扩展
  2. poi创建excel表打不开——文件格式与扩展名不匹配
  3. VSCode 过滤.meta 文件
  4. ota升级 rk3399_Android7.1.2系统OTA升级
  5. 需求预测——Gallat: A Spatiotemporal Graph Attention Network for Passenger Demand Prediction
  6. 2020-08-31第一次机器人课
  7. 怎么写解题步骤——FIRST集、FOLLOW集、LL(1)分析法【编译原理之语法分析】
  8. 网卡MAC地址是什么?
  9. 五笔字典86版wubi拆字图编码查询
  10. clob informix java_informix如何插入clob