nuc972 linux 升级,NUC972移植工作记录
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移植工作记录相关推荐
- [linux kernel]内核移植过程记录
系统版本:Ubuntu18.04-64 编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) uboot版本:2018.07 - ...
- selinux移植调试记录
LINUX平台selinux移植调试记录 前言 什么是selinux 主要作用 selinux的组成 工作模式 工作流程 查看当前的文件或进程的安全上下文 uboot和kernel中的配置 refpo ...
- mac软件移植linux,相比软件迁移 Apple Silicon Mac的Linux系统移植工作更困难
Asahi Linux 项目团队在博客文章中写道,他们尝试了在 Apple Silicon 系统上设置备用启动内核.虽然已实现大多数功能,但还是缺乏对安装非苹果内核的命令支持. Apple Insid ...
- 基于全志A33开发板linux系统移植学习记录(Boot0)
基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...
- 移植Linux(ucLinux)到GBA的记录
移植Linux(ucLinux)到GBA的记录 v1.0 teawater@hotmail.com 1.感谢 向所有直接和间接帮助过我的的朋友们表示衷心的感谢,因为人数太多我就不一一提到了. 2.写在 ...
- boa linux arm修改网卡,Boa服务器在ARM+Linux上的移植
Boa服务器在ARM+Linux上的移植 一.Boa服务器介绍 Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右. 作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会 ...
- 【转】将 Linux 应用程序移植到 64 位系统上
原文网址:http://www.ibm.com/developerworks/cn/linux/l-port64.html 随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux® 软 ...
- linux内核报告,Linux升级内核报告.docx
Linux升级内核报告精要 我的Linux 内核升级记录 准备工作内核安装包的下载下载地址为: HYPERLINK "/pub/linux/kernel/" /pub/linux/ ...
- Linux学习笔记---移植官方uboot步骤(一)
目录 编写shell脚本 修改MakeFile文件 重命名shell脚本 添加默认配置文件 修改默认配置文件 准备需要的板级文件夹 重命名.C文件 修改Makefile 修改imximage.cfg配 ...
- zybo上运行linux,Zybo开发板linux作业系统移植
文章主要介紹zybo board上linux作业系统移植过程.分别介绍了开发环境搭建.U-boot编译.linux内核编译.busybox制作等流程及注意事项.文章使用的开发板是zynq 7000系列 ...
最新文章
- NAACL | 通过对抗性修改,探究链接预测的鲁棒性和可解释性
- mysql半同步复制问题排查
- Linux Kernel TCP/IP Stack — L1 Layer — Network Interface
- Python学习之路:NumPy初识
- xshell / xftp家庭/学校免费版官网下载地址
- lis3dh 三轴加速度计 运动检测 中断配置实现
- linux nohup screen注解
- 如何设计区块链项目的通证(token)模型
- jquery调用asp.net 页面后台方法
- Colder框架硬核更新(Sharding+IOC)
- ahp层次分析法软件_层次分析法在历史街区研究中的应用简析
- VALSE学习(十三):网络结构搜索提速方法和训练技巧-NAS
- Hbase-1.1.1-java API
- 令牌环(Token-Ring)
- 软件测试常用的8种功能测试类型
- 微信公众号支付的回调地址 不起作用的问题
- IP地址和子网的划分详解
- 英文字母间隔变得很大abcdefg
- 微信小程序 15 个人中心页
- vscode默认输出到调试控制台
热门文章
- tds for mysql_PostgreSQL9.3安装tds_fdw扩展
- poi创建excel表打不开——文件格式与扩展名不匹配
- VSCode 过滤.meta 文件
- ota升级 rk3399_Android7.1.2系统OTA升级
- 需求预测——Gallat: A Spatiotemporal Graph Attention Network for Passenger Demand Prediction
- 2020-08-31第一次机器人课
- 怎么写解题步骤——FIRST集、FOLLOW集、LL(1)分析法【编译原理之语法分析】
- 网卡MAC地址是什么?
- 五笔字典86版wubi拆字图编码查询
- clob informix java_informix如何插入clob